数采物联无线传感器数据采集终端循环冗余校验CRC区为2字节,含一个16位二进制数据。由发送设备计算CRC值,并把计算值附在信息中,
接收设备在接收信息时,重新计算CRC值,并把计算值与接收的在CRC区中实际值进行比较,若两者不相同,
则产生一个错误。
CRC开始时先把寄存器的16位全部置成“1”,然后把相邻2个8位字节的数据放入当前寄存器中,只有每个
字符的8位数据用作产生CRC,起始位,停止位和奇偶校验位不加到CRC中。

产生CRC期间,每8位数据与寄存器中值进行异或运算,其结果向右移一位(向LSB方向),并用“0”填入
MSB,检测LSB,若LSB为“1”则与预置的固定值异或,若LSB为“0”则不作异或运算。
重复上述处过程,直至移位8次,完成第8次移位后,下一个8位数据,与该寄存器的当前值异或,在所有
信息处理完后,寄存器中的最终值为CRC值。
产生CRC的过程:

  1. 把16位CRC寄存器置成FFFFH.
  2. 第一个8位数据与CRC寄存器低8位进行异或运算,把结果放入CRC寄存器。
  3. CRC寄存器向右移一位,MSB填零,检查LSB.
  4. (若LSB为0):重复3,再右移一位。
    (若LSB为1):CRC寄存器与A001 H 进行异或运算
  5. 重复3和4直至完成8次移位,完成8位字节的处理。
  6. 重复2至5步,处理下一个8位数据,直至全部字节处理完毕。
  7. CRC寄存器的最终值为CRC值。
  8. 把CRC值放入信息时,高8位和低8位应分开放置。
  9. 微功耗无线传感器数据采集终端MODBUS_CRC16 检验码计算方法

相关文章:

  • 2021-12-22
  • 2022-01-03
  • 2021-12-26
  • 2022-12-23
  • 2021-10-21
  • 2022-12-23
  • 2021-06-04
  • 2021-12-04
猜你喜欢
  • 2021-12-02
  • 2021-09-08
  • 2021-05-06
  • 2022-12-23
  • 2021-08-26
  • 2021-06-12
  • 2021-12-30
相关资源
相似解决方案