李衍川,江和
(福州大學(xué) 電氣工程與自動(dòng)化學(xué)院,福州 350108)
ZigBee是一種專注于低功耗、低成本、低復(fù)雜度、低速率的近程無(wú)線網(wǎng)絡(luò)通信技術(shù)。ZigBee的組網(wǎng)能力強(qiáng),廣泛應(yīng)用于無(wú)線傳感網(wǎng)、嵌入式的自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域[1]。ZigBee的協(xié)議棧由一組子層構(gòu)成,由下至上依次是物理層、介質(zhì)接入控制子層(MAC)、網(wǎng)絡(luò)層、應(yīng)用層,并與單片機(jī)配合完成數(shù)據(jù)包裝收發(fā)、校驗(yàn)、各種網(wǎng)絡(luò)拓?fù)?、路由?jì)算等復(fù)雜功能。
隨著用戶對(duì)電器智能化的要求越來(lái)越高,ZigBee技術(shù)需要傳輸更多的電氣參量和現(xiàn)場(chǎng)參量,其中電壓有效值和頻率是確保電氣系統(tǒng)穩(wěn)定運(yùn)行的重要參數(shù)。有線傳輸布線麻煩,會(huì)使電器結(jié)構(gòu)復(fù)雜、成本增加、使用不方便,而采用ZigBee技術(shù)能夠很好地解決這方面問(wèn)題。
本文以Microchip公司的PIC18LF4620為核心,硬件收發(fā)電路采用MRF24J40芯片,結(jié)合ZENA網(wǎng)絡(luò)分析儀器對(duì)ZigBee設(shè)備間的綁定和數(shù)據(jù)請(qǐng)求進(jìn)行監(jiān)控,測(cè)試終端將電氣參數(shù)發(fā)往其他設(shè)備。
ZigBee協(xié)議棧的分層結(jié)構(gòu)中,最下面的兩層是介質(zhì)接入控制子層(MAC)和物理層,這兩層是由IEEE 802.15.4定義的,而上面的網(wǎng)絡(luò)層和應(yīng)用層才是由ZigBee聯(lián)盟定義的。網(wǎng)絡(luò)層(NWK)負(fù)責(zé)設(shè)備到設(shè)備的通信,并負(fù)責(zé)網(wǎng)絡(luò)中設(shè)備初始化、消息路由和網(wǎng)絡(luò)發(fā)現(xiàn);而應(yīng)用支持子層(APS)可使用NWK提供的服務(wù),實(shí)現(xiàn)數(shù)據(jù)傳送和安全等服務(wù)。此外應(yīng)用層還可以通過(guò)ZigBee設(shè)備對(duì)象(ZDO)進(jìn)行網(wǎng)絡(luò)層配置和訪問(wèn),提供設(shè)備發(fā)現(xiàn)、服務(wù)發(fā)現(xiàn)和綁定管理服務(wù)。用戶程序則通過(guò)240個(gè)端點(diǎn)與APS對(duì)接,實(shí)現(xiàn)用戶功能。實(shí)現(xiàn)ZigBee任務(wù)的關(guān)鍵就是在應(yīng)用層或者ZDO層中配置原語(yǔ),單片機(jī)的任務(wù)就是不斷地執(zhí)行各種ZigBee協(xié)議棧任務(wù)。
ZigBee相關(guān)的硬件設(shè)計(jì)包括兩方面:一是以MRF24J40和PIC18LF4620為核心的射頻電路;二是提供ZigBee網(wǎng)絡(luò)分析的ZENA電路板。
MRF24J40的硬件電路包含去耦電路、平衡-不平衡變換電路和時(shí)鐘振蕩電路[2]。與單片機(jī)相連的則是4線的串行SPI接口,它有中斷、喚醒和復(fù)位功能。用戶應(yīng)用程序通過(guò)端點(diǎn)服務(wù)接口傳到APS,再依次往下傳至物理層,最后通過(guò)SPI控制MRF24J40將數(shù)據(jù)通過(guò)天線以電磁波形式發(fā)送出去,接收方的天線收到數(shù)據(jù)后則將數(shù)據(jù)逐層向上傳遞,請(qǐng)求應(yīng)用層處理。在進(jìn)行組網(wǎng)時(shí)至少需要3個(gè)這樣的最小系統(tǒng)板,其中一個(gè)作為協(xié)調(diào)器,另兩個(gè)作為終端設(shè)備或路由器。
ZENA電路板的核心是PIC18LF2550和MRF24J40,MRF24J40用于接收空氣中的電磁波并傳給單片機(jī)處理,最終通過(guò)USB傳輸?shù)接?jì)算機(jī)中。而ZENA網(wǎng)絡(luò)監(jiān)視窗口就是該USB對(duì)接的界面,這樣通過(guò)天線接收到的數(shù)據(jù)被還原成幀的形式顯示出來(lái),由此就可以判斷ZigBee設(shè)備發(fā)送的數(shù)據(jù)是否正確。
ZigBee協(xié)議棧是通過(guò)下層的服務(wù)完成自己的功能,同時(shí)對(duì)上層提供服務(wù)。網(wǎng)絡(luò)通信是在對(duì)等的層次上進(jìn)行的,而這些服務(wù)是設(shè)備中的實(shí)體通過(guò)發(fā)送服務(wù)原語(yǔ)來(lái)實(shí)現(xiàn)的[3]。原語(yǔ)中又包含很多參數(shù),構(gòu)造應(yīng)用層的程序其實(shí)也就是對(duì)該服務(wù)相關(guān)的原語(yǔ)參數(shù)進(jìn)行賦值。綁定的原語(yǔ)為:APSME-BIND.request{SrcAddr,SrcEndpoint,Clusterld,DstAddrMode,DstAddr,DstEndpoint}。
該原語(yǔ)最前面的APSME表示這是一個(gè)APS服務(wù)原語(yǔ),因此在執(zhí)行ZigBee任務(wù)時(shí)將被送到APS.c文件執(zhí)行。原語(yǔ)里的參數(shù)依次表示發(fā)送該原語(yǔ)設(shè)備的源地址、哪個(gè)端點(diǎn)發(fā)送該原語(yǔ)的、哪個(gè)簇標(biāo)識(shí)符與目的設(shè)備綁定、目的地址模式是64位物理地址還是16位網(wǎng)絡(luò)短地址、目的設(shè)備的地址值,以及將被送到目的設(shè)備的哪個(gè)端點(diǎn)執(zhí)行。因此要向某設(shè)備發(fā)送綁定請(qǐng)求,首先要定義好使用哪個(gè)端點(diǎn)和簇ID來(lái)執(zhí)行,并且要知道自己和對(duì)方的地址,對(duì)各參數(shù)賦值完畢后就令currentPremitive=APSME_BIND_request,設(shè)備就成功發(fā)送綁定請(qǐng)求了,并等待后續(xù)響應(yīng)。
由于電力線路是高電壓的交流電,而PIC18LF4620只能采樣小于3.3V的直流電壓,因此線路的電壓都要經(jīng)過(guò)變壓器或互感器降壓后再經(jīng)過(guò)絕對(duì)值線路整流。本文選用電流型的精密微型電壓互感器HPT304,互感器應(yīng)用電路如圖1所示。通過(guò)運(yùn)算放大器輸出,二次負(fù)載基本為0。被測(cè)的輸入電壓VIN通過(guò)限流電阻RIN限流,產(chǎn)生的0~2mA電流通過(guò)微型電壓互感器。HPT304感應(yīng)出相同的0~2mA。通過(guò)運(yùn)算放大器可以調(diào)節(jié)反饋電阻R值在輸出端得到所要求的電壓輸出,而電容C及電阻r是用來(lái)補(bǔ)償相位差的。限流電阻RIN要有足夠大的功率。
圖1 互感器應(yīng)用電路
絕對(duì)值線路的作用是將交流變成直流,線路簡(jiǎn)單、容易實(shí)現(xiàn)。絕對(duì)值線路和絕對(duì)值線路仿真波形如圖2和圖3所示。圖2放大倍數(shù)是R2/R1=5,選用的兩個(gè)運(yùn)算放大器最好是同在一個(gè)芯片上,這樣出來(lái)的半波才會(huì)對(duì)稱。
圖2 絕對(duì)值線路
圖3 絕對(duì)值線路仿真波形
用單片機(jī)算出交流電壓的有效值,也必須先測(cè)出交流電壓的頻率,再根據(jù)頻率確定每一個(gè)點(diǎn)的采樣周期。這樣計(jì)算的有效值才不會(huì)隨頻率的變化而變化。測(cè)頻電路和測(cè)頻電路輸出波形如圖4和圖5所示。
圖4 測(cè)頻電路
圖5 測(cè)頻電路輸出波形
電壓有效值表達(dá)式為:
式中:N為每個(gè)電源周期采樣點(diǎn)數(shù),uk為電壓第k點(diǎn)的采樣值。本文N為64。輸入波形與采樣脈沖如圖6所示。
圖6 輸入波形與采樣脈沖
本文的綁定實(shí)驗(yàn)采用間接綁定的方法,即由協(xié)調(diào)器來(lái)建立綁定表,兩終端節(jié)點(diǎn)分別向協(xié)調(diào)器請(qǐng)求綁定。請(qǐng)求綁定的終端設(shè)備要給協(xié)調(diào)器發(fā)送數(shù)據(jù)請(qǐng)求,不過(guò)請(qǐng)求的簇為0x20,且端點(diǎn)為ZDO(0x00),因此該請(qǐng)求到達(dá)協(xié)調(diào)器后會(huì)進(jìn)入ZDO處理綁定請(qǐng)求任務(wù)。從節(jié)點(diǎn)綁定的ZENA分析圖可以看到,應(yīng)用層最后面的AF數(shù)據(jù)幀包含了終端節(jié)點(diǎn)請(qǐng)求綁定的所有信息,如果兩設(shè)備的輸入簇和輸出簇對(duì)應(yīng),模板標(biāo)識(shí)符也一樣,就能在協(xié)調(diào)器中建立綁定表。這里的輸入簇和輸出簇都是Test模板的緩沖請(qǐng)求簇(0x1C)。需要說(shuō)明的是,當(dāng)兩個(gè)終端設(shè)備分別向協(xié)調(diào)器請(qǐng)求綁定后,協(xié)調(diào)器還要分別發(fā)送UnBind_req和Bind_req給各終端,并根據(jù)給出的響應(yīng)設(shè)置標(biāo)志位,當(dāng)所有的工作完成后才能給請(qǐng)求綁定的設(shè)備發(fā)送簇(ID為end_device_bind_rsp)完成綁定。由于篇幅所限這里直接給出綁定的結(jié)果,協(xié)調(diào)器串口輸出如圖7所示。
綁定成功后,終端設(shè)備只需標(biāo)明簇標(biāo)識(shí)符就可以將數(shù)據(jù)通過(guò)協(xié)調(diào)器發(fā)送給綁定表中對(duì)應(yīng)輸入簇的設(shè)備。協(xié)調(diào)器收到終端采樣數(shù)據(jù),該數(shù)據(jù)為電網(wǎng)頻率和有效值,在下一個(gè)工作周期內(nèi),協(xié)調(diào)器就會(huì)將數(shù)據(jù)根據(jù)綁定表傳遞給目的設(shè)備,目的設(shè)備收到數(shù)據(jù)后就能進(jìn)行分析和處理,實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)的監(jiān)控。值得一提的是,由于ZigBee協(xié)議棧本身的限制,數(shù)據(jù)最快也只能0.5s更新一次。
圖7 協(xié)調(diào)器串口輸出
本文組建了ZigBee無(wú)線網(wǎng)絡(luò),并由協(xié)調(diào)器統(tǒng)一管理綁定表,實(shí)現(xiàn)了電壓有效值和頻率的遠(yuǎn)程監(jiān)控,經(jīng)過(guò)ZENA分析測(cè)試,網(wǎng)絡(luò)運(yùn)行穩(wěn)定。以PIC18LF4620為核心的單片機(jī)系統(tǒng)功能強(qiáng)大、性價(jià)比高,適合用于電氣監(jiān)測(cè)系統(tǒng)。
本文的創(chuàng)新點(diǎn)在于深入分析協(xié)議棧應(yīng)用層原理,提供了使用Microchip ZigBee協(xié)議棧進(jìn)行網(wǎng)絡(luò)綁定的方法,并將電氣在線監(jiān)測(cè)和無(wú)線網(wǎng)絡(luò)結(jié)合在一起,具有一定的推廣應(yīng)用價(jià)值。
[1]呂鑫,王忠.ZigBee無(wú)線數(shù)據(jù)傳輸模塊的設(shè)計(jì)和實(shí)現(xiàn)[J].安徽師范大學(xué)學(xué)報(bào),2010,33(4):332-335.
[2]黃智偉,何娜.基于 MRF24J40的IEEE 802.15.4無(wú)線收發(fā)電路設(shè)計(jì)[J].軍事通信,2008,21(1):36-38.
[3]呂治安.ZigBee網(wǎng)絡(luò)原理與應(yīng)用開(kāi)發(fā)[M].北京:北京航天航空大學(xué)出版社,2008.
[4]Microchip.ZENA Wireless Network Aanlyzer user's guide.[EB/OL].[2011-09].http://www.microchip.com.
[5]Microchip.ZigBee-2006Residential Stack Protocol [EB/OL].[2011-09].http://www.microchip.com.
[6]江和.PIC16系列單片機(jī)C程序設(shè)計(jì)與PROTEUS仿真[M].北京:北京航空航天大學(xué)出版社,2010.
[7]李文仲,段朝玉.PIC單片機(jī)與ZigBee無(wú)線網(wǎng)絡(luò)實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
[8]李文仲等.ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)入門(mén)與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
[9]王汝文,宋政湘,張國(guó)鋼.電器智能化原理及應(yīng)用[M].2版.北京:電子工業(yè)出版社,2009.