萬智萍
(中山大學新華學院,廣州510520)
萬智萍(講師),主要研究方向為嵌入式系統、無線傳感網、圖像處理。
在當今的技術領域,使用ZigBee協議進行組網正趨向于成熟。使用ZigBee技術,可以簡單地組建一個廣泛適用、穩定可靠的無線網絡,這種網絡由多個具有計算處理、無線通信、傳感技術以及控制能力的單節點構成[1]。ZigBee技術利用全球公用的公共頻率2.4GHz,應用于監視、控制網絡時具有低成本、低耗電、網絡節點多、傳輸距離遠等特點[2]。無線網絡根據應用環境和要求的不同有著不同的種類劃分,在醫療、保健、化學處理和災難救助等領域應用廣泛[3-4]。并且靜態節點和動態節點隨社會發展開始相互結合,使得整個網絡更加靈活[5-6]。本文設計了一種無線網絡節點,在靜態的無線網絡結構中能動態地作為一個節點參與組網,不再采用MCU控制以CC2530為主芯片的模塊的方式,而采用CC2530與FPGA相互傳輸控制;使用CC2530所具有的ZigBee協議進行互聯,實現一種新型的動態無線網絡節點的設計。
ZigBee是以IEEE 802.15.4無線標準為基礎開發的無線傳感器網絡協議,是IEEE第一種用于傳感器與制動器等監測和控制應用的開放無線標準[7]。無線傳感器網絡由許多功能相同或不同的傳感器節點組成,而每個傳感器節點由數據采集、數據處理和控制、通信和電源4個模塊組成。節點在網絡中負責完成數據的采集、收發和轉發[8-9]。作為ZigBee協議網絡節點,需要有IEEE 802.15.4標準的PHY和MAC層,這兩層組成了控制和數據傳輸的架構,ZigBee層架構如圖1所示。

圖1 ZigBee層架構
ZigBee在底層具有OSI模型開始的兩層架構,物理層(PHY)定義了無線射頻特征,支持2種不同的信號:2450MHz和868/915MHz。本文使用的頻段在2.4 GHz ISM。IEEE 802.15.4標準允許在這個全球頻段內使用250kbps的數據速率,還可以提供16個不同的信道。而介質訪問控制層(MAC)負責相鄰設備間的單跳數據通信,它與網絡層連接,經過相互協調和數據傳送來工作,也建立設備間的單跳數據通信的協調、關聯和安全。網絡層(NWK)支持的網絡拓撲有星型、樹型和網格型。應用層則包括APS子層、ZDO和管理平臺以及應用對象架構。由ZigBee架構可知它們的相互關聯:安全服務提供層(SSP)保護了應用層、網絡層(NWK)和介質訪問控制層(MAC),由此建立起了安全機制;而安全服務提供層(SSP)則是通過ZD0和管理平臺進行初始化和配置的,要求實現高級加密標準。
ZigBee網絡由一個中心協調器(Coordinator)和多個路由器(Router)組成。路由器在網絡中為全功能節點(Full Function Device),和選配的終端節點(End Device)一起組成了ZigBee網狀網。ZigBee網狀網拓撲結構如圖2所示。

圖2 ZigBee網狀網拓撲結構
圖2的ZigBee網絡中,路由器既能收發數據,也能充當路由器,轉發數據。實際上,中心協調器本身和路由器沒有區別。而在一個網絡里,必須把某個路由器作為主節點,并設置整個網絡所共用的PAN ID,例如所有路由器的出廠PAN ID都設為PAN ID=0x199B。在組網時,需要把其中一個路由器作為主節點,設置除0x199B的0x0001~0xFF00中的任意的PAN ID。在這個網絡里,有唯一的PAN ID,任意想要加入網絡的節點,需要設置為相同的PAN ID才可以加入。該網絡中的任意兩個節點都可以進行通信,即使其他節點都斷電了,當然也有可能中心協調器也斷電,這兩個節點間還是可以進行通信的。
本文采用的FPGA主芯片是Altera公司的EP1C6Q240C8[10],它有240個引腳、6 030個 LE以及26個M4K結構的片上RAM(共計239 616位),而且含有2個高性能PLL以及多達185個用戶自定義的I/O口。由于該器件是FPGA與CC2530的協調操作,所以FPGA需要根據CC2530的輸入/輸出進行配置,而CC2530是既作為MCU,又作為數據傳輸端的芯片。FPGA內部結構如圖3所示。

圖3 FPGA內部結構
EP1C6Q240C8根據CC2530發送來的控制信號,根據時鐘單元對CC2530接收到的數據進行協議的檢測。若檢測正確,便發送到數據控制邏輯單元,再根據地址譯碼存入數據存儲單元。在需要輸出時,也是通過CC2530的信號發送來控制輸出。在FPGA中,最重要的便是數據控制邏輯單元,其中包含了控制比較和數據傳輸的功能。
MCU與無線傳輸接收模塊使用TI公司的CC2530,具體選用了CC2530F256[11]。它具有256KB閃存塊,VDD為2~3.6V,fc為2 394~2 507MHz。使用C語言對CC2530進行編程,主要是對RF收發器的配置,而對于該器件,需要在控制RF收發器的同時,對FPGA進行控制,部分程序如下:


