APP下载

基于STM32控制器的气体探测器

2015-01-15时维国鞠艳杰

化工自动化及仪表 2015年12期
关键词:以太网温湿度探测器

赵 科 时维国 鞠艳杰

(1.大连交通大学电气信息学院,辽宁 大连 116028;2.人工智能四川省重点实验室,四川 自贡 643000)

石油化工企业的生产现场普遍存在有毒和易爆气体,因此必须设计安装工业用智能气体探测器,以保证危险场合中工作人员的生命和财产安全。而设计网络智能化气体探测系统,实现多种类型气体探测器的组网和多点组网[1],实时对气体浓度加以采集和控制,能方便监控中心对大量的多通道探测器进行有效管理,并对各地各类探测器进行调试和配置。工业现场需要探测的气体种类繁多,只需更换或增减智能探测系统中相应的气体传感器,要求探测器能自动识别并进行相关的配置,由操作人员进行简单的调零和标定,即可正常使用,而不需要更改任何硬件电路和嵌入式软件,从而最大程度地节约时间和成本。温湿度对气体传感器的精度有较大影响,设计通过采集现场环境温湿度对气体探测器进行温湿度补偿和线性化处理,来提高探测器的精度。因此,对具有通用性的气体探测器进行设计研制具有较高的应用价值和现实意义。

笔者以STM32作为核心控制器,设计工业生产现场有毒易爆气体探测器,并为气体探测器设计以太网接口,将多探测器组网,给出报警电路、存储电路、人机接口电路、RS232调试电路和主程序流程,并进行软硬件调试。

基于以太网和STM32控制器的智能气体探测器,通过外围连接气体传感器、温湿度传感器、通信接口电路、报警电路和人机接口电路构成系统的硬件电路,如图1所示。

图1 网络化智能气体探测器电路构成

基于以太网和STM32控制器的智能气体探测器的工作原理:气体传感器把采集到的相应气体浓度转换为微弱的电信号,经过信号调理电路,送入STM32控制器片内的ADC实现模数转换。同时由温湿度传感器采集环境的温湿度信号,采用最小二乘法对气体浓度进行线性化处理和补偿,提高探测器的测量精度。显示电路实时显示采集的气体浓度,当浓度超过安全上限时触发报警,由PWM驱动排风或给氧系统。RS232调试电路用于对气体探测器进行本地化参数设置,并可通过超级终端进行程序监控和调试。以太网通信电路用于实现多种通用气体探测器通过路由器组网,实现多种气体和多区域探测,并实现控制中心的集中监测与控制,现仅以CO气体探测器为例介绍设计过程。

2 硬件部分

2.1 最小系统

以32位高性能、低成本且低功耗的STM32F103ZET6控制器作为智能气体探测系统的核心部件,其内核为CortexTM-M3架构,运行频率72MHz,内置Flash和SRAM,有丰富的I/O端口和外设,包含12位ADC、高级定时器和提供时间日历的独立定时器RTC;还有SPI、USART通信、I2C、USB、SDIO及CAN等接口[2],方便接口电路设计,也宜于功能扩展。

电源电路可提供稳定的5.0V直流电压,经LD1086D2M33TR转换后可得到稳定的3.3V直流电压,为探测器电路提供电源。系统时钟由外部8.000MHz晶振X1提供,RTC实时时钟由外部32.768kHz晶振X2提供。探测器采用外部手动复位和外部STWD100看门狗电路组成复位电路[3],防止系统掉电和程序“跑飞”。

2.2 气体传感器电路

设计选用ME3-CO电化学式气敏CO气体传感器,利用待测气体进行电化学反应所产生的电流正比于气体浓度的原理,通过测定该电流值来确定待测气体的浓度[4],适合在工业和环保领域对于CO气体浓度的检测。

ME3-CO传感器分辨率0.5‰,输出信号0.06±0.015μA/ppm(1ppm=0.001‰),容易受外界信号干扰,因此对前置信号调理电路的要求较高。

