當前位置:首頁 > 物聯(lián)網 > 《物聯(lián)網技術》雜志
[導讀]摘要:利用各類傳感器采集外界信息,產生模擬電壓信號,通過模數轉換進而得到數字信號,摒棄傳統(tǒng)的有線串口發(fā)數模式,用CC2430芯片作為節(jié)點的核心芯片,負責數據處理和無線射頻工作。根據以上要求給出了系統(tǒng)硬件結構及軟件設計方案,并綜合考慮到了節(jié)點的功耗問題。

引言

保護民族物質文化和非物質文化遺產的任務一直都為國家所重視,少數民族博物館中的文物是國家最為寶貴的民族物質文化遺產,利用發(fā)展前景最為廣闊的無線傳感技術,將數字化保護概念落實到實際的少數民族遺產保護當中,搭建無線傳感網絡以完成數據的采集和傳遞,將博物館中的實時環(huán)境信息轉換為易讀的數字信號傳遞給管理員。

受到“十一五”國家科技支撐計劃的重點課題《民族特需品數字化關鍵技術研究與示范應用[課題編號2009BAH41B05]》項目的支持,研發(fā)一套適合民族家具博物館的物聯(lián)網無線傳感網絡產品。本文對整個無線傳感網絡體系中的網絡節(jié)點硬件、軟件提出具體設計思路和實現(xiàn)方法。

ZigBee網絡路徑

1.1路由基本算法

ZigBee網絡區(qū)別于其他無線傳感網絡之處就在于其預先進行地址分配,各節(jié)點由分布式算法根據一系列網絡參數來確定,節(jié)點只有通過協(xié)調器或者路由器節(jié)點才能加入網絡,加入網絡后隨即獲得一個唯一的地址。我們這里設Cm和Rm分別為節(jié)點所能分配的最大節(jié)點數和路由節(jié)點數,L為網絡的最大深度,則網絡深度為d的路由節(jié)點所能分配的地址塊大小如式(1)所示:

深度為d的父親節(jié)點分配的第k個路由節(jié)點和第n個終端節(jié)點的地址分別為:

在式(2)、(3)中,代表負責分配網絡地址的父節(jié)點地址,ZigBee網絡路由算法應用的就是這種分布式網絡地址分配機制。

1.2基于AODV路由算法

AODV即無線自組網按需平面距離向量路由協(xié)議,此算法通過檢查自己的路由表,如存在到達目的節(jié)點的表項則直接跳取到下一地址,否則節(jié)點以洪泛的方式向網絡廣播路由請求數據包,當該數據包到達目的節(jié)點時,目的節(jié)點以單播方式向路由發(fā)起節(jié)點回復路由數據包。當路由發(fā)起節(jié)點收到路由回復包后,一條新加入到路由表的通信鏈路便產生了。

該算法有很多優(yōu)點能夠大大提高網絡通信效率,有效地避免傳統(tǒng)網絡路由算法中出現(xiàn)的環(huán)路問題?;谛枨蟮木嚯x向量鏈路中由于發(fā)送數據之前需要對現(xiàn)有的通信路徑進行遍歷過程,因此在網絡較大的情況時也會導致網絡數據傳輸延時增大,進而造成網絡效率不高的問題。

1.3基于樹型結構路由算法

在網絡中,深度為d,源節(jié)點S若要想傳輸到任意節(jié)點D時,就可以簡單地根據的公式S<D<S+Cskp(d-1)來判斷該節(jié)點是否屬于自己的子孫節(jié)點。

依據式(4)來進行跳到下一個地址的行為,否則將數據輸出給父親節(jié)點。該算法的優(yōu)點是空間復雜度以及時間復雜度比較簡單,適用在網絡節(jié)點數目不是很多的情況,否則會導致分組傳輸時延高的缺點,從而造成網絡效率低下的問題。

Cluster-Tree算法是在樹型路由算法技術基礎上,由協(xié)調器作為中心點生成簇樹狀網絡拓撲結構,通過判斷目的節(jié)點是否是具有轉發(fā)功能設備的下屬節(jié)點,以決定是否進行數據包的轉發(fā),最終達到分層遍歷查找目的節(jié)點的結果叫這種算法可以大大減少信息冗余度和源節(jié)點的發(fā)送功率,對于數據高內聚非常有利,也在一定程度上彌補了樹型結構的缺點。

ZigBee網絡節(jié)點硬件設計

2.1節(jié)點總體硬件設計

節(jié)點按功能共可分為CC2430模塊、電源模塊和天線模塊三大模塊。其總體硬件設計如圖1所示。

2.2CC2430模塊

