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