基于ZigBee的工業(yè)無線網(wǎng)關(guān)研究
128.128.2.202為網(wǎng)關(guān)在工業(yè)以太網(wǎng)內(nèi)分配的IP地址,用于有線網(wǎng)絡(luò)設(shè)備信息交換;0x000000220001、0x000000220002等為無線網(wǎng)絡(luò)IEEE64位長地址,0x1347為16位的個域網(wǎng)標(biāo)識符(PANI)ID),0xl699、0x169A為16位設(shè)備短地址(SADDR)。無線設(shè)備間通信可采用兩種方式:長地址或PANID+SADDR。兩種方式均對應(yīng)于一個ObjeetID,地址映射減少了通信傳輸?shù)淖止?jié)數(shù),從而提高了通信效率。
(2) 進(jìn)程通信機(jī)制
為了提高系統(tǒng)的實時性,進(jìn)程間通信采用消息觸發(fā)的方式,在有線協(xié)議(以太網(wǎng))的開發(fā)中移植了嵌入式實時操作系統(tǒng)μc/OS-II。進(jìn)程間通信主要通過調(diào)用μC/0S―II的消息函數(shù)――消息請求0SQrequest()和消息觸發(fā)OSQpost()來實現(xiàn)。在協(xié)議開發(fā)中,根據(jù)不同協(xié)議堆棧中不同層完成的功能進(jìn)行進(jìn)程任務(wù)劃分,根據(jù)任務(wù)優(yōu)先級來確定任務(wù)調(diào)用次序,未被觸發(fā)的任務(wù)始終處于消息請求狀態(tài)。如果同一時刻兩個任務(wù)被觸發(fā),則根據(jù)優(yōu)先級觸發(fā)優(yōu)先級高的任務(wù),而優(yōu)先級低的任務(wù)處于等待狀態(tài)。
3.3 無線/以太網(wǎng)協(xié)議轉(zhuǎn)換
ZigBee無線網(wǎng)關(guān)協(xié)議轉(zhuǎn)換主要是實現(xiàn)ZigBee數(shù)據(jù)報文與以太網(wǎng)報文雙向轉(zhuǎn)換。圖3所示為兩種協(xié)議報文格式轉(zhuǎn)換圖。圖中給出了協(xié)議開發(fā)中定義每一層的字節(jié)數(shù),其中PAYLOAD字節(jié)數(shù)可變,最大不超過127 B。當(dāng)無線網(wǎng)關(guān)射頻部分(PHY層)接收到數(shù)據(jù)報文,根據(jù)ZigBee通信協(xié)議從PHY到APS解出其中有效載荷,然后將有效載荷加載TCP(UDP)/IP(42 B)的報文格式,交由滿足IEEE802.3以太網(wǎng)通信協(xié)議的網(wǎng)卡處理,從而實現(xiàn)將無線接收到的信息傳輸?shù)酵獠靠刂凭W(wǎng)絡(luò)中。
3.4 服務(wù)定義及實現(xiàn)
為實現(xiàn)有線網(wǎng)絡(luò)與無線網(wǎng)絡(luò)的信息交互及控制功能,無線網(wǎng)關(guān)須完成相應(yīng)的服務(wù)功能。無線網(wǎng)關(guān)提供的基本服務(wù)主要有:讀/寫服務(wù)、信息分發(fā)服務(wù)、設(shè)備上線服務(wù)。服務(wù)功能在網(wǎng)絡(luò)連接成功后開始實現(xiàn),不同服務(wù)對應(yīng)不同的服務(wù)號。讀寫服務(wù)主要是針對設(shè)備參數(shù)的讀取和設(shè)置;信息分發(fā)服務(wù)是將無線通信設(shè)備采集到的數(shù)據(jù)周期性地分發(fā)到網(wǎng)關(guān),網(wǎng)關(guān)再轉(zhuǎn)發(fā)到控制網(wǎng)絡(luò);設(shè)備上線服務(wù)是標(biāo)示設(shè)備當(dāng)前狀態(tài),即上線、掉線,該服務(wù)的服務(wù)類型為周期性,其他服務(wù)必須在此服務(wù)之后才能執(zhí)行。各種服務(wù)雖然完成不同的功能,但都通過同一服務(wù)接口,因此在實現(xiàn)中設(shè)計了一套相同的服務(wù)報文格式:
服務(wù)報文主要包含以下幾個關(guān)鍵部分:短地址、服務(wù)號、參數(shù)索引。CRC為安全校驗,LQI為鏈接質(zhì)量,PHYheader、MAC header、NwK header和APS header分別為物理層、媒體訪問控制層、網(wǎng)絡(luò)層和應(yīng)用層頭字節(jié),字節(jié)數(shù)與圖3中的規(guī)定相同。
4 功能測試
無線網(wǎng)關(guān)硬件設(shè)計采用雙CPU模式,即AT91R40008+CC2430模式。AT91R40008是一款基于ARM7內(nèi)核的處理器,在網(wǎng)關(guān)開發(fā)中用于承載以太網(wǎng)協(xié)議;CC2430是一款基于IEEE802.15.4協(xié)議的無線通信芯片,它包括1個2.4 GHz的射頻收發(fā)器和1顆工業(yè)級小巧高效的8051控制器,用于承載無線通信協(xié)議。這種解決方案能夠提高系統(tǒng)性能并滿足以ZigBee為基礎(chǔ)的2.4GHz的ISM波段應(yīng)用需求。
4.1 測試方法
對無線網(wǎng)關(guān)的測試主要采用兩款工具軟件――TI公司的Packet Sniffer forCC2430和免費開源的Ethereal,主要測試無線網(wǎng)關(guān)數(shù)據(jù)的收發(fā)功能、協(xié)議轉(zhuǎn)換正確性以及無線網(wǎng)絡(luò)管理功能等。Packet Sniffel for CC2430為無線通信協(xié)議分析軟件,配合C51RF一3無線網(wǎng)絡(luò)協(xié)議分析儀可以捕獲空中ZigBee無線數(shù)據(jù)報文;Ethereal為專用于通過網(wǎng)口捕獲以太網(wǎng)報文的以太網(wǎng)協(xié)議分析軟件。測試時,可通過兩款協(xié)議分析軟件分別捕獲無線和以太網(wǎng)數(shù)據(jù)報文,對這兩種報文進(jìn)行分析比較,從而完成對無線網(wǎng)關(guān)相關(guān)功能的驗證;同時也可通過無線網(wǎng)關(guān)建立無線測控系統(tǒng),通過專用無線組態(tài)軟件對系統(tǒng)進(jìn)行相關(guān)功能測試,從而驗證無線網(wǎng)關(guān)功能。
4.2 測試界面及分析
(1)數(shù)據(jù)收發(fā)及協(xié)議轉(zhuǎn)換功能驗證
圖4所示為Packet Sniffer for CC2430捕獲空中的無線數(shù)據(jù)報文。無線數(shù)據(jù)報文包括接收時問(Time)、幀長度(Length)、幀控制域(Frame controlfield)、序列號(Sequence number)、個域網(wǎng)標(biāo)識符(PANID)、目的地/源地址(Dest/Source Address)等信息。畫線部分(16 99 1401 00 04 01 OO 01 09 08 02 00)為無線報文中的實時數(shù)據(jù)。此數(shù)據(jù)為無線設(shè)備發(fā)送出的無線報文有效載荷,由無線網(wǎng)關(guān)CC2430射頻部分接收。
評論