基于STM32的CO监测仪表的研发

2021-01-12 05:35翟延忠邓凯旋
华北科技学院学报 2020年5期
关键词:低电平一氧化碳仪表

翟延忠,马 强,邓凯旋

(华北科技学院 电子信息工程学院,北京 东燕郊 065201)

0 引言

在石油、化工、煤矿、冶金等行业的某些生产环节存在着有害气体的产生与泄露。一氧化碳即是其中一种不可忽视的有毒、有害气体,一氧化碳无色无味且易燃,人体感官无法察觉,使得一氧化碳事故的发生往往具有隐蔽性和不可知性,对人危害极大。因此对相关场所的一氧化碳浓度进行监测,实时掌握其动态变化,并在浓度超限时发出报警,提醒人员采取相应措施,对于预防一氧化碳事故的发生,防患于未然,保障生产安全具有重要意义。

实现生产场所的一氧化碳监测需要考虑多方面的因素,其中首要的是一氧化碳这种气敏传感器的选择。气敏传感器主要有半导体式、接触燃烧式及电化学式三种类型。

半导体气敏传感器是利用半导体气敏元件同气体接触后,发生还原反应,放出热量,造成半导体性质(如电阻或伏安特性)的变化来检测特定气体的成分或者测量其浓度。它具有成本低廉、制造简单、灵敏度高、寿命长、对湿度敏感低和电路简单等优点。不足之处是必须辅助加热、对气体的选择性差、元件参数分散、稳定性不理想、功率高等方面。

接触燃烧式气体传感器只能测量可燃气体,分为直接接触燃烧式和催化接触燃烧式,原理是气敏材料在通电状态下,可燃气体在表面或者在催化剂作用下燃烧,由于燃烧使气敏材料温度升高从而电阻发生变化。后者因为催化剂的关系具有广普特性应用更广,不足之处是功耗大、寿命较短、安全性差。

电化学气敏传感器是利用电极材料与被测气体间的氧化还原反应产生的原电池效应,电池回路输出的电流与被测气体的浓度相关,通过检测电流即可实现气体浓度的检测。电化学传感器的主要优点是气体的高灵敏度、低功耗、响应快以及良好的选择性,其使用寿命可超过两年。在目前的高品质监测仪表的开发中,主要选择使用电化学气敏传感器。

在具体的生产场所中,为了保证生产环境的安全,往往会在多个关键点布置若干台一氧化碳及其它各类监测仪表,这些监测仪表需要配置某种总线通信技术。以便在生产控制室实现对所有仪表的集中监测。

由于生产现场空间条件的限制,监测仪表的安装位置往往不便于接近,另外,有时因工业现场环境复杂,一氧化碳监测仪的防爆外壳也不宜在通电时打开,给仪表的标定与维护带来了困难,非接触式的操作就很有必要。

监测仪表不仅要实现一氧化碳浓度的检测处理,还要实现信息的显示、通信、报警、人机交互等功能,对嵌入式处理器提出了较高的要求,本仪表即基于STM32处理器进行相关的开发,较为全面地实现了一氧化碳监测仪表的各项功能。

1 仪表硬件设计

1.1 总体设计

仪表选用了ST公司的STM32F103RCT6作为控制核心[4]。该芯片具有256Kbytes的FLASH与48Kbytes的SRAM,无需外扩存储器;多达51个通用IO口,内置的多个16位定时器具有输入捕获功能;12位的逐次逼近式ADC[2],模数转换速率最高可达1MHz,完全满足本系统的设计需求,使硬件得以尽可能的简化。

最小系统设计中采用简单的阻容式低电平复位电路;处理器外接了8 MHz的晶振作为高速外部时钟,通过锁相环倍频至72 MHz的频率。调试接口为二线制的SWD方式;ADC的参考电压取自VDDA的3.3 V。仪表总体设计框图如图1所示。

图1 仪表总体设计框图

1.2 电源模块

整个电路工作需要DC24 V、DC5 V和DC3.3 V三种电源,其中DC24 V由外部电源提供,为外接的声光报警器供电,DC5 V和DC3.3 V分别为信号调理电路和其它电路供电。

外部DC24 V电源经由降压型开关电源调整芯片LM2576-5稳压得到DC5 V的电压,再通过AMS1117-3.3得到DC3.3 V电压。电源转换电路如图2所示。D1为瞬态抑制二极管,可保护电源电路免受瞬态高能量的冲击,续流二极管D3在LM2576内部开关管关闭时为电感L1的能量释放提供电流返回通路,为降低能量损失,采用肖特基二极管B360。LM2576第5引脚为控制端,其所接电路起到电源欠压锁定的作用,提高了电源的稳定性和可靠性,其输入阈值电压Vth可通过公式Vth≈VD2+(1.0+R1/R3)*VBE(Q1)计算,D2为稳压二极管,选择其稳压值为12V,因此可得Vth≈13V,当VIN>Vth时,Q1导通,LM2576控制端为低电平,电路正常工作;当VIN

