萬(wàn)智萍
(中山大學(xué)新華學(xué)院,廣州510520)
萬(wàn)智萍(講師),主要研究方向?yàn)榍度胧较到y(tǒng)、無(wú)線傳感網(wǎng)、圖像處理。
在當(dāng)今的技術(shù)領(lǐng)域,使用ZigBee協(xié)議進(jìn)行組網(wǎng)正趨向于成熟。使用ZigBee技術(shù),可以簡(jiǎn)單地組建一個(gè)廣泛適用、穩(wěn)定可靠的無(wú)線網(wǎng)絡(luò),這種網(wǎng)絡(luò)由多個(gè)具有計(jì)算處理、無(wú)線通信、傳感技術(shù)以及控制能力的單節(jié)點(diǎn)構(gòu)成[1]。ZigBee技術(shù)利用全球公用的公共頻率2.4GHz,應(yīng)用于監(jiān)視、控制網(wǎng)絡(luò)時(shí)具有低成本、低耗電、網(wǎng)絡(luò)節(jié)點(diǎn)多、傳輸距離遠(yuǎn)等特點(diǎn)[2]。無(wú)線網(wǎng)絡(luò)根據(jù)應(yīng)用環(huán)境和要求的不同有著不同的種類劃分,在醫(yī)療、保健、化學(xué)處理和災(zāi)難救助等領(lǐng)域應(yīng)用廣泛[3-4]。并且靜態(tài)節(jié)點(diǎn)和動(dòng)態(tài)節(jié)點(diǎn)隨社會(huì)發(fā)展開(kāi)始相互結(jié)合,使得整個(gè)網(wǎng)絡(luò)更加靈活[5-6]。本文設(shè)計(jì)了一種無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn),在靜態(tài)的無(wú)線網(wǎng)絡(luò)結(jié)構(gòu)中能動(dòng)態(tài)地作為一個(gè)節(jié)點(diǎn)參與組網(wǎng),不再采用MCU控制以CC2530為主芯片的模塊的方式,而采用CC2530與FPGA相互傳輸控制;使用CC2530所具有的ZigBee協(xié)議進(jìn)行互聯(lián),實(shí)現(xiàn)一種新型的動(dòng)態(tài)無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)。
ZigBee是以IEEE 802.15.4無(wú)線標(biāo)準(zhǔn)為基礎(chǔ)開(kāi)發(fā)的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議,是IEEE第一種用于傳感器與制動(dòng)器等監(jiān)測(cè)和控制應(yīng)用的開(kāi)放無(wú)線標(biāo)準(zhǔn)[7]。無(wú)線傳感器網(wǎng)絡(luò)由許多功能相同或不同的傳感器節(jié)點(diǎn)組成,而每個(gè)傳感器節(jié)點(diǎn)由數(shù)據(jù)采集、數(shù)據(jù)處理和控制、通信和電源4個(gè)模塊組成。節(jié)點(diǎn)在網(wǎng)絡(luò)中負(fù)責(zé)完成數(shù)據(jù)的采集、收發(fā)和轉(zhuǎn)發(fā)[8-9]。作為ZigBee協(xié)議網(wǎng)絡(luò)節(jié)點(diǎn),需要有IEEE 802.15.4標(biāo)準(zhǔn)的PHY和MAC層,這兩層組成了控制和數(shù)據(jù)傳輸?shù)募軜?gòu),ZigBee層架構(gòu)如圖1所示。
圖1 ZigBee層架構(gòu)
ZigBee在底層具有OSI模型開(kāi)始的兩層架構(gòu),物理層(PHY)定義了無(wú)線射頻特征,支持2種不同的信號(hào):2450MHz和868/915MHz。本文使用的頻段在2.4 GHz ISM。IEEE 802.15.4標(biāo)準(zhǔn)允許在這個(gè)全球頻段內(nèi)使用250kbps的數(shù)據(jù)速率,還可以提供16個(gè)不同的信道。而介質(zhì)訪問(wèn)控制層(MAC)負(fù)責(zé)相鄰設(shè)備間的單跳數(shù)據(jù)通信,它與網(wǎng)絡(luò)層連接,經(jīng)過(guò)相互協(xié)調(diào)和數(shù)據(jù)傳送來(lái)工作,也建立設(shè)備間的單跳數(shù)據(jù)通信的協(xié)調(diào)、關(guān)聯(lián)和安全。網(wǎng)絡(luò)層(NWK)支持的網(wǎng)絡(luò)拓?fù)溆行切?、?shù)型和網(wǎng)格型。應(yīng)用層則包括APS子層、ZDO和管理平臺(tái)以及應(yīng)用對(duì)象架構(gòu)。由ZigBee架構(gòu)可知它們的相互關(guān)聯(lián):安全服務(wù)提供層(SSP)保護(hù)了應(yīng)用層、網(wǎng)絡(luò)層(NWK)和介質(zhì)訪問(wèn)控制層(MAC),由此建立起了安全機(jī)制;而安全服務(wù)提供層(SSP)則是通過(guò)ZD0和管理平臺(tái)進(jìn)行初始化和配置的,要求實(shí)現(xiàn)高級(jí)加密標(biāo)準(zhǔn)。
ZigBee網(wǎng)絡(luò)由一個(gè)中心協(xié)調(diào)器(Coordinator)和多個(gè)路由器(Router)組成。路由器在網(wǎng)絡(luò)中為全功能節(jié)點(diǎn)(Full Function Device),和選配的終端節(jié)點(diǎn)(End Device)一起組成了ZigBee網(wǎng)狀網(wǎng)。ZigBee網(wǎng)狀網(wǎng)拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 ZigBee網(wǎng)狀網(wǎng)拓?fù)浣Y(jié)構(gòu)
圖2的ZigBee網(wǎng)絡(luò)中,路由器既能收發(fā)數(shù)據(jù),也能充當(dāng)路由器,轉(zhuǎn)發(fā)數(shù)據(jù)。實(shí)際上,中心協(xié)調(diào)器本身和路由器沒(méi)有區(qū)別。而在一個(gè)網(wǎng)絡(luò)里,必須把某個(gè)路由器作為主節(jié)點(diǎn),并設(shè)置整個(gè)網(wǎng)絡(luò)所共用的PAN ID,例如所有路由器的出廠PAN ID都設(shè)為PAN ID=0x199B。在組網(wǎng)時(shí),需要把其中一個(gè)路由器作為主節(jié)點(diǎn),設(shè)置除0x199B的0x0001~0xFF00中的任意的PAN ID。在這個(gè)網(wǎng)絡(luò)里,有唯一的PAN ID,任意想要加入網(wǎng)絡(luò)的節(jié)點(diǎn),需要設(shè)置為相同的PAN ID才可以加入。該網(wǎng)絡(luò)中的任意兩個(gè)節(jié)點(diǎn)都可以進(jìn)行通信,即使其他節(jié)點(diǎn)都斷電了,當(dāng)然也有可能中心協(xié)調(diào)器也斷電,這兩個(gè)節(jié)點(diǎn)間還是可以進(jìn)行通信的。
本文采用的FPGA主芯片是Altera公司的EP1C6Q240C8[10],它有240個(gè)引腳、6 030個(gè) LE以及26個(gè)M4K結(jié)構(gòu)的片上RAM(共計(jì)239 616位),而且含有2個(gè)高性能PLL以及多達(dá)185個(gè)用戶自定義的I/O口。由于該器件是FPGA與CC2530的協(xié)調(diào)操作,所以FPGA需要根據(jù)CC2530的輸入/輸出進(jìn)行配置,而CC2530是既作為MCU,又作為數(shù)據(jù)傳輸端的芯片。FPGA內(nèi)部結(jié)構(gòu)如圖3所示。
圖3 FPGA內(nèi)部結(jié)構(gòu)
EP1C6Q240C8根據(jù)CC2530發(fā)送來(lái)的控制信號(hào),根據(jù)時(shí)鐘單元對(duì)CC2530接收到的數(shù)據(jù)進(jìn)行協(xié)議的檢測(cè)。若檢測(cè)正確,便發(fā)送到數(shù)據(jù)控制邏輯單元,再根據(jù)地址譯碼存入數(shù)據(jù)存儲(chǔ)單元。在需要輸出時(shí),也是通過(guò)CC2530的信號(hào)發(fā)送來(lái)控制輸出。在FPGA中,最重要的便是數(shù)據(jù)控制邏輯單元,其中包含了控制比較和數(shù)據(jù)傳輸?shù)墓δ堋?/p>
MCU與無(wú)線傳輸接收模塊使用TI公司的CC2530,具體選用了CC2530F256[11]。它具有256KB閃存塊,VDD為2~3.6V,fc為2 394~2 507MHz。使用C語(yǔ)言對(duì)CC2530進(jìn)行編程,主要是對(duì)RF收發(fā)器的配置,而對(duì)于該器件,需要在控制RF收發(fā)器的同時(shí),對(duì)FPGA進(jìn)行控制,部分程序如下:
以上程序主要是控制3種模式的切換:數(shù)據(jù)發(fā)送、數(shù)據(jù)接收和FPGA控制。除此之外,還需要設(shè)置3種模式的函數(shù),特別是對(duì)FPGA的多種控制,需要進(jìn)行函數(shù)的嵌套。波特率的設(shè)置也要根據(jù)需要而確定。另外若作為中心協(xié)調(diào)器,還需要配置PAN ID等等。
使用CC2530最小系統(tǒng)板,其中使用RS232對(duì)其進(jìn)行編程配置和數(shù)據(jù)的發(fā)送和接收。在CC2530上,RF_N和RF_P引腳作為無(wú)線的發(fā)送接收。在對(duì)芯片編程時(shí),需要先用9針串口線把最小系統(tǒng)板的串口跟PC的串口相連,然后使用Keil軟件把程序燒錄到芯片中。在程序燒入后,拔掉PC上的插線,接到FPGA開(kāi)發(fā)板的串口上。對(duì)于最小系統(tǒng)板,數(shù)據(jù)的發(fā)送和接收需要經(jīng)過(guò)SP3223E串口的轉(zhuǎn)接,由于正常的9針串口都是使用2、3引腳進(jìn)行傳輸,所以習(xí)慣地把CC2530的P0.2、P0.3口接到SP3223E上,然后把CC2530的 GPIO口上編號(hào)為P0.0、P0.1、P0.4的引腳連接到FPGA上編號(hào)為A0、A1、A4的3個(gè)引腳上,這樣便完成了模塊的互連。
由于CC2530作為兩個(gè)功能的使用對(duì)于狀態(tài)的控制需要特別安排,以免出現(xiàn)錯(cuò)誤。配置EP1C6Q240C8和CC2530F256后得到狀態(tài)轉(zhuǎn)換方式,狀態(tài)轉(zhuǎn)換圖如圖4所示。
圖4 狀態(tài)轉(zhuǎn)換圖
CC2530在接通電源后便處于待機(jī)狀態(tài),在由按鍵信號(hào)觸發(fā)后,便開(kāi)始轉(zhuǎn)入FPGA控制狀態(tài),實(shí)際程序中是開(kāi)始運(yùn)行FPGA控制函數(shù),然后發(fā)送控制信號(hào)給FPGA。之后,CC2530便又返回待機(jī)狀態(tài),等待無(wú)線信號(hào)的接收,等到接收后便發(fā)送給FPGA。此時(shí)FPGA經(jīng)過(guò)收到需要接收的控制信號(hào)判斷后,對(duì)CC2530發(fā)送過(guò)來(lái)的信號(hào)進(jìn)行存儲(chǔ)。經(jīng)過(guò)存儲(chǔ)之后,繼續(xù)等待FPGA的控制信號(hào)。若CC2530收到了需要發(fā)送的控制信號(hào),F(xiàn)PGA便進(jìn)入了發(fā)送等待的狀態(tài),直到CC2530開(kāi)始進(jìn)行接收或是再次進(jìn)入等待狀態(tài)后,再讀取,然后發(fā)送給CC2530。
設(shè)置多節(jié)點(diǎn)后,使用串口工具連接CC2530,使用Sea-Solve軟件進(jìn)行無(wú)線網(wǎng)絡(luò)的測(cè)試,得到實(shí)時(shí)測(cè)試圖Sea-Solve信號(hào)頻譜測(cè)試圖如圖5所示。
圖5 SeaSolve信號(hào)頻譜測(cè)試圖
信號(hào)在2.4GHz左右增益達(dá)到了36dBm,而其他頻率在80dBm左右,這樣可以看出,ZigBee信號(hào)能在2.4 GHz接收到敏感信號(hào)。SeaSolve頻譜峰值圖如圖6所示。
根據(jù)頻譜峰值圖,其在各頻率的峰值和原頻譜測(cè)試圖區(qū)別不大,信號(hào)在2.4GHz左右接近35dBm,由圖可以看出,在固定頻率上的信號(hào)的波動(dòng)比較小,抗干擾性較好。
圖6 SeaSolve頻譜峰值圖
在組網(wǎng)之后,使用串口工具進(jìn)行測(cè)試,得到測(cè)試圖如圖7所示。
圖7 串口工具測(cè)試圖
根據(jù)ZigBee協(xié)議,0FDH為數(shù)據(jù)傳輸指令,第2個(gè)16進(jìn)制數(shù)為數(shù)據(jù)長(zhǎng)度,第3~4個(gè)16進(jìn)制數(shù)為目標(biāo)地址。若是數(shù)據(jù)接收,則后面會(huì)加入原地址數(shù)據(jù)。由圖中可知,本機(jī)發(fā)送的地址為2001H,另一端為2000H。
本文設(shè)計(jì)了一種基于ZigBee協(xié)議的無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn),節(jié)點(diǎn)的設(shè)計(jì)對(duì)于整個(gè)無(wú)線傳感器網(wǎng)絡(luò)至關(guān)重要,其穩(wěn)定性和可靠性關(guān)系著測(cè)試任務(wù)的成?。?2]。現(xiàn)在很多工業(yè)的設(shè)計(jì)都把CC2530單獨(dú)作為一個(gè)ZigBee模塊,這是由于TI公司在制作CC2530芯片時(shí),已經(jīng)預(yù)配置了ZigBee協(xié)議。在使用ZigBee模塊時(shí),只用其封裝后的RS232接口,不需要了解內(nèi)部便可使用,而實(shí)際上CC2530作為一種MCU,其內(nèi)核是8051,它除了無(wú)線功能外也具有單片機(jī)所具備的功能。使用CC2530與FPGA的搭配,不僅使得CC2530更大限度地被利用,而且彌補(bǔ)了FPGA需要再外接MCU控制的缺陷,也不需要再使用另外的單片機(jī)來(lái)接以CC2530作為核心的ZigBee模塊。在這個(gè)設(shè)計(jì)中,在芯片相接時(shí)需要進(jìn)行頻率的搭配,電平的轉(zhuǎn)換等。因此,如果選用合適的芯片進(jìn)行搭配,會(huì)使其更加快速和方便。
[1]趙華,殷奎喜,邵建華.基于無(wú)線傳感網(wǎng)的室內(nèi)安全環(huán)保監(jiān)控系統(tǒng)[J].微計(jì)算機(jī)信息,2010,26(1):21-34.
[2]王焱,符江.基于FPGA的無(wú)線傳感網(wǎng)絡(luò)協(xié)調(diào)器設(shè)計(jì)[J].微計(jì)算機(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)設(shè)計(jì)[J].化工自動(dòng)化及儀表,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ú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的模塊化設(shè)計(jì)[J].傳感器與微系統(tǒng),2008,27(6):94-96.