網(wǎng)友評(píng)分:
5分
CRC16校驗(yàn)碼計(jì)算器是一款非常專業(yè)的計(jì)算Modbus通信協(xié)議串口通信工具。它支持CRC16計(jì)算方式,CRC16校驗(yàn)碼是數(shù)據(jù)通信行業(yè)中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段與校驗(yàn)字段的長(zhǎng)度可以任何選擇,用戶使用該軟件可以輕松選擇計(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ǔ)最高位,并檢測(cè)右移后的移出位。
如果移出位為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)碼是數(shù)據(jù)通信行業(yè)中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段與校驗(yàn)字段的長(zhǎng)度可以任何選擇。
上位機(jī)須根據(jù)MODBUS協(xié)議的命令格式發(fā)送數(shù)據(jù)(包含計(jì)算的CRC值),從機(jī)才可以正確辨識(shí)數(shù)據(jù)。若無(wú)CRC值,從機(jī)把返回含有錯(cuò)誤號(hào)的應(yīng)答包,不會(huì)得到正確結(jié)果。
CRC-16碼由兩個(gè)字節(jié)構(gòu)成,在開(kāi)始時(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ì)算器的主要功能就是來(lái)精準(zhǔn)計(jì)算CRC16校驗(yàn)碼的。
關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2025 m.daaijiaoyu.cn.All rights reserved.
浙ICP備2024132706號(hào)-1 浙公網(wǎng)安備33038102330474號(hào)