《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于ZigBee,、GPRS和TCP/IP協(xié)議的無線網(wǎng)關設計
基于ZigBee、GPRS和TCP/IP協(xié)議的無線網(wǎng)關設計
來源:微型機與應用2013年第8期
項雷軍
(華僑大學 信息科學與工程學院,,福建 廈門361021)
摘要: 針對ZigBee無線傳感器網(wǎng)絡的遠程監(jiān)控技術(shù)的實現(xiàn),,設計一個將ZigBee協(xié)議與TCP/IP協(xié)議有機融合在一起的無線網(wǎng)關,。系統(tǒng)運行時,互聯(lián)網(wǎng)中的遠程服務器可通過網(wǎng)關對ZigBee無線傳感器網(wǎng)絡所有節(jié)點進行監(jiān)控,。此網(wǎng)關設計方案成本低廉且易于實現(xiàn),,可以為無線傳感器網(wǎng)絡在諸多領域的應用開發(fā)提供設計參考。
Abstract:
Key words :

摘  要: 針對ZigBee無線傳感器網(wǎng)絡的遠程監(jiān)控技術(shù)的實現(xiàn),,設計一個將ZigBee協(xié)議與TCP/IP協(xié)議有機融合在一起的無線網(wǎng)關,。系統(tǒng)運行時,互聯(lián)網(wǎng)中的遠程服務器可通過網(wǎng)關對ZigBee無線傳感器網(wǎng)絡所有節(jié)點進行監(jiān)控,。此網(wǎng)關設計方案成本低廉且易于實現(xiàn),,可以為無線傳感器網(wǎng)絡在諸多領域的應用開發(fā)提供設計參考。
關鍵詞: ZigBee,;無線傳感器網(wǎng)絡,;C8051F120GPRS,;TCP/IP協(xié)議,;網(wǎng)關

    隨著無線通信技術(shù)、傳感器技術(shù)和計算機網(wǎng)絡技術(shù)的不斷發(fā)展,,無線傳感器網(wǎng)絡作為一種多學科交叉技術(shù)得到了學術(shù)界和工業(yè)界的廣泛關注,。ZigBee技術(shù)是一種具有近距離、低速率,、低功耗,、雙向數(shù)據(jù)傳輸、可以自組網(wǎng)等特點的高可靠個域網(wǎng)無線通信標準[1-2],。在工業(yè)控制,、醫(yī)療健康、農(nóng)業(yè)節(jié)水灌溉,、樓宇自動化,、智能電網(wǎng)等眾多領域,基于ZigBee技術(shù)的無線傳感器網(wǎng)絡都具有很好的應用價值和發(fā)展前景[2-3],。ZigBee無線網(wǎng)絡的網(wǎng)關設計有多種方法,設計方案各有優(yōu)缺點,,難易程度和成本開支存在差異,。本文所介紹的基于ZigBee技術(shù)的無線傳感器網(wǎng)絡網(wǎng)關通過GPRS將互聯(lián)網(wǎng)中的計算機通過網(wǎng)絡與無線傳感器網(wǎng)絡的協(xié)調(diào)器連接在一起,通過互聯(lián)網(wǎng)中的計算機對無線傳感器網(wǎng)絡進行監(jiān)控,。且該系統(tǒng)的網(wǎng)關實現(xiàn)了ZigBee無線傳感網(wǎng)絡和基于TCP/IP協(xié)議的互聯(lián)網(wǎng)的有機融合,,網(wǎng)關GPRS從網(wǎng)絡中分配到一個IP地址,使整個無線傳感器網(wǎng)絡成為互聯(lián)網(wǎng)中的一臺“計算機”[4-5],。該網(wǎng)關設計方案實現(xiàn)較為容易,,且成本低廉,,對無線傳感器網(wǎng)絡在工業(yè)控制、智能電網(wǎng),、環(huán)境監(jiān)測,、智能家居等領域的應用開發(fā)具有很好的參考價值。
