王錚 南京郵電大學(xué)
為能切實(shí)滿足人們?nèi)諠u強(qiáng)烈的智能化生活需求、要求,在計算機(jī)技術(shù)、微電子技術(shù)日益發(fā)展的大背景下,無線傳感網(wǎng)絡(luò)呈現(xiàn)出迅猛發(fā)展勢頭,其在多領(lǐng)域的廣泛應(yīng)用,已顯現(xiàn)出強(qiáng)烈的生命力與影響力。Zigbee實(shí)為一種介于藍(lán)牙與無線標(biāo)記技術(shù)間,有著豐富技術(shù)支撐的技術(shù)提案,具有低功耗、低速率、短距離的技術(shù)特點(diǎn)。當(dāng)前,世界各知名企業(yè)均積極研發(fā)與推出了能夠?qū)崿F(xiàn)ZigBee物理層功能的芯片,其中,最具代表性的便是EM250(Ember)、JN5139(Jennic)等。CC2530為一款片上系統(tǒng),能兼容IEEE802.15.4,集成了8051內(nèi)核,能較簡便、快速的構(gòu)建無線通信網(wǎng)絡(luò)。
ZigBee協(xié)議棧為層結(jié)構(gòu),主要由物理層(PHY)、媒介訪問控制層(MAC)、網(wǎng)絡(luò)層(NWK)與應(yīng)用層(APL)構(gòu)成,其中,ZigBee聯(lián)盟對應(yīng)用層、網(wǎng)絡(luò)層架構(gòu)進(jìn)行了定義,而IEEE802.15.4標(biāo)準(zhǔn)則對媒介訪問控制層與物理層進(jìn)行了定義。各層均能為上層提供諸多能切實(shí)滿足其需要的服務(wù),對于數(shù)據(jù)實(shí)體而言,則能為數(shù)據(jù)傳輸提供服務(wù),管理實(shí)體則提供除上述外的其它服務(wù)。全部服務(wù)實(shí)體通過利用服務(wù)接入點(diǎn)(SAP),能夠?yàn)槠渖蠈犹峁┮粋€實(shí)時接入插口,各SAP對一定數(shù)量的服務(wù)原語均支持,因而能夠獲取所需功能?;赯igBee協(xié)議架構(gòu)中,用戶僅需組建應(yīng)用程序框架便可,從開發(fā)者角度來考量,多注重的是應(yīng)用層構(gòu)架。
針對ZigBee應(yīng)用層而言,其包含三部分內(nèi)容,分別為用戶定義的應(yīng)用對象、ZigBee設(shè)備對象(ZDO)與應(yīng)用支持子層APS。APS多用作設(shè)備綁定表的維護(hù)以及為綁定設(shè)備之間提供消息傳輸,在ZigBee架構(gòu)中,ZDO實(shí)為一個相對特殊的對象,多用作構(gòu)建安全管理及定義設(shè)備類型等。
在ZibBee網(wǎng)絡(luò)架構(gòu)中,設(shè)備有兩類劃分,其一為簡化功能設(shè)備(RFD),其二為完整功能設(shè)備(FFD)。針對FFD而言,可將其當(dāng)作路由器或協(xié)調(diào)器,其能夠工作于各種拓?fù)浣Y(jié)構(gòu)中,另外,還能與其它的RFD、FFD進(jìn)行實(shí)時通信。而對于RFD來講,僅能被當(dāng)作終端網(wǎng)絡(luò)節(jié)點(diǎn),而且通信對象只能是統(tǒng)一網(wǎng)絡(luò)中的FFD。RFD與FFD有著相同的硬件結(jié)構(gòu),但網(wǎng)絡(luò)層結(jié)構(gòu)存在不同。
在本次網(wǎng)絡(luò)設(shè)計中,無論是終端器還是路由器、協(xié)調(diào)器,均采用的是相同的硬件模塊結(jié)構(gòu)。在實(shí)際模塊設(shè)計過程中,用PL2303HX芯片,把USB虛擬成串口。所以,利用USB接口便能夠比較方便的實(shí)現(xiàn)PC與模塊間的實(shí)時通信。另外,在具體的模塊設(shè)計中,PCB選用雙層板,實(shí)際設(shè)計中,兩層接地層會沿著銅皮走線方向而形成一個較大的電位差,而且還有這比較快的高頻電流變化速度,若此時的電流無法及時經(jīng)回路向地面導(dǎo)入,那么局部出現(xiàn)的電位過高情況,會造成信號判斷出現(xiàn)錯誤,所以,在板子上,需在兩層地面層,制作回路導(dǎo)通孔,最大程度減少阻抗,確保地面始終維持等電位。
本次設(shè)計運(yùn)用的是IAR7.60開發(fā)環(huán)境,基于Z-STACK-2.4.0-1.4.0協(xié)議棧,完成相關(guān)應(yīng)用層程序的編寫。系統(tǒng)為一個星型網(wǎng)絡(luò),由6個節(jié)點(diǎn)組成,一個協(xié)調(diào)器符合建立網(wǎng)絡(luò),2個終端器與3個路由器組建網(wǎng)絡(luò),由CC2530內(nèi)置的溫度傳感器完成溫度值的采集,并將采集所得數(shù)據(jù)實(shí)時傳送給協(xié)調(diào)器。對于協(xié)調(diào)器而言,其所選用的是自啟動模式,實(shí)際就是在預(yù)編譯選項中,將HOLD_AUTO_START去除。所以,基于ZDO初始化函數(shù),從中完成網(wǎng)絡(luò)初始化,如果完成協(xié)調(diào)器網(wǎng)絡(luò)的構(gòu)建,會觸發(fā)ZDO_STATE_CHANGE事件,然后在串口調(diào)試軟件上,會顯示調(diào)用函數(shù)的網(wǎng)絡(luò)建立狀態(tài)。系統(tǒng)以輪詢的方式檢測串口,如果串口有數(shù)據(jù)寫入,那么經(jīng)回調(diào)函數(shù),向任務(wù)傳遞串口事件,然后在應(yīng)用層內(nèi),定義My App_Call Back()調(diào)用數(shù)據(jù),實(shí)時發(fā)送函數(shù),此時的數(shù)據(jù)就是控制命令。其中,對于發(fā)送地址模式而言,其有3種模式,即組播、廣播與單播,將3種模式地址進(jìn)行分配,將其當(dāng)作數(shù)據(jù)發(fā)送的目標(biāo)地址。
終端器與路由器同樣可選用自啟動模式。于網(wǎng)絡(luò)初始化階段,通過NLME_Network Discovery Request()函數(shù)的調(diào)用,來發(fā)現(xiàn)網(wǎng)絡(luò),然后網(wǎng)絡(luò)接入成功后,觸發(fā)任務(wù)的ZDO_STATE_CHANGE事件,向協(xié)調(diào)器發(fā)送網(wǎng)絡(luò)地址。如果接收到控制命令數(shù)據(jù),則此時的調(diào)用數(shù)據(jù)采集函數(shù)便會對溫度值進(jìn)行采集,并實(shí)時發(fā)送給協(xié)調(diào)器,如果發(fā)送失敗,在延遲1s后,會再次發(fā)送。
綜上,本文著眼于Zigbee技術(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),基于CC2530芯片,構(gòu)建了一個圍繞ZigBee的通信網(wǎng)絡(luò),分別從軟件與硬件兩方面展開了具體分析,望能為傳感器網(wǎng)絡(luò)項目應(yīng)用的搭建,有著幫助與參考。
[1]孫中廷.基于CC2530的ZigBee無線傳感器網(wǎng)絡(luò)研究和設(shè)計[J].計算機(jī)與網(wǎng)絡(luò),2015,41(19):65-67.
[2]蔣建平,陳輝.基于CC2530的ZigBee無線城市路燈控制系統(tǒng)的設(shè)計[J].測控技術(shù),2012,31(9):56-59.
[3]汪振中.基于CC2530芯片的ZIGBEE無線數(shù)據(jù)傳輸模塊設(shè)計[J].中國設(shè)備工程,2017(14):133-134.