基于FPGA的多气体智能监测系统设计与研究

2020-06-06 06:56郝智皓黄钉劲王锦涛
计算机测量与控制 2020年5期
关键词:时序串口温湿度

郝智皓,黄钉劲,王锦涛

(西安工业大学 光电工程学院,西安 710021)

0 引言

随着我国近几年来大气污染越来越严重,大气监测与治理任务越来越重。无人机遥感技术作为继航空、航天之后的第 3 代遥感技术, 具有立体监测、响应速度快、监测范围广、地形干扰小等优点, 是今后进行大气突发事件污染源识别和浓度监测的重要发展方向之一[1]。可用于储罐气体泄漏、火灾现场检测、烟道检测、工业园区检测、石油管道检测的监测任务中。

但由于无人机载荷有限,要完成多种气体监测工作需要搭载多种类型的气体传感器。而现在使用的气体监测系统多以ARM处理器作为中控芯片,由于ARM(Advanced RISC Machine,ARM)处理器外设固定,并且气体监测时所使用的各类传感器的通讯形式与协议各不相同,实现多种气体同步采集,必须另外设计扩展电路,这就导致大气监测系统的功耗与重量极大增加,对其研发过程带来了一定挑战[2]。此外,当气体监测系统中的数据采集模块以ARM处理器或数字信号处理器(Digital Signal Processing,DSP)为控制核心时,并不能有效解决高速数据采集处理过程中存在的实时性和同步性差的技术难题[3]。因此需要设计一种适用于以无人机为搭载平台实现多种气体实时同步检测的大气监测系统。

FPGA芯片具有引脚数目多,编程配置灵活、纯硬件并行控制、时钟频率高、抗干扰能力强、功耗低(相比于ARM芯片),逻辑控制能力强等优点[4-5]。本文设计了一种以FPGA为主控芯片的多通道同步气体监测系统,在简化系统电路结构的同时增加了系统的灵活性、扩展性,且兼容多种气体传感器,可完成对前端数据的采集,存储、各通道的选通控制、以及数据的无线传输等,实现了多种有毒有害可燃气体的远程实时、同步采集。

1 系统结构及原理

该系统由传感器阵列,空气泵、主控制器、无线串口模块、GPRS无线数据模块、Flash存储、上位机组成。总体结构设计如图1所示。传感器阵列可挂载6个7NE系列智能气体传感器、PM2.5PM10传感器、温湿度传感器,完成对温湿度、PM2.5/10、二氧化氮、二氧化硫、臭氧等8种气体浓度的同步实时采集;空气泵通过控制电路与FPGA主控芯片相连,当该系统到达检测现场时,远程控制空气泵的开闭状态,为各个气体传感器泵吸大气实现气体的泵吸式检测的同时减小了系统的功耗;主控制器采用Xilinx公司的Spartan6系列的FPGA,通过控制空气泵的开闭、端口的通断、循环采集时间、传感器的工作状态等,实现了数据同步处理、实时采集、数据缓存、时序约束、端口控制、数据存储、数据传输等功能;无线串口模块与GPRS模块均用于数据的远程无线传输,对于较近距离的检测任务可使用无线串口模块对监测系统进行指令下发和实时监测数据的接收,在进行远距离监测任务时可使用GPRS无线传输模块通过服务器对监测系统进行指令下发和实时监测数据的接收;上位机为远程端,用于实时显示监控数据生成相应的趋势曲线。本系统需要对传感器阵列进行同步实时循环测量与控制,并对测量数据进行缓存、判断、处理、存储与传输。主要包括命令解析、传感器状态管理、信号通道切换、数据存储、数据上传等功能。

图1 系统总体结构

2 系统硬件设计

采集系统硬件设计主要分为FPGA与传感器阵列的硬件连接、空气泵控制电路、无线通讯模块等。硬件设计连接如图2所示。

图2 硬件连接

传感器阵列共设有8组接口,可连接6个圣凯安公司所生产的7NE系列传感器,一个攀升科技有限公司生产的PMSA003 PM2.5/10传感器,一个DHT11数字式温湿度传感器。

该系统使用的DHT11数字温湿度传感器,使用数字模块采集技术和温湿度传感技术。该产品体积小、功耗低、湿度测量范围20%~90%、测湿精度±5%、温度测量范围0~50 ℃、测温精度±2 ℃。它包含一个电阻式感湿元件和一个NTC测温元件,输出经过内置的高性能8位单片机进行校准。其经过实验室校准,将校准系数存储于OTP内存之中,在检测过程中调用这些系数对测量结果进行校准。由于其为单总线数字式数据输出,因此可减少模拟信号与数字信号的转换电路设计,提高了检测速率。

