萬智萍
(中山大學新華學院,廣州510520)
萬智萍(講師),主要研究方向為嵌入式系統(tǒng)、無線傳感網(wǎng)、圖像處理。
在當今的技術領域,使用ZigBee協(xié)議進行組網(wǎng)正趨向于成熟。使用ZigBee技術,可以簡單地組建一個廣泛適用、穩(wěn)定可靠的無線網(wǎng)絡,這種網(wǎng)絡由多個具有計算處理、無線通信、傳感技術以及控制能力的單節(jié)點構成[1]。ZigBee技術利用全球公用的公共頻率2.4GHz,應用于監(jiān)視、控制網(wǎng)絡時具有低成本、低耗電、網(wǎng)絡節(jié)點多、傳輸距離遠等特點[2]。無線網(wǎng)絡根據(jù)應用環(huán)境和要求的不同有著不同的種類劃分,在醫(yī)療、保健、化學處理和災難救助等領域應用廣泛[3-4]。并且靜態(tài)節(jié)點和動態(tài)節(jié)點隨社會發(fā)展開始相互結合,使得整個網(wǎng)絡更加靈活[5-6]。本文設計了一種無線網(wǎng)絡節(jié)點,在靜態(tài)的無線網(wǎng)絡結構中能動態(tài)地作為一個節(jié)點參與組網(wǎng),不再采用MCU控制以CC2530為主芯片的模塊的方式,而采用CC2530與FPGA相互傳輸控制;使用CC2530所具有的ZigBee協(xié)議進行互聯(lián),實現(xiàn)一種新型的動態(tài)無線網(wǎng)絡節(jié)點的設計。
ZigBee是以IEEE 802.15.4無線標準為基礎開發(fā)的無線傳感器網(wǎng)絡協(xié)議,是IEEE第一種用于傳感器與制動器等監(jiān)測和控制應用的開放無線標準[7]。無線傳感器網(wǎng)絡由許多功能相同或不同的傳感器節(jié)點組成,而每個傳感器節(jié)點由數(shù)據(jù)采集、數(shù)據(jù)處理和控制、通信和電源4個模塊組成。節(jié)點在網(wǎng)絡中負責完成數(shù)據(jù)的采集、收發(fā)和轉發(fā)[8-9]。作為ZigBee協(xié)議網(wǎng)絡節(jié)點,需要有IEEE 802.15.4標準的PHY和MAC層,這兩層組成了控制和數(shù)據(jù)傳輸?shù)募軜?,ZigBee層架構如圖1所示。
圖1 ZigBee層架構
ZigBee在底層具有OSI模型開始的兩層架構,物理層(PHY)定義了無線射頻特征,支持2種不同的信號:2450MHz和868/915MHz。本文使用的頻段在2.4 GHz ISM。IEEE 802.15.4標準允許在這個全球頻段內(nèi)使用250kbps的數(shù)據(jù)速率,還可以提供16個不同的信道。而介質訪問控制層(MAC)負責相鄰設備間的單跳數(shù)據(jù)通信,它與網(wǎng)絡層連接,經(jīng)過相互協(xié)調和數(shù)據(jù)傳送來工作,也建立設備間的單跳數(shù)據(jù)通信的協(xié)調、關聯(lián)和安全。網(wǎng)絡層(NWK)支持的網(wǎng)絡拓撲有星型、樹型和網(wǎng)格型。應用層則包括APS子層、ZDO和管理平臺以及應用對象架構。由ZigBee架構可知它們的相互關聯(lián):安全服務提供層(SSP)保護了應用層、網(wǎng)絡層(NWK)和介質訪問控制層(MAC),由此建立起了安全機制;而安全服務提供層(SSP)則是通過ZD0和管理平臺進行初始化和配置的,要求實現(xiàn)高級加密標準。
ZigBee網(wǎng)絡由一個中心協(xié)調器(Coordinator)和多個路由器(Router)組成。路由器在網(wǎng)絡中為全功能節(jié)點(Full Function Device),和選配的終端節(jié)點(End Device)一起組成了ZigBee網(wǎng)狀網(wǎng)。ZigBee網(wǎng)狀網(wǎng)拓撲結構如圖2所示。
圖2 ZigBee網(wǎng)狀網(wǎng)拓撲結構
圖2的ZigBee網(wǎng)絡中,路由器既能收發(fā)數(shù)據(jù),也能充當路由器,轉發(fā)數(shù)據(jù)。實際上,中心協(xié)調器本身和路由器沒有區(qū)別。而在一個網(wǎng)絡里,必須把某個路由器作為主節(jié)點,并設置整個網(wǎng)絡所共用的PAN ID,例如所有路由器的出廠PAN ID都設為PAN ID=0x199B。在組網(wǎng)時,需要把其中一個路由器作為主節(jié)點,設置除0x199B的0x0001~0xFF00中的任意的PAN ID。在這個網(wǎng)絡里,有唯一的PAN ID,任意想要加入網(wǎng)絡的節(jié)點,需要設置為相同的PAN ID才可以加入。該網(wǎng)絡中的任意兩個節(jié)點都可以進行通信,即使其他節(jié)點都斷電了,當然也有可能中心協(xié)調器也斷電,這兩個節(jié)點間還是可以進行通信的。
本文采用的FPGA主芯片是Altera公司的EP1C6Q240C8[10],它有240個引腳、6 030個 LE以及26個M4K結構的片上RAM(共計239 616位),而且含有2個高性能PLL以及多達185個用戶自定義的I/O口。由于該器件是FPGA與CC2530的協(xié)調操作,所以FPGA需要根據(jù)CC2530的輸入/輸出進行配置,而CC2530是既作為MCU,又作為數(shù)據(jù)傳輸端的芯片。FPGA內(nèi)部結構如圖3所示。
圖3 FPGA內(nèi)部結構
EP1C6Q240C8根據(jù)CC2530發(fā)送來的控制信號,根據(jù)時鐘單元對CC2530接收到的數(shù)據(jù)進行協(xié)議的檢測。若檢測正確,便發(fā)送到數(shù)據(jù)控制邏輯單元,再根據(jù)地址譯碼存入數(shù)據(jù)存儲單元。在需要輸出時,也是通過CC2530的信號發(fā)送來控制輸出。在FPGA中,最重要的便是數(shù)據(jù)控制邏輯單元,其中包含了控制比較和數(shù)據(jù)傳輸?shù)墓δ堋?/p>
MCU與無線傳輸接收模塊使用TI公司的CC2530,具體選用了CC2530F256[11]。它具有256KB閃存塊,VDD為2~3.6V,fc為2 394~2 507MHz。使用C語言對CC2530進行編程,主要是對RF收發(fā)器的配置,而對于該器件,需要在控制RF收發(fā)器的同時,對FPGA進行控制,部分程序如下:
以上程序主要是控制3種模式的切換:數(shù)據(jù)發(fā)送、數(shù)據(jù)接收和FPGA控制。除此之外,還需要設置3種模式的函數(shù),特別是對FPGA的多種控制,需要進行函數(shù)的嵌套。波特率的設置也要根據(jù)需要而確定。另外若作為中心協(xié)調器,還需要配置PAN ID等等。
使用CC2530最小系統(tǒng)板,其中使用RS232對其進行編程配置和數(shù)據(jù)的發(fā)送和接收。在CC2530上,RF_N和RF_P引腳作為無線的發(fā)送接收。在對芯片編程時,需要先用9針串口線把最小系統(tǒng)板的串口跟PC的串口相連,然后使用Keil軟件把程序燒錄到芯片中。在程序燒入后,拔掉PC上的插線,接到FPGA開發(fā)板的串口上。對于最小系統(tǒng)板,數(shù)據(jù)的發(fā)送和接收需要經(jīng)過SP3223E串口的轉接,由于正常的9針串口都是使用2、3引腳進行傳輸,所以習慣地把CC2530的P0.2、P0.3口接到SP3223E上,然后把CC2530的 GPIO口上編號為P0.0、P0.1、P0.4的引腳連接到FPGA上編號為A0、A1、A4的3個引腳上,這樣便完成了模塊的互連。
由于CC2530作為兩個功能的使用對于狀態(tài)的控制需要特別安排,以免出現(xiàn)錯誤。配置EP1C6Q240C8和CC2530F256后得到狀態(tài)轉換方式,狀態(tài)轉換圖如圖4所示。
圖4 狀態(tài)轉換圖
CC2530在接通電源后便處于待機狀態(tài),在由按鍵信號觸發(fā)后,便開始轉入FPGA控制狀態(tài),實際程序中是開始運行FPGA控制函數(shù),然后發(fā)送控制信號給FPGA。之后,CC2530便又返回待機狀態(tài),等待無線信號的接收,等到接收后便發(fā)送給FPGA。此時FPGA經(jīng)過收到需要接收的控制信號判斷后,對CC2530發(fā)送過來的信號進行存儲。經(jīng)過存儲之后,繼續(xù)等待FPGA的控制信號。若CC2530收到了需要發(fā)送的控制信號,F(xiàn)PGA便進入了發(fā)送等待的狀態(tài),直到CC2530開始進行接收或是再次進入等待狀態(tài)后,再讀取,然后發(fā)送給CC2530。
設置多節(jié)點后,使用串口工具連接CC2530,使用Sea-Solve軟件進行無線網(wǎng)絡的測試,得到實時測試圖Sea-Solve信號頻譜測試圖如圖5所示。
圖5 SeaSolve信號頻譜測試圖
信號在2.4GHz左右增益達到了36dBm,而其他頻率在80dBm左右,這樣可以看出,ZigBee信號能在2.4 GHz接收到敏感信號。SeaSolve頻譜峰值圖如圖6所示。
根據(jù)頻譜峰值圖,其在各頻率的峰值和原頻譜測試圖區(qū)別不大,信號在2.4GHz左右接近35dBm,由圖可以看出,在固定頻率上的信號的波動比較小,抗干擾性較好。
圖6 SeaSolve頻譜峰值圖
在組網(wǎng)之后,使用串口工具進行測試,得到測試圖如圖7所示。
圖7 串口工具測試圖
根據(jù)ZigBee協(xié)議,0FDH為數(shù)據(jù)傳輸指令,第2個16進制數(shù)為數(shù)據(jù)長度,第3~4個16進制數(shù)為目標地址。若是數(shù)據(jù)接收,則后面會加入原地址數(shù)據(jù)。由圖中可知,本機發(fā)送的地址為2001H,另一端為2000H。
本文設計了一種基于ZigBee協(xié)議的無線網(wǎng)絡節(jié)點,節(jié)點的設計對于整個無線傳感器網(wǎng)絡至關重要,其穩(wěn)定性和可靠性關系著測試任務的成?。?2]?,F(xiàn)在很多工業(yè)的設計都把CC2530單獨作為一個ZigBee模塊,這是由于TI公司在制作CC2530芯片時,已經(jīng)預配置了ZigBee協(xié)議。在使用ZigBee模塊時,只用其封裝后的RS232接口,不需要了解內(nèi)部便可使用,而實際上CC2530作為一種MCU,其內(nèi)核是8051,它除了無線功能外也具有單片機所具備的功能。使用CC2530與FPGA的搭配,不僅使得CC2530更大限度地被利用,而且彌補了FPGA需要再外接MCU控制的缺陷,也不需要再使用另外的單片機來接以CC2530作為核心的ZigBee模塊。在這個設計中,在芯片相接時需要進行頻率的搭配,電平的轉換等。因此,如果選用合適的芯片進行搭配,會使其更加快速和方便。
[1]趙華,殷奎喜,邵建華.基于無線傳感網(wǎng)的室內(nèi)安全環(huán)保監(jiān)控系統(tǒng)[J].微計算機信息,2010,26(1):21-34.
[2]王焱,符江.基于FPGA的無線傳感網(wǎng)絡協(xié)調器設計[J].微計算機信息,2010(26):25-39.
[3]Ruairí,Ronan Mac,Keane,et al.A Wireless Sensor Network Application Requirements Taxonomy [C]//Sensor Technologies and Applications,Cap Esterel,2008:209-216.
[4]Culler D,Estrin D,Srivastava M.Guest Editors'Introduction:Overview of Sensor Networks[J].Computer,2004,37(8):41-49.
[5]Luo R C,Tu L C,Chen O.Auto-Deployment of Mobile Nodes in Wireless Sensor Networks Using Grid Method[C]//IEEE International Conference on Industrial Technology,Hong Kong,2005:359-360.
[6]Akyildiz Ian F,Kasimoglu Ismail H.Wireless Sensor and Actor Networks:Research Challenges[J].Ad Hoc Networks,2004,2(4):351-367.
[7]朱斌,唐勇,譚勇,等.基于ZigBee的工控網(wǎng)數(shù)據(jù)采集傳輸系統(tǒng)設計[J].化工自動化及儀表,2010,37(4):81-85.
[8]Sinha A,Chandrakasan A.Energy Aware Software[C]//Proc.VLSI Design 2000,Calcutta,India:2000.
[9]Sinha A,Chandrakasan A.An Dynamic Power Management in Wireless Sensor Networks[J].IEEE Design & TEX of Computers,2001,18(2):62-74.
[10]Altera Corporation.Cyclone Device Handbook[EB/OL].[2012-02-21].http://www.altera.com.
[11]TI.CC253XUser's Guide[EB/OL].(2010-06-25)[2012-02-21 ]. http://focus. ti. com/docs/prod/folders/print/cc2530.html.
[12]陳凱,張丕狀,韓焱.無線傳感器網(wǎng)絡節(jié)點的模塊化設計[J].傳感器與微系統(tǒng),2008,27(6):94-96.