1 系統(tǒng)的拓撲結(jié)構(gòu)
    ZigBee是由ZigBee聯(lián)盟在IEEE 802.15.4的物理層(PHY)和媒體介質(zhì)訪問層(MAC)基礎上增加網(wǎng)絡層(NWK)和應用層(APL)等所形成的協(xié)議體系結(jié)構(gòu)[2,,6],。在ZigBee網(wǎng)絡中存在兩種設備,即全功能設備(FFD)和精簡功能設備(RFD),。網(wǎng)絡中的節(jié)點可分為網(wǎng)絡協(xié)調(diào)器,、路由器和終端節(jié)點。網(wǎng)絡協(xié)調(diào)器和路由器必須是FFD,,而終端節(jié)點則可以是FFD或者RFD,。FFD既可以與FFD通信,也可以與RFD通信,,而RFD與RFD之間不能直接通信,。ZigBee網(wǎng)絡的拓撲結(jié)構(gòu)可分為星形網(wǎng)絡、網(wǎng)狀網(wǎng)絡和樹狀網(wǎng)絡,。
    本系統(tǒng)主要是由ZigBee無線傳感器網(wǎng)絡,、網(wǎng)關和遠程服務器組成,系統(tǒng)的整體結(jié)構(gòu)如圖1所示,。系統(tǒng)的ZigBee無線傳感器網(wǎng)絡選用樹狀網(wǎng)絡拓撲結(jié)構(gòu),。網(wǎng)關是整個ZigBee無線網(wǎng)絡的控制中心,它由以CC2430為處理器的ZigBee網(wǎng)絡協(xié)調(diào)器,、8位單片機C8051F120,、GPRS模塊、電源模塊及其他外圍電路所構(gòu)成,。網(wǎng)絡服務器是連接在互聯(lián)網(wǎng)中具有公網(wǎng)IP地址的一臺個人計算機,,在該臺計算機中安裝有基于Visual C++開發(fā)環(huán)境所設計開發(fā)的帶有Access數(shù)據(jù)庫的控制軟件。

2 硬件設計
    此系統(tǒng)無線網(wǎng)關的主要功能是將ZigBee無線網(wǎng)絡和互聯(lián)網(wǎng)中的計算機連接起來,,使得通過互聯(lián)網(wǎng)可以監(jiān)控ZigBee網(wǎng)絡中的所有節(jié)點,,通過該網(wǎng)關也可以對ZigBee網(wǎng)絡中的節(jié)點進行監(jiān)控。該無線網(wǎng)關的硬件主要由ZigBee網(wǎng)絡協(xié)調(diào)器,、GPRS模塊和C8051F120微處理器組成,。網(wǎng)絡協(xié)調(diào)器的核心芯片選擇TI公司生產(chǎn)的CC2430單片機,GPRS模塊選用的是SIM300模塊,,C8051F120單片機是美國Silicon Laboratories公司的產(chǎn)品,。
    CC2430是由一顆高性能、低功耗的8051單片機內(nèi)核和符合IEEE 802.15.4標準的2.4 GHz的無線電收發(fā)機組成[7]。CC2430的閃存根據(jù)存儲空間的大小可以分成3種,,分別是32 KB,、64 KB和128 KB,本系統(tǒng)的網(wǎng)絡協(xié)調(diào)器微處理器選擇的是128 KB的CC2430,。
    C8051F120是一款完全繼承的混合信號片上系統(tǒng)型的8位MCU,,具有64個數(shù)字I/O引腳,該款芯片共有100個引腳,,具有豐富的片上資源,;具有128 KB的Flash存儲器和8 448 B的片內(nèi)RAM;兩個串行通信接口,,分別是UART0和UART1,,在此系統(tǒng)網(wǎng)關設計中這兩個串行端口對數(shù)據(jù)和控制指令的傳輸起到關鍵作用。
    SIM300是一款內(nèi)嵌了TCP/IP網(wǎng)絡通信協(xié)議,、可以通過標準的AT指令進行操作的高性能GPRS模塊,。通過AT指令操作可以輕松使GRPS與互聯(lián)網(wǎng)中的計算機建立基于TCP/IP的網(wǎng)絡連接,該模塊還具有短信息和語音通話功能,,非常適合應用于工業(yè)監(jiān)控和樓宇自動化等領域,。
    該系統(tǒng)網(wǎng)關的硬件設計結(jié)構(gòu)如圖2所示,C8051F120與SIM300之間的通信基于RS232串口通信協(xié)議,,使用的是UART0端口,,TX0和RX0分別是I/O端口的P0.0與P0.1;與網(wǎng)絡協(xié)調(diào)器之間的通信同樣基于RS232串口通信協(xié)議,,使用的是UART1端口,,TX1和RX1分別是I/O端口的P0.2與P0.3。網(wǎng)絡協(xié)調(diào)器端的串口通信選擇的是CC2430的UART0,,TX和RX分別是I/O端口的P0.3與P0.2,。在串口通信中,TX應該與接收方的RX連接,,RX應該與發(fā)送方的TX連接,,所以C8051F120與GPRS的串口連接要交叉連接,也就是C8051F120的TX0連接GPRS的RX,,RX0連接GPRS的TX,。同理,C8051F120與網(wǎng)絡協(xié)調(diào)器的連接也要交叉連接,。在該網(wǎng)關的設計中,,還要考慮到一個電源參考電壓的問題,為了使它們有一個共同的地,,網(wǎng)關的這三部分的地要連接在一起。

    通過中間的C8051F120對網(wǎng)絡協(xié)調(diào)器和GPRS之間的雙向數(shù)據(jù)進行處理,可以使協(xié)調(diào)器不會因為GPRS的握手協(xié)議的存在而提高串口通信的中斷頻率,,把主要的工作放在ZigBee無線網(wǎng)絡這一端,,從而提高網(wǎng)絡協(xié)調(diào)器的運行穩(wěn)定性并且使ZigBee無線網(wǎng)絡具有良好的可擴展性。
