生成 CRC 的過程為:
1. 將一個 16 位暫存器(稱作 CRC 暫存器)初始賦值為十六進位制 FFFF (全 1);
2. 將報文的第一個位元組( 8位)與 16 位 CRC 暫存器的低位元組異或,結果置於 CRC 暫存器;
3. 將 CRC 暫存器右移 1位 (向 LSB 方向), MSB 充零,並檢測 LSB:
4. (如果 LSB 為 0): 重複步驟 3 (另一次移位).
(如果 LSB 為 1): 對 CRC 暫存器異或多項式值 0xA001 (1010 0000 0000 0001).
5. 重複步驟 3 和 4,直到完成 8 次移位操作後,一個位元組的處理完畢。
6. 對報文中的下一個位元組重複步驟 2 到 5繼續此操作,直至所有報文被處理完畢。
7. CRC 暫存器中的最終值為 CRC 值.
8. 當放置 CRC 值於報文時,注意高低位元組必須交換。
生成 CRC 的過程為:
1. 將一個 16 位暫存器(稱作 CRC 暫存器)初始賦值為十六進位制 FFFF (全 1);
2. 將報文的第一個位元組( 8位)與 16 位 CRC 暫存器的低位元組異或,結果置於 CRC 暫存器;
3. 將 CRC 暫存器右移 1位 (向 LSB 方向), MSB 充零,並檢測 LSB:
4. (如果 LSB 為 0): 重複步驟 3 (另一次移位).
(如果 LSB 為 1): 對 CRC 暫存器異或多項式值 0xA001 (1010 0000 0000 0001).
5. 重複步驟 3 和 4,直到完成 8 次移位操作後,一個位元組的處理完畢。
6. 對報文中的下一個位元組重複步驟 2 到 5繼續此操作,直至所有報文被處理完畢。
7. CRC 暫存器中的最終值為 CRC 值.
8. 當放置 CRC 值於報文時,注意高低位元組必須交換。