《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM平臺的ZigBee網(wǎng)關(guān)設(shè)計
基于ARM平臺的ZigBee網(wǎng)關(guān)設(shè)計
來源:微型機與應(yīng)用2013年第16期
徐松松,周西峰,郭前崗
(南京郵電大學(xué) 自動化學(xué)院,江蘇 南京210046)
摘要: 針對ZigBee傳輸距離短的不足,結(jié)合以太網(wǎng)的遠程特性,設(shè)計了基于ARM平臺的ZigBee網(wǎng)關(guān)。硬件采用STM32處理器和ZigBee CC2530,在操作系統(tǒng)μC/OS-II的基礎(chǔ)上實現(xiàn)TCP/IP協(xié)議和ZigBee協(xié)議的移植。經(jīng)測試,該網(wǎng)關(guān)通用性好,實現(xiàn)了ZigBee與ARM數(shù)據(jù)通信,通過以太網(wǎng)實現(xiàn)了數(shù)據(jù)的遠程監(jiān)測。
Abstract:
Key words :

摘  要: 針對ZigBee傳輸距離短的不足,結(jié)合以太網(wǎng)的遠程特性,設(shè)計了基于ARM平臺的ZigBee網(wǎng)關(guān)。硬件采用STM32處理器和ZigBee CC2530,在操作系統(tǒng)μC/OS-II的基礎(chǔ)上實現(xiàn)TCP/IP協(xié)議和ZigBee協(xié)議的移植。經(jīng)測試,該網(wǎng)關(guān)通用性好,實現(xiàn)了ZigBee與ARM數(shù)據(jù)通信,通過以太網(wǎng)實現(xiàn)了數(shù)據(jù)的遠程監(jiān)測。
關(guān)鍵詞: ZigBee;μC/OS-II;以太網(wǎng);網(wǎng)關(guān)

    無線傳感網(wǎng)絡(luò)WSN(Wireless Sensor Network)是由部署在監(jiān)測區(qū)域內(nèi)的大量廉價微型傳感器節(jié)點組成的、通過無線通信方式形成的一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng)。ZigBee憑借低功耗、短延時、自組網(wǎng)等優(yōu)勢已廣泛應(yīng)用于無線傳感器網(wǎng)絡(luò)中,但如何實現(xiàn)ZigBee網(wǎng)絡(luò)的遠程管理和監(jiān)測逐漸成為該領(lǐng)域的重要研究課題。本文設(shè)計了基于ARM平臺的ZigBee網(wǎng)關(guān),其目的是實現(xiàn)ZigBee無線網(wǎng)絡(luò)的遠程控制。
1 系統(tǒng)概述
    網(wǎng)關(guān)主要由無線傳感器和以太網(wǎng)服務(wù)器兩部分組成。無線傳感器選用ZigBee CC2530;以太網(wǎng)服務(wù)器以STM32作為主處理器,通過串口(UART)連接以太網(wǎng)控制器ENC28J60。
    網(wǎng)關(guān)總體結(jié)構(gòu)由三部分組成,即硬件層、軟件層和應(yīng)用層[1],如圖1所示。硬件層描述了網(wǎng)關(guān)中的處理器和無線傳感等硬件;軟件層是移植μC/OS-II實時內(nèi)核、嵌入式TCP/IP協(xié)議棧LwIP和ZigBee協(xié)議棧,實現(xiàn)TCP/IP和ZigBee兩種協(xié)議棧間協(xié)議的雙向透明轉(zhuǎn)換,同時封裝一些關(guān)鍵應(yīng)用程序接口(API)函數(shù)供應(yīng)用層程序調(diào)用;應(yīng)用層是用戶根據(jù)具體的數(shù)據(jù)要求編寫的應(yīng)用程序,用戶根據(jù)實際需要使用下層定義的API函數(shù)自行擴充相關(guān)應(yīng)用。

