1. 程式人生 > >CRC16校驗碼運算

CRC16校驗碼運算

CRC暫存器一開始填充為16位1111 1111 1111 1111 然後將CRC暫存器的低8位1111 1111與報文資料第一個八位資料進行異或運算,報文可以是主站傳送的功能碼,或者是從站反饋的功能碼。得出的8位資料結果與CRC校驗的高八位1111 1111合併,例如助手傳送的十進位制碼第一個八位資料為03即0000 0011,與CAR低八位1111 1111異或為1111 1100,合併後為11111111 11111100
將合併後的資料與二項式進行異或運算 。計算中,先將低位移出去再進行判斷,如果移出去的是0,則右移不異或,如果移出去的是1,那麼就與多項式進行異或,是16位的CRC暫存器與16位的二項式進行異或,注:二項式都是固定的。得出的最終結果,為16位的資料。再將這16位的資料低八位與報文資料的第二個八位資料進行異或,異或完了以後再和高八位合併,步驟與第一次相同,將所有的資料異或完成以後,得出的最終結果,則是校驗碼!二項式

二項式