技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 基于A(yíng)RM9的Zigbee網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)

基于A(yíng)RM9的Zigbee網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)

時(shí)間:2010-04-30 17:36:55來(lái)源:yangliu

導(dǎo)語(yǔ):?設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于A(yíng)RM9處理器的Zigbee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)嵌入式網(wǎng)關(guān),用來(lái)完成Zigbee和Internet之間數(shù)據(jù)的透明轉(zhuǎn)換

    設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于A(yíng)RM9處理器的Zigbee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)嵌入式網(wǎng)關(guān),用來(lái)完成Zigbee和Internet之間數(shù)據(jù)的透明轉(zhuǎn)換。給出了該網(wǎng)關(guān)的硬件方案設(shè)計(jì)和主要軟件編程思路以及一種新型網(wǎng)關(guān)的協(xié)議轉(zhuǎn)換方案的實(shí)現(xiàn)思路。該網(wǎng)關(guān)具有較好的通用性。

引言

    無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是指由大量成本相對(duì)低廉的,具有感知能力、計(jì)算能力、實(shí)時(shí)通信能力的傳感器節(jié)點(diǎn)組成的嵌入式無(wú)線(xiàn)網(wǎng)絡(luò),是當(dāng)前眾多領(lǐng)域的研究和應(yīng)用熱點(diǎn)。建立在IEEE 802.15.4(LR_WPAN,低速率無(wú)線(xiàn)個(gè)人區(qū)域網(wǎng))上的Zigbee協(xié)議是應(yīng)用于無(wú)線(xiàn)監(jiān)測(cè)與控制的全球性無(wú)線(xiàn)通信標(biāo)準(zhǔn),是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)組網(wǎng)的首選技術(shù)之一。

    隨著Zigbee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,如何通過(guò)現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施(如Internet、GPRS等)對(duì)其進(jìn)行遠(yuǎn)程管理、控制感測(cè)環(huán)境中的各種傳感裝置,逐漸成為該領(lǐng)域的重要研究課題。圖1給出了基于Zigbee的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)體系結(jié)構(gòu),如圖示Zigbee網(wǎng)關(guān)在整個(gè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)體系中起著重要的樞紐作用,同時(shí)也是WSN整體系統(tǒng)的“瓶頸”之一。當(dāng)圖1中的服務(wù)器或用戶(hù)部分為其它Zigbee網(wǎng)絡(luò)時(shí),通過(guò)Zigbee網(wǎng)關(guān)和Internet或GPRS做媒介,就使得世界范圍內(nèi)的不同監(jiān)測(cè)區(qū)域都可以信息共享,這大大縮小了物理世界的時(shí)空距離。

 

圖1 基于Zigbee技術(shù)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)



    本文主要研究的是Internet環(huán)境下基于Zigbee傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)設(shè)計(jì)及其實(shí)現(xiàn)。

1 系統(tǒng)概述

    網(wǎng)關(guān)是建立在傳輸層以上的協(xié)議轉(zhuǎn)換器,通常它連接兩個(gè)或多個(gè)相互獨(dú)立的網(wǎng)絡(luò),每接收一種協(xié)議的數(shù)據(jù)包后,在轉(zhuǎn)發(fā)之前將它轉(zhuǎn)換為另一種協(xié)議的格式。考慮到Zigbee節(jié)點(diǎn)的通信能力有限(數(shù)據(jù)速率僅為250 Kbps),為了減少網(wǎng)關(guān)協(xié)議轉(zhuǎn)換自身的工作量,本網(wǎng)關(guān)選擇了一款集成Ethernet接口的ARM9 芯片來(lái)完成硬件系統(tǒng)的搭建。

    本網(wǎng)關(guān)采用模塊化設(shè)計(jì)方案,如圖2所示由硬件層、軟件層和應(yīng)用層三大部分組成。其中硬件層描述了網(wǎng)關(guān)的硬件實(shí)現(xiàn),在后文將詳細(xì)介紹;軟件層移植μC/OS-II實(shí)時(shí)操作系統(tǒng)內(nèi)核、Zigbee和嵌入式TCP/IP協(xié)議棧LwIP,實(shí)現(xiàn)了Zigbee和TCP/IP協(xié)議的雙向透明轉(zhuǎn)換,同時(shí)封裝一些關(guān)鍵API函數(shù)供應(yīng)用層程序調(diào)用;應(yīng)用層運(yùn)行的是用戶(hù)編寫(xiě)的應(yīng)用程序,用戶(hù)可以根據(jù)實(shí)際需要使用下層定義的API自行擴(kuò)充相關(guān)應(yīng)用。

 

