赵 科 杨照中 鞠艳杰
(1.大连交通大学电气信息学院;2.人工智能四川省重点实验室;3.中国人民解放军63981部队)
基于STM32的分布式多参数监测仪
赵 科1,2杨照中3鞠艳杰1
(1.大连交通大学电气信息学院;2.人工智能四川省重点实验室;3.中国人民解放军63981部队)
采用STM32主控器采集并处理数据,设计制作分布式多参数监测仪,由相关传感器检测温湿度、烟雾浓度和气体浓度。分布式多参数监测仪设有CAN接口和无线接口,可实现多监测仪组网,实现数据远程传输和监控。该监测仪具有精度高、响应快及稳定性好等优点,并能通过CAN网络或无线网络进行可靠的数据传输。
多参数监测仪 STM32主控器 数据无线传输 电路
化工企业现场环境复杂,普遍存在有毒有害和易燃气体,另外化工生产现场环境也需要合适的温湿度,因此对化工企业环境的一些参数进行监测和控制显得尤为重要[1]。化工企业工作现场面积较大,而传统环境监测系统多由人工操控,并且监测范围仅限于几个点和工作面,监测频率也较低,难以保证所测数据的准确性和时效性,难以对环境要素进行全时段和全方位的动态监测[2]。
目前,国内外对环境监测的研究取得了一定成果,但存在只具备个别的监测、监测参数单一、数据采集传输速度慢及智能化程度低等缺陷[3]。现场总线控制克服了传统的多点直通式布线控制的一些缺点,使布线具有简洁、维修方便、排错容易及便于管理等优点[4]。对于有毒有害、危险或不宜布线的工作现场,可以通过无线模块对生产现场参数进行采集、记录和控制,以保证生产过程的安全可靠、产品质量也能有效提高[5]。温湿度对各种传感器的精度也有较大影响,通过采集工业现场环境温湿度对其他传感器进行补偿和线性化处理,来提高监测仪的精度[6]。因此,需要设计智能化多点多参数环境监测设备。
分布式多参数监测仪通过工业现场总线构造网络控制,实现集中管理和分布监测,可实现多类型参数的采集组网和多点组网,而且能够远程接收监控中心实现对大量的多参数监测仪进行管理的功能,并且能够对本地监测仪进行调试和配置。在需要更换监测环境参数时,只需更换或增减监测仪的相应传感器,监测仪就能自动识别并进行配置,工作人员仅需进行简单的调零和参数设定,不需要更改硬件电路和嵌入式软件,从而最大程度地节约了开发成本和时间[7,8]。
分布式多参数监测仪采用高性能的STM32主控器,多种传感器,无线通信和CAN总线,存储和显示,以及输出电路构成系统的硬件电路(图1),实现多参数采集,多点采集,便于组网,方便分布式控制。利用温湿度传感器采集环境温湿度,并对其他传感器进行温湿度补偿,采集烟雾浓度和一些气体浓度并进行调理,送至STM32控制器的A/D转换器实现模数转换,通过模块化编程采用灵活的控制算法控制输出。通过状态指示电路和报警电路输出控制器的工况和报警情况;以太网和RS232串口可以对监测仪进行参数设置、程序调试或作为功能扩展接口。通过CAN总线和无线通信模块实现远程主机和从机的通信,实现多地多参数的从机分布控制和主机集中控制相结合。
图1 分布式多参数监测仪组成框图
采用STM32作为监测仪的主控器,充分发挥其内核优势,并方便后期功能扩展和相近传感器通用驱动,运行速度快,并具有较高的准确性和稳定性。
2.1 最小系统
主控制器采用CortexTM-M3内核架构的低功耗高性能32位STM32F207ZGT6器件,内置SPI、CAN、ETH、FSMC、I2C、USB及RS232等通信接口,内置512KByte只读存储器和64KByte静态随机存储器,含有多个计数器/定时器、A/D和D/A转换器,含多个可配置复用的I/O端口,完全满足设计要求以及后期的扩展和传感器互换要求。
主控制器的典型工作电压3.3V,电源模块提供稳定的5.0V直流电压,并采用线性模块转换为3.3V供电,电源电路配置有多个保护器件,使电源供电稳定安全。控制器采用8.000MHz晶振提供系统时钟,32.768kHz晶振提供RTC实时时钟。为防止程序“跑飞”或系统掉电等意外情况,主控器外加了可手动复位和STWD100“看门狗”自动复位电路,提高了系统的稳定性和可靠性。
2.2 信号采集电路
2.2.1 温湿度信号采集电路
采用响应快、功耗低且可靠性高的SHT75传感器进行温湿度信号采集,该传感器采用二线串口与主控制器进行通信,接口电路简单可靠,DATA双向串行数据端接10kΩ上拉电阻,在SCK串行通信时钟上升沿时采集双向串行数据DATA信号,在SCK时钟下降沿之后DATA信号可以改变状态。传感器信号传输过程为:传输启动、命令发送、数据测量和休眠。SHT75集成了温湿度敏感元件、A/D转换电路、信号处理电路、校准存储器、循环冗余校验及串行接口等电路,方便利用STM32的I2C通信接口进行数据通信。SHT75的工作电压3.3V,平均工作电流28μA,湿度测量精度±1.8%RH,温度测量精度达±0.3℃,温度测量范围-40.0~123.8℃、分辨率可达14位,能够满足工业现场要求[9]。
2.2.2 气体信号采集电路
待测气体浓度正比于其电化学反应所产生的电流,故可通过测量电流确定气体浓度。选用高精度、低温漂且高增益的运放AD8574设计多级前置信号调理电路,实现I/V变换并放大输出电压信号,送至主控器的A/D转换接口实现气体的信号采集。为提高信噪比,各级放大电路均使用电容滤除高频干扰。传感器采用稳定的3.3V供电,并根据温湿度传感器采集的环境温湿度信号,采用最小二乘法对气体浓度进行线性化处理补偿来提高气体传感器采集信号的精度[10]。
2.2.3 烟雾信号采集电路
通过主控器控制红外发光管发光,而烟雾粒子对光线进行吸收和散射,故可以将烟雾信号的变化转换为接收到的光线强度变化,实现光/电变化。选用低噪声超高速型放大器ADA4817-1实现I/V变换,最终将烟雾的变化反映到输出电压的变化。由于光电接收电路响应的光电流较小,需要多级放大电路,并设计前置各级高通滤波,滤掉各级直流成分,末级采用约为1.6Hz的平滑滤波器,完善检波输出电路的电压信号,最后送至主控器片内A/D进行模数转换[11]。
2.3 通信接口电路
STM32内置以太网模块支持IEEE802.3协议的MII和RMII接口,与DP83848IVV以太网收发器接口简单,配置方便。收发器DP83848IVV的输出端通过HX1198NL网络隔离变压器实现信号传输、杂波抑制、阻抗匹配及高电压隔离等,提高信息的安全性。
STM32控制器USART接口与ADM3251收发器接口电路简单,内置隔离电源,同时对收发进行了共模和差模保护,提高接口抗干扰性能。使用超级终端可以对程序进行监控与调试下载。
无线模块NRF24L01通过SPI接口与STM32控制器通信,配置方便,传输速度最高可达18MHz,接口电路如图2所示。该无线模块采用2.4G的ISM频段,GFSK调制,内置CRC检错机制,可控制点对多点通信,可进行自动应答设置,确保数据传输可靠。
图2 SPI接口电路
SJA1000控制器内置于STM32主控器,与CAN收发器ADM3053接口电路简单,并有很高的抗干扰能力,完全满足恶劣工业现场下的信息可靠传输。SJA1000控制器的TX端和RX端与ADM3053收发器电气隔离,并提供隔离电源,提高了CAN节点的EMC性能,接有120Ω终端电阻,防止信号反射。
2.4 人机接口电路
人机接口电路包括状态指示电路、键盘输入电路、报警电路、驱动电路、显示电路及存储电路等。
通过LED灯指示监测仪工况,可以指示电源、无线通信、串口收发、系统运行正常与否及信号超限等。通过SN74ABT245BPW总线收发器提高驱动能力,实现控制器GPIO驱动LED指示灯。
采用薄膜开关键盘电路进行数据输入,实现人机对话。主控制器通过GPIO识别各按键码并执行相应的操作。
报警电路用于监测仪错误报警、气体浓度和温湿度超上下限报警及自动解除报警等功能。
驱动电路通过STM32控制器输出PWM信号,驱动报警设备,并进行适当的应急处理,如打开排风扇或启动给氧设备。
显示电路选用TFT-LCD屏,ILI9325显示屏色彩控制器,自带触摸功能控制器TH2046,使用16位并行数据接口。通过STM32的FSMC接口与显示屏接线端相连,FSMC接口可灵活配置,显示监测仪当前信息,如气体浓度、烟雾浓度、温湿度及采集时间等信息,方便一屏多显。
由于监测仪所用传感器较多,采集数据较多,程序量较大,需要进行存储器扩展。通过STM32的FSMC接口进行外部存储器扩展,方便嵌入式系统移植、存放启动代码等[12,13],FSMC接口电路如图3所示。通过I2C总线扩展了E2PROM存储器对一些设备地址进行记录。
图3 FSMC接口电路
在Keil μVision4环境下利用STM32的固件库对监测仪系统程序进行模块化编程,系统程序(图4)主要包括系统初始化,多参数信号采集、处理、报警,驱动输出、数据存储,以及显示、各通信接口驱动等程序[14,15]。
图4 系统主程序流程
系统主程序首先对主控器各外设初始化,包括GPIO端口配置,初始化时钟,以及USART、I2C、ETH、SPI、ADC初始化等,之后进行监测仪工作参数设置校验,驱动各传感器进行多参数数据采集,然后处理采集信息并存储显示,作出报警判断并输出相应驱动信号。使能CAN接口和无线收发模块,实现远程数据传输和监控,同时接收远程上位机的调试、参数配置等,实现远程监控。
由于篇幅所限,只列出通过STM32的FSMC初始化外部SRAM的步骤。
首先,使能FSMC时钟,并配置FSMC相关的IO及其时钟使能,程序代码如下:
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);//使能FSMC时钟
GPIO_InitStructure.GPIO_Pin=0xFF33;//PORTD复用推挽输出,其他端口复用程序类同,略
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);
readWriteTiming.FSMC_AddressSetupTime=0x00;//地址建立时间为1个HCLK
readWriteTiming.FSMC_AddressHoldTime=0x00;//地址保持时间模式A
readWriteTiming.FSMC_DataSetupTime=0x03;//数据保持时间为3个HCLK
然后,设置FSMC的BANK1区域3。此部分包括设置区域3的存储器的工作模式、位宽及读写时序等,程序代码如下:
readWriteTiming.FSMC_AccessMode=FSMC_AccessMode_A;//模式A
FSMC_NSInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;//存储器数据16bit
FSMC_NSInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable;//存储器写使能
FSMC_NSInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Disable;//读写使用相同时序
FSMC_NORSRAMInit(&FSMC_NSInitStructure);//初始化FSMC配置
最后,使能BANK1区域3,程序代码如下:
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3,ENABLE);//使能BANK3
经过测试,基于STM32的分布式多参数监测仪能够准确采集多种信号参数,通过无线收发模块或CAN总线实时准确地与监控中心进行远程数据通信。该监测仪具有稳定性高、结构简单、成本低、互换性好和远程通信的特点,可以构成工业现场网络,实现环境的多参数多区域监测,具有较好的通用性。采用上位机集中管理控制的基于CAN总线接口和无线接口的分布式多参数智能监测仪将具有广泛的应用前景。
[1] 周美丽,刘生春.易燃易爆气体浓度智能监测仪的设计[J].延安大学学报(自然科学版),2011,30(1):39~42.
[2] 高肇凌,郭雪,陈艳东,等.无线传感器网络在水下防喷器控制系统中的应用[J].石油化工自动化,2016,52(2):25~28.
[3] 权洁,熊书敏,孙晓东,等.基于MSP430的便携式多参数气体检测仪[J].化工自动化及仪表,2015,42(4):388~390.
[4] 张河新,王晓辉,黄晓东.基于STM32和CAN总线的智能数据采集节点设计[J].化工自动化及仪表,2012,39(1):78~80.
[5] 王天杰,原明亭.基于C8051F020的以太网远程监控系统的设计[J].化工自动化及仪表,2007,34(5):36~39.
[6] 薛玲,孙曼,张志会,等.基于单片机AT89S51的温湿度控制仪[J].化工自动化及仪表,2010,37(7):66~69.
[7] 朱理望,肖文辉,彭理.一种便携式危险区域安全监测仪的研究与设计[J].重庆理工大学学报(自然科学版),2016,30(1):70~76.
[8] 郝丽丽,马小军,张娟.便携式多参数环境监测仪的设计[J].计算机测量与控制,2006,14(6):835~837.
[9] 赵科,李常贤,张彤.基于STM32的无线温湿度控制器[J].化工自动化及仪表,2015,42(6):629~633.
[10] 赵科,时维国,鞠艳杰.基于STM32控制器的气体探测器[J].化工自动化及仪表,2015,42(12):1310~1313.
[11] 赵科,薛严冰,鞠艳杰.基于STM32的分布式烟温探测器设计[J].化工自动化及仪表,2015,42(7):813~817.
[12] 王兰英.基于STM32嵌入式系统的uCGUI移植与实现[J].四川理工学院学报(自然科学版),2012,25(1):56~58.
[13] 丁力,宋志平,徐萌萌,等.基于STM32的嵌入式测控系统设计[J].中南大学学报(自然科学版),2013,44(z1):260~265.
[14] 赵振,郑金吾,贾梦之.嵌入式Linux下AD驱动程序的实现与应用[J].化工自动化及仪表,2013,40(10):1292~1295.
[15] 何泉,贺玉梅.嵌入式Linux下GPIO驱动程序的开发及应用[J].仪器仪表学报,2007,28(z4):271~273.
ZHAO Ke1,2, YANG Zhao-zhong3, JU Yan-jie1
(1.SchoolofElectronicsandInformationEngineering,DalianJiaotongUniversity;2.ArtificialIntelligenceKeyLaboratoryofSichuanProvince; 3.No. 63981TroopofPLA)
Taking STM32 controller as the data acquisition and processing center, a distributed multi-parameter monitor was designed, in which, the sensor employed can detect temperature and humidity and gas concentration and smoke concentration; and the monitor has CAN and wireless communication interface to constitute a multi-sensor network and to transfer and control data remotely. The result shows that, this monitor has high precision, fast response and good stability and it can achieve CAN and wireless data transmission.
multi-parameter monitor, STM32 controller, data wireless transmission, circuit
TH862
A
1000-3932(2017)02-0161-05
2016-04-20,
2016-11-10)
DesignofDistributedMulti-parameterMonitorBasedonSTM32
人工智能四川省重点实验室开放基金项目(2015RYJ06)。
赵科(1978-),讲师,从事智能网络控制的研究,zhaoke@djtu.edu.cn。