CC2430具有增強性能的8051MCU,8KBRAM等,其增強的8051MCU核的性能是工業(yè)標準8051核性能的8倍叫CC2430/CC2431還具備直接存儲器定址(DMA)功能,它能夠被用于減輕8051微控制器內核對數據搬移,因此提高了芯片整體的性能、可編程看門狗定時器、AES-128安全協(xié)處理器、多達8輸入的8?14位ADC、USART、睡眠模式定時、上電復位、掉電檢測電路(BrownOutDetection)等,CC2430有兩個晶振,分別是32MHz晶振和32.768kHz晶振。

2.3天線模塊

CC2430發(fā)送數據時,信號從差分射頻端口RF_P、RF_N經巴倫電路變?yōu)閱味诵盘?,由RXTX_SWITCH信號控制2個邏輯開關,選通功率放大電路(PA),放大后的信號從天線發(fā)射出去。接收信號時,在RXTX_SWITCH信號控制下,從天線接收的信號經低噪聲放大電路(LNA)放大,巴倫電路轉換,由RF_P、RF_N端口接收。天線模塊電路圖如圖2所示。2.4電源模塊

電源模塊主要是由TPS79533低壓穩(wěn)壓器輸出3.3V電壓,其輸入電壓范圍是2.7?5.5V,并具有較高的電源抑制比、超低噪聲、較好的電壓線性和負載瞬態(tài)效應以及較小的電壓漂移??梢詫?V的電源通過DC-DC變換器得到3.3V的工作電壓,電源電路如圖3所示。

圖2天線模塊電路

圖3電源模塊電路

ZigBee網絡節(jié)點軟件設計3.1ZigBee協(xié)議棧

ZigBee無線網絡的實現(xiàn),是建立在ZigBee協(xié)議棧[5,6]的基礎上的,協(xié)議棧采用分層的結構,協(xié)議分層的目的是為了使各層相對獨立,每一層都提供一些服務,服務由協(xié)議定義,它們向高層提供服務,并由低層提供服務。

在ZigBee協(xié)議棧中,物理層、MAC層位于最低層,且與硬件相關;網絡層、安全層、應用框架層以及安全層建立在物理層和MAC層之上,并且完全與硬件無關。分層的結構脈絡清晰、一目了然,給設計和調試帶來極大的方便。

Z-Stack采用了操作系統(tǒng)的思想來構建,采用事件輪循機制[7],當各層初始化之后,系統(tǒng)進入低功耗模式,事件發(fā)生時,喚醒系統(tǒng),開始進入中斷處理事件,結束后繼續(xù)進入低功耗模式。如果同時有幾個事件發(fā)生,先判斷優(yōu)先級,再逐次處理事件。

3.2協(xié)調器網絡的建立

在ZigBee網絡中,網絡協(xié)調器具有建立一個網絡、維護鄰居設備表、對邏輯網絡地址進行分配、允許設備MAC層/應用層的連接或斷開網絡的功能,網絡協(xié)調器在進行一些初始化之后調用aplFormNetwork()來建立網絡。協(xié)調器通過掃描一個空信道來建立一個新的網絡,然后選擇一個隨機的

PANID并開始監(jiān)聽此信道冏。同時協(xié)調器還有一個目前連接設備的列表,以支持其他設備加入網絡。網絡建立程序如下:

voidmain(void){halInit();//硬件初始化aplInit();//協(xié)議棧初始化aplFormNetwork();//建立網絡while(apsBusy()){apsFSM();}//等待網絡相應while(1)

{apsFSM();//執(zhí)行協(xié)議棧

}

}

3.3節(jié)點加入網絡

當一個網絡建立成功以后,便要考慮路由節(jié)點和RFD節(jié)點如何加入到網絡中去。節(jié)點通過調用aplJoinNetword()函數加入到協(xié)調器建立的網絡當中。通過掃描信道找到協(xié)調器并進一步申請加入網絡,獲取協(xié)調器的地址,同時將自己的地址發(fā)送給協(xié)調器。網絡加入成功以后,網絡節(jié)點則進入休眠狀態(tài),知道有命令或者數據發(fā)送時才被喚醒。網絡加入的程序如下:

