以無線HART協(xié)議為基礎(chǔ)的數(shù)據(jù)鏈路層協(xié)議模型設(shè)計
無線HART是一種專門為過程控制領(lǐng)域而設(shè)計的網(wǎng)絡(luò)通信協(xié)議,是HART現(xiàn)場總線在無線領(lǐng)域的延伸,其通信模型主要由應(yīng)用層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層組成。其中數(shù)據(jù)鏈路層在物理層提供服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)就是將來自節(jié)點網(wǎng)絡(luò)層的數(shù)據(jù)可靠的傳輸?shù)较噜徆?jié)點的網(wǎng)絡(luò)層。
數(shù)據(jù)鏈路層協(xié)議主要用于建立可靠的點到點的單跳通信。在層型的拓撲結(jié)構(gòu)上實現(xiàn)無線HART數(shù)據(jù)鏈路層通信協(xié)議,這里所設(shè)計的算法已成功應(yīng)用于無線HART單跳網(wǎng)絡(luò)。
1 無線HART拓撲結(jié)構(gòu)
無線通信網(wǎng)絡(luò)拓撲主要包括星型和網(wǎng)狀兩種結(jié)構(gòu),星型單跳網(wǎng)絡(luò)支持高可靠性的網(wǎng)絡(luò)通信,而網(wǎng)狀多跳網(wǎng)絡(luò)支持遠距離通信,無線HART協(xié)議支持網(wǎng)狀拓撲結(jié)構(gòu)和星型拓撲兩種結(jié)構(gòu),用戶可根據(jù)實際需要選擇星型或網(wǎng)狀拓撲結(jié)構(gòu),或者介于二者之間的拓撲結(jié)構(gòu)。本文根據(jù)工業(yè)現(xiàn)場的實際要求,采用星型和網(wǎng)狀結(jié)合的兩層網(wǎng)絡(luò)拓撲結(jié)構(gòu),第一層是網(wǎng)狀結(jié)構(gòu),由網(wǎng)關(guān)和路由設(shè)備構(gòu)成;第二層是星型結(jié)構(gòu),由路由設(shè)備以及現(xiàn)場設(shè)備構(gòu)成。其中,網(wǎng)關(guān)負責無線HART網(wǎng)絡(luò)與工廠內(nèi)的其他網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換與數(shù)據(jù)映射。簇首作為網(wǎng)絡(luò)管理者的代理,負責構(gòu)建由現(xiàn)場設(shè)備和路由設(shè)備構(gòu)成的星型結(jié)構(gòu),監(jiān)測星型結(jié)構(gòu)性能;作為安全管理者代理,負責合并及轉(zhuǎn)發(fā)簇成員的數(shù)據(jù);負責轉(zhuǎn)發(fā)其他簇首的數(shù)據(jù)。簇成員負責獲取現(xiàn)場數(shù)據(jù)并發(fā)送到簇首。
2 無線HART數(shù)據(jù)鏈路層協(xié)議
無線HART數(shù)據(jù)鏈路層包括邏輯鏈路層協(xié)議(LLC)和介質(zhì)訪問控制層協(xié)議(MAC),數(shù)據(jù)鏈路層主要定義數(shù)據(jù)幀格式,介質(zhì)訪問控制層主要負責管理和協(xié)調(diào)通信資源的分配和使用。
2.1 邏輯鏈路層
2.1.1 幀格式
其中,地址指示為無線HART網(wǎng)絡(luò)支持兩種地址格式,一種用于局域網(wǎng)的短地址,一種用于廣域網(wǎng)的長地址。其中短地址由16位二進制組成,用戶可自行定義:長地址由64位二進制數(shù)組成,64位中高24位表示設(shè)備ID,低24位表示0UI地址(由IEEE STD 802.15.4協(xié)議分配,其中無線HART的OUI地址為0x00181E),中間16位表示設(shè)備類型(設(shè)備生產(chǎn)廠家確定);時序號為絕對時序號的最低8位;網(wǎng)絡(luò)ID為無線HART根據(jù)網(wǎng)絡(luò)應(yīng)用類型確定的網(wǎng)絡(luò)ID號:數(shù)據(jù)包指示為數(shù)據(jù)包指示由8位二進制數(shù)組成,低3位表示數(shù)據(jù)包的類型,第4位表示網(wǎng)絡(luò)密鑰,第5、6位表示數(shù)據(jù)包的優(yōu)先級。
無線HART數(shù)據(jù)包分為ACK、Advertise、Keep alive、Disconnect、Data5種類型,分為命令、過程數(shù)據(jù)、一般、報警4種優(yōu)先級。發(fā)送數(shù)據(jù)來自網(wǎng)絡(luò)層并需要發(fā)送的數(shù)據(jù)。MIC為網(wǎng)絡(luò)授權(quán)檢測。CRC為數(shù)據(jù)完整性檢測。
2.2 MAC協(xié)議分析
無線HART鏈路調(diào)度主要通過以鄰居表位核心的五張表實現(xiàn),其中超幀表記錄超幀的分配和使用狀態(tài);鏈路表記錄鏈路(通信資源)的分配和使用狀態(tài);鄰居表記錄著節(jié)點本身的鄰居節(jié)點(處于節(jié)點單挑通信范圍之類的節(jié)點稱為該節(jié)點的鄰居節(jié)點);路由表記錄著多跳網(wǎng)絡(luò)中的路由信息;緩沖表存儲著待發(fā)送的數(shù)據(jù)同時記錄優(yōu)先級以及等待時間等狀態(tài)。
無線HART網(wǎng)絡(luò)中每一個節(jié)點都支持多個超幀,網(wǎng)絡(luò)管理者完成超幀的構(gòu)建和維護,并根據(jù)網(wǎng)絡(luò)需求進行時隙鏈路的分配。每一個超幀包含一定數(shù)量的時隙。超幀一旦建立,網(wǎng)絡(luò)管理者為該超幀增加、刪除、優(yōu)化鏈路時隙。一旦分配時隙,超幀應(yīng)該使能從而允許鏈路的調(diào)度。鏈接表中一個鏈接表示一個通信機會,通過鏈接表實現(xiàn)目標鄰居節(jié)點的識別,時隙、超幀序列號、發(fā)送接收方向、鏈路類別、信道。鄰居表維護并記錄著一組能與節(jié)點直接通信(單跳)鄰居節(jié)點,通過鄰居表可查詢鄰居節(jié)點地址、時鐘源標志、通信數(shù)據(jù)量、節(jié)點最后通信時間、通信節(jié)點狀態(tài)、節(jié)點通信優(yōu)先級。圖表提供上行和下行多跳網(wǎng)絡(luò)的路由信息,其元素主要由多個路由路徑節(jié)點信息,圖標主要由網(wǎng)絡(luò)管理者實現(xiàn)管理。緩沖表主要用于節(jié)點存儲待發(fā)送數(shù)據(jù),記錄著數(shù)據(jù)包的ID、優(yōu)先級、目的地址類型、保存時間。
3 無線HART數(shù)據(jù)鏈路層設(shè)計與實現(xiàn)
3.1 通信資源分配
無線HART網(wǎng)絡(luò)采用頻分多址(FDMA)和時分多址(TDMA)混合的信道訪問機制。無線HART協(xié)議采用集中式資源分配方式,即通信資源由網(wǎng)絡(luò)管理器統(tǒng)一分配。無線HART網(wǎng)絡(luò)工作于2.4 GHz射頻頻段。為了保證系統(tǒng)能在非常惡劣的工業(yè)現(xiàn)場通信環(huán)境中實時、可靠的工作,無線HART
采用TDMA和FDMA的混合信道分文機制。TDMA技術(shù)將每一個時隙復用到2.4 GHz的16個信道上,使系統(tǒng)的有效帶寬提高了16倍。
為了進行資源分配,首先建立通信資源矩陣??v坐標表示信道頻率,橫坐標表示時隙,矩陣中的每個單元表示一個通信資源,每個通信資源用頻率和時隙的二元組來唯一標示。每個矩陣元素包含如下通信資源和鏈路的信息:占用標志位,鏈路的源節(jié)點、鏈路的目的節(jié)點、鏈路的類型。矩陣中每個元素都被初始化為0,當某個通信資源已經(jīng)被分配,矩陣中對應(yīng)元素的占用標志位被置為1,并填充相應(yīng)的通信資源信息。
無線HART網(wǎng)絡(luò)中,通信資源有NORMAL、ADVERTIS、JOIN和DISCOVERY 4種類型,NORMAL通信資源主要用于過程數(shù)據(jù)和管理命令的傳輸,ADVERTISE通信資源用于廣播網(wǎng)絡(luò)信息以方便新節(jié)點加入網(wǎng)絡(luò),JOIN通信資源用于新設(shè)備加入,DISCOVERY通信資源用于鄰居發(fā)現(xiàn)。其中NORM-AL類型的通信資源與路由路徑相關(guān),其他的資源都與路由路徑無關(guān),重點考慮NORMAL通信資源的分配。NORMAL通信資源分配以所建立的拓撲結(jié)構(gòu)為基礎(chǔ),以圖表和鄰居表為分配圖,根據(jù)所建立的兩層結(jié)構(gòu)進行兩層分配。
1)簇內(nèi)通信 簇內(nèi)所有的通信節(jié)點的通信資源位于矩陣的同一行,并按照時隙進一步分配。對于下行通信,每一資源的源地址為簇首節(jié)點,目的地址為節(jié)點地址;對于上行通信,每一分資源的源地址為節(jié)點地址,目的地址為簇首節(jié)點。
2)簇間通信 簇間通信主要是負責簇首與網(wǎng)關(guān)之間的通信,而其資源主要占據(jù)矩陣中兩行,其中上行網(wǎng)絡(luò)通信資源,一行為下行網(wǎng)絡(luò)通信資源。在資源不滿足的情況下,可以根據(jù)資源分配的具體情況進行拓展,但必須以雙行網(wǎng)絡(luò)為前提,而且上行還有下行資源不能占據(jù)同一個時隙。分配的路徑以圖表和鄰居表為分配路徑,進行上行和下行節(jié)點的分配。
3.2 時間同步實現(xiàn)
整個網(wǎng)絡(luò)的時鐘同步對于無線HART的TDMA通信是十分必要的,設(shè)備間的時鐘偏移是不可避免的,TDMA網(wǎng)絡(luò)節(jié)點實現(xiàn)全網(wǎng)完全同步并不現(xiàn)實,而且精確度越高能量消耗就越大,因此無線HART節(jié)點需要在精確度與能耗之間取得平衡,在滿足網(wǎng)絡(luò)TDMA時隙通信要求的基礎(chǔ)上盡可能的降低能耗。
無線HART為工業(yè)環(huán)境的無線通信協(xié)議,其對穩(wěn)定性、可靠性有著比一般通信網(wǎng)絡(luò)更高的要求;而無線HART作為一個mesh的無線通信網(wǎng)需要實現(xiàn)全局的時間同步,但是由于硬件設(shè)備以及能量等問題,使得傳統(tǒng)的有線時間同步的算法以及常規(guī)的WSN時間同步算法無法在無線HART中實現(xiàn)。為此以最小能耗為設(shè)計目標,設(shè)計一個多層次、全局、不問斷的同步策略應(yīng)用簡易但有效的同步算法實現(xiàn)無線HART-TDMA時間同步。圖1為相鄰節(jié)點通信。
圖1中描述了無線HART節(jié)點A與節(jié)點B間的一次通信,節(jié)點A在T1時刻發(fā)送一個數(shù)據(jù)包給節(jié)點B,節(jié)點B在T2時刻接收到A所發(fā)送的數(shù)據(jù)包,節(jié)點B在T3數(shù)據(jù)包發(fā)送一個應(yīng)答數(shù)據(jù)包,節(jié)點A在T4時刻接收到B所發(fā)送的應(yīng)答數(shù)據(jù)包。T1、T2、T3,T4為節(jié)點時鐘,四者存在以下關(guān)系:
式中,
表示A到B的時間延遲,
表示B到A的時間延遲。在整個通信過程中,延遲主要發(fā)送在層與層間數(shù)據(jù)傳送以及點與點之間數(shù)據(jù)傳輸過程中。式(1)中
以及式(2)中
分別表示T1時刻節(jié)點A對節(jié)點B的時鐘漂移和T4時刻節(jié)點A對節(jié)點B的時鐘漂移,盡管由于環(huán)境因數(shù)(如溫度、壓力等)的影響,時鐘漂移每一個時刻都在發(fā)生,二者并不完全相等,但一般情況二者一次通信進行的時間間隔較短,可以認為二者幾乎相等。同樣假定
和
相等。
通過式(1)和式(2)可得出延遲時間以及漂移時間:
節(jié)點將根據(jù)式(3)和式(4)所求出的延遲時間以及漂移時間進行時鐘的主動同步與被動同步。
時鐘同步由兩步驟完成,首先選取時鐘源,網(wǎng)絡(luò)管理節(jié)點作為時鐘服務(wù)器,并選取若干節(jié)點作為網(wǎng)絡(luò)時鐘源:然后在同步過程,每一個節(jié)點通過與時鐘源進行被動或主動的時鐘同步。其中,主動同步為當高層節(jié)點向低層節(jié)點發(fā)送數(shù)據(jù)時,低層節(jié)點記錄數(shù)據(jù)包實際到達時間與計算達到時間的偏移調(diào)整本地時鐘;被動同步為當?shù)蛯庸?jié)點向高層節(jié)點發(fā)送數(shù)據(jù)時,底層節(jié)點等待并接收高層節(jié)點的應(yīng)答數(shù)據(jù)包,并利用應(yīng)答數(shù)據(jù)包中所包含的時鐘偏移信息進行時鐘調(diào)整。
高層節(jié)點發(fā)送邀請數(shù)據(jù)包,待加入節(jié)點接收邀請數(shù)據(jù)包并完成一次被動同步過程;高層節(jié)點發(fā)送偵聽數(shù)據(jù)包,判斷臨近節(jié)點是否處于網(wǎng)絡(luò)并完成一次被動同步過程;低層節(jié)點通過接收一次數(shù)據(jù)包完成一次被動同步過程;底層節(jié)點通過接收高層節(jié)點的應(yīng)答數(shù)據(jù)包完成一次主動同步過程。整個同步網(wǎng)絡(luò)低層同步高層,整個網(wǎng)絡(luò)時鐘以根時鐘源為基準實現(xiàn)整個網(wǎng)絡(luò)的時鐘同步。根時鐘源可根據(jù)實際情況采用可行方
法(如GPRS等)與理想時鐘同步。
3.3 數(shù)據(jù)鏈路調(diào)度實現(xiàn)
3.3.1 調(diào)度
數(shù)據(jù)鏈路層在實現(xiàn)無線HART網(wǎng)絡(luò)全網(wǎng)時鐘同步的基礎(chǔ)上,主要負責鏈路的調(diào)度,控制著數(shù)據(jù)的發(fā)送和接收,從而保證網(wǎng)絡(luò)的正常通信。鏈路調(diào)度通過查詢活動超幀表、鏈接表、數(shù)據(jù)等表從而決定下一個將要通信的時隙。所有的接收鏈接將會被允許通信。網(wǎng)絡(luò)層發(fā)出發(fā)送數(shù)據(jù)請求,若待定表中已無空余空間,調(diào)用失敗,否則數(shù)據(jù)包進入待定表中的同時查詢等待表是否存在相同目的地址的高優(yōu)先級數(shù)據(jù)包,若不存在,數(shù)據(jù)包進入等待表中等待發(fā)送,否則保存在待定表中,待發(fā)送表根據(jù)目的地址的類型進行查詢,鄰居地址查詢鄰居表、圖地址查詢圖表的基礎(chǔ)上再查詢鄰居表,最終鄰居地址、圖地址、廣播地址、代理地址的4種都將查詢鏈路表獲得相應(yīng)鏈路并設(shè)置為發(fā)送類型(TX=1),之后進入等待狀態(tài)。
當ASN到達相應(yīng)時隙,數(shù)據(jù)包根據(jù)TXRX的值進入發(fā)送、接收、休眠狀態(tài)。如圖2所示。
3.3.2 狀態(tài)機
圖3為TDMA狀態(tài)機,該狀態(tài)機建立在邏輯鏈路層所建立的四張調(diào)度表以及調(diào)度機制的基礎(chǔ)上,TDMA狀態(tài)機開始于節(jié)點加入無線HART網(wǎng)絡(luò),加入的同時建立狀態(tài)機所需要的超幀表、圖表、鏈路表,開始從鄰居節(jié)點接收數(shù)據(jù)并以此為基礎(chǔ)建立鄰居表。節(jié)點維護存儲著一列待發(fā)送數(shù)據(jù)包,當一個發(fā)送時隙發(fā)生,節(jié)點將會嘗試發(fā)送數(shù)據(jù)包。發(fā)送數(shù)據(jù)包包括發(fā)送數(shù)據(jù)包和接收ACK應(yīng)答兩個過程。當一個發(fā)送時隙產(chǎn)生,進入發(fā)送狀態(tài)。成功發(fā)送一個廣播地址的數(shù)據(jù)包在數(shù)據(jù)包發(fā)送之后結(jié)束,并從等待表中刪除。成功發(fā)送一個非廣播地址的數(shù)據(jù)包,節(jié)點將等待ACK應(yīng)答數(shù)據(jù)包,ACK數(shù)據(jù)包將表明數(shù)據(jù)包是成功接收還是出現(xiàn)接收錯誤。如果目的地址是廣播地址,將不會有ACK應(yīng)答數(shù)據(jù)包,發(fā)送完成并進入空閑狀態(tài)進行調(diào)度表的更新;成功發(fā)送一個非廣播地址數(shù)據(jù)包,進行數(shù)據(jù)完整性和權(quán)限完整性檢驗,TDMA狀態(tài)機進入等待ACK狀態(tài),如果無ACK應(yīng)答表明發(fā)送失敗。如果是一個共享鏈接,將啟動重發(fā)機制,若最終依然失敗,進入空閑狀態(tài)更新調(diào)度表。如果一個ACK應(yīng)答數(shù)據(jù)包被成功接收,節(jié)點根據(jù)ACK確定發(fā)送是否成功,若發(fā)送成功,進入空閑狀態(tài)更新調(diào)度表。如果顯示發(fā)送錯誤,將啟動重發(fā)機制。所有的接收鏈接都將在沒有發(fā)送請求的基礎(chǔ)被全部服務(wù),節(jié)點接收數(shù)據(jù)有三種可能:1)數(shù)據(jù)包的目的地址就是節(jié)點地址;2)數(shù)據(jù)包目的地址是路由地址;3)數(shù)據(jù)包目的地址非以上兩種情況。每一次接收數(shù)據(jù),鄰居表都將被更新維護。
4 結(jié)論
以無線HART協(xié)議為基礎(chǔ)根據(jù)工業(yè)現(xiàn)場的特點,設(shè)計并實現(xiàn)了數(shù)據(jù)鏈路層協(xié)議模型。在以無線HART適配器節(jié)點為平臺的實驗結(jié)果表明,模型所實現(xiàn)的時鐘同步精度達到30μs,滿足工業(yè)現(xiàn)場要求的前提下降低了節(jié)點的能耗,以模型為基礎(chǔ)的無線HART節(jié)點成功組建形成無線HART單跳網(wǎng)絡(luò)。