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