2 網(wǎng)關(guān)硬件設(shè)計
    網(wǎng)關(guān)的工作流程為:網(wǎng)關(guān)內(nèi)的ZigBee協(xié)調(diào)器創(chuàng)建一個無線網(wǎng)路,控制區(qū)域內(nèi)ZigBee節(jié)點自動搜尋網(wǎng)絡(luò),并加入到網(wǎng)絡(luò)中;當(dāng)需要遠程監(jiān)控計算機獲得某一個節(jié)點的數(shù)據(jù)或者發(fā)送某一個指令給節(jié)點時,只需向以太網(wǎng)口發(fā)送相應(yīng)的節(jié)點地址和指令即可;網(wǎng)關(guān)以太網(wǎng)接口獲得遠程計算機的命令后,就會通過處理器的協(xié)議轉(zhuǎn)換通知ZigBee協(xié)調(diào)器向相應(yīng)的傳感器節(jié)點發(fā)送指令;傳感器節(jié)點收到命令后按照指令執(zhí)行操作,并把數(shù)據(jù)按相反的路徑發(fā)送給遠程監(jiān)測計算機。網(wǎng)關(guān)的硬件結(jié)構(gòu)如圖2所示。

   其中,微處理器通過SPI方式與ZigBee和以太網(wǎng)控制器通信,ZigBee節(jié)點是監(jiān)測區(qū)域內(nèi)的傳感器節(jié)點,自動加入?yún)f(xié)調(diào)器建立的網(wǎng)路中。
2.1 硬件選擇
    考慮到高性能、低成本等因素,網(wǎng)關(guān)選用基于Cortex-M3內(nèi)核的STM32F103作為主處理器。此系列處理器是增強型處理器,工作頻率達到72 MHz,內(nèi)置高速存儲器(高達128 KB的閃存和20 B的SRAM)接口。集成了許多緊耦合系統(tǒng)外設(shè),能滿足下一代產(chǎn)品的控制需求。調(diào)試模式有串口調(diào)試和JTAG接口,本文中采用串口調(diào)試方式,節(jié)省了開銷。多個通信接口:2個I2C接口(SMBus/PMBus)、5個USART接口、3個SPI接口等。這些特性足以滿足本網(wǎng)關(guān)設(shè)計的要求。
    CC2530是用于IEEE802.15.4、ZigBee和RF4CE應(yīng)用的一個真正的片上系統(tǒng)(SoC)解決方案。低功耗、短延時,以非常低的總成本建立龐大的網(wǎng)絡(luò)節(jié)點等特性成為無線傳感網(wǎng)絡(luò)重要技術(shù)之一,并且結(jié)合了領(lǐng)先的RF收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強型8051 CPU,系統(tǒng)內(nèi)具有可編程閃存、8 KB RAM和許多其他強大的功能。2個USART接口,調(diào)試接口用于內(nèi)部電路調(diào)試,具有兩線串行接口。
2.2 STM32與CC2530的硬件連接
    STM32處理器與CC2530的硬件連接[2]如表1所示。

3 網(wǎng)關(guān)軟件設(shè)計
    本文設(shè)計的網(wǎng)關(guān),按軟件平臺可分為運行在ZigBee無線模塊中的ZigBee協(xié)議棧程序和運行在主處理器STM32中的嵌入式以太網(wǎng)服務(wù)器程序兩部分。其中在STM32中移植?滋C/OS-II實時操作系統(tǒng),兩個不同的網(wǎng)絡(luò)使用兩類協(xié)議,即TCP/IP協(xié)議和ZigBee協(xié)議。
3.1 ZigBee協(xié)議棧
    ZigBee協(xié)調(diào)器中運行ZigBee協(xié)議棧程序,協(xié)議棧采用Z-Stack 2007,其結(jié)構(gòu)包括應(yīng)用層、網(wǎng)絡(luò)層、媒介訪問控制層和物理層。可以說Z-Stack是一個小型的操作系統(tǒng),底層和網(wǎng)絡(luò)層內(nèi)容已經(jīng)封裝好,只需根據(jù)需要修改應(yīng)用層函數(shù),通過任務(wù)輪詢機制執(zhí)行任務(wù)。