3 軟件編程
    網(wǎng)關的軟件設計是在網(wǎng)關的硬件設計基礎上展開的,。根據(jù)前面的硬件設計,,程序設計可以分為兩個部分:網(wǎng)絡協(xié)調(diào)器的程序設計和基于C8051F120的程序設計。GPRS模塊的操作屬于C8051F120的程序處理范疇,。
3.1 網(wǎng)絡協(xié)調(diào)器的程序設計
    網(wǎng)絡協(xié)調(diào)器是整個ZigBee網(wǎng)絡的控制中心,,在ZigBee網(wǎng)絡中處于核心地位。整個系統(tǒng)中,,網(wǎng)絡協(xié)調(diào)器的作用主要分為兩個方面:(1)對ZigBee網(wǎng)絡進行組網(wǎng),;(2)連接ZigBee網(wǎng)絡與C851F120,使二者之間互相通信,。具體而言,,網(wǎng)絡協(xié)調(diào)器對ZigBee網(wǎng)絡進行組網(wǎng),為網(wǎng)絡中的各個節(jié)點分別分配一個16位的網(wǎng)絡地址,,對網(wǎng)絡中的節(jié)點進行控制和采集相關節(jié)點信息,。在ZigBee網(wǎng)絡與C8051F120之間起到“橋梁”的作用,即接收并處理來自C8051F120的控制指令,,采集來自ZigBee網(wǎng)絡的數(shù)據(jù)并打包傳輸給C8051F120,,由C8051F120做進一步處理。
    網(wǎng)絡協(xié)調(diào)器與C8051F120之間的通信是基于RS232串口通信協(xié)議的串口通信,。ZigBee協(xié)議棧所定義的串口通信波特率有38 400 bit/s和115 200 bit/s,,此處選擇115 200 bit/s作為協(xié)調(diào)器與C8051F120通信的波特率。系統(tǒng)開發(fā)過程中,,選用Z-Stack的例程SimpleApp并以此為基礎設計協(xié)調(diào)器和ZigBee節(jié)點的程序,,此舉可節(jié)省較多開發(fā)時間。協(xié)調(diào)器程序設計時,,與串口通信相關的一些參數(shù)應在sapi.h文件中定義,,而初始化部分應放在sapi.c中的初始化函數(shù)SAPI_Init(byte task_id)中,當協(xié)調(diào)器開始工作時即可初始化CC2430的串口通信,。ZigBee網(wǎng)絡協(xié)調(diào)器開始工作時是從協(xié)議棧的ZMain.c文件中的主函數(shù)main(void)開始運行的,,在此過程中需調(diào)用osal_int_disable(INTS_ALL)關中斷,再調(diào)用協(xié)議棧各層的初始化函數(shù)及CC2430片上資源的初始化函數(shù)進行初始化,,初始化之后調(diào)用osal_int_enable(INTS_ALL)允許中斷,。最后程序通過osal_start_