圖2 Zigbee網(wǎng)關(guān)總體結(jié)構(gòu)



2 硬件設(shè)計(jì)

    網(wǎng)關(guān)硬件結(jié)構(gòu)如圖3所示,由內(nèi)部集成以太網(wǎng)MAC的ARM9處理器STR912FW44X、Zigbee射頻收發(fā)模塊CC2420、大容量DataFlash存儲(chǔ)卡片AT45DCB008、以太網(wǎng)收發(fā)芯片(PHY) RTL8201和帶觸摸功能的LCD顯示模塊LQ084V1DG21等模塊組成。

 

圖3 Zigbee網(wǎng)關(guān)硬件結(jié)構(gòu)



    其中STR912FW44X作為硬件系統(tǒng)的主控芯片,它是意法半導(dǎo)體(ST Microelectronics)推出的基于A(yíng)RM966E-S內(nèi)核,片內(nèi)集成Flash、USB、CAN、以太網(wǎng)MAC、AC馬達(dá)控制、ADC、RTC、DMA等接口的高性能ARM9 SOC,最高主頻可達(dá)96Mhz;

    Zigbee射頻收發(fā)芯片CC2420是挪威Chipcon(現(xiàn)為T(mén)I)推出的符合2.4 GHz IEEE 802.15.4和Zigbee 標(biāo)準(zhǔn)的射頻收發(fā)器。CC2420采用O-QPSK調(diào)制方式,工作頻帶范圍為2.400~2. 4835 GHz,接收靈敏度為-94 dBm,抗鄰頻道干擾能力為39 dB。利用此芯片開(kāi)發(fā)的無(wú)線(xiàn)通信設(shè)備支持?jǐn)?shù)據(jù)傳輸率高達(dá)250 Kbps,能夠?qū)崿F(xiàn)點(diǎn)對(duì)多點(diǎn)的快速組網(wǎng);

    AT45DCB008是Atmel公司推出的新型DataFlash存儲(chǔ)芯片,在該網(wǎng)關(guān)中用來(lái)保存網(wǎng)絡(luò)故障狀態(tài)下的數(shù)據(jù)信息。AT45DCB008中的數(shù)據(jù)按頁(yè)存放,主存共8192頁(yè),每頁(yè)1024字節(jié),總?cè)萘考s為8M字節(jié),每頁(yè)的擦寫(xiě)次數(shù)保證在100,000次以上;

    以太網(wǎng)PHY層芯片采用的是Realtek公司的RTL8201BL,它是一個(gè)單端口的物理層收發(fā)器,實(shí)現(xiàn)了全部的10/100M以太網(wǎng)物理層功能;

    顯示部分采用的LQ084V1DG21是SHARP公司的帶觸摸屏8.4英寸TFT數(shù)字液晶顯示屏,分辨率為640×480。


