CC2530和FPGA的新型無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:采用ZigBee協(xié)議組成無(wú)線網(wǎng)絡(luò),設(shè)計(jì)出可以自動(dòng)接入該無(wú)線網(wǎng)絡(luò)的節(jié)點(diǎn),使用了基于ZigBec技術(shù)的CC2530芯片和FPGA。摒棄了以往采用MCU控制CC2530的方式,對(duì)本身具有8051內(nèi)核的CC2530芯片進(jìn)行更大限度地利用。詳細(xì)地論述了一種新型無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)方法,實(shí)現(xiàn)了可靠和高速的無(wú)線網(wǎng)絡(luò)數(shù)據(jù)傳輸,具有操作方便快捷、低功耗和便于移動(dòng)的優(yōu)點(diǎn)。
關(guān)鍵詞:ZigBec;CC2530;FPGA;無(wú)線網(wǎng)絡(luò)
引言
在當(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)成。ZigBee技術(shù)利用全球公用的公共頻率2.4 GHz,應(yīng)用于監(jiān)視、控制網(wǎng)絡(luò)時(shí)具有低成本、低耗電、網(wǎng)絡(luò)節(jié)點(diǎn)多、傳輸距離遠(yuǎn)等特點(diǎn)。無(wú)線網(wǎng)絡(luò)根據(jù)應(yīng)用環(huán)境和要求的不同有著不同的種類劃分,在醫(yī)療、保健、化學(xué)處理和災(zāi)難救助等領(lǐng)域應(yīng)用廣泛。并且靜態(tài)節(jié)點(diǎn)和動(dòng)態(tài)節(jié)點(diǎn)隨社會(huì)發(fā)展開始相互結(jié)合,使得整個(gè)網(wǎng)絡(luò)更加靈活。本文設(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ì)。
1 網(wǎng)絡(luò)協(xié)議與結(jié)構(gòu)
1.1 ZigBee協(xié)議
ZigBee是以IEEE 802.15.4無(wú)線標(biāo)準(zhǔn)為基礎(chǔ)開發(fā)的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議,是IEEE第一種用于傳感器與制動(dòng)器等監(jiān)測(cè)和控制應(yīng)用的開放無(wú)線標(biāo)準(zhǔn)。無(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ā)。作為ZigBee協(xié)議網(wǎng)絡(luò)節(jié)點(diǎn),需要有IBEE 802.15.4標(biāo)準(zhǔn)的PHY和MAC層,這兩層組成了控制和數(shù)據(jù)傳輸?shù)募軜?gòu),ZigBee層架構(gòu)如圖1所示。
ZigBee在底層具有OSI模型開始的兩層架構(gòu),物理層(PHY)定義了無(wú)線射頻特征,支持2種不同的信號(hào):2450 MHz和868/91 5 MHz。本文使用的頻段在2.4GHz ISM。IEEE 802.1 5.4標(biāo)準(zhǔn)允許在這個(gè)全球頻段內(nèi)使用250 kbps的數(shù)據(jù)速率,還可以提供1 6個(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ù)溆行切?、樹型和網(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ò)ZDO和管理平臺(tái)進(jìn)行初始化和配置的,要求實(shí)現(xiàn)高級(jí)加密標(biāo)準(zhǔn)。
1.2 無(wú)線網(wǎng)絡(luò)結(jié)構(gòu)
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)絡(luò)中,路由器既能收發(fā)數(shù)據(jù),也能充當(dāng)路南器,轉(zhuǎn)發(fā)數(shù)據(jù)。實(shí)際上,中心協(xié)調(diào)器本身和路由器沒有區(qū)別。而在一個(gè)網(wǎng)絡(luò)里,必須把某個(gè)路由器作為主節(jié)點(diǎn),并沒置整個(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)行通信的。
2 節(jié)點(diǎn)的構(gòu)成
2.1 FPGA具體配置
本文采用的FPGA主芯片是Altera公司的EP1C6Q240C8,它有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所示。
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ù)墓δ堋?br />
2.2 CC2530內(nèi)部設(shè)置
MCU與無(wú)線傳輸接收模塊使用TI公司的CC2530,具體選用了CC2530F256。它具有256 KB閃存塊,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控制。除此之外,還需要沒置3種模式的函數(shù),特別是對(duì)FPGA的多種控制,需要進(jìn)行函數(shù)的嵌套。波特率的設(shè)置也要根據(jù)需要而確定。另外若作為中心協(xié)調(diào)器,還需要配置PAN ID等等。
3 連接及狀態(tài)
3.1 模塊連接
使用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開發(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è)引腳上,這樣便完成了模塊的互連。
3.2 運(yùn)行狀態(tài)
由于CC2530作為兩個(gè)功能的使用對(duì)于狀態(tài)的挖制需要特別安排,以免出現(xiàn)錯(cuò)誤。配置EP1C6Q240C8和CC2530F256后得到狀態(tài)轉(zhuǎn)換方式,狀態(tài)轉(zhuǎn)換圖如圖4所示。
CC2530在接通電源后便處于待機(jī)狀態(tài),在由按鍵信號(hào)觸發(fā)后,便開始轉(zhuǎn)入FPGA控制狀態(tài),實(shí)際程序中是開始運(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開始進(jìn)行接收或是再次進(jìn)入等待狀態(tài)后,再讀取,然后發(fā)送給CC2530。
4 實(shí)驗(yàn)結(jié)果
設(shè)置多節(jié)點(diǎn)后,使用串口工具連接CC2530,使用SeaSolve軟件進(jìn)行無(wú)線網(wǎng)絡(luò)的測(cè)試,得到實(shí)時(shí)測(cè)試圖SeaSolve信號(hào)頻譜測(cè)試圖如圖5所示。
信號(hào)在2.4GHz左右增益達(dá)到了36 dBm,而其他頻率在80 dBm左右,這樣可以看出,ZigBee信號(hào)能在2.4GHz接收到敏感信號(hào)。SeaSolve頻譜峰值圖如圖6所示。
根據(jù)頻譜峰值圖,其在各頻率的峰值和原頻譜測(cè)試圖區(qū)別不大,信號(hào)在2.4GHz左右接近35 dBm,由圖可以看出,在固定頻率上的信號(hào)的波動(dòng)比較小,抗干擾性較好。
在組網(wǎng)之后,使用串口工具進(jìn)行測(cè)試,得到測(cè)試圖如圖7所示。
根據(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。
結(jié)語(yǔ)
本文設(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ù)的成敗。觀在很多工業(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ì)使其更加快速和方便。