基于MSP430的烟雾报警器优化设计
扫描二维码
随时随地手机看文章
引 言
传统的烟雾报警器一般由烟雾传感器和烟雾探测芯片构成,探测芯片接收传感器信号并进行处理,从而判断是否有火灾发生。这种烟雾探测器结构简单、成本低,但存在误报率高和环境适应能力差的缺点。为了解决这一问题,单片机被嵌入到报警器中,以识别传感器因环境影响而产生的干扰信号。但是这样做又带来了其它方面的问题:(1)采用一般的单片机,比如51单片机,会大大增加报警器的功耗,这对于长时间需要电池供电的烟雾报警器而言是不能接受的;(2)传感器产生的是微弱的模拟信号,这一信号要经过放大、模数转换之后才能被单片机处理。采用独立的A/D转化电路不仅增加了系统的功耗,还降低了系统的可靠性;(3)单片机软件设计不合理,致使报警器误报率较高,操作控制也不灵活。
针对上述情况,本设计以TI公司的MSP430单片机为核心器件设计了一款烟雾报警器。在软件设计中采用模糊滤波算法,提高了单片机对环境的监测能力和自适应能力。
系统硬件设计
MSP430单片机简介
MSP430系列单片机是TI公司推出的16位超低功耗的混合数字信号处理器,它针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上。MSP430是基于精简指令集(RISC)结构的16位单片机,使用8MHz晶振工作时,指令速度可达8MIPS。MSP430单片机的电源采用1.8V~3.6V低电压,RAM数据保持方式下耗电仅为0.1μA,I/O输入端口的漏电流最大仅50nA。MSP430有正常工作模式(AM)和5种低功耗工作模式(LPM0~LPM4)。当电源电压为3V时,各种模式的工作电流分别为AM:340μA;LPM0:70μA;LPM2:17μA;LPM3:2μA;LPM4:0.1μA,单片机可以方便地在各种工作模式之间切换。MSP430的超低功耗使其在报警系统、便携式设备等对供电要求非常苛刻的应用中表现出优良的特性。MSP430系列单片机结合了TI公司高性能的模拟技术,各成员都集成了较丰富的片内外设(视不同型号而定),这些外设包括多通道高精度的ADC和DAC、片内模拟比较器、多个具有PWM功能的定时器、片内USART、硬件乘法器、液晶驱动器、看门狗定时器(WDT)、片内数控振荡器(DCO)、大量的I/O端口以及大容量的片内存储器等,单片可以满足绝大多数的应用需要。MSP430的高集成度使应用人员不必在各种外设上花太多的精力,便可以方便地设计出真正意义上的单片系统。
本设计采用MSP430F2254,其主要参数如下:16KB的Flash ROM 、512B片内RAM 、32个I/O口 、12通道10位的ADC 、3个16位定时器A和3个16位定时器B。
硬件电路设计
烟雾探测电路
烟雾探测采用光电传感器,传感器及放大电路如图1所示。传感器电路主要由红外发射管D1和红外接收管D2构成,探测信号经过放大之后被单片机接收。
D1和D2被置于光电感应室(俗称:迷宫)中,二者之间有障碍,D1发射的红外线不能直接被D2接收,当有烟雾进入迷宫时,红外线经烟雾折射后被D2接收,继而转化成电信号,以此检测烟雾的存在。单片机每隔一段时间由I/O端口P1.6输出高、低电平,控制D1发射红外线和停止发射,以探测烟雾。传感器间歇性地工作,便于降低功耗。集成运放的电源由单片机经P1.5提供。同样,只有在传感器工作时,运放才相应地对接收信号作放大处理,避免连续工作以降低功耗。信号经放大后通过单片机的P1.4引脚进入MSP430片内A/D转换器,避免了设计独立的A/D转换电路,既降低了功耗,同时也提高了系统的可靠性。P1.4作为ADC的输入通道A7。
报警电路
报警电路如图2所示。MSP430内部的定时器A能产生周期和占空比可调的脉宽调制(PWM)信号。PWM信号由P1.3引脚输出,经三极管放大之后驱动蜂鸣器。PWM信号占空比设定为50% ;改变信号频率可以调节蜂鸣器声音的大小,本系统设定为1kHz(频率为1kHz时,本报警器报警声音分贝数最大)。
低电压监测电路
电池经过长时间的工作后,自身的电压会逐渐降低,以至于无法维持报警系统正常工作。烟雾报警器对电池供电的稳定性具有严格要求。本烟雾报警器具有对电源低电压的自动监测功能。
低电压监测电路如图3所示。P1.1输出高电平使Q4、Q5导通,VDD在R11上的压降通过单片机P1.2引脚进入MSP430片内A/D转换器,此时P1.2作ADC的输入通道A2。电压信号经A/D转换后与设定的安全电压阈值作比较,从而判断电源电压是否正常。图3所示VDD表示的是系统供电电池的电压,本报警器选用9V干电池供电。VDD经过电压转换后变成3.3V的VCC。
系统软件
信号数据处理
尽管许多烟雾报警器采用单片机来处理信号,但仍存在较高的误报率,其中一个重要的原因在于对信号的处理不够合理。本报警器在信号数据处理的程序设计上采用了模糊推理滤波的思想,以提高系统的自适应能力从而降低误报率。
火灾现场的环境复杂,火灾信号也具有很大的随机性,传感器探测到的烟雾参数是无法预知和不确定的。环境变化和探测器系统内部噪声对烟雾参数会产生干扰,需要将A/D转换后的数据经过滤波处理,并要求信号处理算法能够适应各种环境因素变化的影响,自动调整报警参数以达到既能快速探测火灾又有降低误报率的目的。
模糊数学中的模糊逻辑理论较好地解决了采用精确计算和布尔逻辑难以确定的问题,因此在软件设计中,信号数据处理程序采用了模糊逻辑算法以解决外界干扰的模糊性和报警阈值变化之间的关系,从而达到提高探测器可靠性的目的。首先对经过A/D转换后的烟雾信号模糊化,具体如下:当烟雾信号值x小于阈值 B0 时,认为没有出现火警;当信号值x大于阈值 B1时,认为出现火警;当信号值x介于B0 和B1 两个阈值之间时,认为可能出现火警,并且x越大越接近B1 时,火警出现的根据越充分。模糊化隶属度函数如下:
式中,A为反应火灾出现可能性的模糊量,f(x)为相应的隶属度。
外界环境的干扰信号带来的影响是瞬态的,可采用窗口移动滤波法来提高抗干扰能力。滤波函数如下:
窗口大小取值为5,当连续有5次f(x)值不为零时,计算K值,判断K值是否超过阈值K0 ,如果K大于或等于K0时立即报警,否则不报警。
在上述信号数据处理过程中,模糊量A是一个与温度相关的值。报警器在探测烟雾的同时,还通过温度传感器对现场环境温度进行监测。A与温度的对应关系表预先存入单片机中,单片机根据监测到的环境温度来查找该关系表,以确定A的值。阈值B0 、B1 和K0 是3个关系报警器精度的量,需合理设置,以确保报警器在精度符合国家标准的前提下大幅降低误报率。
应用程序设计
IAR公司的IAR Embedded Workbench是一套支持TI MSP430处理器的集成开发环境,支持汇编语言和C语言的编译、仿真与调试。为了加强软件的可读性和可移植性,采用C语言开发应用程序。
应用程序设计采用模块化的设计思想。整个程序包括:主程序和中断服务子程序两大部分。主程序由初始化模块、烟雾信号处理模块两大部分组成。中断服务子程序由烟雾信号探测及采样模块、低电压检测模块和系统自检模块构成。烟雾信号探测及采样流程如图4所示。
软件设计中的一些要点:(1)初始化程序时,单片机中未使用的引脚应设置为输出状态,以减小功耗。(2)在采样程序中,由于光电传感器及信号放大电路的上电和稳定需要一定时间,因此在开启A/D转换器之前要延迟一段时间,以等待传感器和放大电路稳定,如图4所示。(3)单片机中,CPU与外围模块之间是独立运行的,要灵活利用MSP430单片机的低功耗模式,以降低整个系统的功耗。例如在信号的采样过程中,ADC作为外设负责信号的采样和转换,而此时CPU可以进入低功耗模式,等待转换结束。(4)MSP430单片机的P1和P2端口除了具有输入输出功能和外部模块功能外,端口中的每一位都具有开关中断的功能,利用这些开关中断的中断服务程序可以实现一些额外的功能。
结束语
MSP430内嵌到烟雾报警器中,一方面增强了报警器的性能,使之更加智能化;另一方面降低了开发难度。MSP430系列单片机型号众多,开发者可根据产品的功能和成本作合理的选择。