用于单片机实验教学的红外激光气体检测仪
2024-04-18郑传涛刘大勇
郑传涛, 华 莹, 刘 洋, 刘大勇, 宋 芳, 张 宇
(吉林大学a.电子科学与工程学院;b.通信工程学院,长春 130012)
0 引 言
红外气体传感技术是利用气体分子对红外光的吸收作用来检测气体,该光学气体检测方法具有选择性好、灵敏度高、响应速度快等优点[1-4]。基于红外吸收光谱原理,学者们先后提出了非分散红外光谱法[5]、可调谐激光光谱法[6]、腔增强吸收光谱法[7]、光声光谱法[8]、光热光谱法[9]等多种红外气体检测方法。面向大气监测、深海勘探、城市燃气巡检等国家重要需求,吉林大学研制了多套红外气体传感系统,开展了南海可燃冰勘探、城市烷烃气体走航探测等示范应用[10-13]。
红外气体传感系统包括光学系统、电学系统和气路系统。光学系统含有光源、气室、探测器,红外光与气体分子作用后产生气体吸收信号。电学系统包括主控制系统、信号处理系统、远程数据处理平台。气路系统包括气泵、气体过滤等模块,用于抽样气体预处理。在电学系统方面,传统的红外气体检测仪通常仅包含一个主控制器,如先进精简指令集计算机(ARM),这类单片机一般不运行操作系统,不具有联网、文件处理等功能。
单片机类课程是吉林大学电子信息本科大类专业下的专业核心课程,包括微型计算机原理、MCS-51 系列单片机原理与应用、嵌入式系统(ARM 单片机)、数字信号处理器(DSP)原理与应用等[14]。基于教学与科研深度融合的教育教学理念,针对单片机类课程的实验教学要求,在前期开发的高精度红外气体检测仪基础上,研制了一种融合ARM、DSP、Linux操作系统的红外激光气体检测仪。该检测仪不仅能用于DSP、ARM、Linux操作系统等实验教学,还能让学生了解激光光谱传感、气体检测、波长调制光谱等前沿技术,从实验、实践等多个维度提升学生的单片机应用能力。
1 气体传感理论与检测仪结构
1.1 波长调制光谱理论
波长调制光谱技术是在激光器的低频扫描驱动信号上叠加一个高频正弦信号,对激光器输出光的波长进行调制[15]。经过调制的光信号被气体吸收后,高次谐波分量的幅值与气体浓度成比例,采用锁相放大技术提取出探测器输出信号的二次谐波信号,即可测量气体浓度。波长调制光谱技术将信号搬移至高频段后进行处理,从而抑制了激光强度噪声、光学干涉、电路噪声等低频噪声,提高了检测精度。
在高频正弦信号的调制作用下,激光器输出光的频率f(t)可由下式来表示:
式中:f0(t)为激光的中心频率;a为调制幅度;ωm为调制角频率。根据朗伯-比尔定律,红外光被吸收前后的光强比I/I0为
式中:Si为吸收线强;φ(f)为线型函数;p为压强;xj为目标气体的体积分数;L为有效光程。
当待测气体的体积分数很小时,吸光度满足Siφ(f)pxjL≼1,因此式(2)可表示为
将式(1)代入式(3),并按照傅里叶级数展开,可以得到
式中:Hn(f0,a)为展开式的n次项系数。令θ =ωmt,有
由式(5)、(6)可得,当测量痕量气体时,气体体积分数均与被吸收信号的各次谐波分量成比例,一般选用偶次谐波中幅值最大的二次谐波分量的最大值来表示气体体积分数。
1.2 气体检测仪结构
所设计的气体检测仪由光学系统和电学系统组成,检测仪结构如图1 所示。光学系统主要用于气体浓度信息感知,是传感系统的核心。利用由2 个高反镜(反射率为99.35%)构成的法布里-珀罗(FP)腔增强气体分子对红外光的吸收。激光器驱动模块由外部电压信号控制,驱使激光器发出目标波长的激光;光纤准直器将激光准直后以离轴方式耦合进入谐振腔,经过气体吸收后的光信号经由光电探测器转换成电信号。
图1 红外激光气体检测仪的结构
电学系统用于透射光强中的浓度信息提取,并提供友好的人-机交互界面。电学系统包含嵌入式控制模块与光谱信息感知模块。将系统所需的各功能模块集成在一块电路板上,最大限度地减小系统体积。结合无线网络与云服务器,实现传感信息的远程监测与智能控制。
2 基于多核ARM处理器的嵌入式控制模块
嵌入式控制模块以多核ARM 处理器(型号Exynos 4412)为核心部件,装载Linux 操作系统,运行Qt应用程序,实现了浓度数据、激光器运行参数的实时监测、本地信息存储以及网络发布。基于无线网络、消息队列遥测传输(MQTT)协议、云服务器以及安卓应用程序,实现了数据的云存储、远程监测以及控制。
2.1 硬件设计
控制模块的主处理器型号为三星公司的Exynos 4412,采用四核Cortex-A9 架构,主频为1.4 ~1.6 GHz,板载双倍速率3(DDR3)内存、嵌入式多媒体卡(EMMC)存储芯片、通用串行总线(USB)集线器、S5M8767 电源管理模块等,工作电压2.65 ~5.50 V,支持Linux-Qt操作系统。
除主处理器外,嵌入式控制模块包含三部分电路:RS-232 串口通信电路、数据采集电路以及接口电路。将四路串口资源全部引出:1 号串口专用于二次谐波信号峰值读取;2 号串口作为虚拟控制台串口,用于调试;其余串口用于扩展外设。在数据采集电路中,选用2 片模数转换器(ADC)芯片(型号AD7980),分别采集经过隔离处理的激光器电流和温度信号,实现激光器参数的监测。通过红绿蓝(RGB)三基色接口连接液晶显示屏(LCD),该屏幕分辨率为1 024 ×600。引出两路USB 接口,一路用于跨平台传输文件,另一路连接USB Wi-Fi 模块,用于网络通信。TF(Trans Flash)卡槽和USB OTG(On-The-Go)接口均可用于烧写操作系统固件。板上引出多路输入/输出(I/O)口,用于系统控制。
2.2 Linux操作系统的移植
开机时,首先运行引导加载程序(BootLoader),然后加载Linux内核,最后挂载文件系统。Linux 操作系统的移植过程主要包括:建立交叉编译环境、编译BootLoader、裁剪与编译Linux 内核、编译文件系统以及烧写系统固件。
由于嵌入式系统的运算能力和存储空间有限,因此通常在个人计算机(PC)上对源代码进行交叉编译,再下载到目标机上运行。为了实现程序的跨平台运行,需要在个人计算机上构建交叉编译环境。本研究中编译BootLoader以及Linux 内核所需要的交叉编译器为“arm-2009q3”,编译文件系统所用的交叉工具为“arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linuxgnu”,安装交叉编译器并更新环境变量后交叉编译环境搭建完成。
使用U-boot 引导加载程序,U-boot 启动流程如图2 所示。ARM处理器上电以后,默认执行地址为0 的内部程序存储器(iROM)中的代码BL0;iROM中的程序会根据设定的启动模式(OM),在不同的外部存储(与非门程序存储器(NAND)、安全数码/多媒体(SD/MMC)存储卡、嵌EMMC、USB)中拷贝BL1 程序到内部数据存储器(iRAM)中运行。BL1 是三星公司为了系统安全而设置的,加载BL1 时会进行多重检验。BL1 最终加载BL2 到iRAM 中运行,BL2 是U-boot 的前14 kB程序,主要功能是初始化外部DDR3 和系统时钟、构建异常向量表等,并将U-boot 加载到DDR3中。U-boot的主要功能是完成大部分硬件的初始化,从外部存储中加载Linux 内核到DDR3 中,完成对内核的校验,设置内核启动参数,最后调用内核。
图2 U-boot启动流程
U-boot的移植过程主要包含以下步骤:①根据半导体厂商提供的U-boot 源码以及编译配置文件编译U-boot;②烧写U-boot 并验证;③检查SD 卡驱动、EMMC 驱动、LCD 驱动以及网络驱动等是否存在问题;④对各部分驱动进行修改,直到调试通过。
使用的Linux 内核版本为Linux 3.0.15。裁剪Linux内核的主要目的是减小内核所占的存储空间,减少内核启动所需时间。采用“make menuconfig”命令以图像化界面的方式配置Linux 内核。将串口驱动程序、触摸屏驱动程序、USB 驱动程序、USB Wi-Fi 模块驱动程序、U盘驱动程序、SD 卡驱动程序等编译进内核。同时,将不需要的驱动程序从内核中裁剪掉。配置完内核后,生成新的“.config”配置文件,执行“make zImage”编译内核,成功后生成内核镜像文件“zImage”。
Linux内核启动后,必须挂载一个根文件系统。根文件系统包含一些维护和运行系统的脚本、库文件、配置文件等,在根文件系统的基础上,结合Qt/E 5.7 来构建和管理图形系统。移植Qt/E 5.7 文件系统时,需要编译源码和触摸屏校验工具“tslib”。编译文件系统包括以下步骤:①编写并执行编译配置脚本;②使用编译命令“make”和安装命令“make install”完成编译;③编译触摸屏校验工具;④使用“mkimage”和“make_ext4fs”工具,将根文件系统、Qt/E 5.7 源码编译结果、“tslib”触摸文件以及字库文件打包生成镜像文件“system.img”。
2.3 应用程序
Qt是一个跨平台C ++图形用户界面应用程序开发框架。Qt Creator 是一种Qt 集成开发环境,集成高级C ++代码编辑器、qmake 构建工具、Qt Designer 等。本研究在Ubuntu系统中搭建Qt开发环境来设计应用程序。
在应用程序中,主要设计了初始化程序、串口通信程序、激光器参数监测程序、波形显示程序、传感器控制程序、网络通信程序、嵌入式数据库以及人机交互界面,程序流程如图3 所示。系统初始化时,开启子线程来连接Wi-Fi,连接成功后,获取实时网络时间,并将其设置为Linux 系统时间。此外,还需完成MQTT 客户端的实例化、结构化查询语言(SQLite)数据库连接、波形图初始化以及部分信号与槽函数的绑定。在串口通信程序中,手动配置串口参数、读取二次谐波信号的峰值并转换成浓度信息。在激光器参数监测程序中,根据ADC工作时序,调用Linux 驱动程序提供的通用函数,控制ADC 并读取转换结果。采用QCustomPlot构件实现波形显示,实时绘制气体浓度、激光器温度、电流等曲线。在传感器控制程序中,调用Linux 内核的读写函数,通过控制I/O 口电平来控制继电器组的通断,最终控制激光器温控、驱动和气泵的通和断。在网络通信程序中,基于MQTT 协议连接代理服务器“mosquitto”,实现气体浓度数据以及激光器参数的网络发布,结合云服务器实现数据的云端存储;同时,通过订阅特定主题来接收远程控制命令,实现远程控制;为了防止网络故障时出现数据丢失的问题,基于嵌入式SQLite数据库,实现了数据的本地存储。设计了友好的人机交互界面,方便可视化操作。
图3 应用程序流程
3 基于DSP的光谱信息感知模块
以DSP为核心的光谱信息感知模块产生激光器驱动信号、采集光电探测器输出信号并计算与浓度相关的二次谐波信号,按照标定曲线计算气体浓度,最后传输给嵌入式控制模块。
3.1 硬件设计
采用美国德州仪器的TMS320F28335 为主控芯片,主频150 MHz,含32 位浮点处理单元、6 个增强型捕获(eCAP)模块、3 个32 位定时器、3 个串行通信接口(SCI)模块。光谱信息感知模块主要实现两大功能:一是产生激光器驱动信号,控制激光器的扫描波长范围;二是采集光电探测器输出电信号,从中提取浓度信息并发送给嵌入式控制模块。利用2 片直接数字频率合成(DDS)芯片(型号为AD9834)分别产生5 Hz的扫描信号和5 kHz的调制信号,通过放大电路将信号幅值放大到目标范围内,再采用加法电路将2 个信号叠加,最终形成激光器的驱动信号。采用比较器芯片(型号为LM393)将扫描信号与直流电压信号进行比较,生成与扫描信号同频的方波信号来精准地控制采集电路采样的起始点。在采集电路中,首先对探测器的输出信号进行预放大与隔离处理,然后使用普通I/O口来模拟串行外围设备接口(SPI),以控制16 位ADC(型号为AD7902)芯片,并采集探测器的输出信号。
3.2 光谱信息采集算法与流程
上电后,对DSP、各个芯片及接口进行初始化,产生激光器驱动信号,允许eCAP 模块中断以及定时器中断。当eCAP模块捕获到扫描信号同频方波的上升沿时,执行eCAP 模块对应的中断服务程序。在中断服务程序中,首先开启定时器,当定时时间到时再对探测器输出信号采样1 次。定时器的定时时间决定了采样点之间的时间间隔。当采样点数大于12 000 时,关闭定时器,算法开始执行标志位为1。判断算法执行标志位为1 后,对采集到的吸收信号数组执行正交锁相放大算法,提取二次谐波信号,并找到谐波信号的峰值点;执行滑动平均算法,将数据通过串口发送至嵌入式控制模块中并进行处理。最后,清除eCAP 模块中断标志位,算法开始执行标志位为0,开启下一轮光谱信息采集过程。光谱信息提取算法的流程如图4所示。
图4 光谱信息提取算法流程
4 检测仪性能测试
采用研制的红外激光气体检测仪对氨气浓度进行了测试,选取以6 612.7 cm-1为中心的吸收线作为氨气的目标吸收线,采用相应波长的分布反馈激光器(DFB)作为激光光源。
4.1 激光器驱动信号测试
激光器驱动信号的质量会直接影响激光器输出光的质量,因此产生低噪声驱动信号十分重要。为了扫过氨气的目标吸收线,将激光器驱动信号电压设置为2.36 ~4.20 V。图5 为实际测得的光谱信息感知模块产生的激光器驱动信号。根据驱动信号的傅里叶变换光谱分析结果,驱动信号中主要包含低频信号分量以及5 kHz处的频率分量。
图5 激光器驱动信号
4.2 光谱信号测试
在氨气检测实验过程中,对光谱感知模块提取的二次谐波信号波形进行了存储,以此来评估该模块对二次谐波信号的提取能力。在不同氨气体积分数下提取到的二次谐波信号如图6 所示。可以看出,该模块在不同氨气体积分数下均能提取出二次谐波信号,随着氨气体积分数的升高谐波信号幅值也增大。同时,谐波信号曲线较为平滑,说明检测仪的噪声较小。
图6 不同氨气体积分数下的二次谐波信号
4.3 线性响应测试
为了得到氨气体积分数与二次谐波信号幅值之间的关系,利用该检测仪开展了氨气标定实验。在标定过程中,采用商用气体混合系统(型号为Environics 4000)产生目标体积分数的氨气样品。采用纯氮气(纯度为99.999%)将体积分数为40 ×10-6的标准氨气样品稀释为体积分数5 ×10-6、10 ×10-6、15 ×10-6、20 ×10-6、25 ×10-6、30 ×10-6、35 ×10-6、40 ×10-6的氨气样品。对每种样品测试4 min,在不同体积分数下得到的二次谐波信号峰值如图7(a)所示。对每组二次谐波信号峰值取平均值,拟合得到的峰值均值与氨气体积分数的关系如图7(b)所示。结果表明,两者之间有良好的线性关系。
图7 线性响应测试
4.4 检测仪现场应用测试
为了验证气体检测仪的现场应用能力,在吉林市东北亚农产品批发市场的氨制冷冷库中开展了氨气泄漏的检测实验,以定点方式测试了冷库中氨气制冷压缩机泄漏情况。当测量如图8(a)所示的制冷压缩机时,测得的结果如图8(b)所示。结果表明,此处氨气体积分数较其他地方偏高,说明压缩机存在一定泄漏,这验证了该检测仪的现场应用能力。
图8 检测仪现场应用测试
5 结 语
针对单片机类课程的实验教学要求,为了促进教学与科研相融合,研制了一种红外激光气体检测仪。该检测仪采用腔增强吸收光谱技术和波长调制光谱技术实现了气体传感功能。结合嵌入式操作系统、云端服务器等技术,实现了气体传感信息的远程共享和交互。利用研制的检测仪,开展了氨制冷冷库现场氨气泄漏的检测应用,验证了检测仪功能。该检测仪不仅能用于DSP、ARM 单片机、Linux 操作系统等实验教学,还能让学生了解红外光谱、激光光谱等前沿技术,从多个维度促进学生单片机应用能力的提升,达到了较好的科研育人、实践育人的综合效果。