产品型号:
技术参数:
外形尺寸:
错误校验的方法
错误校验(CRC)域占用两个字节,包含了一个 16 位的二进制值。CRC 值由传输设备计算出来,然后附加到数据帧上,接收设备在接受数据时重新计算 CRC 值,然后与接收到的 CRC 域中的值进行比较,如果这两个值不相等,就发生了错误。
CRC 运算时,首先将一个 16 位的寄存器预置为全 1,然后连续把数据帧中的每个字节中的 8 位与该寄存器的当前值进行运算,仅仅每个字节的 8 个数据位参与生成 CRC,起始位和停止位以及可能使用的奇偶位都
不影响 CRC。在生成 CRC 时,每个字节的 8 位与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,***低位(LSB)移出并检测,如果是 1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果***低位为 0,不作任何处理。
CRC 生成流程:
1 预置一个 16 位寄存器为 0FFFFH(全 1),称之为 CRC 寄存器。
中的***个字节的 8 位与 CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器。
2 把数据帧中的***个字节的 8 位与 CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器。
3 将 CRC 寄存器向右移一位,***高位填 0,***低位移出并检测。
4 如果***低位移出为 0:重复第 3 步(下一次移位);如果***低位移出为 1:将 CRC 寄存器与一个预设固定值(0A001H)进行异或运算。
5 重复第 3 步和第 4 步直到 8 次移位。这样就处理完了一个完整的 8 位。
6 重复第 2 步到第 5 步来处理下一个 8 位,直到所有的字节处理结束。
7 ***终 CRC 寄存器的值就是 CRC 的值。