如何計算modbus?
modbus協議RTU模式校驗碼是CRC16-2編碼。它由兩個字節構成,在開始時CRC寄存器的每一位都預置為1,然后把CRC寄存器與8-bit的數據進行異或 (異或:二進制運算 相同為0,不同為1;0^0=0;0^1=1;1^0=1;1^1=0) ,之后對CRC寄存器從高到低進行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位后已經被移出CRC寄存器)如果為1,則把寄存器與預定義的多項式碼進行異或,否則如果LSB為零,則無需進行異或。
重復上述的由高至低的移位8次,第一個8-bit數據處理完畢,用此時CRC寄存器的值與下一個8-bit數據異或并進行如前一個數據似的8次移位。
所有的字符處理完成后CRC寄存器內的值即為最終的CRC值。