谈ARM对多传感器的精确定时
能同时检查两种以上有害气体的装置,既要便于携带,又要精确定时检查多种有害气体,这里选用32位ARM微处理器来实现该功能。
利用32位 ARM微处理器的优势,可以满足便于携带与精确定时报警的要求。本文将针对精确定时这一问题进行一些探讨。
1ARM嵌入式随身瓦斯报警器的基本原理
如图1所示,瓦斯报警器主要包括:ARM芯片外部的输入输出部分,ARM芯片内部与外部输入连接的 A/D转换部分和与芯片内部与外部输出连接的GPIO部分。

1.1 输入输出部分
输入部分:由瓦斯传感器与一个模拟信号放大器通过跳线连接到P0.22引脚,将瓦斯模拟信号送入AIN0模拟输入通道0;一氧化碳传感器与另一个模拟信号放大器连接到P0.23引脚,将一氧化碳模拟信号送人 AIN1模拟输入通道1。
输出部分:由P0.17和P0.18引脚通过470 Ω电阻与LED发光告警二极管连接;P0.19引脚通过470 Ω电阻与一个蜂鸣器相连,电阻的作用是分压,以便产生中度蜂鸣告警;P0.20引脚直接与另一蜂鸣器相连,以便产生强度蜂鸣告警。
ARM LPC2103微处理器A/D转换器的特性是:10位逐次逼近式模数转换器;测量范围为0~3.3 V;10位转换时间≥2.44μs;1路或多路输入的Burst转换模式;转换触发信号可选择输人引脚的跳变或定时器的匹配情况;A/D转换器的基本时钟由VPB时钟提供,可编程分频器将时钟调整至4.5 MHz(逐次逼近转换的最大时钟),10位精度要求的转换需要11个A/D转换时钟。
ARM 微处理器运行程序在A/D控制寄存器参数的控制下,将AIN0采集到的瓦斯模拟信号送入10位逐次逼近式模数转换器,转换后的数字信号值存入ADDR 0 A/D数字寄存器0。将这一值与瓦斯初告警值、瓦斯中度告警值、瓦斯强度告警值进行比较,在哪一种告警范围,立即进行哪一种告警。
将 AIN1采集到的一氧化碳模拟信号送入10位逐次逼近式模数转换器,转换后的数字信号值存入ADDR1A/D数字寄存器1。将这一值与一氧化碳初告警值、一氧化碳中度告警值、一氧化碳强度告警值进行比较,在哪一种告警范围,立即进行哪一种告警。
1.2 模拟信号采集通道的选择与设置
从图1可看到,P0.22引脚连接AIN0通道,通过设置ADOCR A/D控制寄存器,选择通道0采集瓦斯浓度信息,并设置转换时钟频率为1 MHz;BURST=0,软件控制转换操作;CLKS=0,使用11clock转换;PDN=1,正常工作模式;START=4,当EDGE选择的边沿出现在MAT0.1时启动A/D转换;EDGE=0,MAT0.1下降沿触发。
P0.23引脚连接AIN1通道,通过设置ADOCR A/D控制寄存器,选择通道1采集一氧化碳浓度信息,设置转换时钟频率为1 MHz;BURST=0,软件控制转换操作;CLKS=0,使用11clock转换;PDN=1,正常工作模式;START=5,当EDGE选择的边沿出现在MAT0.3时启动A/D转换;EDGE=0,MAT0.3下降沿触发。
2 精确的定时触发
A/D转换的硬件触发可通过定时器翻转功能触发A/D转换,这样无需CPU干预就能精确地定时触发(这是本文主要讨论的问题)。ARM LPC2103定时器0寄存器结构框图如图2所示。
评论