3.2 μC/0S-II下LwIP的移植
    LwIP是瑞士計算機科學(xué)院(Swedish Institute of Computer Science)的DUNKELS A等開發(fā)的一個小型開源的TCP/IP協(xié)議棧,實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,一般它只需要幾十KB RAM和40 KB左右的ROM就可以運行,使得LwIP協(xié)議棧適合應(yīng)用在低端嵌入式系統(tǒng)中。
    LwIP協(xié)議棧把所有與硬件、OS、編譯器相關(guān)的部分獨立出來,放在/src/arch目錄下,因此LwIP在?滋C/OS-II上的移植實現(xiàn)只需要修改這個目錄下的文件。LwIP成功移植到μC/OS-II操作系統(tǒng)需要修改和編程的部分[3]:
    (1)修改與STM32及IAR編譯器相關(guān)的include文件(cc.h、cpu.h、perf.h);
    (2)修改與μC/OS-II相關(guān)的一些結(jié)構(gòu)和函數(shù);
    (3)lib_arch中庫函數(shù)的實現(xiàn);
    (4)STM32網(wǎng)絡(luò)驅(qū)動程序編寫;
    (5)μC/OS-II模擬層相關(guān)代碼編寫。
    完成上面的幾個部分后就可以在?滋C/0S-II中初始化LwIP,并創(chuàng)建TCP或UDP任務(wù)。LwIP的初始化必須在μC/0SII完全啟動之后(即在任務(wù)中)進行,因為它的初始化用到了信號量等 OS相關(guān)的操作。關(guān)鍵代碼和說明如下:
main(){
OSInit();
OSTaskCreate(lwip_init_task, &LineNo11, &lwip_init_stk
[TASK_STK_SIZE-1], 0);
OSTaskCreate(usr_task,&LineNo12,&usr_stk[TASK_STK_
SIZE-1],1);
OSStart();
}
3.3 協(xié)議轉(zhuǎn)換軟件設(shè)計
    如何使得節(jié)點間數(shù)據(jù)交換透明化是網(wǎng)關(guān)應(yīng)用程序的主要問題,需要設(shè)計協(xié)議轉(zhuǎn)換。在TCP/IP協(xié)議簇中,以太網(wǎng)的數(shù)據(jù)傳輸使用硬件地址(MAC)來識別,地址解析協(xié)議(ARP)完成IP地址和數(shù)據(jù)鏈路層使用的硬件地址之間的轉(zhuǎn)換,參考TCP/IP下的實現(xiàn)機制,在網(wǎng)關(guān)軟件支持層的ZigBee協(xié)議和TCP/IP協(xié)議之上添加應(yīng)用地址適配層和應(yīng)用協(xié)議層。軟件結(jié)構(gòu)[4]如圖3所示。

 

 

    應(yīng)用地址適配層實現(xiàn)ZigBee地址、以太網(wǎng)地址與應(yīng)用層地址的映射關(guān)系,通過創(chuàng)建地址映射表以及相應(yīng)的軟件操作接口來實現(xiàn);應(yīng)用協(xié)議層在應(yīng)用地址適配層的基礎(chǔ)上,通過制定統(tǒng)一的應(yīng)用協(xié)議,規(guī)范數(shù)據(jù)交換格式;網(wǎng)關(guān)應(yīng)用程序?qū)崿F(xiàn)網(wǎng)關(guān)具體功能,以μC/OS-II任務(wù)的形式組織運行。
3.4 μC/OS-II操作系統(tǒng)
    μC/OS-II是一種免費公開源代碼、結(jié)構(gòu)小巧、具有可剝奪實時內(nèi)核的實時操作系統(tǒng),包含了任務(wù)調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間的通信和同步等基本功能。
3.4.1 系統(tǒng)移植
    在STM32微處理器平臺上移植?滋C/OS-II只需要修改OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C 3個文件。OS_CPU.H中修改聲明中與微處理器相關(guān)的常量、宏和typedef;OS_CPU_A.ASM中實現(xiàn)五個與處理器相關(guān)的函數(shù):OS_CPU_SR_Save( )、OS_CPU_SR_Restore( )、OSStart-HighRdy( )、OSCtxSw( )、OSIntCtxSw( );OS_CPU_C.C中有9個鉤子函數(shù)(空函數(shù))和一個OSTaskStkInit( )函數(shù),OSTask-StkInit( )函數(shù)功能是完成新建任務(wù)堆棧的初始化。
