網(wǎng)友評分:
5分
CRC16校驗碼計算器是一款非常專業(yè)的計算Modbus通信協(xié)議串口通信工具。它支持CRC16計算方式,CRC16校驗碼是數(shù)據(jù)通信行業(yè)中最常用的一種差錯校驗碼,其特征是信息字段與校驗字段的長度可以任何選擇,用戶使用該軟件可以輕松選擇計算。
預(yù)置1個16位的寄存器為十六進制FFFF(即全為1),稱此寄存器為CRC寄存器。
把第一個8位二進制數(shù)據(jù)(既通訊信息幀的第一個字節(jié))與16位的CRC寄存器的低8位相異或,把結(jié)果放于CRC寄存器,高八位數(shù)據(jù)不變。
把CRC寄存器的內(nèi)容右移一位(朝低位)用0填補最高位,并檢測右移后的移出位。
如果移出位為0:重復(fù)第三步(再次右移一位);如果移出位為1,CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或。
重復(fù)步驟3與4,直到右移8次,這樣整個8位數(shù)據(jù)全部進行了處理。
重復(fù)步驟2到步驟5,進行通訊信息幀下一個字節(jié)的處理。
把該通訊信息幀所有字節(jié)按上述步驟計算完成后,得到的16位CRC寄存器的高、低字節(jié)進行交換。
最后得到的CRC寄存器內(nèi)容即為:CRC碼。
CRC16校驗碼是數(shù)據(jù)通信行業(yè)中最常用的一種差錯校驗碼,其特征是信息字段與校驗字段的長度可以任何選擇。
上位機須根據(jù)MODBUS協(xié)議的命令格式發(fā)送數(shù)據(jù)(包含計算的CRC值),從機才可以正確辨識數(shù)據(jù)。若無CRC值,從機把返回含有錯誤號的應(yīng)答包,不會得到正確結(jié)果。
CRC-16碼由兩個字節(jié)構(gòu)成,在開始時CRC寄存器的每一位都預(yù)置為1,而后把CRC寄存器與8-bit的數(shù)據(jù)進行異或(異或:二進制運算 相同為0,不同為1;0^0=0;0^1=1;1^0=1;1^1=0),之后對CRC寄存器從高到低進行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與預(yù)定義的多項式碼進行異或,不然如果LSB為零,則不需要進行異或。重復(fù)上述的由高至低的移位8次,第一個8-bit數(shù)據(jù)處理完畢,用這個時候CRC寄存器的值與下一個8-bit數(shù)據(jù)異或并進行如前一個數(shù)據(jù)似的8次移位。所有的字符處理完成后CRC寄存器內(nèi)的值即為最后的CRC值。
而本CRC16校驗碼計算器的主要功能就是來精準計算CRC16校驗碼的。
關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2025 daaijiaoyu.cn.All rights reserved.
浙ICP備2024132706號-1 浙公網(wǎng)安備33038102330474號