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

摘  要: 針對ZigBee傳輸距離短的不足,結(jié)合以太網(wǎng)的遠(yuǎn)程特性,設(shè)計了基于ARM平臺的ZigBee網(wǎng)關(guān)。硬件采用STM32處理器和ZigBee CC2530,在操作系統(tǒng)μC/OS-II的基礎(chǔ)上實(shí)現(xiàn)TCP/IP協(xié)議和ZigBee協(xié)議的移植。經(jīng)測試,該網(wǎng)關(guān)通用性好,實(shí)現(xiàn)了ZigBee與ARM數(shù)據(jù)通信,通過以太網(wǎng)實(shí)現(xiàn)了數(shù)據(jù)的遠(yuǎn)程監(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é)點(diǎn)組成的、通過無線通信方式形成的一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng)。ZigBee憑借低功耗、短延時、自組網(wǎng)等優(yōu)勢已廣泛應(yīng)用于無線傳感器網(wǎng)絡(luò)中,但如何實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)的遠(yuǎn)程管理和監(jiān)測逐漸成為該領(lǐng)域的重要研究課題。本文設(shè)計了基于ARM平臺的ZigBee網(wǎng)關(guān),其目的是實(shí)現(xiàn)ZigBee無線網(wǎng)絡(luò)的遠(yuǎn)程控制。
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實(shí)時內(nèi)核、嵌入式TCP/IP協(xié)議棧LwIP和ZigBee協(xié)議棧,實(shí)現(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ù)實(shí)際需要使用下層定義的API函數(shù)自行擴(kuò)充相關(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é)點(diǎn)自動搜尋網(wǎng)絡(luò),并加入到網(wǎng)絡(luò)中;當(dāng)需要遠(yuǎn)程監(jiān)控計算機(jī)獲得某一個節(jié)點(diǎn)的數(shù)據(jù)或者發(fā)送某一個指令給節(jié)點(diǎn)時,只需向以太網(wǎng)口發(fā)送相應(yīng)的節(jié)點(diǎn)地址和指令即可;網(wǎng)關(guān)以太網(wǎng)接口獲得遠(yuǎn)程計算機(jī)的命令后,就會通過處理器的協(xié)議轉(zhuǎn)換通知ZigBee協(xié)調(diào)器向相應(yīng)的傳感器節(jié)點(diǎn)發(fā)送指令;傳感器節(jié)點(diǎn)收到命令后按照指令執(zhí)行操作,并把數(shù)據(jù)按相反的路徑發(fā)送給遠(yuǎn)程監(jiān)測計算機(jī)。網(wǎng)關(guān)的硬件結(jié)構(gòu)如圖2所示。

   其中,微處理器通過SPI方式與ZigBee和以太網(wǎng)控制器通信,ZigBee節(jié)點(diǎn)是監(jiān)測區(qū)域內(nèi)的傳感器節(jié)點(diǎn),自動加入?yún)f(xié)調(diào)器建立的網(wǎng)路中。
2.1 硬件選擇
    考慮到高性能、低成本等因素,網(wǎng)關(guān)選用基于Cortex-M3內(nèi)核的STM32F103作為主處理器。此系列處理器是增強(qiáng)型處理器,工作頻率達(dá)到72 MHz,內(nèi)置高速存儲器(高達(dá)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é)點(diǎn)等特性成為無線傳感網(wǎng)絡(luò)重要技術(shù)之一,并且結(jié)合了領(lǐng)先的RF收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)具有可編程閃存、8 KB RAM和許多其他強(qiáng)大的功能。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),按軟件平臺可分為運(yùn)行在ZigBee無線模塊中的ZigBee協(xié)議棧程序和運(yùn)行在主處理器STM32中的嵌入式以太網(wǎng)服務(wù)器程序兩部分。其中在STM32中移植?滋C/OS-II實(shí)時操作系統(tǒng),兩個不同的網(wǎng)絡(luò)使用兩類協(xié)議,即TCP/IP協(xié)議和ZigBee協(xié)議。
3.1 ZigBee協(xié)議棧
    ZigBee協(xié)調(diào)器中運(yùn)行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ù)輪詢機(jī)制執(zhí)行任務(wù)。