图2 24 V转5 V及3.3 V电源电路

1.3 显示模块

为了实现仪表的汉字显示,选用HJ12864-COG-12液晶显示屏,其工作电压和背光电压均为3.3 V,通过8位并行接口方式与处理器直接相连,利用处理器的I/O 口模拟8080时序对其进行读写操作。汉字显示采用16×16点阵,由于仪表使用的汉字有限,故使用自建软字库,以简化硬件电路的设计。

1.4 红外遥控模块

为实现仪表的非接触操作,配置了红外遥控模块。具体选用支持NEC协议的HS0038作为红外接收探头,探头输出接至STM32的一个输入捕获通道接口上。操作时使用红外遥控器的四个遥控按键,每个按键都有一个特定的控制码,利用定时器的输入捕获功能测量红外信号中低电平的脉宽,进而对输入信号进行解码,识别出相应的控制码,从而判断出红外按键是否按下以及按下的是哪一个按键。

1.5 掉电参数记忆

在仪表的应用中,有些参数需要实现掉电记忆,如仪表的通讯地址、通信波特率和报警阈值等。由于参数量较少,设计选用256字节容量的AT24C02。接口设计中使用STM32的普通IO口与AT24C02的SDA和SCL引脚相连,通过软件模拟I2C的方式对其进行读写操作。

1.6 声光报警电路

一氧化碳是一种有害气体,监测仪表必须配置相应的声光报警模块,警示一氧化碳浓度的超标,并可按照仪表的设置产生继电控制输出,以供联动保护之需。声光报警与继电器控制电路如图3 所示。仪表配置的声光报警器工作电压为24VDC,通过控制场效应管Q1决定报警器是否工作,当栅极为高电平时,Q1导通,报警器发出声光报警。电阻R9可防止单片机复位时报警器误响,D2为续流二极管,为反向电动势提供通路,起到保护电路的作用。

图3 声光报警与继电器控制电路

1.7 RS485通信模块

为实现对监测仪表的集中监控,监测仪表需具有相应的总线通信功能。设计考虑通过RS485总线实现管理终端与诸多监测仪表(从机)之间的通信。具体采用SP3485芯片作为收发器,管理终端通过轮询的方式依次向各从机发送请求数据命令,从机接收到命令后进行判断,若接收无误且请求地址与本机地址一致,则根据命令类型向管理终端发送相应数据。

1.8 传感器及信号调理

为保证监测仪表的品质,采用NEMOTO公司的电化学传感器NE-CO-BL作为敏感元件。它是一种三电极传感器,除工作电极(W)与对电极(C)之外,引入参考电极(R),以避免因电极极化引起的测量误差,通过维持电极间的电位恒定,可以提高检测灵敏度并扩展测量范围。

当敏感元件接触到一氧化碳气体时,工作电极(W)上发生氧化反应,对电极(C)上发生还原反应,其化学方程式为:

工作电极(W):CO+H2O→CO2+2H++2e-

对电极(C):O2+4H++4e-→2H2O

反应产生的微弱电流与一氧化碳浓度成正比[6],电流方向流入工作电极(W),放大调理电路选用具有低偏置电流特性的双运算放大器TLC27L2。电流信号通过U1B放大处理后送入STM32处理器模拟量输入端进行AD转换,其中电容C3用于降低高频噪音。图中U1A所接电路为恒电位电路,维持工作电极(W)和参考电极(R)间电位差恒定。场效应管Q1起开关作用,当系统上电时,Q1处于高阻态;系统断电时,Q1导通,工作电极(W)和参考电极(R)电位相等,避免了极化现象,确保了传感器下次开机时能迅速准备就绪[5]。信号调理电路如图4所示。

图4 信号调理电路

2 系统软件设计

2.1 软件总体架构

仪表需实现一氧化碳浓度采集、红外按键处理、参数显示、校准、通讯等功能,为提高软件的开发效率、提高软件的可靠性,在软件开发中,移植了FreeRTOS实时多任务操作系统,将仪表需实现的功能划分为多个相对独立的任务,每个任务只需完成指定功能,并通过信号量、消息队列及事件标志组与其他任务进行通信,降低了软件开发难度,缩短了开发周期。软件总体结构如图5所示。

图5 软件总体结构图

2.2 浓度监测任务

一氧化碳传感器感应的信号经调理电路接至STM32处理器的ADC1的PC0口,PC0初始化时配置为模拟量输入模式。

