无线CO电化学传感器应用设计
2012-07-26路林吉
郭 奇 路林吉
(上海交通大学电子信息与电气工程学院,上海 200240)
0 引言
CO是一种有毒且易燃易爆的气体,汽车尾气、煤矿井下气体和工厂废气中存在的CO给人们的生命安全带来巨大危害。为了及时准确地对生产生活中的CO进行检测,设计一种灵敏度高、性能可靠、操作简单和功能完善的CO传感器是十分必要的。为此,本文设计了一种无线CO电化学传感器。该传感器除具有实时监测、报警指示和电流变送输出等功能外,还具有射频通信、自动调校和温度补偿等多项功能。
1 传感器工作原理
CO电化学传感器共有工作电极(WE)、参考电极(RE)和对电极(CE)这3个电极,其原理如图1所示。
图1 电化学传感器原理图Fig.1 Principle of electrochemical sensor
通过电极上发生的电化学氧化还原反应,建立电化学平衡,反应产生的电流与CO气体的浓度成正比,化学反应方程式如下:
为保证最佳工作电极电位和最大反应电流的线性关系,信号放大电路需要将参考电极引入恒电位电路。恒电位电路的作用是在自身没有电流流过的前提下[1],给工作电极提供稳定的电化学电位,使其不随化学反应而变化。
2 传感器硬件电路
传感器硬件电路以ME3-CO探头、C8051F005和CC1100为核心,它由电源电路、信号放大调理电路、温度检测电路、变送输出电路和报警显示电路等组成,其硬件组成框图如图2所示。
图2 传感器硬件组成框图Fig.2 Hardware of the sensor
2.1 放大电路设计
ME3-CO气体探头对CO具有较好的气体选择性。考虑到电流信号相当微弱,且恒电位电路需要保证尽量小的电流流过参考电极,本设计选用低噪声、高精度的运放OP07。它具有低输入失调电压(10 μV)、低输入偏置电流(2 nA)、低温漂(0.2 μV/℃)、高输入阻抗和高共模抑制比(110 dB)等特性,满足电化学传感器的放大要求。恒电位电路和信号放大电路如图3所示。
图3 恒电位电路和信号放大电路Fig.3 Constant potential circuit and signal amplifying circuit
2.2 射频电路设计
C8051F005单片机内部集成8通道12位ADC、2通道12位 DAC、Flash存储器和 SPI/IIC接口电路[2-3],通过 SPI 接口和相关指令可以方便地访问CC1100的主要操作参数和64位传输/接收FIFO,实现读/写缓存数据和读/写状态寄存器等功能。
CC1100是TI设计的一款高性能UHF收发芯片,可工作于315/433/868/915 MHz的ISM/SRD频率波段。它内部集成了一个高度可配置的调制解调器,支持不同的调制格式,支持预放、同步字插入/检测、地址检查和自动CRC校验等功能。C8051F005采用模拟SPI方式对CC1100进行设置和收发数据,两者连接原理图如图4所示(图中MCU侧略)。
图4 CC1100与C8051F005连接原理图Fig.4 Connection principle between CC1100 and C8051F005
图4中,SI/SO、SCLK、GDO2、CSn 来自单片机普通引脚,其中SI/SO为SPI接口的数据线、SCLK为时钟输入、CSn为SPI接口的片选端、GDO0/GDO2为常规用途/测试输出控制引脚[4]。
2.3 零点自校准电路设计
传感器和外围电路受外界环境影响会产生一定漂移,如果长时间受老化等环境因素的影响,就可能产生较大的零点漂移。为了使系统在长时间工作后仍能够精确读数,零点自校准电路设计过程中使用了零位漂移自校准方法[5]。
自校准电路的原理是可燃气体在浓度为零的情况下无法进行电化学反应,而人为地降低施加在电极上的工作电压。当电压小到一定程度时,即使可燃气体浓度不为零,电化学反应也无法进行。根据这一特性,找到门限电压Vth,并通过MCU控制测量电路的工作电压使其降到Vth,测出此时放大电路的输出值,此输出值即为零点值。
电路中的MCU通过DAC0控制工作电压调节电路。DAC0平时用来提供稳定的工作电压,当需要自动校准时(如定时周期到或手动请求),MCU给测量电路提供电压Vth。通过测量放大电路的输出值得到新零点值,测量值与新零点值之间的差值即为实际信号真值。
2.4 变送输出设计
DAC1电流输出电路如图5所示,变送输出DAC1接VI转化电路,输出电流4~20 mA对应实时浓度。
图5 DAC1电流输出电路Fig.5 DAC1current output circuit
3 系统软件设计及调试
系统软件主要包括初始化与自检子程序、温度处理子程序、数据处理子程序、LED显示子程序、电流输出子程序、无线收发子程序、定时中断程序、ADC中断程序和串行中断程序。
系统上电后,仪器先自检和读取初值,然后进入主程序。LED第一位为运行/设置状态区分位,后三位显示实时浓度值。主程序进行循环扫描,并按条件判断来进行各子程序的调用。
主程序流程图如图6所示。
图6 主程序流程图Fig.6 Flowchart of the main program
3.1 无线收发程序
CC1100的SPI接口上所有操作都包含一个读/写位、一个突发访问位和一个6位地址的头字节。按照操作时序,单片机通过SPI总线读写CC1100内部寄存器地址0x00~0x3F,实现功能设定、三状态切换(待机接收和发射)以及数据的收发[6]。
初始化子程序的步骤是:①对CC1100进行复位操作;②对CC1100进行寄存器配置,包括一些最基本的收发确认设置、频段设置、调频设置和地址设置等;③对CC1100进行功率寄存器配置,使CC1100在发送时按指定的功率进行数据发送。
发射子程序的步骤是:①按SPI接口时序把要发送的字节长度和数据写入TXFIFO;②初始化发射端的地址,使之与接收端的地址相互匹配,发射端发射数据的有效宽度与接收端相一致;③将单片机设置为发送模式,完成数据打包,进行编码、调制和发送;④发送完成后,相应的引脚被置低,刷新TXFIFO,CC1100转入待机模式。
接收子程序的步骤是:①初始化的设置同发射时基本一致;②设置CC1100为接收模式,不断地检测载波,等待接收数据,当检测到同频段的载波并且地址也匹配时,CC1100进行数据包的接收,并完成校验等相关工作;③将数据通过SPI传输到单片机中,接收完成后刷新RXFIFO,CC1100返回到待机状态。
3.2 A/D转换子程序
采用定时中断方式启动A/D转换,采样和滤波用中断方式实现,滤波时采用掐头去尾算术平均法[7-8],避免误差对最终读数产生影响。
3.3 温度非线性补偿
根据厂家提供的试验数据,根据最小二乘拟合原理得到CO电化学传感器的温度特性为[9-10]:
式中:X为环境温度值,℃;Y为该环境温度下体积分数测量值与20℃(20℃为标准环境温度)时的体积分数测量值的百分比。C8051F005通过单线温度传感器DS18B20读入环境温度,按式(1)对测量值进行修正,消除由于环境温度的变化给测量带来的误差。
3.4 系统标定
标定曲线可用直线方程y=kx+b来表示[10],由于2.4 V为A/D参考基准,相应的标定拟合直线为:
式中:x的取值范围为0~2.4 V,y的取值范围为0~1 000。标定时,调试人员使用几种不同浓度的标准CO气体测出几组数据,用待定系数法求得k和b的值,然后再将这2个参数存入内部Flash存储器。
4 结束语
基于C8051F005和CC1100,系统采用高性能运放OP07设计恒电位电路和放大调理电路,实现了CO传感器的软硬件设计。本文所设计的传感器具有实时显示、超限报警、掉电储存、电流输出和无线收发等功能,并使用温度的拟合修正方法提高测量精度,产品分辨率为1 ×10-6,运行稳定。
[1]何一文,许维胜.基于PIC16F877的瓦斯传感器设计[J].测控技术,2009(28):9-12.
[2]姚毓升,解永平,文涛.三电极电化学传感器的恒电位仪设计[J].仪表技术与传感器,2009(9):23-24.
[3]鲍可进.C8051F单片机原理及应用[M].北京:中国电力出版社,2006:23-65.
[4]李文仲.C8051F系列单片机与短距离无线数据通信[M].北京:北京航空航天大学出版社,2007:120-160.
[5]李浩.基于CC2520的二氧化硫传感器节点设计[J].仪器仪表用户,2009(4):30-32.
[6]董胜乾.基于无线网络的传感器系统设计研究[D].西安:西安电子科技大学,2008.
[7]张其武.烟气二氧化硫浓度智能检测仪的研究[D].济南:山东大学,2005.
[8]杜黎.电化学传感器测试电路设计与实现[D].大连:大连理工大学,2009.
[9]朱前伟,孙小进,赵小兵,等.基于单片机的一氧化碳传感器的设计[J].计算机测量与控制,2009,17(7):1445-1446.
[10]袁广超,田旭东.基于CPLD振弦式传感器的频率测量技术[J].自动化仪表,2009,30(11):63-66.