3.4.2 網(wǎng)關(guān)任務(wù)函數(shù)
    網(wǎng)關(guān)應(yīng)用程序是以μC/OS-II任務(wù)的形式組織運行的,μC/OS-II中主要任務(wù)是接收和處理以太網(wǎng)的指令,實現(xiàn)以太網(wǎng)和ZigBee節(jié)點間通信。系統(tǒng)中的主要任務(wù)函數(shù)包括:以太網(wǎng)數(shù)據(jù)接收任務(wù)TaskEthernetRec()、以太網(wǎng)數(shù)據(jù)處理任務(wù)TaskDealEthernet()、以太網(wǎng)數(shù)據(jù)發(fā)送任務(wù)TaskEthernetSend()、ZigBee數(shù)據(jù)接收任務(wù)TaskZigBeeRec()、ZigBee數(shù)據(jù)處理任務(wù)TaskDealZigBee()和ZigBee數(shù)據(jù)發(fā)送任務(wù)TaskZigBeeSend()。
    任務(wù)之間的數(shù)據(jù)共享通過多個數(shù)據(jù)隊列實現(xiàn),主要數(shù)據(jù)隊列包括:以太網(wǎng)數(shù)據(jù)接收緩沖隊列QueueEthernetRec()、以太網(wǎng)數(shù)據(jù)發(fā)送緩沖隊列QueueEthernetSend()、ZigBee數(shù)據(jù)接收緩沖隊列QueueZigBeeRec()及ZigBee數(shù)據(jù)發(fā)送緩沖隊列QueueZigBeeSend()。
    通過本網(wǎng)關(guān)對兩個ZigBee節(jié)點采集的溫度數(shù)據(jù)進行簡單的控制,取得了理想的控制效果。網(wǎng)關(guān)的設(shè)計彌補了ZigBee通信距離短的不足,利用低功耗、高性能的STM32微處理器,實現(xiàn)了ZigBee短距離通信的遠程控制,增加了ZigBee網(wǎng)絡(luò)應(yīng)用的廣泛性。軟件部分采用?滋C/OS-II操作系統(tǒng),方便移植到更高性能的ARM9處理器上。該網(wǎng)關(guān)所具有靈活性使其可應(yīng)用在多種不同的工業(yè)控制現(xiàn)場,具有較強的實用性。
