ZigBee網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的嵌入式網(wǎng)關(guān)設(shè)計
掃描二維碼
隨時隨地手機看文章
摘要:針對如何將基于ZigBee的網(wǎng)絡(luò)接入基于TCP/IP的互聯(lián)網(wǎng),提出了一種基于ZigBee的嵌入式網(wǎng)關(guān)的設(shè)計方案。網(wǎng)關(guān)硬件選用PXA270嵌入式平臺與CC2430無線模塊,基于Windows CE操作系統(tǒng)和Z—Stack協(xié)議棧,來實現(xiàn)網(wǎng)關(guān)的數(shù)據(jù)轉(zhuǎn)發(fā)和ZigBee網(wǎng)絡(luò)管理功能。
關(guān)鍵詞:ZigBee;嵌入式;CC2430;TCP/IP;網(wǎng)關(guān)
0 引言
物聯(lián)網(wǎng)是一個基于互聯(lián)網(wǎng)、傳統(tǒng)電信網(wǎng)等信息承載體,讓所有能夠被獨立尋址的普通物理對象實現(xiàn)互聯(lián)互通的網(wǎng)絡(luò)。它具有普通對象設(shè)備化、自治終端互聯(lián)化和普適服務(wù)智能化3個重要特征。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)己經(jīng)被廣泛的應(yīng)用到人們的生產(chǎn)及生活當中(如家庭自動化、智慧農(nóng)業(yè)等)。如何將ZigBee網(wǎng)絡(luò)接入到互聯(lián)網(wǎng),是人們在應(yīng)用ZigBee技術(shù)組網(wǎng)時所面臨的一個熱點問題。
然而,ZigBee協(xié)議與互聯(lián)網(wǎng)中所使用的TCP/IP協(xié)議并不兼容,要想把ZigBee網(wǎng)絡(luò)接入到基于IP的互聯(lián)網(wǎng),就需要一個設(shè)備來完成兩個異構(gòu)網(wǎng)絡(luò)間數(shù)據(jù)的轉(zhuǎn)發(fā)。因此,提出了網(wǎng)關(guān)的概念,由網(wǎng)關(guān)來完成兩個異構(gòu)網(wǎng)絡(luò)之間數(shù)據(jù)的轉(zhuǎn)發(fā)。本文使用PXA270嵌入式平臺和CC2430 ZigBee模塊,基于windows CE6.0嵌入式操作系統(tǒng)和Z—Stack協(xié)議棧,設(shè)計了一種嵌入式網(wǎng)關(guān)的解決方案。網(wǎng)關(guān)工作在兩個異構(gòu)的網(wǎng)絡(luò)之間,連接著無線傳感網(wǎng)絡(luò)和互聯(lián)網(wǎng),其功能包括異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)發(fā)和對ZigBee網(wǎng)絡(luò)的管理。
1 系統(tǒng)整體設(shè)計
網(wǎng)關(guān)整體設(shè)計如圖1所示,其總體上包括CC2430ZigBee模塊、PXA270嵌入式平臺、以太網(wǎng)口、電源模塊和其他外設(shè)模塊。
網(wǎng)關(guān)的軟件設(shè)計基于Windows CE6.0嵌入式操作系統(tǒng)和Z—Stack v1.4.3協(xié)議棧。Windows CE6.0系統(tǒng)功能豐富、內(nèi)核穩(wěn)定,是高度模塊化的系統(tǒng),具有占先式多任務(wù)調(diào)度和強大的網(wǎng)絡(luò)通訊能力。系統(tǒng)支持Winsock網(wǎng)絡(luò)編程接口,通過C/S Socket通信模型實現(xiàn)網(wǎng)關(guān)和互聯(lián)網(wǎng)客戶端的命令和數(shù)據(jù)交互。Z—Stack v1.4.3協(xié)議棧是TI公司開發(fā)的完整支持ZigBee 2006的協(xié)議棧,該協(xié)議棧提供了大量的編程接口函數(shù),方便基于該協(xié)議棧進行開發(fā)設(shè)計。
設(shè)計中CC2430 ZigBee模塊通過串口與PXA270嵌入式平臺連接。Windows CE和Z—Stack協(xié)議棧都提供了對串口通信的支持,調(diào)用相應(yīng)的串口API就可以實現(xiàn)對串口的讀寫等操作,這樣也就方便了PXA270嵌入式平臺和CC2430 ZigBee模塊之間的串口通信程序的設(shè)計。
2 各模塊軟件的設(shè)計
2.1 ZigBee協(xié)調(diào)器模塊部分
ZigBee網(wǎng)絡(luò)由一個協(xié)調(diào)節(jié)點、多個路由節(jié)點和多個終端節(jié)點構(gòu)成,設(shè)備類型通常在編譯時通過編譯選項決定(ZDO COORDINATOR and RTR NWK)。本設(shè)計中與PXA270嵌入式平臺通過串口連接的CC2430模塊作為整個ZigBee網(wǎng)絡(luò)的協(xié)調(diào)節(jié)點,其主要作用是:(1)數(shù)據(jù)收發(fā)。接收 ZigBee網(wǎng)絡(luò)上傳的數(shù)據(jù),解析并通過串口轉(zhuǎn)發(fā)至PXA270平臺;轉(zhuǎn)發(fā)PXA270平臺要發(fā)送到zigBee網(wǎng)絡(luò)中的數(shù)據(jù)。(2)ZigBee網(wǎng)絡(luò)管理。包括網(wǎng)絡(luò)信道和網(wǎng)絡(luò)ID的選取、網(wǎng)絡(luò)的啟動、節(jié)點的加入等。協(xié)調(diào)節(jié)點的程序流程圖如圖2所示。
協(xié)調(diào)節(jié)點與PXA270平臺通信時,需用到Z—Stack提供的串口應(yīng)用程序接口函數(shù)。其中,HalUARTInit()用來在設(shè)備啟動時初始化串口(如設(shè)置波特率為115200),HalUARTOpen()、HalUART Close()用來打開和關(guān)閉串口,HalUARTRead()、HalUARTWrite()用來完成對串口的讀寫。
2. 2 PXA270嵌入式平臺部分
PXA270嵌入式平臺作為網(wǎng)關(guān)的主要控制模塊其功能包括:與ZigBee協(xié)調(diào)節(jié)點通信,接收協(xié)調(diào)節(jié)點通過串口轉(zhuǎn)發(fā)的數(shù)據(jù)或?qū)⒖刂泼畎l(fā)送到協(xié)調(diào)節(jié)點;通過基于TCP/IP的流式Socket方式與IP網(wǎng)絡(luò)通信,如上傳數(shù)據(jù)、接收遠程命令。PXA270平臺的工作流程如圖3所示。
本設(shè)計中通過兩個線程來分別完成上述兩個方面的工作,分別是串口通信線程和Socket通信線程,兩個線程采用互斥機制實現(xiàn)對公共緩沖區(qū)的互斥訪問。
3 測試結(jié)果
對設(shè)計方案進行ZigBee組網(wǎng)測試和系統(tǒng)整體測試。在ZigBee組網(wǎng)測試中,ZigBee協(xié)議棧的參數(shù)配置為默認值(MAX DEPTH=5,MAXROUTERS=6,MAX CHILDREN=20),地址分配方式選擇分布式分配機制。將ZigBee協(xié)調(diào)器通過串口直接與電腦的COM1口相連,由ZigBee協(xié)調(diào)器通過串口向電腦發(fā)送ZigBee網(wǎng)絡(luò)中的節(jié)點網(wǎng)絡(luò)ID,通過串口調(diào)試助手顯示ZigBee網(wǎng)絡(luò)中的節(jié)點信息,其測試結(jié)果如圖4所示。
在系統(tǒng)整體測試中,將ZigBee協(xié)調(diào)器通過串口直接與PXA270嵌入式平臺的串口相連,由ZigBee協(xié)調(diào)器通過串口向PXA270嵌入式平臺發(fā)送 ZigBee網(wǎng)絡(luò)中的節(jié)點網(wǎng)絡(luò)ID,PXA270嵌入式平臺通過C/SSocket通信模型實現(xiàn)網(wǎng)關(guān)和互聯(lián)網(wǎng)客戶端的命令和數(shù)據(jù)交互,其測試結(jié)果如圖5所示。
4 結(jié)論
針對如何把基于ZigBee無線網(wǎng)絡(luò)接入到基于TCP/IP的互聯(lián)網(wǎng)的問題,本文提出一種基于WindowsCE嵌入式操作系統(tǒng)和 ZigBee協(xié)議棧的嵌入式網(wǎng)關(guān)的設(shè)計方案,對網(wǎng)關(guān)的基本功能進行了實現(xiàn)。使ZigBee網(wǎng)絡(luò)采集到的數(shù)據(jù)能夠通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到基于TCP/IP的網(wǎng)絡(luò),通過網(wǎng)關(guān)能夠完成對ZigBee網(wǎng)絡(luò)的管理,達到了兩個異構(gòu)網(wǎng)絡(luò)互聯(lián)互通的目的,具有切合實際的應(yīng)用價值。