PMSA003是一款基于激光散射原理的数字式通用颗粒物传感器,令激光照射在空气中的悬浮颗粒物上产生散射,同时在某一特定角度收集散射光,得到散射光强度随时间变化的曲线。进而微处理器基于米氏(MIE)理论的算法,得出颗粒物的等效粒径及单位体积内不同粒径的颗粒物数量,进而换算成为质量浓度,并以通用数字接口形式输出。其颗粒物质量浓度有效量程(PM2.5标准值)为0~500 μg/m3,颗粒物质量浓度分辨率为1 μg/m3,工作温度范围为-10~+60℃,工作湿度范围为0~99%。

7NE系列气体传感器是由圣凯安科技公司生产的专门针对气体检测的新型智能传感器,可满足对不同种类气体探测的需求。该类传感器工作电压为DC5V±1%,采用电化学检测原理,采样精度±2%FS,重复性±1%FS,工作温度-20~70℃,工作湿度10~95%RH(非凝结),适用于工业现场或实验室场景中。并且该类传感器具有模拟电压和串口输出特点,本系统中使用串口输出,不用为此设计专门的数模转换电路。并且该类传感器采用本安电路设计,可带电热插拔操作,增加了系统的灵活性,有利于系统的拆装和扩展。

空气泵控制电路用于实现空气泵的开关控制。其控制电路如图3所示。其中继电器选用SRD-05VDC,吸合电压为5 V,光耦EL817C845对FPGA芯片与控制电路进行光电隔离,从而实现了对主控芯片进行保护,增强了主控芯片的稳定性。

图3 空气泵控制电路

无线通讯方式可选用GPRS无线通讯模块或无线串口模块。GPRS模块使用RS-232电平标准,而FPGA的I/O接口只支持LVTTL电平标准与LVCMOS电平标准。为解决FPGA与GPRS无线串口模块的电平匹配问题,该系统使用MAXIM公司生产的MAX3232ESE芯片完成RS232信号的收发驱动,实现了电平匹配。无线串口模块使用TTL电平标准则可直接与FPGA芯片连接实现电平匹配,通过FPGA内部时序设计实现对无线串口模块的收发控制。

3 FPGA软件设计

FPGA软件设计主要分为系统同步时钟、通用异步收发器(Universal Asynchronous Receiver and Transmitter,UART)时序配置、DHT11驱动时序配置、指令解析、数据缓存处理模块等。总体框架设计如图4所示。

图4 FPGA设计总体框架

3.1 同步时钟模块

该系统硬件使用50 MHz的有源晶振,通过FPGA芯片的外围I/O引脚将时钟引入到芯片内部。本系统中使用FPGA内部的锁相环(Phase Locked Loop,PLL)采用分频的方法将50 MHz时钟生成为25 MHz的时钟。通过FPGA内部的PLL生成的系统时钟具有低抖动、低延迟的特点,保证了系统各模块之间数据传输与处理的同步性,提高了时钟的稳定性[6-7]。同时运用时序约束的方法约束时钟的占空比,建立时间,保持时间等,从而减小数据与时钟之间的偏斜,避免了数据传输错误[8]。

3.2 UART时序配置模块

本模块由4个部分组成,分别为baud_gen_tx发送时钟产生模块、baud_gen_rx接收时钟产生模块、uart_tx发送控制模块、uart_rx接收控制模块。模块框图及数据流如图5所示。

图5 UART时序配置模块框图

该系统中,UART信号帧由10bit构成,其中包括1个起始位,8个数据位,1个停止位,串口速率9.6 kbps,TTL电平。其中div_en为数据发送使能信号,当需要发送数据时,将div_en信号置高一个时钟周期,同时使tx_busy信号置高,按照baud_gen_tx信号周期开始传输数据,当数据传输结束后,tx_busy信号置零。时序如图6所示。因为UART为异步通讯模式,UART收发每一个数据的时间宽度需要以所设定的波特率进行计算,该系统中系统时钟为25 MHz,系统时钟周期为40 ns,当波特率为9 600 bit/s,每个数据的时间宽度则为(1*109/9 600)/40个系统时钟周期[9]。

图6 数据发送时序图

当接收端口检测到信号下降沿时,此刻将start_grx信号置高,因为数据信号边沿存在亚稳态与信号毛刺的现象,为了防止读取数据准确,则选择在每个波特率周期中心点对电平信号进行判读,读取完成后start_grx信号拉低,并产生dout_en信号输出所读数据。其时序如图7所示。

图7 数据接收时序图

使用ModelSim仿真软件对该模块进行仿真测试。仿真结果如图8所示。

图8 UART时序仿真图

3.3 DHT11驱动时序设计

DHT11温湿度传感器与主控芯片之间的通讯并不是标准的通讯协议,而是厂家自定义的一种通讯格式。DHT11的DATA引脚采用单总线的数据格式,一次通讯时间为4 ms左右,具体时序可参考DHT11时序图[10]。总线空闲时保持高电平,FPGA先将总线电平拉低20 ms,再将总线拉高40 μs。此时将总线设置为输入,DHT11将总线拉低80 μs再拉高80 μs作为相应信号,接下来开始传输40 bit数据。每bit数据传输时序为总线先拉低50 μs,再将总线拉高,总线拉高时间为26~28 μs时为数据0,总线拉高时间为70 μs时为数据1。

