Modbus指令CRC校验位生成例程解析

时间:2020-12-02 00:36:33

01 06 07D0 01F4 8950,可以分为以下部分:

项目

Value

从机地址

01

功能号

06

数据地址

07D0

数据

01F4

CRC

8950

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

​CRC校验​的数据范围为:地址码+功能码+数据区,小端模式(低位在前,高位在后)

CRC校验程序框图如下:

Modbus指令CRC校验位生成例程解析

Modbus指令CRC校验位生成例程解析

结果是:

Modbus指令CRC校验位生成例程解析

跟网上在线计算出来的一致:

Modbus指令CRC校验位生成例程解析

CRC-16 Modbus校验位的生成规则如下:

CRC-16-MODBUS

x16+x15+x2+1

16

8005

FFFF

0000

true

true