设计中,信号调理电路(图2)采用高增益、高精度和低温漂的运放AD8574作为信号放大器。该电路采用两级放大模式,前级采用反相比例放大电路,根据传感器使用手册推荐,负载电阻选取47Ω,将电流信号变换为电压信号;第二级采用同相比例放大,经两级放大后可得输出信号,送至STM32的ADC单元进行模数转换,实现了气体传感器的信号采集。各级放大电路加入电容滤除高频信号干扰,提高信噪比。电路正在工作时断电后,P沟道结型场效应管Q2保证传感器的工作电极和参考电极短路,再次得电工作时可以减少电化学传感器的启动时间。

图2 信号调理电路

2.3 温湿度传感器电路

温湿度传感器选用SHT75,采用CMOSen专利技术[5],集成了温湿度敏感元件、信号处理、A/D转换、循环冗余校验及串行接口等电路,具有12位分辨率,0~100%RH的相对湿度测量范围(±1.8%RH的测量精度),-40.0~123.8℃温度测量范围(±0.3℃测量精度),输出标定的数字信号,可以方便地利用STM32的I2C通信接口进行数据通信,温湿度采集电路如图3所示。SHT75的典型供电电压3.3V,电源与地之间接入100nF滤波电容。SHT75平均工作电流28μA,为防止过大电流损坏器件,在数据线DATA和时钟线SCK各串联200Ω电阻,三态结构的双向串行数据DATA端接10kΩ上拉电阻。

图3 温湿度采集电路

2.4 以太网接口电路

STM32以太网接口模块支持IEEE802.3协议的MII和RMII两种标准接口,可灵活配置。设计中选用RMII接口。以太网接口电路如图4所示,以太网接口收发器选用DP83848单路10/100Mbit/s以太网收发器[6],该器件功耗很低,具有智能电源关闭能量检测模式。收发器输出端连接HX1198NL网络隔离变压器,实现信号传输、阻抗匹配、杂波抑制及高电压隔离等,提高系统的安全性。器件SLVU2.8-4使输出具有更好的EMC性能,网络输出连接器选用工业级M12以太网连接器,使接口连接更加可靠,该接口电路具有较高的抗干扰能力,适合恶劣工业现场环境中信息的可靠传输。

图4 以太网接口电路

2.5 其他电路

RS232调试电路用于对探测器进行程序下载,用超级终端进行程序监控。调试电路的收发器选用带隔离电源的ADM3251,对收发信号进行共模保护,使数据传输可靠,提高了抗干扰能力。

报警电路实现探测器运行错误报警、气体浓度超上限报警及气体浓度低下限自动解除报警等功能。STM32控制器输出PWM信号驱动声光报警,并进行紧急处理,如驱动排风扇电机转动以降低气体浓度。

STM32内置512KByte闪存,但由于气体探测器程序量较大,记录数据较多,故采用SST25VF106存储器扩展外部存储空间,该存储器容量16MByte,经由SPI接口连接到STM32控制器。

键盘电路采用薄膜开关面板,主要用于数据输入和人机对话。各按键采用上拉电阻连接到STM32的GPIO口。无按键按下时各端口保持高电平,有按键按下时对应键变为低电平,GPIO通过识别各按键码及其状态来执行相应的操作。

显示电路采用TFT-LCD显示屏,分辨率320×240,16位真彩,显示屏色彩控制器为ILI9325,16位并行数据接口,自带触摸功能控制器TH2046。显示屏接线端与STM32控制器的FSMC端口相连,通过FSMC端口灵活配置与LCD控制器的连接[7]。显示屏显示当前气体浓度、采集时间及温湿度等信息,实现了一屏多显的功能。

3 软件部分

气体探测器系统程序利用STM32的固件库在Keil μVision4环境下用C语言进行模块化编程[8],主要包括系统初始化、按键中断、数据采集线性化与滤波、报警输出、数据存储与显示输出、以太网数据通信及RS232调试等程序。报警输出程序用于驱动气体浓度值超出上限后的报警并及时驱动应急处理,以及低于下限时的报警解除。RS232调试程序实现对探测器的初始配置和程序调试功能。以太网数据通信程序实现远程数据收发和网络共享,可以发送探测器的状态及存储记录等信号到远程监控中心,也可以接收远程控制中心对网络探测器的调试及参数配置等,实现远程集中监控。

