生成 CRC 的過(guò)程為:
1. 將一個(gè) 16 位寄存器(稱(chēng)作 CRC 寄存器)初始賦值為十六進(jìn)制 FFFF (全 1);
2. 將報(bào)文的第一個(gè)字節(jié)( 8位)與 16 位 CRC 寄存器的低字節(jié)異或,結(jié)果置于 CRC 寄存器;
3. 將 CRC 寄存器右移 1位 (向 LSB 方向), MSB 充零,并檢測(cè) LSB:
4. (如果 LSB 為 0): 重復(fù)步驟 3 (另一次移位).
(如果 LSB 為 1): 對(duì) CRC 寄存器異或多項(xiàng)式值 0xA001 (1010 0000 0000 0001).
5. 重復(fù)步驟 3 和 4,直到完成 8 次移位操作后,一個(gè)字節(jié)的處理完畢。
6. 對(duì)報(bào)文中的下一個(gè)字節(jié)重復(fù)步驟 2 到 5繼續(xù)此操作,直至所有報(bào)文被處理完畢。
7. CRC 寄存器中的最終值為 CRC 值.