隋浩+徐國凱+孫炎輝
摘 要:利用各類傳感器采集外界信息,產(chǎn)生模擬電壓信號,通過模數(shù)轉(zhuǎn)換進(jìn)而得到數(shù)字信號,摒棄傳統(tǒng)的有線串口發(fā)數(shù)模式,用CC2430芯片作為節(jié)點的核心芯片,負(fù)責(zé)數(shù)據(jù)處理和無線射頻工作。根據(jù)以上要求給出了系統(tǒng)硬件結(jié)構(gòu)及軟件設(shè)計方案,并綜合考慮到了節(jié)點的功耗問題。
關(guān)鍵詞:CC2430;無線傳感網(wǎng)絡(luò);節(jié)點;ZigBee協(xié)議
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-1302(2014)02-0047-04
0 引 言
保護(hù)民族物質(zhì)文化和非物質(zhì)文化遺產(chǎn)的任務(wù)一直都為國家所重視,少數(shù)民族博物館中的文物是國家最為寶貴的民族物質(zhì)文化遺產(chǎn),利用發(fā)展前景最為廣闊的無線傳感技術(shù),將數(shù)字化保護(hù)概念落實到實際的少數(shù)民族遺產(chǎn)保護(hù)當(dāng)中,搭建無線傳感網(wǎng)絡(luò)以完成數(shù)據(jù)的采集和傳遞,將博物館中的實時環(huán)境信息轉(zhuǎn)換為易讀的數(shù)字信號傳遞給管理員。
受到“十一五”國家科技支撐計劃的重點課題《民族特需品數(shù)字化關(guān)鍵技術(shù)研究與示范應(yīng)用[課題編號2009BAH41B05]》項目的支持,研發(fā)一套適合民族家具博物館的物聯(lián)網(wǎng)無線傳感網(wǎng)絡(luò)產(chǎn)品。本文對整個無線傳感網(wǎng)絡(luò)體系中的網(wǎng)絡(luò)節(jié)點硬件、軟件提出具體設(shè)計思路和實現(xiàn)方法。
1 ZigBee網(wǎng)絡(luò)路徑
1.1 路由基本算法
ZigBee[1]網(wǎng)絡(luò)區(qū)別于其他無線傳感網(wǎng)絡(luò)之處就在于其預(yù)先進(jìn)行地址分配,各節(jié)點由分布式算法根據(jù)一系列網(wǎng)絡(luò)參數(shù)來確定,節(jié)點只有通過協(xié)調(diào)器或者路由器節(jié)點才能加入網(wǎng)絡(luò),加入網(wǎng)絡(luò)后隨即獲得一個唯一的地址。我們這里設(shè)Cm和Rm分別為節(jié)點所能分配的最大節(jié)點數(shù)和路由節(jié)點數(shù),Lm為網(wǎng)絡(luò)的最大深度,則網(wǎng)絡(luò)深度為d的路由節(jié)點所能分配的地址塊大小如式(1)所示:
(1)
深度為d的父親節(jié)點分配的第k個路由節(jié)點和第n個終端節(jié)點的地址分別為:
(2)
(3)
在式(2)、(3)中,Aparent代表負(fù)責(zé)分配網(wǎng)絡(luò)地址的父節(jié)點地址,ZigBee網(wǎng)絡(luò)路由算法應(yīng)用的就是這種分布式網(wǎng)絡(luò)地址分配機(jī)制。
1.2 基于AODV路由算法
AODV即無線自組網(wǎng)按需平面距離向量路由協(xié)議,此算法通過檢查自己的路由表,如存在到達(dá)目的節(jié)點的表項則直接跳取到下一地址,否則節(jié)點以洪泛的方式向網(wǎng)絡(luò)廣播路由請求數(shù)據(jù)包,當(dāng)該數(shù)據(jù)包到達(dá)目的節(jié)點時,目的節(jié)點以單播方式向路由發(fā)起節(jié)點回復(fù)路由數(shù)據(jù)包[2]。當(dāng)路由發(fā)起節(jié)點收到路由回復(fù)包后,一條新加入到路由表的通信鏈路便產(chǎn)生了。
該算法有很多優(yōu)點能夠大大提高網(wǎng)絡(luò)通信效率,有效地避免傳統(tǒng)網(wǎng)絡(luò)路由算法中出現(xiàn)的環(huán)路問題?;谛枨蟮木嚯x向量鏈路中由于發(fā)送數(shù)據(jù)之前需要對現(xiàn)有的通信路徑進(jìn)行遍歷過程,因此在網(wǎng)絡(luò)較大的情況時也會導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)傳輸延時增大,進(jìn)而造成網(wǎng)絡(luò)效率不高的問題。
1.3 基于樹型結(jié)構(gòu)路由算法
在網(wǎng)絡(luò)中,深度為d,源節(jié)點S若要想傳輸?shù)饺我夤?jié)點D時,就可以簡單地根據(jù)的公式S (4) 依據(jù)式(4)來進(jìn)行跳到下一個地址的行為,否則將數(shù)據(jù)輸出給父親節(jié)點。該算法的優(yōu)點是空間復(fù)雜度以及時間復(fù)雜度比較簡單,適用在網(wǎng)絡(luò)節(jié)點數(shù)目不是很多的情況,否則會導(dǎo)致分組傳輸時延高的缺點,從而造成網(wǎng)絡(luò)效率低下的問題。 Cluster-Tree算法是在樹型路由算法技術(shù)基礎(chǔ)上,由協(xié)調(diào)器作為中心點生成簇樹狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),通過判斷目的節(jié)點是否是具有轉(zhuǎn)發(fā)功能設(shè)備的下屬節(jié)點,以決定是否進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā),最終達(dá)到分層遍歷查找目的節(jié)點的結(jié)果[3]。這種算法可以大大減少信息冗余度和源節(jié)點的發(fā)送功率,對于數(shù)據(jù)高內(nèi)聚非常有利,也在一定程度上彌補(bǔ)了樹型結(jié)構(gòu)的缺點。 2 ZigBee網(wǎng)絡(luò)節(jié)點硬件設(shè)計 2.1 節(jié)點總體硬件設(shè)計 節(jié)點按功能共可分為CC2430模塊、電源模塊和天線模塊三大模塊。其總體硬件設(shè)計如圖1所示。 圖1 節(jié)點總體硬件圖 2.2 CC2430模塊 CC2430具有增強(qiáng)性能的8051MCU、8 KB RAM等,其增強(qiáng)的8051MCU核的性能是工業(yè)標(biāo)準(zhǔn)8051核性能的8倍[4]。CC2430/CC2431還具備直接存儲器定址(DMA)功能,它能夠被用于減輕8051微控制器內(nèi)核對數(shù)據(jù)搬移,因此提高了芯片整體的性能、可編程看門狗定時器、AES-128 安全協(xié)處理器、多達(dá)8輸入的8~14位ADC、USART、睡眠模式定時、上電復(fù)位、掉電檢測電路(Brown Out Detection)等,CC2430有兩個晶振,分別是32 MHz晶振和32.768 kHz晶振。 2.3 天線模塊 CC2430發(fā)送數(shù)據(jù)時,信號從差分射頻端口RF_P、RF_N經(jīng)巴倫電路變?yōu)閱味诵盘?,?RXTX_SWITCH信號控制2個邏輯開關(guān),選通功率放大電路(PA),放大后的信號從天線發(fā)射出去。接收信號時,在RXTX_SWITCH信號控制下,從天線接收的信號經(jīng)低噪聲放大電路(LNA)放大,巴倫電路轉(zhuǎn)換,由RF_P、RF_N端口接收。天線模塊電路圖如圖2所示。 2.4 電源模塊 電源模塊主要是由TPS79533低壓穩(wěn)壓器輸出3.3 V電壓,其輸入電壓范圍是2.7~5.5 V,并具有較高的電源抑制比、超低噪聲、較好的電壓線性和負(fù)載瞬態(tài)效應(yīng)以及較小的電壓漂移??梢詫? V的電源通過DC-DC變換器得到3.3 V的工作電壓,電源電路如圖3所示。 圖2 天線模塊電路 圖3 電源模塊電路 3 ZigBee網(wǎng)絡(luò)節(jié)點軟件設(shè)計 3.1 ZigBee協(xié)議棧 ZigBee無線網(wǎng)絡(luò)的實現(xiàn),是建立在ZigBee協(xié)議棧[5,6]的基礎(chǔ)上的,協(xié)議棧采用分層的結(jié)構(gòu),協(xié)議分層的目的是為了使各層相對獨(dú)立,每一層都提供一些服務(wù),服務(wù)由協(xié)議定義,它們向高層提供服務(wù),并由低層提供服務(wù)。
在ZigBee協(xié)議棧中,物理層、MAC層位于最低層,且與硬件相關(guān);網(wǎng)絡(luò)層、安全層、應(yīng)用框架層以及安全層建立在物理層和MAC層之上,并且完全與硬件無關(guān)。分層的結(jié)構(gòu)脈絡(luò)清晰、一目了然,給設(shè)計和調(diào)試帶來極大的方便。
Z-Stack采用了操作系統(tǒng)的思想來構(gòu)建,采用事件輪循機(jī)制[7],當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,事件發(fā)生時,喚醒系統(tǒng),開始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時有幾個事件發(fā)生,先判斷優(yōu)先級,再逐次處理事件。
3.2 協(xié)調(diào)器網(wǎng)絡(luò)的建立
在ZigBee網(wǎng)絡(luò)中,網(wǎng)絡(luò)協(xié)調(diào)器具有建立一個網(wǎng)絡(luò)、維護(hù)鄰居設(shè)備表、對邏輯網(wǎng)絡(luò)地址進(jìn)行分配、允許設(shè)備MAC層/應(yīng)用層的連接或斷開網(wǎng)絡(luò)的功能,網(wǎng)絡(luò)協(xié)調(diào)器在進(jìn)行一些初始化之后調(diào)用aplFormNetwork()來建立網(wǎng)絡(luò)。協(xié)調(diào)器通過掃描一個空信道來建立一個新的網(wǎng)絡(luò),然后選擇一個隨機(jī)的PANID并開始監(jiān)聽此信道[8]。同時協(xié)調(diào)器還有一個目前連接設(shè)備的列表,以支持其他設(shè)備加入網(wǎng)絡(luò)。網(wǎng)絡(luò)建立程序如下:
void main(void){
……
halInit();//硬件初始化
aplInit();//協(xié)議棧初始化
……
aplFormNetwork();//建立網(wǎng)絡(luò)
while(apsBusy()){apsFSM();}//等待網(wǎng)絡(luò)相應(yīng)
while(1)
{apsFSM();//執(zhí)行協(xié)議棧
}
……
}
3.3 節(jié)點加入網(wǎng)絡(luò)
當(dāng)一個網(wǎng)絡(luò)建立成功以后,便要考慮路由節(jié)點和RFD節(jié)點如何加入到網(wǎng)絡(luò)中去。節(jié)點通過調(diào)用aplJoinNetword()函數(shù)加入到協(xié)調(diào)器建立的網(wǎng)絡(luò)當(dāng)中。通過掃描信道找到協(xié)調(diào)器并進(jìn)一步申請加入網(wǎng)絡(luò),獲取協(xié)調(diào)器的地址,同時將自己的地址發(fā)送給協(xié)調(diào)器。網(wǎng)絡(luò)加入成功以后,網(wǎng)絡(luò)節(jié)點則進(jìn)入休眠狀態(tài),知道有命令或者數(shù)據(jù)發(fā)送時才被喚醒。網(wǎng)絡(luò)加入的程序如下:
void main(void){
halInit();//硬件初始化
aplInit();//協(xié)議棧初始化
……
do{
aplJoinNetwork();//加入網(wǎng)絡(luò)
while(apsBusy()){apsFSM();}//等待網(wǎng)絡(luò)格式化
}
while(aplGetStatus()=WXLPAN_STATUS_SUCCESS);
while(1){apsFSM();}//執(zhí)行協(xié)議棧
……
}
3.4 數(shù)據(jù)發(fā)送與接收
在ZigBee協(xié)議棧中進(jìn)行數(shù)據(jù)發(fā)送可以調(diào)用AF-DataRequest函數(shù)來實現(xiàn),該函數(shù)會調(diào)用協(xié)議棧里面與硬件相關(guān)的函數(shù)最終將數(shù)據(jù)通過天線發(fā)送出去。以下是AF_DataRequest數(shù)據(jù)發(fā)送程序:
afStatus_t AF_DataRequest(afAddrType_t *dstAddr,
endPointDesc_t *srcEP,,
uint16 cID,
uint16 len,
uint8 *buf,
uint8 *transID,
uint8 options,
uint8 radius)
上面的程序中:afAddrType_t *dstAddr為包含了目的節(jié)點的網(wǎng)絡(luò)地址以及發(fā)送數(shù)據(jù)的格式;endPointDesc_t *srcEP為使用網(wǎng)絡(luò)地址來區(qū)分不同的節(jié)點,用端口號來區(qū)分統(tǒng)一節(jié)點的不同端口;uint16 cID為描述命令號,不同的命令號代表不同的控制命令,用來表示不同的控制操作;uint16 len為表示發(fā)送數(shù)據(jù)的長度;uint8 *buf為指向發(fā)送數(shù)據(jù)緩沖區(qū)的指針;uint8 *transID為指向發(fā)送序號的指針,每次發(fā)送數(shù)據(jù)后就會自動加1,配合接收端計算丟包率;uint8 options為默認(rèn)取AF_DISCV_ROUTE;uint8 radius為默認(rèn)取AF_DEFAULT_RADIUS。
在發(fā)送數(shù)據(jù)之前,接收的設(shè)備必須處于工作狀態(tài),否則將會出現(xiàn)“丟包”。上層使用NLME-SYNC.request原語初始化設(shè)備,打開其接收機(jī),該原語將引起網(wǎng)絡(luò)層使用MLME-POLL.request原語對其父設(shè)備進(jìn)行輪詢[9]。ZigBee協(xié)調(diào)器或路由器的網(wǎng)絡(luò)層必須在最大程度上保證任何時間接收機(jī)總是處于接收狀態(tài)。
當(dāng)協(xié)調(diào)器接收到節(jié)點發(fā)送來的數(shù)據(jù)后,操作系統(tǒng)會將該數(shù)據(jù)封裝成一個消息,然后放入消息隊列中,每個消息都有自己的消息ID,表示接收到新數(shù)據(jù)的消息的ID是AF_INCOMING_MSG_CMD[10],其宏定義為:
#define AF_INCOMING_MSG_CMD 0x1A
在協(xié)調(diào)器中相應(yīng)代碼如下:
MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive(GenericApp_TaskID);
while(MSGpkt)
{
switch(MSGpkt->hdr.event)
{
case AF_INCOMING_MSG_CMD;
GenericApp_MessageMSGCB(MSGpkt);
break;
……
}
}
首先使用osal_msg_receive函數(shù)從消息隊列中接收一個消息,然后使用switch-case語句udixiaoxileixing進(jìn)行判斷(判斷消息ID),如果消息ID是AF_INCOMING_MSG_CMD則進(jìn)行相應(yīng)的數(shù)據(jù)處理,進(jìn)而完成數(shù)據(jù)的接收。
4 測試結(jié)果
測試采用的軟件是Packet Sniffer,Packet Sniffer 是一款專門的協(xié)議分析軟件,可以對各層協(xié)議上的信息包進(jìn)行分析和解碼;顯示出錯的包以及接入錯誤;指示觸發(fā)包;在接收和注冊過程中可連續(xù)顯示包,可以利用Packet Sniffer分析ZigBee建立網(wǎng)絡(luò),加入網(wǎng)絡(luò),發(fā)送數(shù)據(jù),接收數(shù)據(jù)的過程[11]。IEEE8022.15.4/ZigBee協(xié)議下協(xié)調(diào)器的組網(wǎng)過程如圖4所示。
圖4 協(xié)調(diào)器組網(wǎng)
從圖4 中顯示的數(shù)據(jù)包數(shù)據(jù)中,第2行到第7行是建立一個網(wǎng)絡(luò)的過程,在這里可以看出在網(wǎng)絡(luò)層管理實體一旦選擇了一個PAN標(biāo)識符,就會立刻選擇一個0x0000的16位網(wǎng)絡(luò)地址,并且設(shè)置MAC層的macShortAddress PIB 屬性,使其等于所選擇的網(wǎng)絡(luò)地址。
第8行的源地址是路由器的物理地址0x1716151413120 030,它的PANID沒有確定為0xFFFFF,這時的路由器還沒有加入網(wǎng)絡(luò),所以還沒有網(wǎng)絡(luò)地址,目的地址為協(xié)調(diào)器的網(wǎng)絡(luò)地址0x0000,它的PANID為0x0022;它的命令是聯(lián)合方式加入請求。該行表示的意思是向協(xié)調(diào)器發(fā)送聯(lián)合方式加入請求,發(fā)送完成后將得到一個應(yīng)答。
節(jié)點在等待應(yīng)答并回應(yīng)后,就開始加入建立好的無線網(wǎng)絡(luò),其加入網(wǎng)絡(luò)的過程如圖5所示。
圖5 節(jié)點加入網(wǎng)絡(luò)
從圖中可見,已成功組網(wǎng)的協(xié)調(diào)器在收到應(yīng)答以后,節(jié)點開始加入網(wǎng)絡(luò)。與此同時,協(xié)調(diào)器開始為路由器分配網(wǎng)絡(luò)地址,路由器分配到的網(wǎng)絡(luò)地址(Source Address)為0x0001。這樣就完成了節(jié)點加入網(wǎng)絡(luò)的過程,并分配了各自的網(wǎng)絡(luò)地址,從而也完成了無線網(wǎng)絡(luò)的組建和節(jié)點加入網(wǎng)絡(luò)的過程。
5 結(jié) 語
本系統(tǒng)采用ZigBee技術(shù)設(shè)計無線網(wǎng)絡(luò)節(jié)點,其設(shè)計思想簡單,成本較低并且有著很好的擴(kuò)展性,可以適應(yīng)不同環(huán)境對系統(tǒng)的要求,與此同時,通過通用串口搭載不同的傳感器又可以輕而易舉地實現(xiàn)對各種信息的采集和傳輸工作,在短距離無線傳感網(wǎng)絡(luò)的應(yīng)用上有著明顯的優(yōu)勢,相信日后的發(fā)展前景會更好,給人們?nèi)粘I罟ぷ鲙砀蟮谋憷?/p>
參 考 文 獻(xiàn)
[1] 冷亮,劉丹.基于ZigBee的無線傳感網(wǎng)絡(luò)[J].中國科技財富,2008(7): 115,118.
[2] 杜煥軍,張維勇,劉國田.ZigBee網(wǎng)絡(luò)的路由協(xié)議研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(10):1618-1621.
[3] 李剛,陳俊杰,葛文濤.一種改進(jìn)的ZigBee網(wǎng)絡(luò)Cluster-Tree路由算法[J].測控技術(shù),2009,28(9):52-55.
[4] REESE R. Implementation of microstrip balun for CC2420 and CC243x [M]. USA: Texas Instruments, 2006.
[5] 張任,王堅峰,嚴(yán)海.基于ZigBee的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J].機(jī)電工程,2008,25(8):18-20.
[6] 孟海濱,張紅雨.嵌入式系統(tǒng)電源芯片選型與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(12):7-10.
[7] 曹振國.基于ZigBee的集裝箱站組網(wǎng)設(shè)計與實現(xiàn)[J].自動化與儀器儀表,2010(4):50-52.
[8] 趙晨.基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)的研究與實現(xiàn)[D].青島:中國海洋大學(xué),2007.
[9] 屈明佑,雷航,郭文生.基于ZigBee的現(xiàn)場數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].電訊技術(shù),2008(4):36-40.
[10]張帥華,楊遠(yuǎn),梁玉堂,等.基于AT91SAM9260的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計[J].微計算機(jī)信息,2011,27(8):113-114.
[11]閆哲,杜濤,左海利.智能家居控制系統(tǒng)的設(shè)計及實現(xiàn)[J].自動化技術(shù)及應(yīng)用,2010,29(2):93-96.
Design and implementation of node in the WSN based on ZigBee
SUI Hao, XU Guo-kai, SUN Yan-hui
(College of Electromechanical and Information Engineering, Dalian Nationalities University, Dalian 116600, China)
Abstract: The information is collected by sensors, to produce analog voltage signals. The digital signal is obtained through A/D conversion. CC2430 chip is used as core chip instead of traditional sending model with wired style to take charge of data processing and wireless radio frequency. According to the requirement, the solution of the hardware structure and software design is presented, and the power consumption is also taken into consideration.
Keywords: CC2430; wireless sensor network; node; ZigBee protocol
4 測試結(jié)果
測試采用的軟件是Packet Sniffer,Packet Sniffer 是一款專門的協(xié)議分析軟件,可以對各層協(xié)議上的信息包進(jìn)行分析和解碼;顯示出錯的包以及接入錯誤;指示觸發(fā)包;在接收和注冊過程中可連續(xù)顯示包,可以利用Packet Sniffer分析ZigBee建立網(wǎng)絡(luò),加入網(wǎng)絡(luò),發(fā)送數(shù)據(jù),接收數(shù)據(jù)的過程[11]。IEEE8022.15.4/ZigBee協(xié)議下協(xié)調(diào)器的組網(wǎng)過程如圖4所示。
圖4 協(xié)調(diào)器組網(wǎng)
從圖4 中顯示的數(shù)據(jù)包數(shù)據(jù)中,第2行到第7行是建立一個網(wǎng)絡(luò)的過程,在這里可以看出在網(wǎng)絡(luò)層管理實體一旦選擇了一個PAN標(biāo)識符,就會立刻選擇一個0x0000的16位網(wǎng)絡(luò)地址,并且設(shè)置MAC層的macShortAddress PIB 屬性,使其等于所選擇的網(wǎng)絡(luò)地址。
第8行的源地址是路由器的物理地址0x1716151413120 030,它的PANID沒有確定為0xFFFFF,這時的路由器還沒有加入網(wǎng)絡(luò),所以還沒有網(wǎng)絡(luò)地址,目的地址為協(xié)調(diào)器的網(wǎng)絡(luò)地址0x0000,它的PANID為0x0022;它的命令是聯(lián)合方式加入請求。該行表示的意思是向協(xié)調(diào)器發(fā)送聯(lián)合方式加入請求,發(fā)送完成后將得到一個應(yīng)答。
節(jié)點在等待應(yīng)答并回應(yīng)后,就開始加入建立好的無線網(wǎng)絡(luò),其加入網(wǎng)絡(luò)的過程如圖5所示。
圖5 節(jié)點加入網(wǎng)絡(luò)
從圖中可見,已成功組網(wǎng)的協(xié)調(diào)器在收到應(yīng)答以后,節(jié)點開始加入網(wǎng)絡(luò)。與此同時,協(xié)調(diào)器開始為路由器分配網(wǎng)絡(luò)地址,路由器分配到的網(wǎng)絡(luò)地址(Source Address)為0x0001。這樣就完成了節(jié)點加入網(wǎng)絡(luò)的過程,并分配了各自的網(wǎng)絡(luò)地址,從而也完成了無線網(wǎng)絡(luò)的組建和節(jié)點加入網(wǎng)絡(luò)的過程。
5 結(jié) 語
本系統(tǒng)采用ZigBee技術(shù)設(shè)計無線網(wǎng)絡(luò)節(jié)點,其設(shè)計思想簡單,成本較低并且有著很好的擴(kuò)展性,可以適應(yīng)不同環(huán)境對系統(tǒng)的要求,與此同時,通過通用串口搭載不同的傳感器又可以輕而易舉地實現(xiàn)對各種信息的采集和傳輸工作,在短距離無線傳感網(wǎng)絡(luò)的應(yīng)用上有著明顯的優(yōu)勢,相信日后的發(fā)展前景會更好,給人們?nèi)粘I罟ぷ鲙砀蟮谋憷?/p>
參 考 文 獻(xiàn)
[1] 冷亮,劉丹.基于ZigBee的無線傳感網(wǎng)絡(luò)[J].中國科技財富,2008(7): 115,118.
[2] 杜煥軍,張維勇,劉國田.ZigBee網(wǎng)絡(luò)的路由協(xié)議研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(10):1618-1621.
[3] 李剛,陳俊杰,葛文濤.一種改進(jìn)的ZigBee網(wǎng)絡(luò)Cluster-Tree路由算法[J].測控技術(shù),2009,28(9):52-55.
[4] REESE R. Implementation of microstrip balun for CC2420 and CC243x [M]. USA: Texas Instruments, 2006.
[5] 張任,王堅峰,嚴(yán)海.基于ZigBee的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J].機(jī)電工程,2008,25(8):18-20.
[6] 孟海濱,張紅雨.嵌入式系統(tǒng)電源芯片選型與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(12):7-10.
[7] 曹振國.基于ZigBee的集裝箱站組網(wǎng)設(shè)計與實現(xiàn)[J].自動化與儀器儀表,2010(4):50-52.
[8] 趙晨.基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)的研究與實現(xiàn)[D].青島:中國海洋大學(xué),2007.
[9] 屈明佑,雷航,郭文生.基于ZigBee的現(xiàn)場數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].電訊技術(shù),2008(4):36-40.
[10]張帥華,楊遠(yuǎn),梁玉堂,等.基于AT91SAM9260的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計[J].微計算機(jī)信息,2011,27(8):113-114.
[11]閆哲,杜濤,左海利.智能家居控制系統(tǒng)的設(shè)計及實現(xiàn)[J].自動化技術(shù)及應(yīng)用,2010,29(2):93-96.
Design and implementation of node in the WSN based on ZigBee
SUI Hao, XU Guo-kai, SUN Yan-hui
(College of Electromechanical and Information Engineering, Dalian Nationalities University, Dalian 116600, China)
Abstract: The information is collected by sensors, to produce analog voltage signals. The digital signal is obtained through A/D conversion. CC2430 chip is used as core chip instead of traditional sending model with wired style to take charge of data processing and wireless radio frequency. According to the requirement, the solution of the hardware structure and software design is presented, and the power consumption is also taken into consideration.
Keywords: CC2430; wireless sensor network; node; ZigBee protocol
4 測試結(jié)果
測試采用的軟件是Packet Sniffer,Packet Sniffer 是一款專門的協(xié)議分析軟件,可以對各層協(xié)議上的信息包進(jìn)行分析和解碼;顯示出錯的包以及接入錯誤;指示觸發(fā)包;在接收和注冊過程中可連續(xù)顯示包,可以利用Packet Sniffer分析ZigBee建立網(wǎng)絡(luò),加入網(wǎng)絡(luò),發(fā)送數(shù)據(jù),接收數(shù)據(jù)的過程[11]。IEEE8022.15.4/ZigBee協(xié)議下協(xié)調(diào)器的組網(wǎng)過程如圖4所示。
圖4 協(xié)調(diào)器組網(wǎng)
從圖4 中顯示的數(shù)據(jù)包數(shù)據(jù)中,第2行到第7行是建立一個網(wǎng)絡(luò)的過程,在這里可以看出在網(wǎng)絡(luò)層管理實體一旦選擇了一個PAN標(biāo)識符,就會立刻選擇一個0x0000的16位網(wǎng)絡(luò)地址,并且設(shè)置MAC層的macShortAddress PIB 屬性,使其等于所選擇的網(wǎng)絡(luò)地址。
第8行的源地址是路由器的物理地址0x1716151413120 030,它的PANID沒有確定為0xFFFFF,這時的路由器還沒有加入網(wǎng)絡(luò),所以還沒有網(wǎng)絡(luò)地址,目的地址為協(xié)調(diào)器的網(wǎng)絡(luò)地址0x0000,它的PANID為0x0022;它的命令是聯(lián)合方式加入請求。該行表示的意思是向協(xié)調(diào)器發(fā)送聯(lián)合方式加入請求,發(fā)送完成后將得到一個應(yīng)答。
節(jié)點在等待應(yīng)答并回應(yīng)后,就開始加入建立好的無線網(wǎng)絡(luò),其加入網(wǎng)絡(luò)的過程如圖5所示。
圖5 節(jié)點加入網(wǎng)絡(luò)
從圖中可見,已成功組網(wǎng)的協(xié)調(diào)器在收到應(yīng)答以后,節(jié)點開始加入網(wǎng)絡(luò)。與此同時,協(xié)調(diào)器開始為路由器分配網(wǎng)絡(luò)地址,路由器分配到的網(wǎng)絡(luò)地址(Source Address)為0x0001。這樣就完成了節(jié)點加入網(wǎng)絡(luò)的過程,并分配了各自的網(wǎng)絡(luò)地址,從而也完成了無線網(wǎng)絡(luò)的組建和節(jié)點加入網(wǎng)絡(luò)的過程。
5 結(jié) 語
本系統(tǒng)采用ZigBee技術(shù)設(shè)計無線網(wǎng)絡(luò)節(jié)點,其設(shè)計思想簡單,成本較低并且有著很好的擴(kuò)展性,可以適應(yīng)不同環(huán)境對系統(tǒng)的要求,與此同時,通過通用串口搭載不同的傳感器又可以輕而易舉地實現(xiàn)對各種信息的采集和傳輸工作,在短距離無線傳感網(wǎng)絡(luò)的應(yīng)用上有著明顯的優(yōu)勢,相信日后的發(fā)展前景會更好,給人們?nèi)粘I罟ぷ鲙砀蟮谋憷?/p>
參 考 文 獻(xiàn)
[1] 冷亮,劉丹.基于ZigBee的無線傳感網(wǎng)絡(luò)[J].中國科技財富,2008(7): 115,118.
[2] 杜煥軍,張維勇,劉國田.ZigBee網(wǎng)絡(luò)的路由協(xié)議研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(10):1618-1621.
[3] 李剛,陳俊杰,葛文濤.一種改進(jìn)的ZigBee網(wǎng)絡(luò)Cluster-Tree路由算法[J].測控技術(shù),2009,28(9):52-55.
[4] REESE R. Implementation of microstrip balun for CC2420 and CC243x [M]. USA: Texas Instruments, 2006.
[5] 張任,王堅峰,嚴(yán)海.基于ZigBee的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J].機(jī)電工程,2008,25(8):18-20.
[6] 孟海濱,張紅雨.嵌入式系統(tǒng)電源芯片選型與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(12):7-10.
[7] 曹振國.基于ZigBee的集裝箱站組網(wǎng)設(shè)計與實現(xiàn)[J].自動化與儀器儀表,2010(4):50-52.
[8] 趙晨.基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)的研究與實現(xiàn)[D].青島:中國海洋大學(xué),2007.
[9] 屈明佑,雷航,郭文生.基于ZigBee的現(xiàn)場數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].電訊技術(shù),2008(4):36-40.
[10]張帥華,楊遠(yuǎn),梁玉堂,等.基于AT91SAM9260的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計[J].微計算機(jī)信息,2011,27(8):113-114.
[11]閆哲,杜濤,左海利.智能家居控制系統(tǒng)的設(shè)計及實現(xiàn)[J].自動化技術(shù)及應(yīng)用,2010,29(2):93-96.
Design and implementation of node in the WSN based on ZigBee
SUI Hao, XU Guo-kai, SUN Yan-hui
(College of Electromechanical and Information Engineering, Dalian Nationalities University, Dalian 116600, China)
Abstract: The information is collected by sensors, to produce analog voltage signals. The digital signal is obtained through A/D conversion. CC2430 chip is used as core chip instead of traditional sending model with wired style to take charge of data processing and wireless radio frequency. According to the requirement, the solution of the hardware structure and software design is presented, and the power consumption is also taken into consideration.
Keywords: CC2430; wireless sensor network; node; ZigBee protocol