3.2 μC/0S-II下LwIP的移植
    LwIP是瑞士計算機(jī)科學(xué)院(Swedish Institute of Computer Science)的DUNKELS A等開發(fā)的一個小型開源的TCP/IP協(xié)議棧,實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,一般它只需要幾十KB RAM和40 KB左右的ROM就可以運(yùn)行,使得LwIP協(xié)議棧適合應(yīng)用在低端嵌入式系統(tǒng)中。
    LwIP協(xié)議棧把所有與硬件、OS、編譯器相關(guān)的部分獨(dú)立出來,放在/src/arch目錄下,因此LwIP在?滋C/OS-II上的移植實(shí)現(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ù)的實(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ù)中)進(jìn)行,因?yàn)樗某跏蓟玫搅诵盘柫康?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é)點(diǎn)間數(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下的實(shí)現(xiàn)機(jī)制,在網(wǎng)關(guān)軟件支持層的ZigBee協(xié)議和TCP/IP協(xié)議之上添加應(yīng)用地址適配層和應(yīng)用協(xié)議層。軟件結(jié)構(gòu)[4]如圖3所示。

 

 

    應(yīng)用地址適配層實(shí)現(xiàn)ZigBee地址、以太網(wǎng)地址與應(yīng)用層地址的映射關(guān)系,通過創(chuàng)建地址映射表以及相應(yīng)的軟件操作接口來實(shí)現(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ù)的形式組織運(yùn)行。
3.4 μC/OS-II操作系統(tǒng)
    μC/OS-II是一種免費(fèi)公開源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時內(nèi)核的實(shí)時操作系統(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中實(shí)現(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ù)的形式組織運(yùn)行的,μC/OS-II中主要任務(wù)是接收和處理以太網(wǎng)的指令,實(shí)現(xiàn)以太網(wǎng)和ZigBee節(jié)點(diǎn)間通信。系統(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ù)隊(duì)列實(shí)現(xiàn),主要數(shù)據(jù)隊(duì)列包括:以太網(wǎng)數(shù)據(jù)接收緩沖隊(duì)列QueueEthernetRec()、以太網(wǎng)數(shù)據(jù)發(fā)送緩沖隊(duì)列QueueEthernetSend()、ZigBee數(shù)據(jù)接收緩沖隊(duì)列QueueZigBeeRec()及ZigBee數(shù)據(jù)發(fā)送緩沖隊(duì)列QueueZigBeeSend()。
    通過本網(wǎng)關(guān)對兩個ZigBee節(jié)點(diǎn)采集的溫度數(shù)據(jù)進(jìn)行簡單的控制,取得了理想的控制效果。網(wǎng)關(guān)的設(shè)計彌補(bǔ)了ZigBee通信距離短的不足,利用低功耗、高性能的STM32微處理器,實(shí)現(xiàn)了ZigBee短距離通信的遠(yuǎn)程控制,增加了ZigBee網(wǎng)絡(luò)應(yīng)用的廣泛性。軟件部分采用?滋C/OS-II操作系統(tǒng),方便移植到更高性能的ARM9處理器上。該網(wǎng)關(guān)所具有靈活性使其可應(yīng)用在多種不同的工業(yè)控制現(xiàn)場,具有較強(qiáng)的實(shí)用性。
參考文獻(xiàn)
[1] 張帥華,楊遠(yuǎn),梁玉堂,等.基于AT91SAM9260的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計[J].微計算機(jī)信息,2011,27(8):113-114.
[2] 徐琰,馬忠梅.LM3S1138與CC2420的無線傳感器網(wǎng)絡(luò)通信[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(10):18-20.
[3] 喬大雷,夏士雄,楊松.基于ARM9的嵌入式ZigBee網(wǎng)關(guān)設(shè)計與實(shí)現(xiàn)[J].微計算機(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亚洲国产精品_日韩亚洲一区二区
夜夜嗨av一区二区三区四季av| 国产日韩精品在线观看| 在线视频欧美日韩精品| 亚洲国产激情| 在线成人av.com| 国际精品欧美精品| 国产亚洲aⅴaaaaaa毛片| 国产精品乱人伦中文| 欧美吻胸吃奶大尺度电影| 欧美欧美午夜aⅴ在线观看| 免费看的黄色欧美网站| 久久亚洲国产成人| 久久久久久久精| 久久久久在线观看| 久久人人爽人人| 久久精品国语| 久久久久久久欧美精品| 久久精品国产一区二区三区免费看 | 99av国产精品欲麻豆| 亚洲乱码久久| 在线亚洲一区| 亚洲综合导航| 翔田千里一区二区| 久久黄色小说| 久久久噜噜噜久久中文字幕色伊伊| 久久久久久久999精品视频| 久久综合伊人77777蜜臀| 免费的成人av| 欧美日韩日日夜夜| 国产精品久久久久久久久久尿| 国产精品第三页| 国产日韩欧美综合一区| 黑人一区二区三区四区五区| 影音先锋亚洲视频| 亚洲精品视频在线观看网站| 一区二区三区四区国产| 亚洲主播在线播放| 久久精品夜色噜噜亚洲aⅴ| 最新精品在线| 亚洲一区二区在线免费观看视频| 午夜精品一区二区三区在线播放 | 亚洲激情在线播放| 亚洲免费高清| 亚洲综合国产| 久久裸体艺术| 欧美日韩精品福利| 国产伦精品一区二区三区在线观看 | 一个色综合导航| 午夜欧美大尺度福利影院在线看| 久久精品国产亚洲精品 | 久久精品二区三区| 欧美mv日韩mv亚洲| 国产精品成人免费| 激情成人综合| 99在线热播精品免费| 欧美影院精品一区| 一区二区三区欧美激情| 久久动漫亚洲| 欧美国产日韩一区二区在线观看| 国产精品jvid在线观看蜜臀| 黄色亚洲在线| 亚洲网站在线观看| 亚洲精品国久久99热| 欧美一区二区三区四区在线观看| 免费视频久久| 国产精品网站一区| 亚洲国产另类久久精品| 午夜精品久久久久久久99樱桃| 亚洲精品一品区二品区三品区| 午夜亚洲精品| 欧美黄色免费| 国产一级精品aaaaa看| 一本色道久久精品| 亚洲黄一区二区三区| 亚洲免费在线播放| 欧美不卡一卡二卡免费版| 国产精品免费在线| 亚洲激情第一页| 久久9热精品视频| 亚洲主播在线播放| 欧美激情a∨在线视频播放| 国产视频一区二区在线观看| 在线视频欧美日韩精品| 欧美有码在线观看视频| 亚洲理论在线| 亚洲福利免费| 久久成人18免费观看| 欧美日韩成人在线播放| 激情欧美一区二区| 亚洲欧美中文日韩在线| 宅男在线国产精品| 欧美 日韩 国产在线| 国产亚洲网站| 亚洲欧美成人网| 亚洲午夜精品17c| 欧美电影免费观看高清| 国产一区二区av| 亚洲欧美久久久| 亚洲天堂av综合网| 欧美激情在线播放| 亚洲国产黄色| 最新亚洲电影| 乱中年女人伦av一区二区| 国产欧美日韩免费| 亚洲在线第一页| 亚洲性图久久| 欧美日韩一区二区三区免费看| 亚洲国产成人在线视频| 亚洲激情第一区| 蜜乳av另类精品一区二区| 狠狠色丁香婷婷综合| 欧美中文字幕精品| 久久久久综合网| 韩国精品久久久999| 欧美在线观看视频| 久久久国产一区二区三区| 国产亚洲综合在线| 久久av二区| 久久这里只有精品视频首页| 国内久久视频| 亚洲激情精品| 欧美激情成人在线| 亚洲精选在线观看| 亚洲一级二级| 国产精品拍天天在线| 午夜精品视频在线| 欧美在线视频不卡| 国产一二精品视频| 久久精品一本久久99精品| 久久综合99re88久久爱| 狠狠色狠狠色综合日日91app| 亚洲第一精品久久忘忧草社区| 久久亚洲精品一区二区| 在线观看视频一区| 一本大道av伊人久久综合| 欧美日韩免费高清| 中文久久精品| 性高湖久久久久久久久| 国产偷国产偷精品高清尤物| 亚洲电影免费观看高清完整版| 玖玖玖国产精品| 亚洲精品之草原avav久久| 亚洲免费在线电影| 国产婷婷色一区二区三区在线| 亚洲二区在线| 欧美精品在线免费| 国产精品99久久99久久久二8 | 午夜精品久久久久| 国产在线精品一区二区中文| 亚洲激情成人网| 欧美视频观看一区| 性欧美xxxx视频在线观看| 蜜臀av国产精品久久久久| 亚洲美女毛片| 欧美中文字幕| 亚洲精华国产欧美| 午夜精品一区二区三区四区| 黑人中文字幕一区二区三区| 99精品国产高清一区二区| 国产精品日韩精品欧美在线| 久久国产精品久久w女人spa| 欧美精品v日韩精品v韩国精品v | av不卡免费看| 国产免费成人| 日韩视频一区二区三区在线播放| 国产精品都在这里| 久久精品日韩欧美| 欧美日韩免费观看一区三区 | 亚洲欧美日韩国产一区二区三区| 国内外成人免费激情在线视频网站| 亚洲美女少妇无套啪啪呻吟| 国产精品一区二区在线观看网站 | 亚洲美女在线国产| 久久精品亚洲精品| 亚洲欧洲综合| 久久国产精品第一页| 亚洲黄一区二区| 久久精精品视频| 日韩亚洲视频| 老色批av在线精品| 亚洲一区不卡| 欧美精品电影| 久久国产免费| 国产精品男女猛烈高潮激情 | 一区二区冒白浆视频| 久久一区激情| 亚洲一卡久久| 欧美日韩1区| 久久精品国产一区二区三| 欧美午夜精品理论片a级按摩| 亚洲电影在线看| 国产精品视频yy9099| 99riav国产精品| 一区二区在线观看av| 欧美一激情一区二区三区| 亚洲免费高清视频| 美女在线一区二区| 久久99伊人| 国产美女扒开尿口久久久| 一区二区三区精品视频在线观看|