关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

基于单片机程序的二氧化碳检测仪主程序开发方案

2019.5.17

二氧化碳检测仪在 工业、农业、医药、环境保护等都有着重要意义。采用单片机进行二氧化碳浓度检测、显示、实时控制能够提高生产效率、节约能源。另外在工业现场,往往需要完 成信号的长线传输,如果传输的信号是电压信号,传输线会受到噪声的干扰,传输线的分布电阻会产生电压降,为了解决上述问题和避开相关噪声的影响,考虑用电 流来传输信号,因为电流对噪声并不敏感。为此,对本文介绍一种利用MSP430F169 单片控制的二氧化碳检测系统,并带有三线制4~20mA 电流输出,还可以用标准的Modbus 协议与上位机通讯。

1.png

1 系统的硬件设计

1 是该系统的框图。单片机通过串行通讯口读取二氧化碳传感器送来的信号(浓度值),经过内部处理后用LCD 显示,同时转化为相应的4~20mA 电流输出, 或者将二氧化碳浓度值通过RS485 串口送到上位机。同时单片机将采样到的信号与系统设定的报警点比较,控制相应的继电器的吸合。另外还可以用按键或者上位机软件通过RS485 串口修改系统参数:海拔、报警点、通讯地址、通讯波特率、ABC 逻辑、密码、输出电流标定。

1.1 CPU 及其外围电路接口

为了最大限度地利用单片机端口和片内外设并降低设计成本,本系统选用MSP430F169。该单片机具有极低的功耗、强大的处理能力、丰富的片上外围模块、方便高效的开发方式等特点。它有两个16 位定时器,内置一个12 AD 转换器和一个双12 DA 转换器,两个串行通讯接口,60KB FLASH,完全满足于本系统的需要。CPU 采用内部1MHz 晶振。单片机通过SPI 模式控制LCD的工作, 通过外部中断来识别四个按键的状态。单片机的P6.2口和P6.3 口分别控制两路继电器的吸合。另外分别用单片机的两个串口与二氧化碳传感器和485 通信通信。

本设计采用美国Telaire 公司生产的红外吸收型传感器6004。该传感器利用非分光红外(NDIR)原理检测二氧化碳浓度,由一个镀金封装的光学系统和其它严格筛选的信号放大和处 理元器件组成。其测量范围为:0~5000ppm;测量精度:22℃时与工厂标准气体相比误差约±40ppm 或者读数的3%;响应时间:小于2 分钟即可达典型阶跃变化的90%;信号变化周期:2 秒钟。最高功耗为150mA,平均功耗30mA6004 传感器模块有下面两种输出方式: 模拟量输出:0~4VDC;数字口口:SPI/Microwire 或者UART(9600bps),它有相应的通讯协议。目前市场上大部分产品都是检测模拟输出信号,信号处理简单。这里考虑到数字输出比模拟输出精度高并 且抗干扰性好,本设计采用UART 接口来读取传感器输出的数字信号。由于6004 MSP430F169 的电平不兼容, 6004 的串行输出端(TDX)通过电阻分压接到MSP430F169 P3.7(URXD1),6004的串行输入端(RDX)经过一个高速光耦芯片HCPL0631 升压接到MSP430F169 P3.6 (UTXD1)口。具体电路见图2


2.png

1.3 三线制电流输出模块4~20mA 电流环有两种类型:二线制和三线制。本系统采用三线制。如图3 是一个V-I 转化电路,提供一路三线制4~20mA的电流输出。图中U4 使用的是TLE2022 运放,这是一款精密、高速、低功耗的运算放大器,与类似的器件相比,它在单位增益带宽和斜升率方面作了很大的改进, 该器件即使在温度发生变化和使用了许多年的情况下仍能保持高精度。这里用+24V -5V 的电源对TLE2022 供电, 采用负电源供电能让运放输出比较宽的控制电压,保证运放能输出0V 电压,因为有些运放输出0V 时在供电正时,不能输出0V,总是高1 2 伏。并且运放也能接收负压信号输入,尤其是交流电压信号。该电路在保证V-I 变换精度高的同时,显著提高了抗负载变化能力。分析电路可知:所以为了获得4~20mA 的输出电流, 经单片机DA 转换输出的电压控制在0.2~1V1.4 RS485 通讯模块通讯模块实现了单片机与上位机之间长距离数据通讯。系统直接通过单片机的USART0 MAX3485 芯片通讯,按照标准的MODBUS 协议与上位机进行通讯。如图4,MAX3485 的串行输出端(TXD485)接到MSP430F169 P3.4(UTXD0),串行输入端(RXD485)接到MSP430F169 P3.5(URXD0)口。MSP430F169P6.4 口与KCOM,用于使能MAX3485 串行输入输出。

3.png

3 软件设计

本系统程序用C 语言编写,5 是主程序流程图。

3.1 单片机与6004 之间的通讯

单片机与6004 之间采用Telaire 特定的通讯协议。它们之间的主要操作就是读6004 状态,CO2 浓度值,设置海拔高度,设置ABC 逻辑。系统上电后,6004 的状态,直到读到6004 预热完毕,才能开始读传感器的浓度值,2S 读一次。


4.png

3.2 单片机与485 之间的通讯

单片机与485 之间采用标准的MODBUS 协议进行通讯,主要完成读取CO2 浓度、读报警点状态、读继电器状态,修改系统参数。Modbus 分为两种传输模式:ASCII RTU。这里选用RTU传输模式,这种方式的主要优点是:在同样的波特率下,可以比ASCII 方式传送更多的数据。

本系统测量准确、有好的人机界面,操作智能化,系统运行可靠,可广泛的应用于商用楼宇控制、空调管理、智能化住宅、商场、宾馆,体育馆,电影院、机场, ,温室农业大棚等等场合。本文作者创新点:选用了红外吸收型传感器,读取它的数字输出信号,精度高且抗干扰性好。采用了一种新颖的三线制电流输出电路, 该电路精度高,抗负载变化能力强。采用标准的MODBUS 协议与上位机通讯.


推荐
热点排行
一周推荐
关闭