農林漁牧網

您現在的位置是:首頁 > 林業

crc16演算法原理

2022-07-31由 阿陽很陽光 發表于 林業

什麼是偶校驗碼

除了CRC8檢查外,還有CRC16、CRC32。 此外,以下常見的CRC16標準在各個標準中使用。 演算法原理基本一致。 就是說資料的輸入輸出有差異。 這些規格的差異如下所示。

CRC16_CCITT :

多項式x^16x^12x^51(0x1021 ),初始值0x0000,低位在前,高位在後,結果與0x0000異或;

crc16演算法原理

CRC16_CCITT_FALSE :

多項式x^16x^12x^51(0x1021 ),初始值0xFFFF,低位後,高位前,與結果0x0000異或;

CRC16_XMODEM :

多項式x^16x^12x^51(0x1021 ),初始值0x0000,低位後,高位前,結果與0x0000異或;

CRC16_X25 :

多項式x^16x^12x^51(0x1021 ),初始值0x0000,低位在前,高位在後,結果與0xFFFF異或;

CRC16_MODBUS :

crc16演算法原理

多項式x^16x^15x^21(0x8005 ),初始值0xFFFF,低位在前,高位在後,結果與0x0000異或;

CRC16_IBM :

多項式x^16x^15x^21(0x8005 ),初始值0x0000,低位在前,高位在後,結果與0x0000異或; CRC16_MAXIM :多項式x^16x^15x^21(0x8005 )初始值0x0000,低位在前,高位在後,結果與0xFFFF異或;

CRC16_USB :

多項式x^16x^15x^21(0x8005 ),初始值0xFFFF,低位在前,高位在後,與結果0xFFFF異或;

crc16演算法原理

CRC16演算法原理:

根據CRC16標準選擇初始值CRCIn的值;

2 。資料的第一個位元組與CRCIn的前8位異或;

3 。確定最高有效位元,如果該位元為0則左移一個,如果位元為1則左移一個,以與多項式Hex碼異或;

4。8位重複3直到所有移位計算結束;

5 。操作所有輸入資料重複以上步驟,得到16位CRC校驗碼16位。