系统主程序流程如图5所示,主程序先进行初始化,对STM32控制器的GPIO端口进行配置并初始化调试串口USART、气体传感器、温湿度传感器和以太网接口,之后等待键盘输入参数或使用默认参数进入采集、显示和以太网传输循环过程,根据不同功能标志位的变化进行相应模块的处理。

图5 主程序流程

由于篇幅所限,只列出采用STM32的ADC1执行AD转换的操作步骤。

首先,开启PA口时钟和ADC1时钟,设置PA1为模拟输入。用RCC_APB2PeriphClockCmd函数使能GPIOA和ADC时钟,使用GPIO_Init函数设置PA1的输入方式。

然后,复位ADC1,设置ADC1分频因子。开启ADC1时钟后,通过ADC_DeInit(ADC1)函数复位ADC1,将ADC1的全部寄存器重设为缺省值后,用RCC_CFGR设置ADC1的分频因子。

之后,初始化ADC1参数,设置ADC1的工作模式及规则序列等相关信息。其程序代码如下:

ADC_InitTypeDef ADC_InitStructure;

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式为独立模式

ADC_InitStructure.ADC_ScanConvMode=DISABLE;//ADC单通道模式

ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//ADC单次转换模式

ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件触发启动

ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//ADC数据右对齐

ADC_InitStructure.ADC_NbrOfChannel=1;//顺序进行规则转换的ADC通道数目为1

ADC_Init(ADC1,&ADC_InitStructure);//根据指定的参数初始化外设ADC1

此后,使能ADC1并校准。设置完ADC1参数后必须使能AD转换器,执行复位校准和AD校准,其程序代码为:

ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1

ADC_ResetCalibration(ADC1);//执行复位校准

ADC_StartCalibration(ADC1);//开始指定ADC1的校准状态

最后,读取ADC值。软件开启ADC转换程序代码如下:

ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能ADC1软件转换启动功能

ADC_GetConversionValue(ADC1);//获取ADC转换结果数据

while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待转换结束

4 结束语

经过测试,基于STM32的智能气体探测器能够准确采集并监控环境气体浓度,并通过以太网准确地与监控中心进行双向通信。该探测器工作稳定可靠、结构简单、成本低廉,并且具有通用性,更换不同的三端气体传感器即可实现对不同气体浓度的探测,也可以将多种气体探测器通过以太网接口连接实现多气体多区域气体的探测,基本实现了气体探测器采集的通用性和网络化。利用STM32作为探测器的控制器,充分发挥了其内核优点,温湿度传感器对气体浓度进行补偿和线性化处理后,气体探测器有了更高的准确性、稳定性和快速响应性。

[1] 王天杰,原明亭.基于C8051F020的以太网远程监控系统的设计[J].化工自动化及仪表,2007,34(5):36~39.

[2] 徐大诏,李正明,刘军.基于STM32的便携式矿用多气体检测仪的设计[J].仪表技术与传感器,2014,(3):14~16.

[3] 唐密媛,张根宝.基于ARM的智能料位监控系统设计[J].化工自动化及仪表,2009,36(3):54~56.

[4] 权洁,熊书敏,孙晓东,等.基于MSP430的便携式多参数气体检测仪[J].化工自动化及仪表,2014,41(4):388~421.

[5] 赵科,李常贤,张彤.基于STM32的无线温湿度控制器[J].化工自动化及仪表,2015,42(6):629~633.

[6] 杨明极,祝庆峰,李硕.基于STM32的嵌入式网络控制器设计[J].测控技术,2014,33(10):93~96.

[7] 丁力,宋志平,徐萌萌,等.基于STM32的嵌入式测控系统设计[J].中南大学学报(自然科学版),2013,44(z1):260~265.

[8] 周兆丰,侯向锋,鲁池梅,等.μC/OS-II在STM32F103上移植的新方法[J].湖北师范学院学报(自然科学版),2013,33(2):69~73.

猜你喜欢

以太网温湿度探测器
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于AT89C51的数字型蚕用温湿度计的设计
第二章 探测器有反应
EN菌的引力波探测器
基于DSP的多路温湿度监测系统
第二章 探测器有反应
基于温湿度控制的天气预测装置
谈实时以太网EtherCAT技术在变电站自动化中的应用
蒸发冷却温湿度独立控制空调系统的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用