網友評分: 5分
CRC16校驗碼計算器是一款非常專業的計算Modbus通信協議串口通信工具。它支持CRC16計算方式,CRC16校驗碼是數據通信行業中最常用的一種差錯校驗碼,其特征是信息字段與校驗字段的長度可以任何選擇,用戶使用該軟件可以輕松選擇計算。
預置1個16位的寄存器為十六進制FFFF(即全為1),稱此寄存器為CRC寄存器。
把第一個8位二進制數據(既通訊信息幀的第一個字節)與16位的CRC寄存器的低8位相異或,把結果放于CRC寄存器,高八位數據不變。
把CRC寄存器的內容右移一位(朝低位)用0填補最高位,并檢測右移后的移出位。
如果移出位為0:重復第三步(再次右移一位);如果移出位為1,CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或。
重復步驟3與4,直到右移8次,這樣整個8位數據全部進行了處理。
重復步驟2到步驟5,進行通訊信息幀下一個字節的處理。
把該通訊信息幀所有字節按上述步驟計算完成后,得到的16位CRC寄存器的高、低字節進行交換。
最后得到的CRC寄存器內容即為:CRC碼。
CRC16校驗碼是數據通信行業中最常用的一種差錯校驗碼,其特征是信息字段與校驗字段的長度可以任何選擇。
上位機須根據MODBUS協議的命令格式發送數據(包含計算的CRC值),從機才可以正確辨識數據。若無CRC值,從機把返回含有錯誤號的應答包,不會得到正確結果。
CRC-16碼由兩個字節構成,在開始時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值。
而本CRC16校驗碼計算器的主要功能就是來精準計算CRC16校驗碼的。