參考文獻
[1] 張帥華,楊遠,梁玉堂,等.基于AT91SAM9260的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計[J].微計算機信息,2011,27(8):113-114.
[2] 徐琰,馬忠梅.LM3S1138與CC2420的無線傳感器網(wǎng)絡(luò)通信[J].單片機與嵌入式系統(tǒng)應(yīng)用,2009(10):18-20.
[3] 喬大雷,夏士雄,楊松.基于ARM9的嵌入式ZigBee網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].微計算機信息,2007,23(12-2):156-158.
[4] 甘勇,王華,常亞軍,等.基于ARM平臺的ZigBee網(wǎng)關(guān)設(shè)計[J].通信技術(shù),2009,42(1):199-201.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
免费日韩成人| 欧美色中文字幕| 亚洲视频你懂的| 亚洲欧洲精品一区二区三区| 欧美一区二区福利在线| 亚洲午夜激情网站| 一区二区三区成人| 夜夜嗨一区二区| 亚洲伦理自拍| 99精品欧美| 中文精品99久久国产香蕉| 日韩一级黄色av| 日韩亚洲欧美一区| 99伊人成综合| 日韩视频中文字幕| 日韩一级欧洲| 国产精品99久久久久久久女警| 一区二区久久| 亚洲一二三区在线| 中国成人在线视频| 亚洲制服丝袜在线| 亚洲欧美中文字幕| 欧美影院视频| 久久爱www久久做| 亚洲大片在线观看| 亚洲黄色视屏| 日韩一级片网址| 一区二区三区产品免费精品久久75| 亚洲色图制服丝袜| 亚洲免费综合| 久久精品电影| 免费的成人av| 欧美精品xxxxbbbb| 欧美日韩色一区| 国产精品久久91| 国产日韩欧美精品综合| 国产在线高清精品| 激情成人中文字幕| 亚洲激情在线观看视频免费| 日韩视频一区二区在线观看| 亚洲午夜一区二区三区| 亚洲字幕一区二区| 久久精品国产亚洲精品| 亚洲美女毛片| 亚洲一品av免费观看| 久久激情久久| 欧美电影打屁股sp| 欧美性猛交一区二区三区精品| 国产麻豆精品视频| 亚洲第一在线综合网站| 亚洲精品中文字幕女同| 在线亚洲一区| 久久国产精品毛片| 亚洲免费激情| 欧美在线视频网站| 欧美成人精品在线播放| 国产精品v欧美精品v日韩精品| 国产精品视频精品视频| 国产专区欧美专区| 亚洲青涩在线| 亚洲欧美日韩一区在线| 亚洲国产婷婷| 亚洲欧美www| 麻豆91精品91久久久的内涵| 欧美日韩一区二区三区在线| 国产丝袜美腿一区二区三区| 91久久精品美女高潮| 亚洲女与黑人做爰| 亚洲激情女人| 亚洲欧美在线播放| 蜜臀99久久精品久久久久久软件 | 久久一区二区三区四区| 欧美区在线播放| 国产亚洲一区二区三区| 亚洲精品网址在线观看| 久久国产加勒比精品无码| 亚洲一级黄色| 牛牛精品成人免费视频| 国产精品亚发布| 亚洲欧洲一区二区三区在线观看 | 亚洲香蕉在线观看| 欧美成人一区二区在线| 国产精品中文字幕在线观看| 亚洲黑丝在线| 欧美一区在线视频| 亚洲午夜久久久久久久久电影院| 久久综合狠狠| 国产日韩精品一区二区三区在线| 亚洲靠逼com| 亚洲第一级黄色片| 欧美一区免费| 欧美亚洲成人免费| 亚洲人成在线播放| 欧美专区在线观看| 午夜国产不卡在线观看视频| 欧美日韩视频在线一区二区| 亚洲国产精品va在线看黑人动漫| 午夜在线精品偷拍| 亚洲欧美日本在线| 欧美色网一区二区| 亚洲另类一区二区| 亚洲精品欧洲精品| 免费成人av| 韩国免费一区| 欧美一区二区免费视频| 亚洲——在线| 欧美日韩三级在线| 亚洲精品一区二区在线| 亚洲精品九九| 欧美高清在线视频观看不卡| 一区二区亚洲欧洲国产日韩| 欧美一区二区三区免费视频| 羞羞答答国产精品www一本| 国产精品成av人在线视午夜片| 亚洲另类在线视频| 日韩视频在线观看| 免费在线观看精品| 亚洲第一色在线| 亚洲欧洲精品一区| 免费亚洲电影在线观看| 亚洲福利视频免费观看| 亚洲高清在线| 老司机午夜免费精品视频 | 最新热久久免费视频| 亚洲精品美女在线| 欧美大胆成人| 亚洲精品123区| 一本色道久久综合| 欧美日韩国产一级| 日韩视频在线免费| 亚洲一区三区电影在线观看| 国产精品二区在线| 亚洲一区二区三区777| 欧美亚洲一区三区| 国产在线精品一区二区夜色| 久久av资源网站| 麻豆精品视频在线观看视频| 亚洲丶国产丶欧美一区二区三区| 最近中文字幕日韩精品| 欧美精品一卡| 一区二区三区视频观看| 亚洲欧美日韩国产一区二区三区| 欧美偷拍一区二区| 亚洲欧美日韩另类精品一区二区三区| 欧美影院精品一区| 韩国精品主播一区二区在线观看| 亚洲欧洲日本一区二区三区| 欧美久久电影| 亚洲制服少妇| 久久一区二区三区超碰国产精品| 亚洲国产精品一区二区久| 亚洲午夜伦理| 国产亚洲人成网站在线观看| 亚洲高清免费| 欧美色精品在线视频| 亚洲欧美日本日韩| 久久天天综合| 亚洲欧洲日本国产| 性8sex亚洲区入口| 在线观看视频日韩| 亚洲手机视频| 国产亚洲福利| 亚洲精品日韩精品| 国产精品国产自产拍高清av王其 | 久久精品视频一| 欧美激情女人20p| 亚洲香蕉伊综合在人在线视看| 久久中文精品| 日韩亚洲欧美成人| 午夜精品亚洲| 在线日韩欧美| 亚洲欧美精品suv| 狠狠色丁香婷婷综合| 艳女tv在线观看国产一区| 国产伦精品一区二区三区| 亚洲国产精品久久久久久女王| 欧美日韩亚洲一区三区 | 久久精品中文字幕一区二区三区| 亚洲国产综合91精品麻豆| 欧美一级欧美一级在线播放| 亚洲国产精品久久久久婷婷884 | 国产精品一区二区久激情瑜伽| 亚洲福利免费| 国产精品观看| 亚洲精品乱码久久久久| 国产伦理精品不卡| 99re6这里只有精品视频在线观看| 国产日韩欧美成人| 99在线|亚洲一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 99伊人成综合| 免费观看久久久4p| 亚洲午夜在线观看| 欧美黄在线观看| 欧美在线免费播放| 国产精品美女久久| 亚洲精品视频啊美女在线直播| 国产亚洲一本大道中文在线| 亚洲一卡久久| 亚洲精品1区2区|