微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 谈ARM对多传感器的精确定时

谈ARM对多传感器的精确定时

时间:03-18 来源:互联网 点击:
3 报警服务的实现

数字数据的提取、报警与A/D控制寄存器的设置均可通过中断服务程序来完成。

定时器0为4号中断源,如图3所示,所以需要用中断使能寄存器对4号中断源进行使能。采用向量IRQ中断,需要用VICIntSelect将4号中断源选择为向量IRQ,即第4位置1。然后将中断服务程序地址赋给VICVectAddr0(因为向量通道0是最快的),最后用向量控制寄存器对向量通道0分配中断源并使能。



在初始化定时器0时,将匹配控制寄存器TOMCR赋值;它的二进制赋值是 10001000001,即它的十六进制赋值是0x441,每3位设置一个匹配;设置的是当定时器0计数器的值与匹配0寄存器值相等时产生一个中断,当定时器0计数器的值与匹配2寄存器值相等时又产生1次中断,当定时器0计数器的值与匹配3寄存器值相等时定时器0计数器TC清零复位。

TC 每次复位后将产生2次中断,产生第1次中断后,中断服务程序将读取A/D数据寄存器ADDR1的值,并提取10位A/D转换的结果(即一氧化碳浓度值);再将这一数据与初告警、中度告警和强度告警值进行比较,满足这3种告警的某一种,就立刻进行声光报警。因A/D控制寄存器ADCR的MAT信号不必输出到引脚上的START位设置是唯一的,中断服务程序还需对A/D控制寄存器ADCR进行设置。设置START=4,当EDGE选择的边沿出现在MAT0.1 时启动A/D转换;EDGE=0,MAT0.1为下降沿触发。通过中断服务程序来完成对AIN0通道(即瓦斯浓度信号通道)A/D转换器的启动。

产生第2次中断后,中断服务程序将读取A/D数据寄存器ADDR0的值,并提取10位A/D转换的结果(即瓦斯浓度值);再将这一数据与初度告警、中度告警和强度告警值进行比较,满足这3种告警的某一种,就立刻进行该声光报警。因A/D控制寄存器的MAT信号不必输出到引脚上的START位置是唯一的,因此还需对A/D控制寄存器进行设置。设置START=5,当EDGE选择的边沿出现在MAT0.3时启动ADC转换;EDGE=0,MAT0.3为下降沿触发。通过中断服务程序来完成对AINl通道(即一氧化碳浓度信号通道)A/D转换器的启动。

这样,当TC值与MR0值相等时,响应中断服务进行一氧化碳值判断与告警并设置MAT0.1的启动转换。当TC值与MR1值相等时,设置MAT1输出信号翻转;当TC值与MR2值相等时,响应中断服务进行瓦斯值判断与告警并设置MAT0.3的启动转换;当TC值与MR3值相等时,设置MAT3输出信号翻转并同时TC复位。这样循环往复,可以无需 CPU干预就能精确地定时触发,精确地按时进行多个传感器的触发和多个判断告警,即通过中断服务程序实现了有害气体检测告警服务。

结语

根据上述原理,使用ARM LPC2103芯片,已完成了一个可随身携带的煤矿瓦斯报警器。它能及时检测与显示煤矿、隧道及各种地下工程等环境中的瓦斯(即甲烷)及一氧化碳浓度。当达到有害浓度值时,可进行不同级别的声光报警。

此种报警器不仅适用于煤矿,安装其他传感器后也可用于其他矿山、化工重地、仓库等具有爆炸危险的气体环境中,提高安全监控能力。

将煤矿瓦斯报警器CH4、C20传感器换成可燃气体、甲醛传感器,就可用在厨房和居室,对有害气体的超标情况进行报警。它的用途还可进一步扩展。

刘敦放

(重庆普天通信设备有限公司,重庆 400050)

来源:《单片机与嵌入式系统应用》2010年01期

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top