麗水學(xué)院 呂 曄 蔣偉麗
傳統(tǒng)的呼叫系統(tǒng)多是有線(xiàn)的,多采用單片機(jī)系統(tǒng)、主機(jī)和呼叫器通過(guò)導(dǎo)線(xiàn)相連,包括電源線(xiàn)、信號(hào)線(xiàn)、地線(xiàn),這樣的系統(tǒng)存在著布線(xiàn)繁瑣、成本高等問(wèn)題;而現(xiàn)有的大多數(shù)無(wú)線(xiàn)呼叫系統(tǒng)也存在系統(tǒng)功耗大、節(jié)點(diǎn)體積相對(duì)較大等缺點(diǎn),這與便攜式設(shè)備盡量小型化、集成化、省電式的要求不相符合。為了解決這個(gè)矛盾,本文選取ZigBee協(xié)議作為底層通訊協(xié)議,提出了基于ZigBee技術(shù)的無(wú)線(xiàn)呼叫系統(tǒng),實(shí)現(xiàn)了低成本、低功耗、高服務(wù)質(zhì)量的系統(tǒng)要求。
該呼叫系統(tǒng)是由一個(gè)網(wǎng)絡(luò)協(xié)調(diào)器(Coordinator)節(jié)點(diǎn)、若干個(gè)RFD(呼叫器)節(jié)點(diǎn)、幾個(gè)路由器(Router)節(jié)點(diǎn)組成的簇狀網(wǎng)絡(luò)[2],其框架如圖1所示。上位機(jī)通過(guò)串口與一個(gè)ZigBee模塊連接,該模塊屬于全功能設(shè)備(FFD,F(xiàn)ull Function Device),負(fù)責(zé)建立和管理網(wǎng)絡(luò),稱(chēng)為ZigBee網(wǎng)絡(luò)協(xié)調(diào)器,它可以通過(guò)PC機(jī)串口來(lái)保存和顯示相應(yīng)信息。下位機(jī)的絕大多數(shù)ZigBee模塊也是FFD,而RFD(Reduced Function Device)設(shè)備總是作為簇狀網(wǎng)絡(luò)的葉設(shè)備連接到網(wǎng)絡(luò)中。任意一個(gè)FFD都可初始化為普通終端設(shè)備或者網(wǎng)絡(luò)協(xié)調(diào)器、路由器,為其他設(shè)備提供同步信息,但一個(gè)網(wǎng)絡(luò)只能有一個(gè)網(wǎng)絡(luò)協(xié)調(diào)器。當(dāng)網(wǎng)絡(luò)協(xié)調(diào)器組建網(wǎng)絡(luò)成功后,路由器和普通RFD設(shè)備可以直接與網(wǎng)絡(luò)協(xié)調(diào)器取得關(guān)聯(lián),加入網(wǎng)絡(luò),也可以通過(guò)上級(jí)路由器與網(wǎng)絡(luò)協(xié)調(diào)器取得關(guān)聯(lián),加入網(wǎng)絡(luò)。
網(wǎng)絡(luò)中協(xié)調(diào)器兼顧了控制、仲裁、處理的功能[3]。該模塊上有射頻模塊、蜂鳴器、復(fù)位電路、IDC10下載器插槽、串口模塊。蜂鳴器鳴叫用于提示接收到一個(gè)信息。該系統(tǒng)中節(jié)點(diǎn)天線(xiàn)設(shè)計(jì)有兩種:帶SMA頭的射頻天線(xiàn),PCB布線(xiàn)天線(xiàn)。相比較而言,采用SMA頭的射頻天線(xiàn),節(jié)點(diǎn)性能更穩(wěn)定,但成本相對(duì)更高。本無(wú)線(xiàn)呼叫系統(tǒng)中網(wǎng)絡(luò)協(xié)調(diào)器的天線(xiàn)用了帶SMA頭的接收性能比較好的射頻天線(xiàn)。網(wǎng)絡(luò)協(xié)調(diào)器的電路框圖如圖2所示。
呼叫器節(jié)點(diǎn)由電池供電,上面有射頻模塊、復(fù)位電路、IDC10下載器插槽、電池盒、兩個(gè)LED、兩個(gè)按鈕。一個(gè)按鈕用于故障報(bào)警,另一個(gè)按鈕用于其他服務(wù)。該呼叫器節(jié)點(diǎn)的電路框圖如圖3所示,其中呼叫節(jié)點(diǎn)天線(xiàn)采用PCB布線(xiàn)天線(xiàn)。相比較網(wǎng)絡(luò)協(xié)調(diào)器的那種射頻天線(xiàn)而言,成本相對(duì)降低。路由器節(jié)點(diǎn)的硬件設(shè)計(jì)與呼叫器相同,只在軟件設(shè)計(jì)方面有所不同。
表1 參數(shù)測(cè)試表
圖1 ZigBee無(wú)線(xiàn)呼叫系統(tǒng)框圖
圖2 無(wú)線(xiàn)呼叫系統(tǒng)網(wǎng)絡(luò)協(xié)調(diào)器的電路框圖
ZigBee模塊的性能,是影響整個(gè)呼叫系統(tǒng)的關(guān)鍵。本文的ZigBee模塊采用CC2430和CC2591功放的結(jié)合[4-5],由于CC2591內(nèi)部集成了RF匹配網(wǎng)絡(luò),所以在RF輸入/輸出部分不需要增加額外的匹配網(wǎng)絡(luò),其硬件設(shè)計(jì)原理如圖4所示,為了圖形的直觀性,電源及濾波電容、數(shù)字I/O口、ADC接口并未在圖中標(biāo)出。
圖4中R1和R2是偏置電阻。R1為32MHz晶振設(shè)置精確的偏置電流,R2用于RF部分的電流參考發(fā)生器。
圖3 無(wú)線(xiàn)呼叫系統(tǒng)終端設(shè)備的電路框圖
圖4 ZigBee模塊原理圖
圖5 協(xié)調(diào)器節(jié)點(diǎn)工作狀態(tài)圖
CC2430芯片的主時(shí)鐘是由外部晶振XTAL1和兩個(gè)負(fù)載電容C14、C15提供的。定時(shí)器/計(jì)數(shù)器1、2、3、4都工作于該時(shí)鐘。此時(shí)鐘還提供給8051所有的外設(shè)。時(shí)鐘的控制通過(guò)使用SFR寄存器CLKCON來(lái)實(shí)現(xiàn)。而XTAL2和電容C1、C2用來(lái)產(chǎn)生32.768KHz的時(shí)鐘,該時(shí)鐘主要為CC2430和CC2591在休眠的時(shí)候提供時(shí)序。此外,該時(shí)鐘還可以通過(guò)CC2430內(nèi)部的32KHz的RC振蕩器來(lái)產(chǎn)生。
CC2591的HGM、EN、PA_EN引腳都連接到CC2430閑置的I/O口,由單片機(jī)來(lái)控制。當(dāng)HGM為高電平,表示CC2591接收數(shù)據(jù)時(shí),LNA是高增益模式;當(dāng)HGM為低電平,表示CC2591接收數(shù)據(jù)時(shí),LNA是低增益模式。而EN引腳和PA_EN引腳在CC2591正常工作時(shí)候置為高電平,當(dāng)其進(jìn)入低功耗模式時(shí)候,將其置為低電平,這樣可以降低功耗。
無(wú)線(xiàn)呼叫系統(tǒng)軟件設(shè)計(jì)主要包括三部分:ZigBee協(xié)議棧的實(shí)現(xiàn),基于CC2430和CC2591硬件驅(qū)動(dòng)的編寫(xiě),無(wú)線(xiàn)呼叫系統(tǒng)的應(yīng)用程序?qū)崿F(xiàn),包括人機(jī)界面,呼叫請(qǐng)求和處理、電池檢測(cè)、低功耗功能等。
TI公司推出的Z-stack是完全開(kāi)源的C語(yǔ)言協(xié)議棧,具有很好的可移植性和很好的程序可讀性。Z-Stack采用操作系統(tǒng)的思想來(lái)構(gòu)建,采用事件輪循機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式;當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng)并進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷其優(yōu)先級(jí),逐次處理事件。這種軟件構(gòu)架可以極大地降低系統(tǒng)的功耗。這部分的軟件主要包括設(shè)備初始化、協(xié)調(diào)器組網(wǎng)、節(jié)點(diǎn)加入網(wǎng)絡(luò)、無(wú)線(xiàn)數(shù)據(jù)收發(fā)和處理等程序。
系統(tǒng)初始化后,網(wǎng)絡(luò)協(xié)調(diào)器建立ZigBee網(wǎng)絡(luò),路由器節(jié)點(diǎn)、各個(gè)RFD(呼叫器節(jié)點(diǎn))隨后加入該網(wǎng)絡(luò)。路由器節(jié)點(diǎn)和呼叫器節(jié)點(diǎn)加入網(wǎng)絡(luò)成功后,馬上發(fā)送自己的編號(hào)給協(xié)調(diào)器,然后呼叫器節(jié)點(diǎn)進(jìn)入完全休眠。協(xié)調(diào)器節(jié)點(diǎn)工作狀態(tài)如圖5所示。
本系統(tǒng)中,呼叫器發(fā)送的信息有四種:
自己的編號(hào)、按鍵請(qǐng)求、電池電量低、提取處理結(jié)果命令。協(xié)調(diào)器發(fā)送給呼叫器處理結(jié)果有三種:當(dāng)前服務(wù)員忙,呼叫器LED燈亮;服務(wù)總臺(tái)正派服務(wù)員前往呼叫請(qǐng)求地,呼叫器上LED定時(shí)閃爍;服務(wù)員處理完呼叫請(qǐng)求,已返回總臺(tái),呼叫器上LED燈滅。
呼叫器節(jié)點(diǎn)在加入Zigbee網(wǎng)絡(luò)后,沒(méi)有呼叫請(qǐng)求或者當(dāng)前呼叫請(qǐng)求處理完成后,都能進(jìn)入完全休眠模式,很好地實(shí)現(xiàn)了低功耗的特點(diǎn)。此種休眠的實(shí)現(xiàn)是通過(guò)設(shè)置相關(guān)寄存器。其中RFPWR用于設(shè)置射頻功率,當(dāng)進(jìn)入休眠模式的時(shí)候,需要將電壓調(diào)整器的模擬部分關(guān)閉。SLEEP是睡眠模式控制器,用于設(shè)置電源模式1或2或3。PCON是電源模式控制寄存器,只有當(dāng)該寄存器最低位賦為1的時(shí)候,系統(tǒng)才能強(qiáng)制進(jìn)入由SLEEP寄存器所設(shè)定的電源模式。部分代碼如下:
除此之外,為了進(jìn)一步降低功耗,本文在呼叫器發(fā)出了呼叫請(qǐng)求且處于等待處理過(guò)程,或者收到處理結(jié)果,但是一直沒(méi)有處理完畢,這兩種情況下,給呼叫器節(jié)點(diǎn)加入了定時(shí)休眠的功能。
經(jīng)過(guò)實(shí)驗(yàn)可知,一個(gè)呼叫器和協(xié)調(diào)器點(diǎn)對(duì)點(diǎn)直接通信的可視距離為130m,當(dāng)呼叫器通過(guò)路由器與協(xié)調(diào)器通信的話(huà),呼叫器和協(xié)調(diào)器之間的通信可視距離就將近250m,即路由器發(fā)揮了它擴(kuò)展網(wǎng)絡(luò)、中轉(zhuǎn)信息的功能。相關(guān)測(cè)試參數(shù)如表1所示。
經(jīng)過(guò)反復(fù)測(cè)試,整個(gè)系統(tǒng)工作正常,6個(gè)呼叫節(jié)點(diǎn)能正確接收處理結(jié)果直完成,并且6個(gè)呼叫器節(jié)點(diǎn)能同時(shí)處于長(zhǎng)時(shí)間的工作狀態(tài),能正確接收自己所需要的信息。通過(guò)計(jì)算可知呼叫器節(jié)點(diǎn)電池壽命達(dá)10個(gè)月,實(shí)現(xiàn)了低功耗的要求,并且當(dāng)呼叫器節(jié)點(diǎn)電池電量低于2.1V的時(shí)候,呼叫器能發(fā)送電量低的信息給協(xié)調(diào)器,協(xié)調(diào)器傳給PC機(jī),通過(guò)串口界面操作人員就能很清楚地看到哪個(gè)呼叫器的電池需要更換,從而實(shí)現(xiàn)了電池檢測(cè)功能。
針對(duì)目前無(wú)線(xiàn)呼叫系統(tǒng)主要存在的電路比較復(fù)雜等問(wèn)題,本文對(duì)基于ZigBee技術(shù)的無(wú)線(xiàn)呼叫系統(tǒng)設(shè)計(jì)方案進(jìn)行了開(kāi)發(fā)和研究,設(shè)計(jì)并實(shí)現(xiàn)了無(wú)線(xiàn)呼叫網(wǎng)絡(luò),為無(wú)線(xiàn)呼叫系統(tǒng)在醫(yī)療、餐飲等方面的應(yīng)用開(kāi)發(fā)打下一定基礎(chǔ)。
[1]王瑋,樊則賓.基于CC2430的無(wú)線(xiàn)溫度檢測(cè)終端的設(shè)計(jì)[J].電子工程師,2007,8:78.
[2]瞿雷,劉盛德,胡咸斌.ZigBee技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007:10-13.
[3]王竹林,秦會(huì)斌,胡煒薇.基于ZigBee的無(wú)線(xiàn)呼叫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2009,3:613-615.
[4]Texas Instrument.CC2430 Datasheet[EB/OL].2007.5.
[5]Texas Instrument.CC2591 Datasheet[EB/OL].2008.6.