ZHCSRX7 june 2023 BQ79616
PRODUCTION DATA
有多种方法可用于检查帧的 CRC。一种方法是使用前一节中所述的方法简单地计算除最后两个字节(CRC 字节)之外的传输命令的 CRC,然后将该结果与传输的 CRC 字节进行比较。一种更简单的选项是通过 CRC 算法运行整个传输。如果 CRC 正确,则结果为 0000。在这种情况下,不需要用 16 个零对位流进行初始补零。使用之前的结果并运行该算法会产生以下结果:
示例 1:使用多项式除法进行 CRC 验证:
Command Frame = 0x80 00 02 0F 0B (0b1000 0000 0000 0000 0000 0010 0000 1111 0000 1011)
CRC to Check = 0xC029
Command Frame w/ CRC in bit stream order = 0x80 00 02 0F 0B C0 29 (0b1000 0000 0000 0000 0000 0010 0000 1111 0000 1011 0000 0011 1001 0100)
After Initialization (XOR with 0xFFFF) = 0b0 1111 1110 1111 1111 0100 0000 1111 0000 1101 0000 0000 0011 1001 0100
1111 1110 1111 1111 0100 0000 1111 0000 1101 0000 0000 0011 1001 010 #delete leading zeros from previous result
1100 0000 0000 0010 1 #XOR with polynomial
0011 1110 1111 1101 1100 0000 1111 0000 1101 0000 0000 0011 1001 0100
11 1110 1111 1101 1100 0000 1111 0000 1101 0000 0000 0011 1001 0100 #delete leading zeros from previous result
11 0000 0000 0000 101 #XOR with polynomial
00 1110 1111 1101 0110 0000 1111 0000 1101 0000 0000 0011 1001 0100
……
……
……
1100 0110 0000 0010 1001 0100
1100 0000 0000 0010 1 #XOR with polynomial
0000 0110 0000 0000 0001 0100
1 1000 0000 0000 0101 00
1 1000 0000 0000 0101 #XOR with polynomial
0 0000 0000 0000 0000 00
0x0000 #verfiy that CRC checks out valid
CRC 的结果“0b0000 0000 0000 0000”表示校验成功。