在消防安全报警系统中,烟雾传感器设计的主要要求为:低功耗,低成本,高可靠性。飞思卡尔半导体推出的MC9S08QG4的具有高集成度、高性能,低功耗,高性价比和优异的可靠性,非常适合用于烟雾传感器的设计。
图1表示了烟雾传感器的一般结构。环路中的每一只烟雾传感器都具有唯一的地址编码。
MC9S08QG4特性及片上资源
·20MHz HCS08 CPU,支持高效C语言编程。
·4 KB FLASH,256 字节RAM。
·内部时钟源可以以0.2%的分辨率调整。
·12个功能丰富的双向通用I/O,1个输入和1个输出端口。
·8通道10位ADC具有转换结果自动比较功能,可在CPU休眠时独立工作。
·带有内部参考电压的轨到轨模拟比较器。
·1个8位定时器,一个16位两通道定时器。
·通用异步串行通讯接口,SPI和I2C。
·1.8 ~3.6 V工作,4种低功耗模式,工作频率可在应用中切换。
·看门狗、低电压检测、非法操作码和非法操作数检测功能提高可靠性。
MC9S08QG4用于烟雾传感器设计时需要注意几个问题:
时钟选择以及低功耗设计
MC9S08QG4具有4种低功耗模式,且其内部时钟源可以方便地切换不同的系统工作频率。在烟雾传感器的设计实践中,一般有两种设计模型:不使用休眠模式和使用休眠模式。
不使用休眠模式
不使用休眠模式时,MC9S08QG4常见的工作频率为250kHz到16kHz之间,此时,可以选用1MHz、455kHz或32kHz的晶体或陶瓷谐振器,与引脚组成振荡电路,并且关闭微控制器内部的锁频环倍频电路,MC9S08QG4一直保持工作而不进入休眠状态。在3V供电,外接455kHz谐振器,内部2分频工作时,其工作电流约为200mA。工作在此模式下的一个设计实例其总工作电流小于400mA。
使用休眠模式
使用休眠模式时,MC9S08QG4的工作状态根据不同的处理需要被实时调节。大部分时间它处于STOP3模式,工作电流为750 nA。实时中断定时器产生一个周期性的中断唤醒微控制器,然后打开ADC,启动转换后继续进入STOP3,由ADC转换完成或者自动比较功能唤醒。和总线接口的引脚也可以通过其键盘中断功能唤醒微控制器进行通讯。工作在此模式下的一个设计实例其总平均工作电流略高于300mA。
使用FLASH存储器模拟EEPROM
MC9S08QG4的内部FLASH存储器具有10万次擦写周期,在整个工作电压范围内都可以编程和写入。在应用FLASH模拟EEPROM时,需要考虑的问题有:
FLASH擦写代码的执行
FLASH在进行擦写时,FLASH阵列被加上编程电压,此时从FLASH中取指是不安全的,因此需要把擦写FLASH的代码复制到RAM中执行。
FLASH擦写时序的参考时钟
MC9S08QG4内部建立了FLASH擦写的硬件时序,由它控制编程电压的发生和延时。为了使内部时序正常工作,要提供正确的参考时钟fFCLK(150kHz~200kHz之间,超出这个范围可能造成FLASH擦写不完全或者影响FLASH单元的寿命)。
FLASH擦写周期
FLASH只能按页(对于MC9S08QG4,一个页面的大小为512字节)擦除,按字节编程(MC9S08QG4还支持突发编程)。一个完整的擦写周期的定义为:FLASH擦除操作之间的所有操作,包含一次按页擦除和多次按字节编程。因此可以使用一些数学的方法来交替使用一个页面内的512字节存储空间,从而减少FLASH的擦写次数,延长寿命。
FLASH写保护和中断向量表重新定位
当用户程序中包含对FLASH操作的代码时,就会存在FLASH被无意改写的潜在危险,所以需要打开FLASH的写保护功能。MC9S08QG4的FLASH写保护机制被使能后,如果中断向量表也被重新定位,则用户程序一定要重新映射中断服务程序的入口地址,否则任何中断的发生将导致程序崩溃。
ADC数据采集和转换
ADC工作的基础时钟fADCK可以是总线频率或其分频结果,或者独立的异步本地时钟。当ADC工作于低功耗模式时,fADCK应该在400kHz到4MHz之间。假如MC9S08QG4工作于227.5kHz总线频率,则必须使用ADC的异步本地时钟提供其工作基础时钟以保证其精度。
ADC模块提供的自动比较功能可以方便应用设计,比如可以设置一个阈值,只有当转换结果大于或者等于该阈值时,才通过中断去处理转换结果,否则抛弃转换结果以节省CPU时间和工作电流。 |