HART協(xié)議的數(shù)據(jù)鏈路層規(guī)范
基于軟件設(shè)計(jì)的HART協(xié)議物理層規(guī)范在前面的文章中,我們已經(jīng)簡(jiǎn)單地介紹過了。通過對(duì)OSI模型的了解,以及HART協(xié)議的相關(guān)知識(shí),我們知道,在數(shù)據(jù)鏈路層的規(guī)范還是比較復(fù)雜的?,F(xiàn)在就來具體看一下吧。
HART協(xié)議數(shù)據(jù)鏈路層規(guī)范
1設(shè)備類型
通訊協(xié)議能確認(rèn)三種不同類型的設(shè)備,最普遍與最基本的類型是從設(shè)備,接收與提供帶有測(cè)量值或其他數(shù)據(jù)的數(shù)字信號(hào),除了有特別要求之外,即該設(shè)備在主從關(guān)系中總是作為從動(dòng)裝置起作用。從設(shè)備如現(xiàn)場(chǎng)儀表,壓力變送器,溫度變送器,執(zhí)行器等。
第二種類型的設(shè)備是burst模式設(shè)備,這種設(shè)備在固定的時(shí)間間隔發(fā)出帶有測(cè)量值或其他數(shù)據(jù)的數(shù)字信號(hào)響應(yīng),而不包含被特別請(qǐng)求的數(shù)據(jù),即該設(shè)備通常是作為一個(gè)獨(dú)立廣播的設(shè)備。
第三種類型的設(shè)備是主設(shè)備,主設(shè)備負(fù)責(zé)初始化、控制和終止與從設(shè)備或burst模式設(shè)備的交互。將主設(shè)備分為一級(jí)主設(shè)備和二級(jí)主設(shè)備是為了在HART通訊鏈路上同時(shí)使用這兩種主設(shè)備,一級(jí)主設(shè)備和二級(jí)主設(shè)備除了使它們區(qū)分開的時(shí)限需要定制以外使用相同的協(xié)議規(guī)則。一級(jí)主設(shè)備通常指上位PC機(jī),二級(jí)主設(shè)備指HART設(shè)備的手操器。
2 幀格式
根據(jù)每一幀發(fā)送者的不同可分為:主-從型幀,從-主型幀。根據(jù)幀的長(zhǎng)度可分為:長(zhǎng)型幀,短型幀。注:每格表示1個(gè)字節(jié),每字節(jié)中***和***位的順序?yàn)閺淖笙蛴摇?/p>
①先導(dǎo)字符(preambles)
所有從主設(shè)備、從設(shè)備或burst模式設(shè)備發(fā)送的幀都有特定個(gè)數(shù)的十六進(jìn)制“FF”字符放在前面,這些字符被稱為一個(gè)幀的先導(dǎo)字符。某些物理層協(xié)議需要它們?nèi)プ饔谜{(diào)制解調(diào)器的電路。定界符前的先導(dǎo)字符可能有多個(gè),但協(xié)議規(guī)定只有兩個(gè)連續(xù)的先導(dǎo)符后的定界符才標(biāo)志著一個(gè)幀的開始。
②定界符 (delimiter)
此字段的低3位表示了不同的幀類型;***位標(biāo)志著該幀是長(zhǎng)幀還是短幀;其余位保留。
③編址
每一個(gè)HART幀都需要地址字段來標(biāo)明其源和目的地址。
(1)長(zhǎng)幀格式地址:實(shí)際上是每一臺(tái)從設(shè)備的唯一標(biāo)識(shí)符,除了***兩位外的低38位即標(biāo)識(shí)了此唯一標(biāo)識(shí)符。***位指明與此幀相關(guān)的主設(shè)備。一級(jí)主設(shè)備為“1”,二級(jí)主設(shè)備為“0”。從設(shè)備必須將該域不變的返回。次高位指明從設(shè)備是否處于BURST模式,是則此位為“1”,否則為“0”。
(2)短幀格式地址:只有0號(hào)短幀命令支持短幀地址。該地址指明了主機(jī)與現(xiàn)場(chǎng)設(shè)備之間的網(wǎng)絡(luò)地址,在鏈路初始化時(shí)短幀0號(hào)命令返回所有與指定網(wǎng)絡(luò)相連接的現(xiàn)場(chǎng)設(shè)備的唯一標(biāo)識(shí)符,即這些設(shè)備所處網(wǎng)絡(luò)端口地址。
④命令域
只有一個(gè)字節(jié),指明該幀所封裝的HART命令號(hào)。從設(shè)備返回的命令字節(jié)值應(yīng)與主設(shè)備所發(fā)送的幀中的命令號(hào)相同。
⑤數(shù)據(jù)字節(jié)記數(shù)域
只有一個(gè)字節(jié),指明此字節(jié)與一幀***的校驗(yàn)字節(jié)之間的數(shù)據(jù)字節(jié)個(gè)數(shù)。
⑥數(shù)據(jù)域
在主-從長(zhǎng)型幀中,此域存放了用戶對(duì)設(shè)備的請(qǐng)求數(shù)據(jù)。即為了得到從設(shè)備的返回值而必須對(duì)從設(shè)備進(jìn)行設(shè)定的值。
在從-主長(zhǎng)型幀中,此域存放了現(xiàn)場(chǎng)設(shè)備響應(yīng)主設(shè)備(上位機(jī))的請(qǐng)求,返回的數(shù)據(jù)。
⑦校驗(yàn)字節(jié)
此字節(jié)用來存放對(duì)幀中的所有字節(jié)(不含此字節(jié))進(jìn)行徑向(Longitudinal Parity)校驗(yàn)的結(jié)果。HART協(xié)議通信中,在兩個(gè)維數(shù)上對(duì)傳送的信息進(jìn)行校驗(yàn)。
(1)徑向校驗(yàn)值為所有字節(jié)依次按位異或后所得的結(jié)果;
(2)垂直校驗(yàn)(Vertical Parity)值為在通信過程中硬件自動(dòng)對(duì)每個(gè)字節(jié)的所有位進(jìn)行奇偶校驗(yàn)后產(chǎn)生的結(jié)果。即前面提到的HART協(xié)議物理層規(guī)范中規(guī)定的數(shù)據(jù)流格式中的奇校驗(yàn)位。
⑧響應(yīng)碼字段
該字段包含2個(gè)字節(jié),只在從-主長(zhǎng)型幀中出現(xiàn)。它指明了HART通信的狀態(tài)。若響應(yīng)碼***個(gè)字節(jié)的***位(BIT7)為1,說明主、從設(shè)備之間的通信出現(xiàn)了錯(cuò)誤,該字節(jié)的其余各位給出了通信錯(cuò)誤的總結(jié)信息。BIT7為0時(shí),該字節(jié)的其余各位給出了現(xiàn)場(chǎng)設(shè)備對(duì)該幀所對(duì)應(yīng)的命令的響應(yīng)情況的總結(jié)信息。
響應(yīng)碼的第2個(gè)字節(jié)指出了現(xiàn)場(chǎng)設(shè)備的工作狀態(tài)。此字節(jié)只在響應(yīng)碼***字節(jié)的BIT7為0,即沒有通信錯(cuò)誤時(shí)有效。