IEEE 802.15.4—2003協(xié)議共規(guī)定了27個通信信道:868 MHz有1個,速率為20 kbps;915 MHz有l(wèi)O個,速率為40 kbps;2.45 GHz有16個,速率為250 khps。支持星形、樹形和網(wǎng)狀3種拓?fù)浣Y(jié)構(gòu),按照功能劃分網(wǎng)絡(luò)中有完全功能(FFD)和簡化功能(RFD)兩種不同類型的設(shè)備。為了簡化協(xié)議,IEE: E 802.15.4—2003滿足OSI參考模型,規(guī)定了物理層和MAC層,每一層完成自身所規(guī)定的任務(wù),并向上層提供服務(wù)任務(wù)接口。協(xié)議中數(shù)據(jù)通信方式可分為直接數(shù)據(jù)傳送和間接數(shù)據(jù)傳送兩種,并且以數(shù)據(jù)幀的形式打包發(fā)送出去。網(wǎng)絡(luò)可以在超幀和非超幀的模式下工作,為了提高其可靠性采用了CSMA/CA的媒質(zhì)訪問控制機制、確認(rèn)幀的應(yīng)答方式和CRC-16 ITU的校驗機制,并可以加入一些數(shù)據(jù)加密和安全控制模式。出于低功耗、低成本考慮,物理層只有14條服務(wù)原語,MAC層有35條原語。與藍牙相比,這些原語只是它的1/3。
1 硬件電路設(shè)計
一般情況下IEEE802.15.4網(wǎng)絡(luò)設(shè)備的基本構(gòu)成如圖l所示。系統(tǒng)的電源通常由電池提供,也可以由穩(wěn)壓模塊供給。RF收發(fā)芯片負(fù)責(zé)射頻信號的產(chǎn)生和接收解調(diào),其基準(zhǔn)時鐘由外部高精度的晶體振蕩器提供;同時要實現(xiàn)一些物理層和MAC層的基本功能,例如編解碼、信道選擇、功率控制、接收機能量檢測(RSSI)、鏈路質(zhì)量指示(LQI)、空閑信道評估(CCA)和硬件CRC校驗等。在實現(xiàn)這些基本功能的前提下,RF芯片應(yīng)該盡量做到低功耗、高靈敏度和較小封裝。微控制器要有豐富的資源來完成對RF芯片的控制,以及對傳感器、各類應(yīng)用接口和用戶接口的實時響應(yīng)。通常協(xié)議棧需要占用32 KB左右的存儲空間。
1.1 AT86RF230性能和內(nèi)部結(jié)構(gòu)
Atmcl公司的AT86RF230是與ZigBee/IEEE802.15.4兼容的無線射頻收發(fā)芯片。它工作在2.4 GHz ISM頻段,擁有104dB鏈路預(yù)算,-101 dB的接收靈敏度和3 dB的傳輸功率,從而減少網(wǎng)絡(luò)中所需節(jié)點設(shè)備的總數(shù),大大降低了IEEE 802.15.4系統(tǒng)的組網(wǎng)成本。所有RF關(guān)鍵器件(除了天線、晶振、去耦電容外)都集成在一塊芯片中,封裝形式采用32引腳、5 mm×5mm×0.9mm大小的QFN封裝。由該芯片所構(gòu)成的設(shè)備僅需6個外部組件,功能框圖如圖2所示。終端節(jié)點通常是電池供電,發(fā)射模式下電流消耗為 17 mA,接收模式下為15 mA,睡眠模式下僅為O.7μA;工作電壓可達1.8~3.6V,內(nèi)部有集成的1.8V LDO。AT86RF230內(nèi)部有35個可以通過SPI控制時序訪問的8位寄存器,工作時有8個基本狀態(tài)(可以根據(jù)需要擴展為14個)。片內(nèi)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的緩沖分別為129字節(jié)和130字節(jié),正好可以滿足IEEE802.15.4協(xié)議規(guī)定的最大幀長度127字節(jié)的要求。發(fā)送時需要加2字節(jié)的 CRCl6校驗碼,接收時還要多加1字節(jié)的鏈路質(zhì)量指示。
1.2 網(wǎng)絡(luò)設(shè)備的硬件電路構(gòu)成
硬件主要部分原理圖如圖3所示,模塊的數(shù)字接口為ATmega128l與 AT86RF230之間的SPI接口以及其他4條控制線。AT-megal28l是Atmel公司的8位高性能的AVR單片機。其基本特征有:采用 RISC構(gòu)架,具有135條指令,工作在16MHz時吞吐率可達16MIPS;片內(nèi)具有128 KB Flash、4 KB片內(nèi)E2PROM和8 KB SRAM,可以通過ISP或JTAG下載程序;工作頻率最高可達16 MHz,工作電壓為l.8~5.5V,掉電模式下只有O.1μA的工作電流。在本設(shè)計中ATmegal281工作于內(nèi)部為8 MHz的振蕩頻率下。如果要采用與AT86RF230同步的外部時鐘信號,那么CLKM引腳應(yīng)接到ATmegal281的XTAL1腳上,并且熔絲位要設(shè)置為外部時鐘。AT86RF230的各種工作狀態(tài)中斷信號由IRQ腳控制,這里接到ATmegal28l的ICPl腳產(chǎn)生捕獲中斷,因為捕獲中斷可通過設(shè)置噪聲消除方式來減少外界的干擾,從而提高中斷的可靠性。有關(guān)AT86RF230寄存器SPI讀 寫時序、狀態(tài)轉(zhuǎn)換圖及各種中斷控制的具體方法可以參閱參考文獻。還需注意,AT86RF230所接外部晶振X1的長期工作頻率穩(wěn)定度要小于等于40 ppm,并根據(jù)晶振和芯片的驅(qū)動能力選擇合適的負(fù)載電容。
根據(jù)選定參數(shù)使用Agilent公司提供的免費軟件Ap-pCAD,進入Passive Circuits界面選擇相應(yīng)模型。本設(shè)計選用Coplanar Waveguide模型,輸入?yún)?shù)后便可計算出饋線的特性阻抗。若根據(jù)計算結(jié)果設(shè)計出的饋線實際測試情況阻抗達不到50Ω,則可以通過增加電感L2,及相應(yīng)電容C1或C2來實現(xiàn)50Ω匹配。天線選型方面既可選用雙端100Ω的差分天線,也可選用50Ω的單端天線,只要按需增建雙端到單端變換的巴倫即可。使用偶板子或F型的PCB天線,優(yōu)點是可以獲得相對較高的增益,抗干擾能力強;片狀天線體積小,但增益不高,易受干擾。
2 軟件設(shè)計
軟件開發(fā)環(huán)境為AVRSTUDIO+AVRGCC。這兩個軟件均是免費的。軟件設(shè)計主要包括射頻驅(qū)動、外圍電路控制和ZigBee協(xié)議棧設(shè)計3個部分。基于IEEE802.15.4協(xié)議的WPAN網(wǎng)絡(luò)中的協(xié)調(diào)器和網(wǎng)絡(luò)節(jié)點的軟件流程基本相同,只是網(wǎng)絡(luò)協(xié)調(diào)器要承擔(dān)網(wǎng)絡(luò)建立的功能,網(wǎng)絡(luò)節(jié)點則要承擔(dān)一些控制或測量的功能。為了與其他ZigBee產(chǎn)品相兼容,軟件設(shè)計必須嚴(yán)格遵守IEEE 802.15.4協(xié)議。本設(shè)計建立的網(wǎng)絡(luò)拓?fù)涫欠浅瑤Y(jié)構(gòu)的星形網(wǎng)絡(luò),具體軟件流程如圖5所示。
基本過程為:網(wǎng)絡(luò)協(xié)調(diào)器首先初始化WPAN信息數(shù)據(jù)庫,建立ZigBee網(wǎng)絡(luò),分配網(wǎng)絡(luò)ID號和16位網(wǎng)絡(luò)地址,初始化鄰居設(shè)備表,然后等待其他節(jié)點連接;網(wǎng)絡(luò)節(jié)點上電后,初始化內(nèi)部資源、網(wǎng)絡(luò)節(jié)點的WPAN信息數(shù)據(jù)庫,發(fā)送掃描信號請求連接,連接成功后,記錄下網(wǎng)絡(luò)ID和分配好的16位網(wǎng)絡(luò)地址,按功能設(shè)定向協(xié)調(diào)器發(fā)送信息。因為網(wǎng)絡(luò)節(jié)點一般為電池供電,所以在空閑時要進入休眠節(jié)能狀態(tài)。外圍電路控制主要是針對傳感器、開關(guān)等器件的控制,可根據(jù)不同需求對軟件進行相應(yīng)的修改。
3 測試結(jié)果及總結(jié)
圖6為第11信道2.405 GHz的調(diào)制信號輸出頻譜,從中可以看出最大功率所對應(yīng)的頻點。在空曠環(huán)境中測試,距離150 m時通信的誤碼率可小于1%。系統(tǒng)在發(fā)射狀態(tài)下耗電為23.7 mA,接收時為21.78mA,休眠狀態(tài)下僅為2.5μA。實驗結(jié)果證明,本文設(shè)計的基于AT86RF230收發(fā)器的WPAN網(wǎng)絡(luò)設(shè)備具有容錯性高、性能優(yōu)越、超低功耗、價格低廉的優(yōu)點,能夠滿足多種場合實際需求。