基于STM32的便携式红外气体分析系统设计
2015-05-15张冬王桂海
张冬 王桂海
摘要:设计一种基于STM32的便携式红外气体分析系统,该系统以STM32F103VET6微处理器为核心,通过数据采集电路,进行数据采集;A/D转换模块进行A/D转换,数据处理;数据导出模块进行数据存储和上传;上位机模块接收数据并显示。经过实验验证,该系统实现了对相应气体(NO,SO2,O2等气体)的浓度、流量、流速、温度、静压等参数进行实时监控和测量的功能。
关键词:STM32F103VET6;气体分析系统;A/D;数据处理
中图分类号:TP368 文献标识码:A 文章编号:1009-3044(2015)08-0247-02
随着工业的发展,工业大气气体污染问题越来越受到人们的重视,雾霾现象也受到公众的关注。气体监测问题也开始受到人们的重视。目前工业级的气体分析系统普遍存在体积大、价格高、难以操作的问题,而且传统的气体采集系统精度低,性能不高,难以满足社会人们的需求。基于此,设计新型的气体分析系统成为了现实的紧迫需要。本文设计了一种便携式的红外气体分析系统,以STM32微处理器为核心,采用先进的,高精度的红外气体测量技术,测量工业中多种气体的浓度、温度、流量等参数,可以随时监测工业环境下空气中的污染气体。此分析系统采用了先进的红外气体红外气体检测技术,具有体积小,操作简单,性价比高,适合工业环境下使用的特点。
1 气体分析系统的总体设计
本文设计的气体分析系统分为5个部分,分为:数据导出模块、数据采集模块、A/D转换模块、上位机模块(包括显示模块、按键模块)以及STM32微处理器。其系统结构框图,如图1所示。
数据采集模块采集气体数据,通过相应传感器采集待测量的气体浓度、流量、流速等信号得到相应的模拟信号,经过信号调制电路,将模拟信号传递给STM32微处理器,经过A/D转换将模拟信号转换为数字信号。微处理器对数字信号进行处理、计算,得到相应的气体的浓度、流量、流速、温度,静压等数据。将计算得出的气体参数数值传给上位机,显示到显示屏上。同时数据导出模块,既可以将数据存储到U盘中,也可通过USB接口将数据导出到PC机上,以便分析历史数据。
2 硬件设计
2.1 微处理器的选择
本系統中采用32位的中容量STM32F103VET6作为处理器。STM32F103VET6基于高性能32位RISC的ARM Cortex—M3内核。工作主频达到72MHz[1]。片上集成了高速存储器(Flash最多可达512K,SRAM最多可达64K)和通过APB总线连接的丰富和增强的外设和I/0。
其片内资源丰富,I/O接口丰富。片上带有两个12位的ADC、一个12位的双通道DAC、11个16位计时器。同时还包括两个I2C接口,三个SPI接口和五个USART接口。
系统集成度高,便于开发。可减少产品的开发周期。同时STM32还具有功耗低、体积小、性价比高,配置丰富灵活、可靠性高等优点。利于工业级产品的生产、使用。
2.2 硬件电路设计
2.2.1数据采集模块
数据采集模块由传感器、气室、红外光源组成。主要采用非分散红外法进行采集气体数据。这种原理基于不分光红外线吸收原理。利用一定的波长的红外线的吸收衰减来测量气体的浓度值等参数值。由于气体的吸收光谱随物质的不同而存在差异[2,4]。同一物质不同浓度,在同一吸收峰位置有不同的吸收强度,吸收强度与浓度呈指数函数关系。通过检测气体对光的波长和强度的影响,便可以确定待测气体的浓度[3]。
红外线测量原理:CO,SO2等极性分子具有永久电偶极矩,因而具有振动、转动等结构。按量子力学分成分裂的能级,可与入射的特征波长红外辐射耦合产生吸收,不同的极性分子由不同的光谱吸收带,例如,CO的吸收峰在4.65μm处,SO2的吸收峰在7.35μm。
测量经吸收后红外光的强度便能计算出相应气体的浓度,这便是红外气体分析的理论根据。此红外气体检测技术,具有世界先进水平,具有优良的稳定性、选择性和高灵敏度,可以广泛用于锅炉、电厂烟道气、化工流程、石化工业、冶金工业等领域,也可以用于实验室分析。原理图如图2所示。
①红外光源 ② 反射体 ③同步马达 ④切光器 ⑤样气室
⑥前吸收室 ⑦后吸收室 ⑧毛细管 ⑨微流量传感器
红外光束通过滤光片、样气池到达检测器,在样气池与红外光源之间有一个由同步马达带动的切光器,将红外光束变成交替的脉冲光源,如果样气池中有吸收,由微流量传感器产生脉冲电信号。检测部分是由前后两个吸收室组成。吸收带中心部分在检测器前吸收室首先被吸收,而边缘部分则被后吸收室吸收。前后吸收室的吸收大致相同。前吸收室和后吸收室之间通过一个微流量传感器相连。
数据采集模块的作用是通过传感器将气体的浓度、流量等信号转换为模拟信号,并经过信号调制电路将模拟信号传给STM32微处理器进行处理。
2.2.2 A/D转换模块
STM32F103内部集成了2个独立的12位ADC模块,具有18个通道,可测量16个外部和2个内部信号源。每个通道的A/D转换可以单次、连续、扫描或间断模式执行[5]。为了提高测量精度与测量通道数量,本系统没有采用STM32自带ADC。采用Maxim的MAX1300模数转换器。
MAX1300是多量程、低功耗、16位、逐次逼近型模数转换器(ADC),采用+5v单电源供电,具有高达115ksps的吞吐量。
MAX1300提供8路(单端)或4路(真差分)模拟输入通道。每一路模拟输入通道都可通过软件独立编程设置为7种单端输入范围和3种差分输入范围。
A/D转换模块部分电路如图3所示。
参考电压VREF为4.096v,MAX1300,将通过数据采集电路采集到的数据进行A/D转换,MAX1300采用芯片内部的SPI总线,进行数据传输。
2.2.3 USB接口电路
本系统中数据导出模块使用USB接口电路将数据导出。USB接口电路,既可以将数据导出存储到U盘中,存储历史数据,也可以通过USB接口直接将数据导出到PC机,以供分析历史数据。选用USB接口是因为U盘具有存储容量大、成本低、读写速度快的优点,支持热插拔,连接方便。USB接口电路如图4 所示。
2.3 上位机模块
上位机模块包括两个部分:显示模块和按键模块。
上位机模块通过按键电路接收用户指令,将用户指令传给STM32微处理器,微处理器根据接收的指令进行数据处理,传输等操作。显示模块为显示屏电路,上位机接收微处理器传送的数据,将数据显示到显示屏上。
3 软件设计
主程序流程图如图5所示。上电开始,系统进行预热初始化。STM32进行数据采集,等待上位机发送指令,STM32微处理器根据指令数据操作,处理采样数据,计算采样数据,求出测量气体的浓度值、流量等参数值。然后进行数据存储,将得出的数据传递给上位机,并通过显示屏显示出来。
数据处理阶段的程序流程图如图6所示。在数据处理阶段,A/D转换芯片将采集得到的模拟信号进行A/D转换,得到相应的数字信号电压值,将此电压值进行处理。
在数据处理过程中,为了精确得到测量值,减少噪声干扰,需要对经过AD转换得到的数据需要进行滤波处理,以减少数据的误差。本程序采用的是数值平滑滤波的方式进行数据处理,将经过处理后的数据进行计算,得要计算值之后,根据线性气体标定公式计算出相应气体的浓度、流量等数值。
4 结束语
本文设计的基于STM32的便携式红外线烟气气体分析系统,以STM32微处理器为核心,由上位机、数据采集模块、数据导出模块、A/D转换模块组成,可测多种气体的气体的浓度、流量、温度等值。即可以显示实时数据,同时也可以存储历史数据分析。本系统适合工业环境使用,整个系统设计简洁、测量精度高、可靠性高。可以测量多种气体的浓度,可扩展行高,体积小,性价比高,易于维护,应用广泛。
参考文献:
[1] 陈启军,余有靈,张伟,等. 嵌入式系统及其应用[M].上海:同济大学出版社,2011:20-23.
[2] 李春瑛,杜秋芳. 自动配气装置在气体标准物质分析中的应用[J].低温与特气,2003(5):27-29.
[3] 熊友辉,蒋泰毅.电调制非分光红外(NDIR)气体传感器[J].仪表技术与传感器,2003(11):4-5.
[4] 甘宏,潘丹,张洪春.便携式非分光红外吸收型二氧化碳传感器[J].桂林电子科技大学报,2007,27(1):19-22.
[5] 彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011:213-220.