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 数据采集端软件流程
图5 数据接收端软件流程
串口初始化程序如下:
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;
}
主程序如下:
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技术的无线火灾报警系统将得到推广和应用。
2/2 首页 上一页 1 2 |