crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值

根据

Modbus

协议,

常规

485

通讯的信息发送形式如下:

地址

功能码

数据信息

校验码

1byte

1byte

nbyte    2byte

CRC

校验是前面几段数据内容的校验值,为一个

16

位数据,发送时,低

8

位在前,高

8

为最后。

例如:

信息字段代码为

: 1011001

,校验字段为:

1010

发送方

:发出的传输字段为

:

1 0 1 1 0 0 1 1 0 10

信息字段

校验字段

接收方

使用相同的计算方法计算出信息字段的校验码,

对比接收到的实际校验码,

如果相

等及信息正确,

不相等则信息错误;

或者将接受到的所有信息除多项式,如果能够除尽,则

信息正确。

CRC-16

校验码计算方法:

常用查表法和计算法。计算方法一般都是:

(

1

)、预置

1

16

位的寄存器为十六进制

FFFF

(即全为

1

),称此寄存器为

CRC

寄存

器;

(

2

)、把第一个

8

位二进制数据(既通讯信息帧的第一个字节)与

16

位的

CRC

寄存器

的低

8

位相异或,把结果放于

CRC

寄存器,高八位数据不变;

(

3

)、把

CRC

寄存器的内容右移一位(朝低位)用

0

填补最高位,并检查右移后的移出

位;

(

4

)、如果移出位为

0

:重复第

3

步(再次右移一位);如果移出位为

1

CRC

寄存器与

项式

A001

(

1010 0000 0000 0001

)进行异或;

(

5

)、重复步骤

3

4

,直到右移

8

次,这样整个

8

位数据全部进行了处理;

(

6

)、重复步骤

2

到步骤

5

,进行通讯信息帧下一个字节的处理;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值