根据DHT11温湿度传感器工作时序使用verliog语言设计状态机。系统上电后,该模块处于st_power_wait状态,此状态下需要等待一段时间用于DHT11温湿度传感器对传感器参数进行初始化,所以在该状态下设定等待10 μs进入IDLE状态。在IDLE状态下,当该模块收到start信号时,启动DHT11温湿度传感器,对大气温湿度进行测量。st_low_20 ms状态下FPGA芯片将DATA总线电平拉低20 ms后进入下一状态。st_high_40 μs状态下FPGA芯片将DATA总线置高40 μs。st_rec_ack状态下,总线由DHT11温湿度传感器控制,FPGA芯片等待检测总线电平上升沿信号sda_pos,当检测到sda_pos置高时则进入下一状态。st_rec_data状态下该模块开始接收DHT11温湿度传感器发送来的40 bit数据,当数据全部接收完毕后,进入IDLE状态。状态机设计如图9所示。

图9 DHT11状态机设计图

3.4 指令解析模块

无线模块将从上位机接收到的指令,以串口通讯的方式传输给FPGA主控芯片,FPGA内部需要对接收到的指令进行缓存、判读、解析与状态更新。通过利用FPGA的内部资源配置串口时序,在其时序下,将接收到的8 bit数据缓存到8 byte的移位寄存器中并不断对移位寄存器中的8 byte数据进行判读,判断移位寄存器中的高2 byte与低2 byte是否符合预先设定的指令头、指令尾的固定格式,如果符合则可将其存入RAM中等待下一步对命令进行解析。在命令解析过程中RAM的高16 bit为操作地址,低16 bit为操作指令。另外程序中专门设置了一块8 bit的片上RAM用于记录每次指令对各个传感器的操作状态,每一位分别代表各个传感器的工作状态,置一为工作,置零位停止。在对命令解析后,实时更新每个传感器的工作状态。

3.5 数据缓存处理模块

由于该系统为多通道的同步数据采集,每进行一次采集任务会产生大量的数据需要处理,同时FPGA与外部通信模块之间存在硬件差异,会导致数据传输速度不匹配。因此,为了解决数据存储与传输的实时性问题,该系统利用FPGA内置的知识产权核(Intellectual Property core,IP)资源,调用FIFO核,对数据进行缓存。数据缓存处理过程如图10所示。

图10 数据缓存处理过程

在进行检测时,每个智能气体传感器回传18 byte采集数据,PMSA003颗粒物传感器回传32 byte采集数据,DHT11温湿度传感器传回5 byte采集数据,可分别将其采集到的信息存入各自通道预设好的RAM片上存储器中,对采集到的数据进行缓存,并实时判读RAM中存储的数据,例如传感器的工作状态,检测物种类,浓度值等。之后通过数据选通模块与数据处理模块将正常工作的传感器采集到的信息数据进行重新编码,按照通讯协议格式依次将数据存入FIFO中等待无线传输模块将数据上传。

4 测试验证

搭建气体检测系统,使用12 V 4800 mA聚合物锂电池为供电电源,挂载6个智能气体传感器、1个PM2.5/10传感器、1个温湿度传感器的情况下,通过上位机远程控制对本系统的实际功能进行测试,测试时间为25 min。测试内容为别为循环检测时间间隔更改、各传感器工作的状态控制、传感器数据采集通道的选择性开闭。测试结果如表1所示。测试结果表明,本系统符合实际应用要求,满足设计要求,系统稳定性高,在简化系统电路结构的同时可实现对大气多参数的实时、准确、同步监测。

表1 测试结果

5 结论

针对传统数据采集系统需要设计外围扩展电路以及在数据传输存储过程中不能有效地解决同时性和实时性的问题。本文采用Xilinx公司Spartan6系列的FPGA作为核心控制器件,发挥其并行处理能力和时序约束能力。控制气体传感器的数据传输,运用FPGA内部资源,实现数据的采集缓存传输的模式,完成了大气多参数的同步实时采集,存储,处理,传输。增强了系统的可靠性,有效性和稳定性。整套方案基于通用架构,并针对气体传感器多通道处理的特殊之处,使得整套系统同时具有针对性以及普适性。

猜你喜欢
时序串口温湿度
一种智能化电热处理炉用温湿度传感器的变送器
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
文物展柜内环境温湿度的调控与监测
蛋鸡育雏育成舍环境控制技术
温湿度独立控制空调系统在医院建筑中的应用研究
你不能把整个春天都搬到冬天来
基于EM9000工控板高性能双串口通信模型设计与实现
MCS—51单片机中的多串口通讯技术的应用