無(wú)線射頻芯片與單片機(jī)系統(tǒng)相結(jié)合,可以實(shí)現(xiàn)早期火災(zāi)信號(hào)的探測(cè)和預(yù)報(bào)警。本文主要介紹基于ZigBee標(biāo)準(zhǔn)的射頻芯片CC2500和以STC89LE516AD單片機(jī)為核心的無(wú)線火災(zāi)報(bào)警系統(tǒng)的硬件電路及軟件流程設(shè)計(jì)。該系統(tǒng)通過(guò)射頻收發(fā)模塊實(shí)現(xiàn)數(shù)據(jù)的傳輸。
關(guān)鍵詞 ZigBee CC2500 STC89LE516AD 火災(zāi)報(bào)警系統(tǒng)
現(xiàn)有的火災(zāi)報(bào)警系統(tǒng),多采用有線技術(shù)進(jìn)行火災(zāi)傳感器網(wǎng)絡(luò)的組建。這類方案的特點(diǎn)是擴(kuò)展性能差,布線繁瑣,影響美觀。由于采用硬線連接,線路容易老化或遭到腐蝕、鼠咬、磨損,故障發(fā)生率較高,誤報(bào)警率高。采用無(wú)線傳輸方式構(gòu)建的無(wú)線火災(zāi)傳感器網(wǎng)絡(luò)恰好可以避免這些問(wèn)題。相對(duì)而言,無(wú)線的方式比較靈活,避免了重新布線的麻煩,網(wǎng)絡(luò)的基礎(chǔ)設(shè)施不再需要掩埋在地下或隱藏在墻里,無(wú)線網(wǎng)絡(luò)可以適應(yīng)移動(dòng)或變化的需要;但是,無(wú)線通信技術(shù)在火災(zāi)監(jiān)控領(lǐng)域的應(yīng)用相對(duì)還是很少。這主要是因?yàn)槟壳皼](méi)有一項(xiàng)無(wú)線通信技術(shù)適合在火災(zāi)監(jiān)控領(lǐng)域進(jìn)行廣泛的推廣,而且現(xiàn)有一些無(wú)線通信產(chǎn)品的價(jià)格偏高,導(dǎo)致無(wú)線通信技術(shù)在火災(zāi)監(jiān)控中的應(yīng)用停滯不前。
隨著近年來(lái)人類在微電子機(jī)械系統(tǒng)、無(wú)線通信、數(shù)字電子方面取得的巨大成就,使得發(fā)展低成本、低功耗、小體積、短距離通信的多功能傳感器成為可能。ZigBee技術(shù)的出現(xiàn)就解決了這些問(wèn)題。將無(wú)線ZigBee傳感器網(wǎng)絡(luò)和人工智能結(jié)合,可以大大提高火災(zāi)報(bào)警系統(tǒng)的可靠性。正是由于ZigBee技術(shù)具有功耗極低、系統(tǒng)簡(jiǎn)單、組網(wǎng)方式靈活、成本低、等待時(shí)間短等性能,相對(duì)于其他無(wú)線網(wǎng)絡(luò)技術(shù),它更適合于組建大范圍的無(wú)線火災(zāi)探測(cè)器網(wǎng)絡(luò)。
1? ZigBee技術(shù)簡(jiǎn)介[1-2]
1.1? ZigBee技術(shù)產(chǎn)生背景
為了滿足小型、低成本設(shè)備無(wú)線聯(lián)網(wǎng)的要求,2000年12月成立了IEEE 802.15.4工作組,主要負(fù)責(zé)制定物理層和MAC層的協(xié)議,其余協(xié)議主要參照和采用現(xiàn)有的標(biāo)準(zhǔn);高層應(yīng)用、測(cè)試和市場(chǎng)推廣等方面的工作則由成立于2002年8月的聯(lián)盟負(fù)責(zé)。聯(lián)盟由英國(guó)Invensys公司、日本三菱電氣公司、美國(guó)Motorola公司以及荷蘭Philips公司組成,如今已經(jīng)吸引了上百家芯片公司、無(wú)線設(shè)備公司和開(kāi)發(fā)商的加入。
1.2? ZigBee技術(shù)概述
ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無(wú)線通信技術(shù),主要適合于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入到各種設(shè)備中,同時(shí)支持地理定位功能。
一般而言,隨著通信距離的增大,設(shè)備的復(fù)雜度、功耗以及系統(tǒng)成本都在增加。相對(duì)于現(xiàn)有的各種無(wú)線通信技術(shù),ZigBee技術(shù)將是功耗和成本最低的技術(shù);但是ZigBee技術(shù)的數(shù)據(jù)速率低和通信范圍較小的特點(diǎn),又決定了ZigBee技術(shù)適合于承載數(shù)據(jù)流量較小的業(yè)務(wù)。
ZigBee技術(shù)可采用的拓?fù)淠P陀行切尉W(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)和簇狀樹(shù)形結(jié)構(gòu)(Mesh)。前兩者的結(jié)構(gòu)示意圖如圖1所示。
圖1? ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
1.3? ZigBee技術(shù)優(yōu)點(diǎn)
ZigBee技術(shù)有以下特點(diǎn):
①? 省電。由于工作周期很短、收發(fā)信息功耗較低,并且采用了休眠模式,因此ZigBee技術(shù)可以確保2節(jié)五號(hào)電池支持長(zhǎng)達(dá)6個(gè)月到2年左右的使用時(shí)間。不同的應(yīng)用對(duì)應(yīng)的功耗自然是不同的。
②? 可靠。采用了碰撞避免機(jī)制,同時(shí)為需要固定帶寬的通信業(yè)務(wù)預(yù)留了專用時(shí)隙,避免了發(fā)送數(shù)據(jù)時(shí)的競(jìng)爭(zhēng)和沖突。MAC層采用了完全確認(rèn)的數(shù)據(jù)傳輸機(jī)制,每個(gè)發(fā)送的數(shù)據(jù)包都必須等待接收方的確認(rèn)信息。
③? 成本低。模塊價(jià)格低廉,且ZigBee協(xié)議是免專利費(fèi)的。
④? 時(shí)延短。針對(duì)時(shí)延敏感的應(yīng)用作了優(yōu)化,通信時(shí)延和從休眠狀態(tài)激活的時(shí)延都非常短。設(shè)備搜索時(shí)延典型值為30 ms,休眠激活時(shí)延典型值是15 ms,活動(dòng)設(shè)備信道接入時(shí)延為15 ms。
⑤? 節(jié)點(diǎn)通信設(shè)置易于配置。
⑥? 網(wǎng)絡(luò)容量大。ZigBee可以采用星形、網(wǎng)狀、串狀結(jié)構(gòu)組網(wǎng),而且可以通過(guò)任一節(jié)點(diǎn)連接組成更大的網(wǎng)絡(luò)結(jié)構(gòu)。從理論上講,其可連接的節(jié)點(diǎn)多達(dá)64 000個(gè)。1個(gè) ZigBee網(wǎng)絡(luò)最多可以容納254個(gè)從設(shè)備和1個(gè)主設(shè)備,1個(gè)區(qū)域內(nèi)可以同時(shí)存在最多100個(gè)ZigBee網(wǎng)絡(luò)。
⑦? 安全。ZigBee提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,加密算法采用AES128,同時(shí)各個(gè)應(yīng)用可以靈活確定其安全屬性。
⑧? 全球通用性和完好的開(kāi)放性。ZigBee標(biāo)準(zhǔn)協(xié)議,使ZigBee設(shè)備間的通信成為輕而易舉的事情。
2? 系統(tǒng)方案設(shè)計(jì)
系統(tǒng)總體結(jié)構(gòu)框圖如圖2所示。無(wú)線傳感器將探測(cè)到的火災(zāi)信號(hào)通過(guò)ZigBee無(wú)線通信方式發(fā)送至數(shù)據(jù)集中器;數(shù)據(jù)集中器將收集的數(shù)據(jù)送至火災(zāi)監(jiān)控中心,再由火災(zāi)監(jiān)控中心對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算處理和統(tǒng)計(jì)評(píng)估?;馂?zāi)信號(hào)判斷的原則不是簡(jiǎn)單的非準(zhǔn)則,而需要同時(shí)考慮其他多種因素。根據(jù)預(yù)先設(shè)定的有關(guān)規(guī)則,將這些數(shù)據(jù)轉(zhuǎn)換為適當(dāng)?shù)膱?bào)警動(dòng)作指標(biāo),相應(yīng)地發(fā)出預(yù)報(bào)警。例如,產(chǎn)生少量煙,但溫度急劇上升——發(fā)出報(bào)警;產(chǎn)生少量煙,且溫升平緩——發(fā)出預(yù)報(bào)警等。
從網(wǎng)絡(luò)節(jié)點(diǎn)邏輯功能上,ZigBee設(shè)備可以分為終端設(shè)備(end device)、路由節(jié)點(diǎn)(router)、網(wǎng)絡(luò)協(xié)調(diào)器(PAN coordinator);從設(shè)備的功能性上區(qū)分,可以分為全功能設(shè)備FFD(Full Function Device)和簡(jiǎn)約功能設(shè)備RFD(Reduced Function Device)。其中,全功能設(shè)備可以充當(dāng)網(wǎng)絡(luò)協(xié)調(diào)器、路由結(jié)點(diǎn)或終端設(shè)備,而簡(jiǎn)約功能設(shè)備只能充當(dāng)終端設(shè)備節(jié)點(diǎn)。因此,從網(wǎng)絡(luò)邏輯結(jié)構(gòu)上分析,ZigBee火災(zāi)報(bào)警系統(tǒng)內(nèi)的數(shù)據(jù)集中器是ZigBee網(wǎng)絡(luò)中的網(wǎng)絡(luò)協(xié)調(diào)器;數(shù)據(jù)集中點(diǎn)是路由節(jié)點(diǎn);無(wú)線傳感器是終端設(shè)備,根據(jù)傳感器安置的位置,也可設(shè)為路由節(jié)點(diǎn)。一個(gè)ZigBee網(wǎng)絡(luò)最多支持65 535個(gè)節(jié)點(diǎn),完全可以滿足需要。
3? 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)主要由數(shù)據(jù)采集端和數(shù)據(jù)接收端構(gòu)成。數(shù)據(jù)采集端由傳感器、MCU和無(wú)線收發(fā)芯片等組成。MCU與無(wú)線收發(fā)芯片通過(guò)SPI總線連接,二者構(gòu)成無(wú)線傳輸模塊。數(shù)據(jù)接收端使用相同的無(wú)線收發(fā)模塊,并利用RS232異步串口與PC機(jī)通信。其功能相當(dāng)于一個(gè)接入點(diǎn),一方面將主機(jī)向數(shù)據(jù)采集端發(fā)送的控制信號(hào)以無(wú)線的方式發(fā)射出去,另一方面接收采集數(shù)據(jù)并上傳給主機(jī)。系統(tǒng)硬件結(jié)構(gòu)框圖如圖3所示。
系統(tǒng)工作原理:當(dāng)傳感器測(cè)試到火災(zāi)信號(hào)時(shí),由火災(zāi)控制中心對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算處理和統(tǒng)計(jì)評(píng)估?;馂?zāi)信號(hào)判斷的原則不是簡(jiǎn)單的非準(zhǔn)則,而需要同時(shí)考慮其他多種因素。根據(jù)預(yù)先設(shè)定的有關(guān)規(guī)則,將這些數(shù)據(jù)轉(zhuǎn)換為適當(dāng)?shù)膱?bào)警動(dòng)作指標(biāo),相應(yīng)地發(fā)出預(yù)報(bào)警。
主控MCU是STC89LE516AD單片機(jī),為51內(nèi)核增強(qiáng)型8位單片機(jī),與Intel MCS51系列單片機(jī)完全兼容。STC89LE516AD有豐富的片上存儲(chǔ)功能,具有64 KB Flash和512字節(jié) RAM。單片機(jī)自身固化有ISP程序,通過(guò)串口下載程序。
CC2500是一款低成本、低功耗、高性能的無(wú)線收發(fā)芯片。其工作頻段為2.4 GHz的ISM頻段;具有良好的無(wú)線接收靈敏度和強(qiáng)大的抗干擾能力;在休眠模式時(shí)僅0.9 μA的流耗,外部中斷或RTC能喚醒系統(tǒng);在待機(jī)模式時(shí)少于0.6 μA的流耗,外部中斷能喚醒系統(tǒng);硬件支持CSMA/CA功能;電壓為1.8~3.6 V;在傳輸模式下,當(dāng)輸出功率為-12 dBm時(shí),電流消耗為12 mA。CC2500的接收器敏感度為-101 dBm(在10 kbps時(shí));最大輸出功率為0 dBm,數(shù)據(jù)速率可在1.2 kbps~500 kbps之間變化;帶有2個(gè)強(qiáng)大的支持幾組協(xié)議的USART,以及1個(gè)MAC計(jì)時(shí)器、1個(gè)常規(guī)的16位計(jì)時(shí)器和2個(gè)8位計(jì)時(shí)器。
4? 軟件設(shè)計(jì)
系統(tǒng)的軟件由數(shù)據(jù)采集端和數(shù)據(jù)接收端程序組成,均包括初始化程序、發(fā)射程序和接收程序。初始化程序主要是對(duì)單片機(jī)、射頻芯片、SPI等進(jìn)行處理;發(fā)射程序?qū)⒔⒌臄?shù)據(jù)包通過(guò)單片機(jī)SPI接口送至射頻發(fā)生模塊輸出;接收程序完成數(shù)據(jù)的接收并進(jìn)行處理。數(shù)據(jù)采集端軟件流程如圖4所示,接收端軟件流程如圖5所示。
串口初始化程序如下:
void UartInit(void) {
SCON=0x50;//串口方式1,允許接收
TMOD=0x21;//定時(shí)器1工作方式2,定時(shí)器0工作方式1
TH1=TIMER1;
TL1=TIMER1;
TR1=1;//啟動(dòng)定時(shí)器1
}
SPI初始化程序如下:
CpuInit(void) {
UartInit();
//TimerInit();
SpiInit();
delay(5000);
}
SPI發(fā)送程序:
INT8U SpiTxRxByte(INT8U dat) {
INT8U i,temp;
temp=0;
SCK=0;
for(i=0; i<8; i++) {
if(dat & 0x80)MOSI=1;
else MOSI=0;
dat<<=1;
SCK=1;
_nop_();
_nop_();
temp<<=1;
if(MISO)temp++;
SCK=0;
_nop_();
_nop_();
}
return temp;
}
中斷程序如下:
void Timer0ISR(void) interrupt 1 {
EA=0;
TH0+=TIMER0H;
TL0+=TIMER0L;
TimerCount++;
timer[0]++;
timer[1]++;
EA=1;
}
主程序如下:
main(void) {
INT8U arrTx[4];
CpuInit();
POWER_UP_RESET_CC2500();
halRfWriteRfSettings();
halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);
LED1=0;
LED2=0;
delay(30000);
LED1=1;
LED2=1;
delay(30000);
arrTx[0]=0xBB;
arrTx[1]=0xAA;
arrTx[2]=0x55;
arrTx[3]=0x09;
while(1) {
halRfSendPacket(arrTx,4);
LED2=0;
delay(10000);
LED2=1;
delay(10000);
}
}
結(jié)語(yǔ)
經(jīng)實(shí)驗(yàn)證明,以STC89LE516AD單片機(jī)為核心,基于ZigBee技術(shù)的火災(zāi)報(bào)警系統(tǒng),可以準(zhǔn)確地進(jìn)行早期的火災(zāi)探測(cè),實(shí)現(xiàn)火災(zāi)預(yù)報(bào)警。相信通過(guò)努力,一個(gè)功能完善,基于ZigBee技術(shù)的無(wú)線火災(zāi)報(bào)警系統(tǒng)將得到推廣和應(yīng)用。
評(píng)論
查看更多