DLT645和modbus rtu無線通信協(xié)議介紹對比
目前主要使用的有兩個版本DLT645-97和DLT645-07,該協(xié)議主要用于電表抄表,采用為主-從結(jié)構(gòu)的半雙工通訊模式,硬件接口使用RS-485,協(xié)議幀報文和使用方法與modbus rtu類似,我們學(xué)習(xí)時可以將兩者進(jìn)行比較來加強(qiáng)記憶。
DLT645協(xié)議的數(shù)據(jù)幀由,起始符、地址域、控制符、數(shù)據(jù)域長度、數(shù)據(jù)域、檢驗碼、結(jié)束符組成,每個部分都由十六進(jìn)制碼構(gòu)成。
1.幀起始符 68H
DLT645協(xié)議的數(shù)據(jù)幀每幀的開始都固定為0x68,作為數(shù)據(jù)的起始符方便接收方做數(shù)據(jù)解析。
2.地址域 A0~A5地址域是用來表示電表地址,低位在前,高位在后;在485總線上可能掛著多個645設(shè)備,要找到指定的設(shè)備,必須要根據(jù)設(shè)備的地址查找。每臺設(shè)備出廠會有自己的地址,也可以修改設(shè)備的通信地址。如下圖
該設(shè)備的地址為00013310。
3.控制碼1個字節(jié),例如讀取數(shù)據(jù)的控制碼為0x11(00010001),讀取通訊地址的控制碼為0x13(00010011)。
4.數(shù)據(jù)長度L1個字節(jié),表示數(shù)據(jù)域的字節(jié)數(shù),讀取數(shù)據(jù)時L<= 200;寫數(shù)據(jù)時L <= 50,L=0表示無數(shù)據(jù)域。
5.數(shù)據(jù)域數(shù)據(jù)域為變長,字節(jié)數(shù)由數(shù)據(jù)長度L決定,傳輸時候。發(fā)送方需要加0x33,接收方需要減去0x33。
6. CS校驗碼1個字節(jié),采用算術(shù)和進(jìn)行校驗。
7.結(jié)束符16HDLT645的指令幀均已0x16作為結(jié)束符。
應(yīng)答幀無線通信協(xié)議傳輸
在發(fā)送幀信息之前,需要根據(jù)設(shè)備需要先發(fā)送前導(dǎo)碼,前導(dǎo)碼由0-4個FEH組成,所有數(shù)據(jù)項都是按照低字節(jié)在前,高字節(jié)在后的方式傳輸。通訊的時候現(xiàn)有主站發(fā)出信息幀,然后從站收到后根據(jù)信息做應(yīng)答。
例如
發(fā)送:68 03 20 12 22 20 65 68 11 04 33 33 33 33 8D 16
應(yīng)答:68 03 20 12 22 20 65 68 91 08 33 33 33 33 33 33 33 33 DD 16
發(fā)送:FE FE FE FE 68 18 20 12 22 20 65 68 11 04 33 32 34 35 A4 16
應(yīng)答:FE FE FE FE 68 18 20 12 22 20 65 68 91 0A 33 32 34 35 33 33 33 33 C7 56 13 16
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)