摘要:ZigBee技術是一種新興的無線通信技術,以低速率、低功耗、短距離而著稱,是目前研究的熱門技術。本文簡要介紹了ZigBee技術體系結構與特點,以及基于ZigBee技術的無線傳感器網(wǎng)絡的主要優(yōu)勢;重點介紹了一種采用符合ZigBee技術的射頻芯片MC13192實現(xiàn)無線傳感器網(wǎng)絡節(jié)點的設計方案,并對系統(tǒng)硬件接口電路與無線通信軟件流程作了說明。
引言
無線傳感器網(wǎng)絡是計算機技術、通信技術和傳感器網(wǎng)絡技術相結合的產物,是互聯(lián)網(wǎng)領域研究的熱點之一。應用于無線傳感器網(wǎng)絡的技術有許多種(如藍牙技術、紅外技術和超帶寬無線通信技術等),推動了無線傳感器網(wǎng)絡的發(fā)展。但是,在家庭控制、醫(yī)療護理和工業(yè)監(jiān)測應用中不需要很高的帶寬,需要的只是低延遲、低功耗;而如果使用現(xiàn)有的、過于復雜的無線通信技術,將非常耗電,占用過多的計算和通信資源。為滿足上述要求,ZigBee技術應運而生。ZigBee技術是一種具有統(tǒng)一技術標準的短距離無線通信技術,把低功耗、低成本作為重要目標,主要應用于低速傳輸,可以作為無線傳感器網(wǎng)絡的通信協(xié)議。
傳感器節(jié)點是組成無線傳感器網(wǎng)絡的基本單元,是構成無線傳感器網(wǎng)絡的基礎平臺。ZigBee網(wǎng)絡節(jié)點通常是一個微型嵌入式系統(tǒng),完成數(shù)據(jù)的采集、處理和傳送,是決定網(wǎng)絡性能的重要因素。本文采用Freescale公司的ZigBee無線收發(fā)射頻芯片MC13192和Philips公司的32位ARM芯片LPC2138,完成了無線傳感器網(wǎng)絡節(jié)點的設計,給出了軟、硬件設計方案,并且在硬件基礎上進行了結果分析。
1 ZigBee技術及其優(yōu)勢
圖1 ZigBee協(xié)議棧結構
ZigBee協(xié)議標準是由ZigBee聯(lián)盟與IEEE 802.15.4的任務小組來共同制定的,其協(xié)議棧主要由5層體系組成,結構如圖1所示。其中,物理層和MAC層標準主要由IEEE 802.15.4的任務小組完成;網(wǎng)絡層和安全層由ZigBee聯(lián)盟制定;應用層的開發(fā)則根據(jù)用戶的應用需要對其進行開發(fā),用戶提供機動、靈活的組網(wǎng)方式。
ZigBee技術適合于承載數(shù)據(jù)流量較小的業(yè)務,特別是無線傳感器網(wǎng)絡,因為它具有以下優(yōu)點:
功耗低。由于其傳輸速率低,發(fā)射功率僅為1 mW,所以功耗很低;而且采用了休眠模式,因此ZigBee設備非常省電。據(jù)估算,ZigBee設備僅靠兩節(jié)五號電池就可以維持長達6個月~2年左右的使用時間。
時延短。通信時延和從休眠狀態(tài)激活的時延都非常短,典型的搜索設備的時延為30 ms,休眠激活的時延為15 ms,活動設備信道接入的時延為15 ms。因此,ZigBee技術適用于對時延要求苛刻的無線控制等應用。
網(wǎng)絡容量大。一個星型結構的ZigBee網(wǎng)絡最多可以容納254個從設備和1個主設備,一個區(qū)域內最多可以同時存在100個獨立而且互相重疊覆蓋的ZigBee網(wǎng)絡。
安全可靠。采取了碰撞避免策略,避開了發(fā)送數(shù)據(jù)的競爭和沖突;采用完全確認的數(shù)據(jù)傳輸模式,每個發(fā)送的數(shù)據(jù)包都必須等待接收方的確認信息;還提供了基于循環(huán)冗余校驗的數(shù)據(jù)包完整性檢查功能,支持鑒權和認證。
基于以上特點與優(yōu)勢,ZigBee技術在無線傳感器網(wǎng)絡中的應用將有廣闊的發(fā)展空間。
2 MC13192芯片與LPC2138芯片簡介
MC13192是Freescale公司推出的符合ZigBee標準的射頻芯片。其工作頻率是2.405~2.480 GHz,該頻帶劃分為16個信道,每個信道占用5 MHz的帶寬;采用直接序列擴頻的通信技術,數(shù)據(jù)傳輸速率為250 kbps。MC13192具有一個優(yōu)化的數(shù)字核心,有助于降低MCU處理功率,縮短執(zhí)行周期。為了適應低功耗的要求,芯片除了接收、發(fā)送和空閑3種工作狀態(tài)外,還有3種低功耗運行模式: ① 掉電模式,這種模式下芯片電流小于1 μA;② 睡眠模式, 這種模式下電流在3 μA左右;③ 休眠模式,這種模式下下電流約為35 μA。芯片采用可編程功率輸出模式,發(fā)送功率為0~4 dBm,接收靈敏度可以達到-92 dBm,傳輸距離30~70 m。
LPC2138芯片是Philips公司推出的一個支持實時仿真和嵌入式跟蹤的32位ARM7微控制器。它具有豐富的片上存儲功能,帶有512 KB嵌入的高速Flash存儲器和32 KB片內靜態(tài)RAM;還帶有多個串行接口,2個8路10位A/D轉換器,1個D/A轉換器和47個GPIO,以及多達9個邊沿或電平觸發(fā)的外部中斷。LPC2138有兩種低功耗模式: 空閑模式和掉電模式。較小的封裝和極低的功耗使其可以理想地與MC13192結合,作為基于ZigBee技術的無線傳感器網(wǎng)絡節(jié)點。
3 無線傳感器網(wǎng)絡節(jié)點設計
傳感器節(jié)點一般由數(shù)據(jù)采集單元、數(shù)據(jù)處理單元、數(shù)據(jù)傳輸單元和電源管理單元等功能模塊組成,如圖2所示。數(shù)據(jù)采集單元負責采集監(jiān)視區(qū)域的信息并完成數(shù)據(jù)轉換,采集的信息包含溫度、濕度、光強度、加速度和大氣壓力等;數(shù)據(jù)處理單元負責控制整個節(jié)點的處理操作、路由協(xié)議、同步定位、功耗管理以及任務管理等;數(shù)據(jù)傳輸單元負責與其他節(jié)點進行無線通信,交換控制消息和收發(fā)采集數(shù)據(jù);電源管理單元選通所用到的傳感器。
圖2 傳感器節(jié)點組成框圖
3.1 節(jié)點硬件設計
圖3是節(jié)點的硬件原理圖。電路外圍元器件較少,主要包括6個模塊: LPC2138 MCU模塊、MC13192無線射頻模塊、電源模塊、UART串口模塊、JTAG接口模塊和數(shù)據(jù)采集I/O模塊。LPC2138和MC13192通過SPI總線連接。LPC2138的SPI接口工作在主機模式,是數(shù)據(jù)傳輸?shù)目刂品剑籑C13192設為從機模式。LPC2138通過4線SPI接口對MC13192的內部寄存器進行讀寫操作,從而完成對MC13192的控制以及數(shù)據(jù)通信。由傳感器輸出的模擬信號經過10位A/D變換后輸入到LPC2138中,LPC2138將傳感器采集的信號經過處理后通過MC13192發(fā)射出去。對傳感器的控制信號可以從MC13192的天線接收進來,通過SPI傳送到LPC2138上,經過其判斷處理后通過GPIO口傳送到傳感器上,以實現(xiàn)對傳感器的控制。MC13192芯片指定的晶振頻率為16 MHz,考慮到晶振對通信質量的影響,在制作PCB板時應將晶振的位置盡可能地靠近MC13192芯片的XTAL1和XTAL2引腳。電源電路采用兩種方式: 一種是3.6 V干電池;另一種是鈕扣電池,可以根據(jù)需要選用。
圖3 節(jié)點硬件原理圖
3.2 節(jié)點軟件設計
按照硬件電路設計思路,軟件采用模塊化結構程序設計方式。軟件模塊包括: 數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊、UART串口模塊、LPC2138與MC13192連接的SPI模塊、中斷服務模塊。系統(tǒng)軟件編程的基本思路: 先對SPI端口、MC13192控制端口和LPC2138控制端口進行初始化;使能SPI端口、UART端口和A/D;初始化MC13192芯片;開啟接收機后,即可運行任務程序,實現(xiàn)接收或發(fā)送數(shù)據(jù)。這里簡要給出LPC2138與MC13192之間的SPI通信程序。發(fā)送和接收程序流程如圖4和圖5所示。
void SPIDrvWrite (uint8 u8Addr, uint16 u16Content) {
/*SPI寫函數(shù)*/
uint8 u8TempValue;
MC13192DisableInterrupts();
/*禁止MC13192產生中斷請求*/
IO1CLR = MC13192_CE;/*使能MC13192 SPI */
SSPDR = (uint8)(u8Addr & 0x3f);
/*寫入要訪問的6位地址,設置寫*/
while((SSPSR & 0x01) == 0);/*等待發(fā)送棧為空*/
while((SSPSR & 0x10) != 0);/*等待狀態(tài)寄存器空閑*/
u8TempValue = SSPDR;/*清空地址中的內容*/
SSPDR = (uint8)(u16Content >> 8);/*寫高字節(jié)*/
while((SSPSR & 0x01) == 0);
while((SSPSR & 0x10) != 0);
u8TempValue = SSPDR;
SSPDR = (uint8)(u16Content & 0x00FF);/*寫低字節(jié)*/
while((SSPSR & 0x01) == 0);
while((SSPSR & 0x10) != 0);
u8TempValue = SSPDR;
IO1SET = MC13192_CE;/*禁止MC13192 SPI*/
MC13192RestoreInterrupts(); /*恢復MC13192中斷狀態(tài)*/
}
uint16 SPIDrvRead (uint8 u8Addr) {/*SPI讀函數(shù)*/
uint8 u8TempValue;
uint16 u16ret;
SPIClearRecieveStatReg(); /*清狀態(tài)寄存器*/
SPIClearRecieveDataReg();/*清接收數(shù)據(jù)寄存器*/
MC13192DisableInterrupts(); /*禁止MC13192產生中斷請求*/
IO1CLR = MC13192_CE;/*使能MC13192 SPI */
SSPDR = (uint8)((u8Addr & 0x3f) | 0x80);
/*寫入要訪問的6位地址,設置讀*/
while((SSPSR & 0x01) == 0); /*等待發(fā)送棧為空*/
while((SSPSR & 0x10) != 0);/*等待狀態(tài)控制器空閑*/
u8TempValue = SSPDR;
SSPDR = (uint8)0xFF;
while((SSPSR & 0x01) == 0);
while((SSPSR & 0x10) != 0);
u8TempValue = SSPDR;/*存放高字節(jié)數(shù)據(jù)*/
SSPDR = (uint8)0xFF;
while((SSPSR & 0x01) == 0);
while((SSPSR & 0x10) != 0);
u16ret = SSPDR;/*存放低字節(jié)數(shù)據(jù)*/
u16ret=u16ret+u8TempValue*256;/*存放一個完整字*/
IO1SET = MC13192_CE;/*禁止MC13192 SPI*/
MC13192RestoreInterrupts();/*恢復MC13192中斷狀態(tài)*/
return u16ret;
}
圖4 發(fā)送程序流程 圖5 接收程序流程
3.3 實驗結果
圖6為硬件節(jié)點實物圖。該電路板經過仿真調試應用良好,可以實現(xiàn)多個節(jié)點間的通信;在實驗電路板上設置了一個LED,可以通過燈的閃爍來指示信息接收的質量
圖6 硬件節(jié)點實物圖
以及接收的成。荒軌蚶么薪涌谂c計算機進行通信,并且可以通過JTAG接口電路進行程序的固化。初步的實驗表明: 通信距離基本達到預期目標,在空曠地帶以最大功率傳輸,可以以較小誤碼率傳輸60多米。采用1節(jié)電壓為3.6 V、容量為2 100 mAh的干電池供電時,節(jié)點連續(xù)工作的時間為3~4天。如果使得該節(jié)點始終工作在超低功耗的工作狀態(tài),則其工作時間可以超過1年,能夠滿足特定應用場合對電池壽命的要求。
結語
經實驗證明,以MC13192和LPC2138為核心構造的無線傳感器網(wǎng)絡節(jié)點,在功耗、傳輸距離以及無線傳輸速率等性能上都能滿足應用要求。在此方案基礎之上,通過移植ZigBee協(xié)議棧,可以構建ZigBee網(wǎng)絡的網(wǎng)絡層、應用層及安全層,再配以滿足特定要求的傳感器便可實現(xiàn)具體的應用網(wǎng)絡。
參考文獻
[1] Freescale.MC13192 Data sheet,2005.
[2] Freescale.MC13192RM Rev1.4,2005.
[3] IEEE Std. 802.15.4,2003.
[4] ZigBee Alliance. ZigBee Specification,V1.0,2003.
[5] 周立功,張華.深入淺出ARM7[M].北京:北京航空航天大學出版社,2005.
[6] 于海斌,曾鵬,梁曄.智能無線傳感器網(wǎng)絡系統(tǒng)[M].北京:科學出版社,2004.
[7] 陳玉蘭,聶軍,李紅妹.基于CC2420的無線傳感器網(wǎng)絡的硬件節(jié)點設計[J].電腦知識與技術.2006(17):114.
[8] Lu G,Krishnamachari B,Raghavendra C.Performance Evaluation of the IEEE 802.15.4 MAC for LowRate LowPower Wireless Network[J].Workshop on Energy Efficient Wireless Communicationand Network,2004.
許森(碩士研究生),主要研究方向為無線傳感器網(wǎng)絡、嵌入式系統(tǒng);
黃東(副教授),主要研究方向為控制理論與應用、軟件工程;
丁維明(副教授),主要研究方向為過程監(jiān)測與智能化技術。
作者:許森 黃東 丁維明 來源:《單片機與嵌入式系統(tǒng)應用》
我推薦大家讀
輕松參與
VS
表達立場
這是垃圾文章