LM3S9B96與CC2520平臺上的ZigBee組網(wǎng)技術(shù)及應(yīng)用
摘要:ZigBee技術(shù)是基于IEEE802.15.4的一種新興的短距離、低功耗、低成本和低速率的無線傳感器網(wǎng)絡(luò)技術(shù)。網(wǎng)絡(luò)節(jié)點作為無線傳感器網(wǎng)絡(luò)的物理載體,如何實現(xiàn)眾多網(wǎng)絡(luò)節(jié)點的智能化接入成為關(guān)鍵問題之一。本文提出了LM3S9B96+CC2520平臺上無線通信節(jié)點的智能化設(shè)計,分析了ZigBee無線組網(wǎng)與數(shù)據(jù)通信技術(shù),并實現(xiàn)了智能泊車引導系統(tǒng)的應(yīng)用。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);ZigBee;LM3S9B96;CC2520;CC2530
引言
基于IEEE802.15.4標準的ZigBee短距離低速無線個域網(wǎng)(LR-WPAN)協(xié)議將低速率、低功耗、低成本作為主要研究目標,是目前無線傳感器網(wǎng)絡(luò)的重要支撐協(xié)議之一。針對ZigBee無線短距離低功耗解決方案,雖然目前已經(jīng)有好幾家大半導體公司設(shè)計、生產(chǎn)了相應(yīng)的無線芯片并提供了對應(yīng)的支持協(xié)議棧,但是目前的ZigBee網(wǎng)絡(luò)多是采用性能較低、存儲容量較小的8/16位微控制器來實現(xiàn)的。然而,ZigBee無線網(wǎng)絡(luò)的中心控制節(jié)點往往要分析、處理網(wǎng)絡(luò)中通信的大量數(shù)據(jù),在一些對實時及高效率有嚴格要求的應(yīng)用場合,有必要采用高性能的微處理器作為節(jié)點的數(shù)據(jù)處理單元。TI公司Stellaris MCU內(nèi)部擁有一個32位ARM Cortex-M3處理器核,ARM Cortex-M3核具有高速的處理速度且支持芯片廠商自己擴展豐富的外設(shè),比如網(wǎng)口、USB口、LCD等。同時,Stellaris系列微控制器包含了100多種可以向全球供貨的32位ARM核的MCU。本文選用基于32位ARM Cottex-M3核的微控制器LM3S9B96作為無線芯片CC2520的微控制器單元構(gòu)成協(xié)調(diào)器節(jié)點,另將8051核的SoC CC2530芯片模塊作為終端采集節(jié)點。通過配置節(jié)點設(shè)備環(huán)境,實現(xiàn)了ZigBee協(xié)議下的終端數(shù)據(jù)采集及星型、樹型下的無線組網(wǎng)通信功能,驗證了不同規(guī)格的ZigBee無線模塊在同一協(xié)議棧環(huán)境下能夠正常組網(wǎng)通信,廠商提供的不同ZigBee設(shè)備可進行互操作。
1 ZigBee應(yīng)用體系結(jié)構(gòu)
本平臺采用ZigBee標準技術(shù),其具體應(yīng)用體系結(jié)構(gòu)如圖1所示。其中,硬件實體層主要由處理器模塊、無線通信模塊構(gòu)成,區(qū)別于協(xié)調(diào)器或路由器的全功能設(shè)備,作為精簡功能設(shè)備的終端節(jié)點一般還需再配上傳感器硬件模塊以實現(xiàn)數(shù)據(jù)采集;OSAL軟件功能模塊作為TIZ-Stack協(xié)議棧中的操作系統(tǒng)抽象層,統(tǒng)一管理協(xié)議棧的運行以及各種任務(wù)事件的響應(yīng);ZigBee協(xié)議棧運行于OSAL抽象系統(tǒng)之上,該協(xié)議棧是由層來量化表示其整個協(xié)議標準的,每一層負責完成所規(guī)定的任務(wù),并且向上層提供相應(yīng)的數(shù)據(jù)接口及服務(wù);ZigBee技術(shù)體系結(jié)構(gòu)主要由物理(PHY)層、媒體訪問控制(MAC)層、ZigBee網(wǎng)絡(luò)(NWK)層以及應(yīng)用(APL)層構(gòu)成,其中物理層與媒體訪問控制層協(xié)議為IEEE 802.15.4協(xié)議標準,網(wǎng)絡(luò)層由ZigBee技術(shù)聯(lián)盟制定,而應(yīng)用層的應(yīng)用則根據(jù)用戶自己的應(yīng)用需求進行開發(fā)利用。
在應(yīng)用系統(tǒng)設(shè)計過程中,考慮到LM3S9B96的優(yōu)良特性以及作為協(xié)調(diào)器對硬件節(jié)點的高性能要求,用該開發(fā)板來控制CC2520無線傳輸模塊,并把LM3S9B96+CC2520作為協(xié)調(diào)器節(jié)點,這也是TI公司提供的新的32位無線傳感器網(wǎng)絡(luò)節(jié)點方案。同時,將集成了一個8051核及射頻電路的CC2530無線模塊作為路由和終端節(jié)點,終端節(jié)點的傳感器則采用E18-D80NKDC-5V反射式接近開關(guān)傳感器,以此構(gòu)成ZigBee無線組網(wǎng)的硬件平臺。在ZigBee協(xié)議棧選擇方面,CC2520及CC2530使用的是TI公司設(shè)計的符合ZigBee2007/PRO標準系統(tǒng)的ZigBee協(xié)議棧Z-Stack。Z-Stack是最新功能的協(xié)議棧產(chǎn)品,在互操作性、節(jié)點密度管理、數(shù)據(jù)負荷管理、頻率捷變等方面有重大進步,且具有支持網(wǎng)狀網(wǎng)絡(luò)和低功耗等特點。在應(yīng)用程序模塊中,通過E18-D80NKDC-5V反射式接近開關(guān)傳感器進行障礙物檢測,利用CC2530終端節(jié)點與LM3S9B96協(xié)調(diào)器進行ZigBee星型網(wǎng)通信,構(gòu)建了智能泊車引導系統(tǒng)。
2 ZigBee網(wǎng)絡(luò)節(jié)點結(jié)構(gòu)
2.1 硬件模塊介紹
TI公司的CC2520、CC2530芯片是符合ZigBee技術(shù)的具有高集成度的無線射頻收發(fā)器件,CC2520和CC2530芯片的PHY與MAC層協(xié)議符合IEEE 802.15.4標準,模塊可工作在2 394~2 507 MHz的2.4 GHz ISM免費頻段。該頻段可提供16個物理通信信道,工作速率可達到250 kbps,碼片速率為2 Mchip/s。CC2520和CC2530無線芯片均是有著低功耗的特點,在接收數(shù)據(jù)幀時電流消耗僅為18.5 mA,其輸出功率編程可控,最大輸出功率可達5 dBm,此時電流消耗33.6 mA,支持IEEE802.15.4標準與ZigBee協(xié)議。芯片的RF電路部分還提供豐富的硬件功能支持,如封包處理、數(shù)據(jù)緩沖、爆發(fā)傳輸、數(shù)據(jù)加密、數(shù)據(jù)驗證、空閑信道評估、鏈路質(zhì)量指示和封包時間信息,可大幅減輕主機控制器的作業(yè)負荷。
TI公司LM3S9B96微控制器內(nèi)含DMA、數(shù)字/模擬轉(zhuǎn)換器(DAC)和模擬/數(shù)字轉(zhuǎn)換器(ADC)等功能模塊且提供以太網(wǎng)、CAN及USB口通信,又兼具高性能及超低功耗的特點,能為ZigBee應(yīng)用提供良好的硬件支持。無線傳感網(wǎng)絡(luò)節(jié)點的具體硬件結(jié)構(gòu)如圖2所示。
2.2 無線通信節(jié)點平臺分析
通過了解IEEE802.15.4標準、ZigBee規(guī)范,并在此理論基礎(chǔ)上研究TI公司的標準ZigBee協(xié)議棧Z-Stack,對其底層驅(qū)動、協(xié)議棧的初始化以及事件機制進行了研究與分析。LM3S9B96+CC2520節(jié)點作為當前較新的ZigBee節(jié)點平臺,基于任務(wù)調(diào)度機制,采用功能模塊化設(shè)計。
2.2.1 協(xié)調(diào)器的功能模塊配置
LM3S9B96微控制器提供了3個UART通信口,在zstack_collector工程中選擇UART0作為串行通信端口。在系統(tǒng)時鐘配置上,為使協(xié)調(diào)器節(jié)點運行在50 MHz的頻率上,需使用PLL(Phase Locked Loop,鎖相環(huán))進行系統(tǒng)時鐘4分頻配置。另外,程序中使用定時器timer0A與time0B以支持協(xié)議棧任務(wù)的運行。CC2520與LM3S9B96之間采用SPI接口,其他引腳配置為:FIFOP作為接收數(shù)據(jù)包判斷的重要引腳,對應(yīng)開發(fā)板上的中斷引腳PC6;數(shù)據(jù)緩存判斷引腳FIFO則對應(yīng)PC7。在接收模式下,當發(fā)生越界或幀接收完畢時,F(xiàn)IFOP引腳可以用來中斷微處理器,F(xiàn)IFO引腳可以用來判斷數(shù)據(jù)是否都處于接收FIFO中。CC2520與LM3S9B96微控制器的接口如圖3所示。
CC2520利用SFD、FIFO、FIFOP和CCA 4個引腳查詢數(shù)據(jù)收發(fā)狀態(tài),利用SPI接口(CSN、SO、SI、SCK)與LM3S9B96微控制器進行數(shù)據(jù)交換及命令傳送。另外,利用RSTn引腳復位芯片并使用VREG_EN引腳使能CC2520的電壓調(diào)整器,使其產(chǎn)生CC2520正常工作所需的電壓,CC2520的電壓規(guī)格范圍為1.8~3.8 V。本平臺的CC2520與CC2530使用單極天線進行通信。
2.2.2 協(xié)調(diào)器的軟件環(huán)境配置
使用“#include"config/lm3s/f8wConfig.h"”與“#include"config/lm3s/f8wCoord. h"”將該工程配置為協(xié)調(diào)器工程項目。然后在ZigBee網(wǎng)絡(luò)設(shè)置上,通過“#define DEFAULT_CHANLIST 0x00000800”宏定義將物理信道配置為11,通過“#define ZDAPP_CONFIG_PAN_ ID0xFFFF”宏定義使得協(xié)調(diào)器運行時可自行設(shè)置PAN ID,若ZDAPP CONFIG_PAN_ID值不為0xFFFF時,PANID由其指定。ZigBee節(jié)點的2.4 GHz頻段有著良好的抗干擾性能,不同信道下的通信互不干擾。在組網(wǎng)過程中務(wù)必保證網(wǎng)絡(luò)節(jié)點擁有相同的PAN ID及物理信道,處在同一網(wǎng)絡(luò)下,否則將無法正常組網(wǎng)通信。
3 ZigBee無線組網(wǎng)研究
3.1 LM3S9B96+CC2520協(xié)調(diào)器的組網(wǎng)流程
CC2520協(xié)調(diào)器軟件初始化的基本思路是:先對LM3S9B96與CC2520控制端口進行初始化;使能觸摸屏ADC通道,使能UART通信端口,使能SPI口,并通過SPI口按照CC2520芯片的操作時序初始化CC2520;操作系統(tǒng)抽象層加載協(xié)議棧運行任務(wù),并提供信息管理、任務(wù)同步、時問管理、中斷管理、任務(wù)管理、內(nèi)存管理、電源管理以及非易失存儲管理等服務(wù)。開啟無線收發(fā)機后,就可以運行任務(wù)程序等待數(shù)據(jù)的收發(fā)。協(xié)調(diào)器設(shè)備的組網(wǎng)程序流程如圖4所示。
3.2 LM3S9B96+CC2520與CC2530組網(wǎng)研究
ZigBee有著大規(guī)模的組網(wǎng)能力,每個網(wǎng)絡(luò)理論上最大可支持65 535個節(jié)點,本設(shè)計利用多達十幾個節(jié)點構(gòu)成ZigBee平臺,研究發(fā)現(xiàn)LM3S9B96與CC2530進行無線組網(wǎng),必須具備以下幾個條件。
(1)采用相同的標準協(xié)議棧
因相同協(xié)議棧組網(wǎng)握手協(xié)議及流程一樣,要保證網(wǎng)絡(luò)中信息傳輸過程一致,協(xié)調(diào)器、路由器和終端設(shè)備之間只有采用相同的協(xié)議棧,才能實現(xiàn)互操作。在組網(wǎng)實驗中,統(tǒng)一采用了ZigBee 2007/PRO協(xié)議棧。
(2)PAN ID號和信道的配置
協(xié)調(diào)器和路由器、終端設(shè)備的PAN ID號必須保持一致,所采用的信道也必須相同。網(wǎng)絡(luò)設(shè)備的PANID號與ZDAPP_CONFIG_PAN_ID宏值的設(shè)置有關(guān),若其值為0xFFFF,則協(xié)調(diào)器將產(chǎn)生一個隨機的PAN ID,而路由器和終端設(shè)備將在自己的信道上隨機選擇一個網(wǎng)絡(luò)加入,并以協(xié)調(diào)器的PAN ID作為自己的PAN ID;若其值介于0x3FFFF與0xFFFF之間,則協(xié)調(diào)器將根據(jù)自己的IEEE地址隨機產(chǎn)生一個PAN ID,而路由器和終端設(shè)備將以ZDAPP_CONFIG_PAN_ID的值作為其PAN ID;若其值小于等于0x3FFFF,則協(xié)調(diào)器、路由器和終端設(shè)備均會以ZDAPP_CONFIG_PAN_ID的值作為其PAN ID。2.4 GHz的射頻頻段被分為0x0B~0x1A共16個獨立的信道,在組網(wǎng)過程中,協(xié)調(diào)器、路由器和終端設(shè)備必須采用相同的信道。
(3)相應(yīng)的事件處理機制
CC2530芯片初始化完畢后,觸發(fā)ZB_ENTRY_EVENT事件啟動設(shè)備,該事件在用戶自定義的事件處理函數(shù)zb_Handle()salEvent()中被處理,調(diào)用zb_StartReqtaest()函數(shù)啟動路由器或者終端設(shè)備并加入LM3S9B96協(xié)調(diào)器建立的網(wǎng)絡(luò)。
該函數(shù)主要用來處理3個網(wǎng)絡(luò)事件:
◆ZB_ENTRY_EVENT,負責啟動設(shè)備組建或加入ZigBee網(wǎng)絡(luò)。
◆MY_FIND_COLLECTOR_EVT,負責CC2530路由器、終端設(shè)備和LM359896協(xié)調(diào)器之間的綁定。
◆MY_REPORT_EVT,負責定時維護LM359896協(xié)調(diào)器和CC2530路由器、終端設(shè)備之間的父子關(guān)系。
設(shè)備啟動完畢后,作為路由器或終端節(jié)點的設(shè)備將自動調(diào)用回調(diào)函數(shù)zb_StartConfirm()確認設(shè)備是否啟動成功,同時在函數(shù)內(nèi)部觸發(fā)設(shè)備綁定事件MY_FIND_COL_LECTOR_EVT。其核心代碼如下:
CC2530路由器、終端設(shè)備和LM359B96+CC2520協(xié)調(diào)器完成設(shè)備綁定后,還必須定時觸發(fā)MY_REPORT_EVT事件,該事件負責每隔myReportPer iod時間(默認為2s)向LM359B96+CC2520協(xié)調(diào)器發(fā)送父子節(jié)點綁定關(guān)系的消息以維護父子關(guān)系,其發(fā)送消息的關(guān)鍵函數(shù)為zb_SendDataRequest()。
3.3 ZigBee平臺上智能泊車引導系統(tǒng)設(shè)計
針對目前大中型停車場中普遍存在的停車難、收費麻煩等問題,在以LM3S9B96+CC2520為協(xié)調(diào)器、CC2530作為終端節(jié)點的ZigBee星狀網(wǎng)絡(luò)的基礎(chǔ)上,構(gòu)建了一個新型的停車場智能泊車引導系統(tǒng)。該系統(tǒng)采用N18-D80NK反射式接近開關(guān)傳感器采集每個車位當前是否被占用的狀態(tài)信息,通過CC2530無線節(jié)點模塊利用ZigBee傳輸?shù)絃M3S9B96協(xié)調(diào)器。LM3S9B96協(xié)調(diào)器對信息匯總后進行初步處理,以UDP通信的形式與OMAP35 30嵌入式網(wǎng)關(guān)進行局域網(wǎng)通信,并在OMAP3530嵌入式網(wǎng)關(guān)的顯示屏上對當前所有車位狀態(tài)進行同步更新并顯示,以便車主能夠直觀地選擇空閑車位。同時,還在現(xiàn)有的基礎(chǔ)上將OMAP3530的串口通信與短信查詢模塊集成在一起,實現(xiàn)了停車場空閑車位的短信查詢功能。系統(tǒng)也可以用LM3S9B96協(xié)調(diào)器上的網(wǎng)絡(luò)或USB口把采集的信息直接傳送給微機進行統(tǒng)計和管理。
結(jié)語
LM3S9B96作為32位ARM Cortex-M3微處理器,在性能方面具有處理速度快、外圍接口豐富等優(yōu)勢,它與CC2520一起組成的協(xié)調(diào)器在ZigB ee無線組網(wǎng)方面有著廣闊的發(fā)展前景。本文在了解CC2530、CC2520等無線芯片的原理與技術(shù)的基礎(chǔ)上,實現(xiàn)了基于LM3S9B96+CC2520為協(xié)調(diào)器,CC2530為路由器或終端設(shè)備的無線組網(wǎng)方案。在ZigBee技術(shù)迅猛發(fā)展的今天,相信LM3S9B96+CC2520平臺將會為解決ZigBee技術(shù)在實際應(yīng)用中的問題帶來更大的自由度和選擇性。