ZHCSRX7 june 2023 BQ79616
PRODUCTION DATA
有多種方法可用于檢查幀的 CRC。一種方法是使用前一節(jié)中所述的方法簡單地計(jì)算除最后兩個字節(jié)(CRC 字節(jié))之外的傳輸命令的 CRC,然后將該結(jié)果與傳輸?shù)?CRC 字節(jié)進(jìn)行比較。一種更簡單的選項(xiàng)是通過 CRC 算法運(yùn)行整個傳輸。如果 CRC 正確,則結(jié)果為 0000。在這種情況下,不需要用 16 個零對位流進(jìn)行初始補(bǔ)零。使用之前的結(jié)果并運(yùn)行該算法會產(chǎn)生以下結(jié)果:
示例 1:使用多項(xiàng)式除法進(jìn)行 CRC 驗(yàn)證:
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 的結(jié)果“0b0000 0000 0000 0000”表示校驗(yàn)成功。