3 嵌入式網(wǎng)關(guān)軟件設(shè)計(jì)

    3.1 μC/OS-II下的LwIP的移植

    μC/OS-II是一個(gè)搶占式的實(shí)時(shí)多任務(wù)內(nèi)核操作系統(tǒng),具有開(kāi)放源碼、可固化、可剪裁、高穩(wěn)定性和可靠性等特點(diǎn)。目前國(guó)內(nèi)外對(duì)μC/OS-II的相關(guān)研究已有很多,其在STR912處理器上的移植在此不再贅述。LwIP是瑞士計(jì)算機(jī)科學(xué)院開(kāi)發(fā)的輕量級(jí)(Light Weight)開(kāi)放源碼TCP/IP協(xié)議棧,目前最新版本為1.2.0

    LwIP協(xié)議棧把所有與硬件相關(guān)、OS、編譯器相關(guān)的部分獨(dú)立出來(lái),放在/src/arch目錄下,可以是說(shuō)其在設(shè)計(jì)時(shí)就考慮了移植問(wèn)題。LwIP在μC/OS-II上的移植就是修改這個(gè)目錄下的文件,其它的文件一般不做修改。需要修改和自己編程實(shí)現(xiàn)的是以下幾部分:

    ●與STR912及IAR編譯器相關(guān)的include文件;

    ●μC/OS-II模擬層相關(guān)代碼編寫(xiě);

    ●與μC/OS-II相關(guān)的一些結(jié)構(gòu)和函數(shù);

    ●lib_arch中庫(kù)函數(shù)的實(shí)現(xiàn);

    ●STR912網(wǎng)絡(luò)驅(qū)動(dòng)程序編寫(xiě)。

    完成以上代碼移植的工作后,LwIP就可以順利運(yùn)行在μC/OS-II下,主要通過(guò)以下程序完成LwIP的初始化及運(yùn)行:

    main(){      

    (lwip_init_task,&LineNo11,&lwip_init_stk[TASK_STK_SIZE-1], 0);      //創(chuàng)建LwIP初始化任務(wù)

    OSTaskCreate(usr_task,&LineNo12,&usr_stk[TASK_STK_SIZE-1],1);//創(chuàng)建用戶(hù)任務(wù)
    
    OSStart();//啟動(dòng)LwIP  }

    在main函數(shù)中創(chuàng)建了lwip_init_task來(lái)初始化LwIP任務(wù)(優(yōu)先級(jí)為0)和usr_task用戶(hù)任務(wù)(優(yōu)先級(jí)為1)。需要指出的是,在lwip_init_task任務(wù)中除了完成初始化硬件時(shí)鐘和LwIP本身等工作之外,還創(chuàng)建了tcpip_thread(優(yōu)先級(jí)為5)和tcpecho_thread(優(yōu)先級(jí)為6),其中tcpip_thread才是LwIP的主線(xiàn)程,也是應(yīng)該先創(chuàng)建的。

    3.2   μC/OS-II下的Zigbee協(xié)議棧的實(shí)現(xiàn)

    我們?cè)谠摼W(wǎng)關(guān)平臺(tái)上運(yùn)行自主編寫(xiě)Zigbee協(xié)議棧的子集ez_PAN。ez_PAN目前還很不完善,只實(shí)現(xiàn)了Zigbee的部分關(guān)鍵功能,僅支持星型和簇狀網(wǎng)絡(luò)(Cluster),支持網(wǎng)絡(luò)的動(dòng)態(tài)組網(wǎng)配置和動(dòng)態(tài)綁定等。ez_PAN協(xié)議棧結(jié)構(gòu)如圖4所示:

 

