《電子技術(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亚洲国产精品_日韩亚洲一区二区
国产一区二区精品在线观看| 亚洲电影成人| 久久阴道视频| 欧美亚洲一区二区在线| 9国产精品视频| 亚洲国产另类久久精品| 先锋亚洲精品| 亚洲视频香蕉人妖| 亚洲美女毛片| 亚洲人成小说网站色在线| 影音先锋另类| 精品1区2区| 激情久久久久久| 国内成+人亚洲| 国产在线播放一区二区三区| 国产日韩欧美高清| 国产女优一区| 国产精品一区免费视频| 国产啪精品视频| 国产精品青草久久久久福利99| 欧美日韩亚洲视频| 欧美日韩一区免费| 欧美三级视频在线观看| 国产精品xxxxx| 国产精品多人| 国产精品人成在线观看免费| 国产精品久久久久免费a∨大胸| 欧美性猛交视频| 国产精品无人区| 国产欧美亚洲日本| 国产在线欧美日韩| 亚洲第一二三四五区| 最新精品在线| 一区二区三区欧美视频| 亚洲一二三区在线观看| 亚洲欧美日韩直播| 亚久久调教视频| 久久精品一区二区三区不卡| 91久久久久久久久| 亚洲国产专区校园欧美| 日韩午夜av| 亚洲欧美国产高清va在线播| 欧美一区二区三区四区在线观看地址 | 国产精品乱码一区二三区小蝌蚪| 国产精品初高中精品久久| 国产精品视频999| 国产亚洲欧美一区在线观看| 激情偷拍久久| 亚洲乱亚洲高清| 亚洲一区在线观看视频| 久久黄色小说| 一本色道久久综合亚洲精品不卡 | 日韩视频免费观看高清在线视频 | 亚洲欧美日韩国产成人| 亚洲国产合集| 亚洲深夜福利网站| 欧美中文字幕第一页| 欧美电影电视剧在线观看| 欧美性大战久久久久久久蜜臀| 国产色爱av资源综合区| 亚洲国产老妈| 亚洲欧美精品在线观看| 亚洲精品一区二区网址| 香蕉亚洲视频| 欧美激情中文不卡| 国产亚洲成年网址在线观看| 亚洲人成网站777色婷婷| 性亚洲最疯狂xxxx高清| 99视频有精品| 久久国产日本精品| 欧美片第1页综合| 国产免费观看久久黄| 亚洲国产欧美在线| 午夜精品久久久久久久| aⅴ色国产欧美| 久久精品成人| 欧美日韩亚洲另类| 黄色av成人| 亚洲午夜伦理| 日韩一级不卡| 久久久噜噜噜久久人人看| 欧美午夜精品电影| 在线精品国精品国产尤物884a| 亚洲网站视频| 亚洲国产第一| 久久激情视频久久| 欧美色图首页| 亚洲国产精品一区在线观看不卡| 欧美一级片一区| 亚洲欧美一区二区三区极速播放| 欧美成人综合网站| 国产亚洲综合性久久久影院| 一区二区电影免费在线观看| 亚洲人成久久| 久久蜜桃香蕉精品一区二区三区| 国产精品久久99| 亚洲国产精品传媒在线观看| 欧美在线看片| 午夜免费在线观看精品视频| 欧美日韩国产天堂| 亚洲高清视频一区二区| 欧美影院久久久| 欧美亚洲一区二区在线| 国产精品扒开腿做爽爽爽视频| 亚洲黄色av一区| 亚洲国产精品ⅴa在线观看| 欧美中文字幕在线| 国产精品视频九色porn| 9久草视频在线视频精品| 99国产精品| 牛牛国产精品| 又紧又大又爽精品一区二区| 篠田优中文在线播放第一区| 午夜国产欧美理论在线播放 | 亚洲国产专区| 亚洲精品黄色| 欧美freesex8一10精品| 一色屋精品亚洲香蕉网站| 欧美一区二区三区在线视频| 欧美在线观看你懂的| 欧美日韩国产欧| 午夜精品剧场| 国产精品久久久爽爽爽麻豆色哟哟| 99国产精品久久久久久久成人热 | 欧美日韩天堂| 日韩视频永久免费| 一区二区免费看| 欧美日韩1区2区3区| 日韩网站在线观看| 中文在线不卡| 欧美视频在线观看 亚洲欧| 一本色道久久加勒比精品| 亚洲一区二区三区四区在线观看| 国产精品国产三级国产aⅴ无密码| 一本久道久久综合婷婷鲸鱼| 亚洲免费在线观看视频| 国产精品国产三级国产| 午夜精品在线看| 久久男人资源视频| 亚洲国产你懂的| 一本大道久久a久久综合婷婷| 欧美日韩一区在线观看| 亚洲影院在线观看| 久久久精品tv| 亚洲大黄网站| 在线亚洲高清视频| 国产精品入口尤物| 久久狠狠久久综合桃花| 欧美激情欧美激情在线五月| 一本色道婷婷久久欧美| 欧美一区二区三区在线看| 韩国视频理论视频久久| 亚洲人成人99网站| 欧美性开放视频| 欧美在线播放| 欧美成人一区在线| 日韩亚洲一区二区| 欧美一区二区三区四区夜夜大片| 国语自产精品视频在线看一大j8 | 在线观看欧美黄色| 一本大道久久a久久综合婷婷| 国产精品久久久久久久第一福利| 午夜精品久久99蜜桃的功能介绍| 免费观看在线综合| 一本久道久久综合狠狠爱| 久久精品亚洲精品| 亚洲精品资源| 欧美伊人久久久久久午夜久久久久| 狠狠久久亚洲欧美| 亚洲神马久久| 国产真实乱偷精品视频免| 一区二区三区三区在线| 国产亚洲aⅴaaaaaa毛片| 亚洲毛片在线观看.| 国产精品日韩在线播放| 亚洲国产日韩欧美综合久久| 国产精品www994| 91久久精品国产91久久| 国产精品成人国产乱一区| 亚洲国产精品尤物yw在线观看| 国产精品v欧美精品v日本精品动漫| 久久动漫亚洲| 欧美视频一区| 亚洲精品国产系列| 国产色综合天天综合网| 一本色道久久加勒比88综合| 国内外成人免费激情在线视频网站 | 在线视频亚洲一区| 卡一卡二国产精品| 中文久久精品| 久久躁狠狠躁夜夜爽| 99视频在线精品国自产拍免费观看 | 国产手机视频精品| 一区二区欧美在线| 国内精品一区二区三区| 亚洲欧美国产77777| 亚洲激情图片小说视频| 久久精品国产99精品国产亚洲性色| 亚洲精品国产精品国自产在线| 久久免费99精品久久久久久|