多功能網(wǎng)絡(luò)儀表的信息傳輸為異步方式,以字節(jié)為單位,字節(jié)格式為:1個(gè)起始位、8個(gè)數(shù)據(jù)位、無奇偶校驗(yàn)位、1個(gè)停止位。
1、地址碼:在幀的開始部分,由一個(gè)字節(jié)(8位二進(jìn)制碼)組成,十進(jìn)制為0-255,
在我們的系統(tǒng)中只使用1-254,其他地址保留,每個(gè)終端設(shè)備的地址都是唯一的,僅僅被尋址到的終端會(huì)響應(yīng)包含了該地址的查詢,當(dāng)終端發(fā)送回一個(gè)響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)告訴了主機(jī)哪臺(tái)終端與之進(jìn)行通訊。
2、功能碼:功能碼告訴了被尋址到的終端執(zhí)行何種功能.下表列出儀表所支持的功能碼,以及它們的意義和功能
3、數(shù)據(jù)碼:數(shù)據(jù)碼包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時(shí)采集到的數(shù)據(jù),這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者設(shè)置值。例如:功能碼告訴終端讀取一個(gè)寄存器,數(shù)據(jù)區(qū)則需要指明從哪個(gè)寄存器開始及讀取多少個(gè)數(shù)據(jù),而從機(jī)數(shù)據(jù)碼回送內(nèi)容則包含了數(shù)據(jù)長度和相應(yīng)的數(shù)據(jù)。
4、校驗(yàn)碼:多功能網(wǎng)絡(luò)儀表的錯(cuò)誤校驗(yàn)(CRC)域占用兩個(gè)字節(jié),包含了一個(gè)16位的二進(jìn)制值。CRC值由傳輸設(shè)備計(jì)算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時(shí)重新計(jì)算CRC值,然后與接收到的CRC域中的值進(jìn)行比較。如果這兩個(gè)值不等,就發(fā)生了錯(cuò)誤。生成一個(gè)CRC的流程為:
1、預(yù)置一個(gè)16位寄存器為FFFFH(16進(jìn)制,全1),稱之為CRC寄存器。
2、把數(shù)據(jù)幀中的第一個(gè)字節(jié)的8位與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。
3、將CRC寄存器向右移一位,至高位填以0,至低位移出并檢測。
4、上一步中移出的那一位如果為0,重復(fù)第三位(下一次移出),如果至低位為1,將CRC寄存器與一個(gè)預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。
5、重復(fù)第三步和第四步直到8次移位,這樣處理完一個(gè)完整的八位。
6、重復(fù)第二步到第五步來處理下一個(gè)八位,直到所有的字節(jié)處理結(jié)束。
7、多功能網(wǎng)絡(luò)儀表中CRC寄存器的值就是CRC的值。