加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 无线传输技术

基于ZigBee技术的火灾报警系统设计

时间:2012-11-04  来源:123485.com  作者:9stone

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技术的无线火灾报警系统将得到推广和应用。


 

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->无线传输技术
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门