system( )進入?yún)f(xié)議棧的任務操作系統(tǒng)。該函數(shù)是協(xié)議棧操作系統(tǒng)的主循環(huán)函數(shù),,進入該函數(shù)后將不再返回,。在操作系統(tǒng)的運行過程中如果有事件產(chǎn)生將調(diào)用函數(shù)task_event_processor( )對事件進行處理。
    系統(tǒng)開發(fā)過程中,網(wǎng)絡協(xié)調(diào)器和終端節(jié)點的程序是在同一個工程中進行開發(fā)的,,即Z-Stack中的sapi.c文件和sapi.h文件是由網(wǎng)絡協(xié)調(diào)器程序和終端節(jié)點程序共同調(diào)用的,,故在這兩個文件中單獨涉及到網(wǎng)絡協(xié)調(diào)器和單獨涉及到終端節(jié)點的程序部分應分別存入各自的條件編譯程序塊中。網(wǎng)絡協(xié)調(diào)器的程序運行流程圖如圖3所示,。

3.2 基于C8051F120的程序設計
    在系統(tǒng)設計中,,C8051F120是一個很重要的中間件,它將ZigBee網(wǎng)絡與互聯(lián)網(wǎng)中的遠程服務器連接起來,,使得管理員可以通過服務器的控制軟件或其他客戶端控制軟件對ZigBee網(wǎng)絡進行實時監(jiān)控,。C8051F120通過UART0與SIM300連接在一起,在啟動時首先要做的工作就是初始化SIM300模塊并與互聯(lián)網(wǎng)中的遠程服務器建立連接,,這樣管理員才可以通過遠程服務器上的控制軟件對ZigBee無線網(wǎng)絡進行監(jiān)控,。這一步非常重要,如果不與服務器建立連接,,則管理員就無法通過服務器上的控制軟件對ZigBee無線傳感器網(wǎng)絡進行監(jiān)控,。根據(jù)系統(tǒng)要求,C8051F120對GPRS模塊的初始化可以分為表1所示的幾個部分,。

    C8051F120的程序設計用到兩個串口通信,,串口通信的數(shù)據(jù)收發(fā)均通過中斷服務程序?qū)崿F(xiàn)[8]。C8051F120總共有20個中斷源,。在中斷系統(tǒng)中,,UART0的中斷優(yōu)先級是4,UART1的中斷優(yōu)先級是20,,即UART0的優(yōu)先級比UART1高,。系統(tǒng)選用外部22.118 4 MHz晶振經(jīng)鎖相環(huán)二倍頻后,產(chǎn)生50 MHz時鐘源,。Timer2通過16位自動重裝載模式設置115 200 bit/s的波特率作為UART0波特率,。而Timer1通過8位自動重裝載模式設置115 200 bit/s的波特率作為UART1波特率,這個波特率與協(xié)調(diào)器的波特率相匹配,。該部分的設置均采用Silicon Laboratories IDE集成開發(fā)環(huán)境來編程實現(xiàn),。C8051F120的程序運行流程圖如圖4所示。

    由于ZigBee網(wǎng)絡與遠程服務器之間的通信屬于通過GPRS進行的基于TCP/IP的網(wǎng)絡通信,,受移動網(wǎng)絡的影響,,因此系統(tǒng)通信容易產(chǎn)生時滯,多次發(fā)送的數(shù)據(jù)集中在同一時間接收,,易產(chǎn)生誤控制及數(shù)據(jù)的誤處理,。為解決該問題,需按照以下基本格式定義無線通信的握手協(xié)議:從服務器端發(fā)送來的控制指令的格式為0xAA+節(jié)點序號+節(jié)點網(wǎng)絡地址+指令+0xAA,,總字節(jié)數(shù)是6 B,。如果C8051F120從GPRS接收到的數(shù)據(jù)不符合這種數(shù)據(jù)格式,,則對這樣的數(shù)據(jù)不做處理,直接從緩存中刪除,。C8051F120從網(wǎng)絡協(xié)調(diào)器接收到的數(shù)據(jù)幀也是由固定的幀頭和幀尾以及中間的相關數(shù)據(jù)組成,,數(shù)據(jù)幀的格式是0xFF+(節(jié)點序號+節(jié)點網(wǎng)絡地址+節(jié)點狀態(tài))+…+(節(jié)點序號+節(jié)點網(wǎng)絡地址+節(jié)點狀態(tài))+0xFF,。C8051F120接收到網(wǎng)絡協(xié)調(diào)器發(fā)送過來的數(shù)據(jù)時,,則轉(zhuǎn)到UART1串口通信的中斷服務子程序進行處理,要處理的內(nèi)容包括判斷數(shù)據(jù)幀的幀頭,、幀尾,、總字節(jié)數(shù)等。如果中間的數(shù)據(jù)判斷有哪個與程序設計過程中定義的不一致,,則退出中斷并清空接收緩存,,否則按流程圖的順序執(zhí)行程序。在程序的運行過程中,,C8051F120每完成一個任務都會用一個相應的全局變量來標志,,以便作為下一個環(huán)節(jié)程序處理依據(jù)。例如變量InitOrRun,,當InitOrRun=0時,,表示此時程序處于GPRS的初始化階段;InitOrRun=1時,,表示此時程序處于系統(tǒng)正常運行階段,。
    ZigBee技術(shù)在各種監(jiān)測與控制領域的應用將會越來越廣泛,根據(jù)系統(tǒng)的要求以及特定通信協(xié)議設計一個網(wǎng)關,,把不同的通信協(xié)議組合或轉(zhuǎn)換,,是一項非常重要的工作,對系統(tǒng)的開發(fā)實現(xiàn)起到關鍵作用,。本系統(tǒng)的網(wǎng)關不僅可以將基于TCP/IP的網(wǎng)絡通信的數(shù)據(jù)轉(zhuǎn)換為監(jiān)控ZigBee無線網(wǎng)絡的控制指令,,也可以將ZigBee無線網(wǎng)絡的數(shù)據(jù)進行轉(zhuǎn)換后通過互聯(lián)網(wǎng)傳輸給遠程服務器和客戶端計算機。此網(wǎng)關設計方案中單片機C8051F120的程序稍作修改即可應用于類似的系統(tǒng)中,,例如工業(yè)控制,、智能家居、農(nóng)業(yè)節(jié)水灌溉,、環(huán)境監(jiān)測,、煤礦安全等。
