當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于ARM9處理器的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è)基于ARM9處理器的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)具有較好的通用性。
關(guān)鍵詞:無(wú)線(xiàn)傳感器網(wǎng)絡(luò) ;Zigbee ;嵌入式網(wǎng)關(guān);STR912 ;LwIP

引言

    無(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)推出的基于ARM966E-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(){     

OSInit();//μC/OS-II初始化

OSTaskCreate(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()是在APS層上實(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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