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