在浓度监测任务中,每隔100 ms启动一次A/D转换,将采集的10次数据放在数组中,去掉其中最大值与最小值,余下数值作均值处理后作为采集的结果。然后进行标度变换,得到一个32位的浮点数表示的一氧化碳浓度。

浓度监测任务是浓度参数的唯一生产者,而界面处理任务、通信发送任务均是消费者,因此将该参数作为全局变量设置,其它任务可直接使用。

2.3 遥控处理任务

所选用的红外接收探头HS0038支持NEC协议,该协议以红外载波的占空比大小判定逻辑0和逻辑1,一个逻辑1的传输需要560 μs高电平和1680 μs低电平,逻辑0的传输需要560 μs高电平和560 μs低电平。NEC协议的数据格式为:同步码、地址码、地址反码、控制码、控制反码,其中同步码由9 ms高电平和4.5 ms低电平组成地址码和控制码均为低位在前高位在后的8位数据格式。

红外接收探头接至STM32定时器的输入捕获通道,通过输入捕获功能测量低电平脉宽,凭此逐位识别出红外信号的同步码与数位码。在定时器的输入捕获中断服务程序中首先判断是否捕获到下降沿,若捕获成功则将捕获方式设置为上升沿捕获,同时将定时器清零并使能定时器的溢出中断,溢出时间设为10 ms。待捕获到上升沿后再将捕获方式设置为下降沿捕获,为下一位捕获做好准备,同时读取定时器的值,根据值的大小解析信号。输入捕获中断服务程序及溢出中断服务程序流程图如图6所示。

由于定时器捕获到的低电平脉宽时长都小于溢出时间,且每次捕获到下降沿时都会将定时器值清零,所以当程序进入到定时器溢出中断服务程序时,表示本次接收完成,禁止溢出中断并向遥控处理任务发送二值信号量。

遥控处理任务处于请求信号量状态,一旦获得来自定时器1溢出中断服务程序发出的信号量,则从接收数据中解析出地址码、地址反码、控制码、控制反码,并检验其正确性,若接收无误则返回键值。

图6 定时器1输入捕获中断服务程序及溢出中断服务程序流程图

2.4 界面处理任务

界面处理任务实现与界面显示、参数设置相关的人机交互处理,仪表共设置了监测显示与参数设置二种界面模式,通过四个红外按键(ESC、△、▽、ENTER)进行选择操控。界面初始设置为监测显示界面模式,在此模式下按下ENTER键进入参数设置界面。在此界面下,通过△、▽键选择地址设置、波特率设置、报警设置、仪表校验其中之一,然后进入相应参数的修改设置操作,经进一步确认后,将修改后的参数保存至EEPROM,完成后通过按下ESC键可返回到监测显示界面。当然,在上电初始化时处理器需从EEPROM中提出相关的参数。

2.5 通信处理

多台一氧化碳监测仪表与管理终端通过RS485总线构成主从式通信系统,为保证通信效率与可靠性,制定如下表所示的通信协议。

表1 通信协议格式

对RS485通信的处理由串口接收中断服务与通信发送任务协作实现。在接收中断服务程序中,完成信息帧的接收与检验,当检验通过即向通信发送任务发送消息,通信发送任务处于消息请求状态,一旦收到消息,即按照通信格式装配从机响应帧,然后将帧信息发送到RS485总线上,发送完毕,再次进入消息请求状态。

3 结论

(1) 根据工业现场对CO气体浓度监测的需求,仪表选用了功耗低、灵敏度高、寿命长的三电极电化学传感器,设计了可避免极化现象的信号调理电路;开发红外遥控功能,实现了仪表的非接触操作;仪表的RS-485通信功能更是便于工业现场对多块仪表的集中通信管理。

(2) 仪表的软件设计基于FreeRTOS环境开发,将监测仪表的各项功能通过相对独立的多个任务实现,软件结构清晰、模块化设计,提高了软件的开发效率与可靠性。

(3) 三电极电化学传感器在应用中存在温度漂移现象,在后续的完善过程中,需考虑引入温度补偿,以提高仪表的测量精度与稳定性。本仪表监测对象虽仅针对一氧化碳气体,但相关的设计与开发技术对实现其他气体浓度的监测,也具有一定的借鉴价值。

猜你喜欢
低电平一氧化碳仪表
浙江中控自动化仪表有限公司
浙江中控自动化仪表有限公司
一种实用的电脑接口判断方法
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
数字电子技术的应用
浅谈物理电路与数字电路
奔驰E260车行驶过程中仪表灯熄灭
宝马745Li车制动灯常亮且组合仪表上多个故障灯点亮
现代生活