APP下载

基于STM32和CC1101的受限空间关键气体浓度检测系统

2020-04-26梁晓瑜

仪表技术与传感器 2020年3期
关键词:寄存器电化学无线

洪 涛,梁晓瑜

(中国计量大学计量测试工程学院,浙江杭州 310018)

0 引言

受限空间又称有限空间或密闭空间,是指封闭或者部分封闭,与外界相对隔离,出入口较为狭窄,作业人员不能长时间在内工作,自然通风不良,易造成有毒有害、易燃易爆物质积聚或者氧含量不足的空间。受限空间因为其作业环境情况复杂,空间狭小、通风不畅、不利于气体扩散,故容易积聚有毒有害气体,并且氧浓度与外界差别较大,容易发生中毒窒息事故。当发生意外时,如果贸然进入救援,或许会直接威胁到救援人员的生命安全[1]。

故本文设计了一种受限空间中气体检测装置,它不仅具有实时检测、显示、报警等基础功能,还具备数据远程传输给外界监控人员的功能,使得外部人员也能够了解救援人员所处的环境信息,从而采取正确的措施应对当前情况,避免伤亡的扩大。

1 电化学气体测量原理

电化学传感器结构图如图1所示

图1 电化学传感器结构框图

电化学传感器主要由透气膜、电极、电解液和过滤器组成。与传感器产生反应的目标气体透过过滤器和透气膜到达工作电极并且在工作电极上发生氧化或还原反应,发生电子的转移,从而产生随目标气体浓度成线性变化的电流[2]。为了使传感电极电势在长时间工作中保持恒定,往往在传感器内部加入参

考电极。

1.1 O2 电化学传感器

O2电化学传感器采用隔膜伽伐尼电池原理。这类传感器由易极化的活泼金属构成阳极,具有催化活性的金属构成阴极。

O2到达工作电极时,立即发生还原反应,O2被还原成OH-。OH-通过电解液到达对电极,与Pb发生氧化反应,生成pb(OH)2,同时释放电子[3]。阴极和阳极的反应方程式分别如式(1)和式(2)所示。

总电池反应如式(3)所示。

1.2 CO电化学传感器

CO电化学传感器的工作原理是:当CO到达工作电极时,发生氧化反应,产生H+,同时释放电子。H+通过电解液到达对电极,发生氧化反应。该过程的反应方程式如式(4)和式(5)所示。

总电池反应如式(6)所示。

1.3 H2S电化学传感器

H2S电化学传感器的工作原理是:当H2S到达工作电极时,发生还原反应,产生 H+,同时释放电子。H+通过电解液到达对电极,发生氧化反应。该过程的反应方程式如式(7)和式(8)所示。

总电池反应如式(9)所示。

上述所有过程中,电子的消耗和转移可以产生电流,测量对应电流的大小即可计算出目标气体的浓度。

2 总体设计方案

系统使用STM32F103RCT6微处理器,与电化学传感器和CC1101无线传输模块结合,设计了一种受限空间气体检测装置,主要具有以下功能:(1)能够检测CO、H2S这两种常见的受限空间有毒气体浓度和O2的浓度;(2)能够将浓度信息显示在液晶显示屏上;(3)具有声音报警功能;(4)具有气体浓度信息无线传输功能。本系统的结构框架如图2所示。

图2 系统结构框图

本系统主要由2部分组成,分别是救援人员携带的检测装置,和置于外部的监测装置。检测装置主要包括:单片机的最小系统,电化学传感器,信号处理芯片,TFTLCD液晶显示屏,发光二极管和蜂鸣器。原理如下:当电化学传感器感知到外界的有害气体后,会输出随气体浓度变化的电流信号,电流信号经过信号处理芯片后转换为电压信号,电压信号被单片机采集并经过内部的12位ADC进行模数转换,经过计算后在液晶显示屏上显示,如果超过报警浓度则进行声光报警。与此同时,将数据通过无线传输芯片传输到外部的监测系统,方便外部人员实时监测,并且外部监测系统也具备报警功能。

3 硬件结构设计

3.1 微处理器

系统采用的2个微处理器都是STM32F103RCT6芯片,该芯片是32位ARM微控制器,以Cortex-M3为核心,速度高达72 MHz,满足系统的实时性需求。并且该芯片具有3个12位ADC,3个SPI接口,2个I2C接口,5个串口,48 KB的SRAM和256 KB的FLASH,方便与LMP91000信号处理芯片和CC1101无线传输芯片进行通信[4]。微处理器与晶振、复位电路、电源和程序烧录口构成单片机最小系统。