voidmain(void){

halInit();//硬件初始化

aplInit();//協(xié)議棧初始化

do{

aplJoinNetwork();//加入網絡while(apsBusy()){apsFSM();}//等待網絡格式化}while(aplGetStatus()=WXLPAN_STATUS_SUCCESS);while(1){apsFSM();}//執(zhí)行協(xié)議棧

3.4數據發(fā)送與接收

在ZigBee協(xié)議棧中進行數據發(fā)送可以調用AF-DataRequest函數來實現(xiàn),該函數會調用協(xié)議棧里面與硬件相關的函數最終將數據通過天線發(fā)送出去。以下是AF_DataRequest數據發(fā)送程序:

afStatus_tAF_DataRequest(afAddrType_t*dstAddr,

endPointDesc_t*srcEP,,

uintl6cID,

uint16len,

uint8*buf,

uint8*transID,

uint8options,

uint8radius)

上面的程序中:afAddrType_t*dstAddr為包含了目的節(jié)點的網絡地址以及發(fā)送數據的格式;endPointDesc_t*srcEP為使用網絡地址來區(qū)分不同的節(jié)點,用端口號來區(qū)分統(tǒng)一節(jié)點的不同端口;uint16cID為描述命令號,不同的命令號代表不同的控制命令,用來表示不同的控制操作;uint16len為表示發(fā)送數據的長度;uint8*buf為指向發(fā)送數據緩沖區(qū)的指針;uint8*transID為指向發(fā)送序號的指針,每次發(fā)送數據后就會自動加1,配合接收端計算丟包率;uint8options為默認取AF_DISCV_ROUTE;uint8radius為默認取AF_DEFAULT_RADIUSo

在發(fā)送數據之前,接收的設備必須處于工作狀態(tài),否則將會出現(xiàn)“丟包”上層使用NLME-SYNC.request原語初始化設備,打開其接收機,該原語將引起網絡層使用MLME-POLL.request原語對其父設備進行輪詢図。ZigBee協(xié)調器或路由器的網絡層必須在最大程度上保證任何時間接收機總是處于接收狀態(tài)。

當協(xié)調器接收到節(jié)點發(fā)送來的數據后,操作系統(tǒng)會將該數據封裝成一個消息,然后放入消息隊列中,每個消息都有自己的消息ID,表示接收到新數據的消息的ID是AF_INCOMING_MSG_CMD[10],其宏定義為:

#defineAF_INCOMING_MSG_CMD0x1A

在協(xié)調器中相應代碼如下:

MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID);

while(MSGpkt)

{

switch(MSGpkt->hdr.event)

{

caseAF_INCOMING_MSG_CMD;

GenericApp_MessageMSGCB(MSGpkt);

break;

}

}

首先使用osal_msg_receive函數從消息隊列中接收一個消息,然后使用switch-case語句udixiaoxileixing進行判斷(判斷消息ID),如果消息ID是AF_INCOMING_MSG_CMD貝丫進行相應的數據處理,進而完成數據的接收。

4測試結果

測試釆用的軟件是PacketSniffer,PacketSniffer是一款專門的協(xié)議分析軟件,可以對各層協(xié)議上的信息包進行分析和解碼;顯示出錯的包以及接入錯誤;指示觸發(fā)包;在接收和注冊過程中可連續(xù)顯示包,可以利用PacketSniffer分析ZigBee建立網絡,加入網絡,發(fā)送數據,接收數據的過程[11]oIEEE8022.15.4/ZigBee協(xié)議下協(xié)調器的組網過程如圖4所示。

圖4協(xié)調器組網

從圖4中顯示的數據包數據中,第2行到第7行是建立一個網絡的過程,在這里可以看出在網絡層管理實體一旦選擇了一個PAN標識符,就會立刻選擇一個0x0000的16位網絡地址,并且設置MAC層的macShortAddressPIB屬性,使其等于所選擇的網絡地址。

第8行的源地址是路由器的物理地址0x1716151413120030,它的PANID沒有確定為0xFFFFF,這時的路由器還沒有加入網絡,所以還沒有網絡地址,目的地址為協(xié)調器的網絡地址0x0000,它的PANID為0x0022;它的命令是聯(lián)合方式加入請求。該行表示的意思是向協(xié)調器發(fā)送聯(lián)合方式加入請求,發(fā)送完成后將得到一個應答。

節(jié)點在等待應答并回應后,就開始加入建立好的無線網絡,其加入網絡的過程如圖5所示。

圖5節(jié)點加入網絡

從圖中可見,已成功組網的協(xié)調器在收到應答以后,節(jié)點開始加入網絡。與此同時,協(xié)調器開始為路由器分配網絡地址,路由器分配到的網絡地址(SourceAddress)為0x0001。這樣就完成了節(jié)點加入網絡的過程,并分配了各自的網絡地址,從而也完成了無線網絡的組建和節(jié)點加入網絡的過程。

5結語

本系統(tǒng)采用ZigBee技術設計無線網絡節(jié)點,其設計思想簡單,成本較低并且有著很好的擴展性,可以適應不同環(huán)境對系統(tǒng)的要求,與此同時,通過通用串口搭載不同的傳感器又可以輕而易舉地實現(xiàn)對各種信息的采集和傳輸工作,在短距離無線傳感網絡的應用上有著明顯的優(yōu)勢,相信日后的發(fā)展前景會更好,給人們日常生活工作帶來更大的便利。

20211119_61972b9730473__基于ZigBee無線傳感網絡技術節(jié)點設計與實現(xiàn)

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