圖4  ez_PAN協(xié)議棧結(jié)構(gòu)



    下面給出ez_PAN 協(xié)議棧上的協(xié)調(diào)器(Coordinator)、路由器(Router)和精簡(jiǎn)節(jié)點(diǎn)(RFD)實(shí)現(xiàn)的關(guān)鍵代碼。Coordinator通過(guò)aplFormNetwork()函數(shù)建立網(wǎng)絡(luò),等待其它節(jié)點(diǎn)(Router和RFD)的加入,主要程序如下:

    Main()

     {

    halInit(); //初始化 HAL 層

    hawInit();//硬件初始化

    aplInit(); //初始化APL

    ENABLE_GLOBAL_INTERRUPT(); //開(kāi)中斷

    aplFormNetwork(); //建立網(wǎng)絡(luò)

    while(apsBusy)()) {apsFSM();}  //等待建立完成

    while(1) {apsFSM();}  //循環(huán)執(zhí)行協(xié)議棧

    }


    其中調(diào)用apsBusy()來(lái)判斷當(dāng)前協(xié)議棧是否忙于其它程序調(diào)用,apsFSM()是在A(yíng)PS層上實(shí)現(xiàn)的FSM(有限狀態(tài)機(jī)),被apsBusy周期調(diào)用來(lái)維持ez_PAN的運(yùn)行。在Coordinator建立網(wǎng)絡(luò)完成后,允許Router或RFD節(jié)點(diǎn)動(dòng)態(tài)加入,關(guān)鍵代碼實(shí)現(xiàn)如下:

    do {

    aplJoinNetwork();//Router或RFD加入網(wǎng)絡(luò)

    while(apsBusy ()) {  apsFSM();}  //等待加入完成

    } while (aplGetStatus ()! =LRWPAN_SUCCESS);

    3.3   協(xié)議轉(zhuǎn)換軟件設(shè)計(jì)

    在TCP/IP協(xié)議簇中,以太網(wǎng)的數(shù)據(jù)傳輸使用硬件地址(MAC)來(lái)進(jìn)行識(shí)別,其中ARP(地址解析協(xié)議)完成IP地址和數(shù)據(jù)鏈路層使用的硬件地址之間的轉(zhuǎn)換,因此為了保證Zigbee網(wǎng)關(guān)在以太網(wǎng)中的通信,首先要實(shí)現(xiàn)ARP協(xié)議的功能。Zigbee網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)理論上最多可達(dá)65536個(gè),每個(gè)節(jié)點(diǎn)同樣有自己唯一的MAC地址(64位長(zhǎng)地址或16位短地址)。參考TCP/IP下的實(shí)現(xiàn)機(jī)制,我們實(shí)現(xiàn)了Zigbee協(xié)議中的適配層和ARP,實(shí)現(xiàn)IP地址到Zigbee節(jié)點(diǎn)地址的映射。協(xié)議轉(zhuǎn)換的工作原理如圖5所示,下面簡(jiǎn)單描述一下數(shù)據(jù)包在網(wǎng)關(guān)中從Ethernet向Zigbee單方向轉(zhuǎn)換過(guò)程:Ethernet端從某網(wǎng)絡(luò)接口接收一個(gè)正常發(fā)往本機(jī)的IP數(shù)據(jù)包,簡(jiǎn)單判斷后向上發(fā)給對(duì)應(yīng)的UDP或TCP處理函數(shù)進(jìn)行相應(yīng)處理,然后再向上發(fā)給網(wǎng)關(guān)應(yīng)用程序處理;網(wǎng)關(guān)應(yīng)用程序經(jīng)過(guò)簡(jiǎn)單分析后,確定要轉(zhuǎn)發(fā)給Zigbee網(wǎng)絡(luò)中的哪個(gè)節(jié)點(diǎn),通過(guò)Zigbee端的ARP解析出該節(jié)點(diǎn)在Zigbee網(wǎng)絡(luò)中的MAC地址,然后將相應(yīng)數(shù)據(jù)包成功交至該節(jié)點(diǎn),這樣就完成此次從Ethernet向Zigbee端的協(xié)議轉(zhuǎn)換。Zigbee向Ethernet端轉(zhuǎn)換類(lèi)似,不再贅述。

 

圖5 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換框圖



4   結(jié)論

    本文設(shè)計(jì)的網(wǎng)關(guān)已在我們的“基于Zigbee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的煤礦井下定位跟蹤系統(tǒng)”項(xiàng)目中得以實(shí)用,取得了較好的效果。經(jīng)測(cè)試該網(wǎng)關(guān)具有效率高、響應(yīng)實(shí)時(shí)、可靠性高、功耗低,抗干擾能力強(qiáng)等特點(diǎn),同時(shí)具有很好的通用性。由于當(dāng)前Zigbee技術(shù)還在不斷的更新和完善中,如何跟蹤最新的Zigbee技術(shù)來(lái)提高網(wǎng)關(guān)的性能以及如何提高ez_PAN的多平臺(tái)可移植性,將是我們以后研究的重點(diǎn)。

    本文作者創(chuàng)新點(diǎn):采用集成Ethernet (MAC)接口的ARM9芯片STR912作為核心擴(kuò)展設(shè)計(jì)了一個(gè)Zigbee網(wǎng)關(guān),它很好地克服了傳統(tǒng)網(wǎng)關(guān)架構(gòu)下Zigbee傳輸速率的瓶頸,大大降低了協(xié)議轉(zhuǎn)換過(guò)程中的資源和處理時(shí)間消耗。該網(wǎng)關(guān)設(shè)計(jì)思路、技術(shù)實(shí)現(xiàn)新穎,具有較強(qiáng)的實(shí)用性。

參考文獻(xiàn)

    [1] Zigbee specification v1.1. Zigbee Alliance.http://www.zigbee.org,2006

    [2] LwIP v1.2.0 source code. Leon Woestenberg.http://savannah.nongnu.org/projects/lwip/, 2006

    [3] Patrick Kinney, Kinney Consulting LLC.Gateways: Beyond the Sensor Network .Zigbee Alliance, 2005

    [4] http://www.ece.msstate.edu/~reese/msstatePAN/, 2006

    [5] 趙晨,何波,王睿.基于射頻芯片CC2420實(shí)現(xiàn)的Zigbee無(wú)線(xiàn)通信設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(1-2):P101-102

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:模糊PID控制器在起重機(jī)的應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢(xún)采購(gòu)咨詢(xún)媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)