无线射频芯片与单片机系统相结合,可以实现早期火灾信号的探测和预报警。本文主要介绍基于ZigBee标准的射频芯片CC2500和以STC89LE516AD单片机为核心的无线火灾报警系统的硬件电路及软件流程设计。该系统通过射频收发模块实现数据的传输。
关键词 ZigBee CC2500 STC89LE516AD 火灾报警系统
现有的火灾报警系统,多采用有线技术进行火灾传感器网络的组建。这类方案的特点是扩展性能差,布线繁琐,影响美观。由于采用硬线连接,线路容易老化或遭到腐蚀、鼠咬、磨损,故障发生率较高,误报警率高。采用无线传输方式构建的无线火灾传感器网络恰好可以避免这些问题。相对而言,无线的方式比较灵活,避免了重新布线的麻烦,网络的基础设施不再需要掩埋在地下或隐藏在墙里,无线网络可以适应移动或变化的需要;但是,无线通信技术在火灾监控领域的应用相对还是很少。这主要是因为目前没有一项无线通信技术适合在火灾监控领域进行广泛的推广,而且现有一些无线通信产品的价格偏高,导致无线通信技术在火灾监控中的应用停滞不前。
随着近年来人类在微电子机械系统、无线通信、数字电子方面取得的巨大成就,使得发展低成本、低功耗、小体积、短距离通信的多功能传感器成为可能。ZigBee技术的出现就解决了这些问题。将无线ZigBee传感器网络和人工智能结合,可以大大提高火灾报警系统的可靠性。正是由于ZigBee技术具有功耗极低、系统简单、组网方式灵活、成本低、等待时间短等性能,相对于其他无线网络技术,它更适合于组建大范围的无线火灾探测器网络。
1 ZigBee技术简介[1-2]
1.1 ZigBee技术产生背景
为了满足小型、低成本设备无线联网的要求,2000年12月成立了IEEE 802.15.4工作组,主要负责制定物理层和MAC层的协议,其余协议主要参照和采用现有的标准;高层应用、测试和市场推广等方面的工作则由成立于2002年8月的联盟负责。联盟由英国Invensys公司、日本三菱电气公司、美国Motorola公司以及荷兰Philips公司组成,如今已经吸引了上百家芯片公司、无线设备公司和开发商的加入。
1.2 ZigBee技术概述
ZigBee技术是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,主要适合于自动控制和远程控制领域,可以嵌入到各种设备中,同时支持地理定位功能。
一般而言,随着通信距离的增大,设备的复杂度、功耗以及系统成本都在增加。相对于现有的各种无线通信技术,ZigBee技术将是功耗和成本最低的技术;但是ZigBee技术的数据速率低和通信范围较小的特点,又决定了ZigBee技术适合于承载数据流量较小的业务。
ZigBee技术可采用的拓扑模型有星形网络结构、网状网络结构和簇状树形结构(Mesh)。前两者的结构示意图如图1所示。
图1 ZigBee网络拓扑结构
1.3 ZigBee技术优点
ZigBee技术有以下特点:
① 省电。由于工作周期很短、收发信息功耗较低,并且采用了休眠模式,因此ZigBee技术可以确保2节五号电池支持长达6个月到2年左右的使用时间。不同的应用对应的功耗自然是不同的。
② 可靠。采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突。MAC层采用了完全确认的数据传输机制,每个发送的数据包都必须等待接收方的确认信息。
③ 成本低。模块价格低廉,且ZigBee协议是免专利费的。
④ 时延短。针对时延敏感的应用作了优化,通信时延和从休眠状态激活的时延都非常短。设备搜索时延典型值为30 ms,休眠激活时延典型值是15 ms,活动设备信道接入时延为15 ms。
⑤ 节点通信设置易于配置。
⑥ 网络容量大。ZigBee可以采用星形、网状、串状结构组网,而且可以通过任一节点连接组成更大的网络结构。从理论上讲,其可连接的节点多达64 000个。1个 ZigBee网络最多可以容纳254个从设备和1个主设备,1个区域内可以同时存在最多100个ZigBee网络。
⑦ 安全。ZigBee提供了数据完整性检查和鉴权功能,加密算法采用AES128,同时各个应用可以灵活确定其安全属性。
⑧ 全球通用性和完好的开放性。ZigBee标准协议,使ZigBee设备间的通信成为轻而易举的事情。
2 系统方案设计
系统总体结构框图如图2所示。无线传感器将探测到的火灾信号通过ZigBee无线通信方式发送至数据集中器;数据集中器将收集的数据送至火灾监控中心,再由火灾监控中心对这些数据进行计算处理和统计评估。火灾信号判断的原则不是简单的非准则,而需要同时考虑其他多种因素。根据预先设定的有关规则,将这些数据转换为适当的报警动作指标,相应地发出预报警。例如,产生少量烟,但温度急剧上升——发出报警;产生少量烟,且温升平缓——发出预报警等。
图2 系统总体结构框图
从网络节点逻辑功能上,ZigBee设备可以分为终端设备(end device)、路由节点(router)、网络协调器(PAN coordinator);从设备的功能性上区分,可以分为全功能设备FFD(Full FuncTIon Device)和简约功能设备RFD(Reduced FuncTIon Device)。其中,全功能设备可以充当网络协调器、路由结点或终端设备,而简约功能设备只能充当终端设备节点。因此,从网络逻辑结构上分析,ZigBee火灾报警系统内的数据集中器是ZigBee网络中的网络协调器;数据集中点是路由节点;无线传感器是终端设备,根据传感器安置的位置,也可设为路由节点。一个ZigBee网络最多支持65 535个节点,完全可以满足需要。
3 系统硬件设计
系统主要由数据采集端和数据接收端构成。数据采集端由传感器、MCU和无线收发芯片等组成。MCU与无线收发芯片通过SPI总线连接,二者构成无线传输模块。数据接收端使用相同的无线收发模块,并利用RS232异步串口与PC机通信。其功能相当于一个接入点,一方面将主机向数据采集端发送的控制信号以无线的方式发射出去,另一方面接收采集数据并上传给主机。系统硬件结构框图如图3所示。
图3 系统硬件结构框图
系统工作原理:当传感器测试到火灾信号时,由火灾控制中心对这些数据进行计算处理和统计评估。火灾信号判断的原则不是简单的非准则,而需要同时考虑其他多种因素。根据预先设定的有关规则,将这些数据转换为适当的报警动作指标,相应地发出预报警。
主控MCU是STC89LE516AD单片机,为51内核增强型8位单片机,与Intel MCS51系列单片机完全兼容。STC89LE516AD有丰富的片上存储功能,具有64 KB Flash和512字节 RAM。单片机自身固化有ISP程序,通过串口下载程序。
CC2500是一款低成本、低功耗、高性能的无线收发芯片。其工作频段为2.4 GHz的ISM频段;具有良好的无线接收灵敏度和强大的抗干扰能力;在休眠模式时仅0.9 μA的流耗,外部中断或RTC能唤醒系统;在待机模式时少于0.6 μA的流耗,外部中断能唤醒系统;硬件支持CSMA/CA功能;电压为1.8~3.6 V;在传输模式下,当输出功率为-12 dBm时,电流消耗为12 mA。CC2500的接收器敏感度为-101 dBm(在10 kbps时);最大输出功率为0 dBm,数据速率可在1.2 kbps~500 kbps之间变化;带有2个强大的支持几组协议的USART,以及1个MAC计时器、1个常规的16位计时器和2个8位计时器。
4 软件设计
系统的软件由数据采集端和数据接收端程序组成,均包括初始化程序、发射程序和接收程序。初始化程序主要是对单片机、射频芯片、SPI等进行处理;发射程序将建立的数据包通过单片机SPI接口送至射频发生模块输出;接收程序完成数据的接收并进行处理。数据采集端软件流程如图4所示,接收端软件流程如图5所示。
图4 数据采集端软件流程
串口初始化程序如下:
void UartInit(void) {
SCON=0x50;//串口方式1,允许接收
TMOD=0x21;//定时器1工作方式2,定时器0工作方式1
TH1=TIMER1;
TL1=TIMER1;
TR1=1;//启动定时器1
}
SPI初始化程序如下:
CpuInit(void) {
UartInit();
//TimerInit();
SpiInit();
delay(5000);
}
SPI发送程序:
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;
}
图5 数据接收端软件流程
主程序如下:
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);
}
}
结语
经实验证明,以STC89LE516AD单片机为核心,基于ZigBee技术的火灾报警系统,可以准确地进行早期的火灾探测,实现火灾预报警。相信通过努力,一个功能完善,基于ZigBee技术的无线火灾报警系统将得到推广和应用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)