3.2 电化学传感器

目前市场上检测有毒气体的检测仪器大多数都使用电化学传感器。电化学传感器具有良好的重复性、准确性和分辨率,精度高、功耗低,并且比大多数其他气体检测技术更经济[5]。本设计使用4系氧气传感器 AAY80-390R 和4CO-500、4H2S-100传感器。O2电化学传感器是双引脚传感器,分别是对电极(C)和工作电极(W)。CO和H2S电化学传感器是三引脚传感器,分别是对电极、工作电极和参考电极(R)。电化学气体传感器可输出随浓度成线性变化的电流信号。

3.3 信号处理芯片

由于电化学传感器输出的是电流信号,需要把它转换成电压信号,所以需要进行信号处理。电化学传感器具有经典的调理电路,如图3所示。

图3 电化学传感器经典调理电路

但是该调理电路需要改变反馈电阻来适应不同传感器的电压输出,使得电路的统一性不高,并且过于复杂[6]。故本系统采用了LMP91000芯片作为电化学传感器的输出信号处理核心。LMP91000芯片是一款可编程模拟前端(AFE),专门适用于微功耗电化学感测应用。该芯片的引脚配置如图4所示。

图4 芯片引脚配置

该芯片中主要有5个寄存器,分别是状态寄存器、保护寄存器、TIA控制寄存器、参考控制寄存器和模式控制寄存器,配置这些寄存器可以设置各种参数。

LMP91000与微处理器是通过I2C协议进行通信。当有多个 LMP91000与微控制器连接时,将所有LMP91000的SCL和SDA引脚都与微控制器的同一对SCL和SDA引脚连接,各芯片的MENB引脚与微控制器不同的I/O口连接,通过控制MENB的高低电平,从而控制微控制器与LMP91000通讯。图5显示了当多个LMP91000连接到I2C总线上的典型连接方式。

图5 多个LMP91000与I2C总线的连接

电化学传感器与LMP91000的电路连接如图6(a)和6(b)所示。

图6 电化学传感器连接图

图6 中的SDA与SCL用作I2C通信的接口。MENB是使能引脚,VOUT输出的是电压信号并输入到单片机的ADC接口进行模数转换。AGND和DGND通过0 Ω的电阻相连,实现单点接地。

3.4 液晶显示屏

本系统采用的是ALIENTEK TFTLCD模块,用来显示气体浓度数据。电路连接图如图7所示[7]。

图7 TFTLCD模块连接图

3.5 声光报警电路

声光报警电路连接图如图8所示。

图8 声光报警电路

当周围浓度超过预设浓度时,PA8输出高电平,三极管的基级电压大于开启电压,使三极管导通,故发光二极管和蜂鸣器都工作[8]。

3.6 无线传输芯片

现在无线传输的技术有Wi-Fi,蓝牙,Zigbee和自定义(如433M)。相比之下,433M的传输距离远,复杂性不高,可靠性高,传输速率快,设备成本低,绕射性好[9],十分适用于在受限空间中的数据传输。故本文采用的是CC1101无线传输芯片。

CC1101是一款低成本的1 GHz以下的射频收发器,专为超低功耗无线应用设计。该芯片主要用于315 MHz,433 MHz,868 MHz 和 915 MHz 的 ISM 和SRD频段,特别适和于针对通信设备的无线应用。本系统使用工业级CC1101无线模块,具有标准SMA天线接口,实物图如图9所示。

图9 工业级CC1101模块

CC1101的内部寄存器繁多,但是用Smart R F Studio 7软件配置寄存器,可以大大简化开发流程。微处理器通过I/O口模拟4线SPI接口(CS,MOIS,MISO,SCK)时序来控制CC1101芯片进行通讯。

3.7 电源电路

本装置的单片机、信号处理芯片和液晶模块均使用3.3 V供电。故采用AMS1117-3.3V芯片将干电池电压转换成3.3 V电压[10]。电源电路图如图10所示。

图10 电源电路图

4 系统软件设计

4.1 主程序

主程序主要包括系统初始化,气体信息浓度采集,信号处理,无线收发,液晶显示,超标报警等子程序。具体流程图如图11所示。

4.2 信号处理芯片程序

LMP91000的程序流程图如图12所示。

系统通电后,先对LMP91000初始化,读取其状态寄存器,若为1,则准备接受I2C命令。芯片启动后,把锁定寄存器置0,使能写入TIACN和REFCN寄存器。然后配置各个寄存器,设置负增益阻抗、反馈电阻、内部零点、偏置、参考源和操作模式,最后锁定寄存器置1,禁止写入TIACN和REFCN寄存器。配置完成后从芯片的VOUT引脚读取转换后的电压值。其中电压值与电化学传感器的输出电流关系如下:

图11 主程序流程图

图12 LMP91000程序流程图

式中:Vref_div为内部零点选择后的参考电压;Vout为输出电压;RTIA为负增益阻抗;Iwe为电化学传感器输出电流。

4.3 无线传输程序

数据的无线传输需要用到2个无线模块。一个负责在受限空间内发送数据,一个负责在外部接收数据。通信开始时,先对CC1101进行复位,再编写SPI写寄存器、SPI连续写配置寄存器、SPI写命令等函数对CC1101进行设置和操作,包括数据包处理,发送功率设置,调制方式等。

无线数据发送与接收流程图分别如图13(a)和图13(b)所示。

图13 无线数据发送与接收流程图

无线发送部分代码:

void halRfSendPacket(INT8U*txBuffer,INT8U size){

halSpiWriteBurstReg(CC1101_TXFIFO,txBuffer,size);

halSpiStrobe(CC1101_STX);

while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_GD0));

while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_GD0));

halSpiStrobe(CC1101_SFTX);}

无线接收部分代码:

INT8U halRfReceivePacket(INT8U*rxBuffer,INT8U*length){

INT8U status[2];

INT8U packetLength;

INT8U i=(*length)*4;

halSpiStrobe(CC1101_SRX);

Delay(5);

while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_GD0)){

Delay(2);

--i;

if(i<1)

return 0;}

if((halSpiReadStatus(CC1101_RXBYTES)&BYTES_IN_RXFIFO)){

packetLength=halSpiReadReg(CC1101_RXFIFO);

if(packetLength<=*length){

halSpiReadBurstReg(CC1101_RXFIFO,rxBuffer,packetLength);

*length=packetLength;

halSpiReadBurstReg(CC1101_RXFIFO,status,2);

halSpiStrobe(CC1101_SFRX);

return(status[1]& CRC_OK);}

else{

*length=packetLength;

halSpiStrobe(CC1101_SFRX);

return 0;}}

else

return 0;}

5 实验与分析

5.1 硬件调试

本系统的硬件电路使用Altium Designer软件绘制,并且用该软件继而绘制好PCB原理图,交给生产工厂进行制作。为了方便调试,将3个电化学传感器插入针脚安装在印刷电路板的背面。焊接元器件后,用万用表确保硬件电路没有问题情况下,再进行程序的烧录和调试。气体检测部分的实物图如图14(a)和图14(b)所示。

图14 PCB实物图

本系统的电化学传感器在测量前先经过48 h的老化处理,并且预热后通过流量计送入99.999%的纯氮气校准零点。图15是放在洁净大气中液晶显示屏的显示界面。

5.2 误差测试

将不同浓度的待测气体通过标定嘴送给传感器,待检测系统检测到的浓度数值稳定后,记录数据。测试的数据表明,进行检测的各待测气体浓度数值均在合理的误差范围内。测试结果如表1所示。

图15 洁净大气中液晶显示界面

表1 误差测试数据表

5.3 稳定性测试

由于3种气体的稳定性原理相似,所以仅以O2为例作为该装置稳定性的测试。将装置置于洁净大气中(O2浓度为20.90%),每隔2 h记录1次数据,共记录5次。测试结果如表2所示。

表2 氧气稳定性测试数据表 %

如表2所示,5次测量中最小值是20.70%,最大值是21.09%,稳定度为0.39%,符合稳定性要求。

6 结束语

本文设计的受限空间气体检测装置可以实现关键气体的检测,无线传输,液晶屏显示,超标报警等功能。与传统的电化学传感器检测电路相比,使用LMP91000芯片进行信号处理,大大降低了电路的复杂性,提高了系统的可靠性与测量精度。施救人员身上的检测装置可以通过433 MHz频段的无线传输,第一时间传输到外部的监测人员的终端上,可以使救援团队及时了解当前情况,从而采取相应的措施,在受限空间救援中有一定的实用性。

猜你喜欢

寄存器电化学无线
STM32和51单片机寄存器映射原理异同分析
电化学中的防护墙——离子交换膜
《无线互联科技》征稿词(2021)
电化学基础测试题
Lite寄存器模型的设计与实现
关于量子电化学
无线追踪3
基于ARM的无线WiFi插排的设计
一种PP型无线供电系统的分析
移位寄存器及算术运算应用