參考文獻
[1] ZigBee Alliance.ZigBee Specification[S].2006.
[2] 金純,,羅祖秋,,羅鳳,等.ZigBee技術(shù)基礎及案例分析[M].北京:國防工業(yè)出版社,,2008.
[3] 崔遜學,,趙湛,,王成.無線傳感器網(wǎng)絡的領域應用與設計技術(shù)[M].北京:國防工業(yè)出版社,2009.
[4] 劉元安,,葉靚,,邵謙明,等.無線傳感器網(wǎng)絡與TCP/IP網(wǎng)絡的融合[J].北京郵電大學學報,,2006,,29(6):1-4.
[5] 龐訓磊,殷保群,,奚宏生.一種使用TCP/IP協(xié)議實現(xiàn)無線傳感器網(wǎng)絡互連的新型設計[J].傳感技術(shù)學報,,2007,20(6):1386-1390.
[6] REESE R.A ZigBee TM-subset/IEEE 802.15.4TM multiplatform protocol stack[C].In Electrical/Computer Engr MSU.2006.
[7] Chipcon.CC2430 preliminary data sheet(Rev.1.03)SWRS036A[S].2005.
[8] 陳連坤.單片機原理及及接口技術(shù)(C語言版)[M].北京:清華大學出版社,,北京交通大學出版社,,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。