以上程序主要是控制3種模式的切換:數據發送、數據接收和FPGA控制。除此之外,還需要設置3種模式的函數,特別是對FPGA的多種控制,需要進行函數的嵌套。波特率的設置也要根據需要而確定。另外若作為中心協調器,還需要配置PAN ID等等。
使用CC2530最小系統板,其中使用RS232對其進行編程配置和數據的發送和接收。在CC2530上,RF_N和RF_P引腳作為無線的發送接收。在對芯片編程時,需要先用9針串口線把最小系統板的串口跟PC的串口相連,然后使用Keil軟件把程序燒錄到芯片中。在程序燒入后,拔掉PC上的插線,接到FPGA開發板的串口上。對于最小系統板,數據的發送和接收需要經過SP3223E串口的轉接,由于正常的9針串口都是使用2、3引腳進行傳輸,所以習慣地把CC2530的P0.2、P0.3口接到SP3223E上,然后把CC2530的 GPIO口上編號為P0.0、P0.1、P0.4的引腳連接到FPGA上編號為A0、A1、A4的3個引腳上,這樣便完成了模塊的互連。
由于CC2530作為兩個功能的使用對于狀態的控制需要特別安排,以免出現錯誤。配置EP1C6Q240C8和CC2530F256后得到狀態轉換方式,狀態轉換圖如圖4所示。

圖4 狀態轉換圖
CC2530在接通電源后便處于待機狀態,在由按鍵信號觸發后,便開始轉入FPGA控制狀態,實際程序中是開始運行FPGA控制函數,然后發送控制信號給FPGA。之后,CC2530便又返回待機狀態,等待無線信號的接收,等到接收后便發送給FPGA。此時FPGA經過收到需要接收的控制信號判斷后,對CC2530發送過來的信號進行存儲。經過存儲之后,繼續等待FPGA的控制信號。若CC2530收到了需要發送的控制信號,FPGA便進入了發送等待的狀態,直到CC2530開始進行接收或是再次進入等待狀態后,再讀取,然后發送給CC2530。
設置多節點后,使用串口工具連接CC2530,使用Sea-Solve軟件進行無線網絡的測試,得到實時測試圖Sea-Solve信號頻譜測試圖如圖5所示。

圖5 SeaSolve信號頻譜測試圖
信號在2.4GHz左右增益達到了36dBm,而其他頻率在80dBm左右,這樣可以看出,ZigBee信號能在2.4 GHz接收到敏感信號。SeaSolve頻譜峰值圖如圖6所示。
根據頻譜峰值圖,其在各頻率的峰值和原頻譜測試圖區別不大,信號在2.4GHz左右接近35dBm,由圖可以看出,在固定頻率上的信號的波動比較小,抗干擾性較好。

圖6 SeaSolve頻譜峰值圖
在組網之后,使用串口工具進行測試,得到測試圖如圖7所示。

圖7 串口工具測試圖
根據ZigBee協議,0FDH為數據傳輸指令,第2個16進制數為數據長度,第3~4個16進制數為目標地址。若是數據接收,則后面會加入原地址數據。由圖中可知,本機發送的地址為2001H,另一端為2000H。
本文設計了一種基于ZigBee協議的無線網絡節點,節點的設計對于整個無線傳感器網絡至關重要,其穩定性和可靠性關系著測試任務的成敗[12]。現在很多工業的設計都把CC2530單獨作為一個ZigBee模塊,這是由于TI公司在制作CC2530芯片時,已經預配置了ZigBee協議。在使用ZigBee模塊時,只用其封裝后的RS232接口,不需要了解內部便可使用,而實際上CC2530作為一種MCU,其內核是8051,它除了無線功能外也具有單片機所具備的功能。使用CC2530與FPGA的搭配,不僅使得CC2530更大限度地被利用,而且彌補了FPGA需要再外接MCU控制的缺陷,也不需要再使用另外的單片機來接以CC2530作為核心的ZigBee模塊。在這個設計中,在芯片相接時需要進行頻率的搭配,電平的轉換等。因此,如果選用合適的芯片進行搭配,會使其更加快速和方便。
[1]趙華,殷奎喜,邵建華.基于無線傳感網的室內安全環保監控系統[J].微計算機信息,2010,26(1):21-34.
[2]王焱,符江.基于FPGA的無線傳感網絡協調器設計[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的工控網數據采集傳輸系統設計[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]陳凱,張丕狀,韓焱.無線傳感器網絡節點的模塊化設計[J].傳感器與微系統,2008,27(6):94-96.