CRC16校驗(yàn)碼計(jì)算器這是一款用戶計(jì)算Modbus通信協(xié)議的串口通信,計(jì)算Dupline與觸摸屏之間校驗(yàn)碼而設(shè)計(jì),主要面對(duì)MODBUS RTU相關(guān)知識(shí)有一定了解的用戶人群使用的有需要的用戶可以來IT貓撲下載體驗(yàn)!

CRC16校驗(yàn)碼計(jì)算器軟件介紹

CRC16校驗(yàn)碼是數(shù)據(jù)通信行業(yè)中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段與校驗(yàn)字段的長度可以任何選擇。

上位機(jī)須根據(jù)MODBUS協(xié)議的命令格式發(fā)送數(shù)據(jù)(包含計(jì)算的CRC值),從機(jī)才可以正確辨識(shí)數(shù)據(jù)。若無CRC值,從機(jī)把返回含有錯(cuò)誤號(hào)的應(yīng)答包,不會(huì)得到正確結(jié)果。

CRC-16碼由兩個(gè)字節(jié)構(gòu)成,在開始時(shí)CRC寄存器的每一位都預(yù)置為1,而后把CRC寄存器與8-bit的數(shù)據(jù)進(jìn)行異或(異或:二進(jìn)制運(yùn)算 相同為0,不同為1;0^0=0;0^1=1;1^0=1;1^1=0),之后對(duì)CRC寄存器從高到低進(jìn)行移位,在最高位(MSB)的位置補(bǔ)零,而最低位(LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與預(yù)定義的多項(xiàng)式碼進(jìn)行異或,不然如果LSB為零,則不需要進(jìn)行異或。重復(fù)上述的由高至低的移位8次,第一個(gè)8-bit數(shù)據(jù)處理完畢,用這個(gè)時(shí)候CRC寄存器的值與下一個(gè)8-bit數(shù)據(jù)異或并進(jìn)行如前一個(gè)數(shù)據(jù)似的8次移位。所有的字符處理完成后CRC寄存器內(nèi)的值即為最后的CRC值。

而本CRC16校驗(yàn)碼計(jì)算器的主要功能就是來精準(zhǔn)計(jì)算CRC16校驗(yàn)碼的。

crc校驗(yàn)計(jì)算器

CRC16計(jì)算器方法

預(yù)置1個(gè)16位的寄存器為十六進(jìn)制FFFF(即全為1),稱此寄存器為CRC寄存器。

把第一個(gè)8位二進(jìn)制數(shù)據(jù)(既通訊信息幀的第一個(gè)字節(jié))與16位的CRC寄存器的低8位相異或,把結(jié)果放于CRC寄存器,高八位數(shù)據(jù)不變。

把CRC寄存器的內(nèi)容右移一位(朝低位)用0填補(bǔ)最高位,并檢測右移后的移出位。

如果移出位為0:重復(fù)第三步(再次右移一位);如果移出位為1,CRC寄存器與多項(xiàng)式A001(1010 0000 0000 0001)進(jìn)行異或。

重復(fù)步驟3與4,直到右移8次,這樣整個(gè)8位數(shù)據(jù)全部進(jìn)行了處理。

重復(fù)步驟2到步驟5,進(jìn)行通訊信息幀下一個(gè)字節(jié)的處理。

把該通訊信息幀所有字節(jié)按上述步驟計(jì)算完成后,得到的16位CRC寄存器的高、低字節(jié)進(jìn)行交換。

最后得到的CRC寄存器內(nèi)容即為:CRC碼。

crc16校驗(yàn)碼計(jì)算器(計(jì)算Modbus通信協(xié)議串口通信)v1.2 免費(fèi)最新版下載地址

遠(yuǎn)程下載