基于STM32的分布式烟温探测器设计

2015-01-13 04:24薛严冰鞠艳杰
化工自动化及仪表 2015年7期
关键词:烟温收发器火险

赵 科 薛严冰 鞠艳杰

(大连交通大学电气信息学院,辽宁 大连 116028)

因工业现场环境复杂,电磁干扰较多,易燃易爆物品众多,故火险自动探测器越来越多地被使用。传统火险探测器主要有感温探测器、离子感烟探测器、光电感烟探测器、气体探测器、火焰探测器、图像探测器及声音探测器等类型,它们很难满足对各种火险的均衡探测[1]。另外,由于工业现场空间较大,需要多个探测器,传统多线制火险探测系统采用直通导线式控制,导线繁多,系统的可靠性较低。采用工业总线控制方式,以工业主机作为上级火险监控中心,研发分布式智能探测器将具有广泛的应用前景。CAN总线协议公开、成本低廉,具有很高的实时性能,便于实现工业现场的分布式控制[2]。笔者把光电感烟探测和感温探测相结合,经过分布在CAN总线上的STM32主控器进行适当的火险信号处理,使分布智能探测器能够对物质燃烧初期的阴燃火有较高的探测灵敏度。对于化工企业,现场环境更加复杂,有毒易燃易爆物品繁多,分布智能烟温探测器能够尽早、尽快判断火险,准确定位火险事故地点,及时报警,具有很高的经济价值和实用价值。

分布式烟温探测器的设计基于烟温复合探测,根据烟雾粒子对光线的吸收、散射原理和对环境温度采集,经火险探测算法处理后通过CAN总线自动输出相应的报警信号,系统的总体结构如图1所示。

图1 分布式烟温探测器总体设计方案

通过采集前端电路(由红外发光管和光电接收管构成)、I/V变换、前置放大和检波电路采集烟雾浓度信号,通过DS18B20温度传感器采集温度信号,STM32主控器对信号进行模数转换和采样,并运行火险探测算法,产生正常或报警信号,通过CAN总线将分散的探测器信号传输到远程主控中心,实时监控多个地方是否存在火险。RS232接口用于对分布式探测器进行本地化参数设置和程序调试。输入输出接口用于实现本地的模式输入、复位及输出显示等功能。

2 硬件电路

2.1 烟雾信号采集电路

2.1.1发光驱动电路

发光驱动电路如图2所示,STM32主控器发出PWM_LED方波信号,经过74HCT08接口电路提高带负载能力,驱动场效应管栅极电压,控制红外发光管DS1的通断。根据烟雾粒子对光线的吸收和散射原理,烟雾浓度的变化会转换为发光管光线强度的变化。当场效应管栅极电压为高电平时,MOS管导通,发光管被点亮。为了提高探测器对水雾的抗干扰能力,发光管选用IR333C红外管,工作于红外光谱区对水雾具有很弱的吸收能力。

图2 发光驱动电路

2.1.2光电接收电路

光电接收电路如图3所示,通过光电二极管D3接收光线,得到较弱的电流信号,由运算放大器实现I/V变换。光电二极管选用PD438B,工作在两端无偏压的光伏模式,能够较精确地线性工作,暗电流小[3]。PD438B接受光照时,产生一个与光强成正比的电流ID,根据运算放大器“虚短”和“虚断”特性,I/V变换后的输出电压V1为:

V1=2.5+IDR35

(1)

图3 光电接收电路

由于要求光电接收电路能够响应100nA的光电流,I/V变换选用ADI公司低噪声、超高速电压反馈型放大器ADA4817-1。ADA4817-1放大器具有最大2pA的低偏置电流、低至2mV的失调电压及高达1 000MHz的-3dB带宽等优点,非常适合光电二极管放大和数据采集前端。根据式(1),I/V变换电路的输出电压取决于反馈电阻R35的大小,但R35取值过大由于热噪声会使运放产生自激振荡,故需要引入校正网络C52。该网络能够稳定反馈环路,减小噪声带宽,提高输出信噪比[4],上限截止频率为:

2.1.3前置放大电路

由于I/V变换后的电压信号V1不能直接驱动STM32主控器内部的ADC采样,故需要设计前置放大电路,如图4所示。

图4 前置放大电路

2.1.4检波输出电路

在STM32主控器PWM_LED控制信号的作用下,光电接收电路接收的是频率较高的交流信号,而STM32主控器最终关注的是前置放大电路输出电压V2的峰值,因此在ADC采样前需进行信号滤波和检波处理。由C57和R40组成高通滤波,滤掉前置放大电路输出电压V2的直流成分。由高速电子开关74HCT4066、C58、R41和一阶有源滤波器构成同步检波输出电路,如图5所示。由STM32主控器产生的PWM_LED载波信号控制电子开关通断,使ADC采集到的信号正好是红外发光管工作时的有效信号,实现信号检波。由运放TSV358、R36、R37和C56构成一阶低通网络,其通带电压放大倍数为101,上限截止频率约为16Hz,使前置放大电路输出信号理想,提高输出信噪比。由R39、C59组成上限截止频率约为1.6Hz的末级平滑滤波器,进一步完善检波输出电路的电压信号V3,最后由STM32主控器片内ADC采集V3进行模数转换。

图5 检波输出电路

2.2 温度信号采集电路

温度传感器采用美国DALLAS半导体公司的DS18B20,该传感器与STM32主控器接口电路简单,无须任何外部元件。DS18B20使用单总线协议,直接将环境温度转换成数字信号串行输出,可同时传送CRC校验码,具有极强的抗干扰纠错能力。DS18B20具有多点组网功能,可实现多点测温。该传感器分辨率可编程为9~12位,实现高精度测温。在12位分辨率时,最多在750ms内实现温度值到数字量的转换,可分辨的温度为0.062 5℃。

2.3 STM32与RS232收发接口电路

采用低功耗控制器STM32F207作为任务控制和数据处理核心[5]。STM32F207是一款基于ARM CortexTM-M3内核的32位标准RISC处理器,硬件资源丰富,适合功能扩展。因篇幅所限,没有介绍STM32主控器最小系统、外部看门狗电路、键盘输入、显示输出及蜂鸣器输出等接口电路,只叙述STM32与RS232收发接口电路。

RS232接口收发器采用带隔离电源的ADM3251器件,同时对串口收发进行了共模保护处理,使接口电路抗干扰能力强,数据传输可靠,适合在恶劣工业现场环境下工作。由于STM32主控器需3.3V供电,而为了使用ADM3251内部自带的隔离电源,收发器必须5V供电,故使用了74HCT08与门作为接口电路,实现STM32主控器与RS232收发器的电平匹配。

2.4 STM32与CAN收发接口电路

STM32主控器内部自带CAN控制器SJA1000,与CAN收发器的接口电路如图6所示。

图6 CAN收发接口电路

该接口电路具有较高的抗干扰能力,完全适合工业现场恶劣环境下的信息可靠传输。CAN控制器SJA1000的TX端和RX端通过高速光耦合器HCPL-0661与CAN收发器TJA1050相连实现电气隔离,采用小功率电源隔离模块B0305T为收发器接口电路提供隔离电源,使CAN节点具有更好的EMC性能。CAN收发器增加了通信距离,具有1Mbit/s的高速通信,实现差分电压输出,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰,实现热防护。另外,在CAN总线接口上增加共模和差模防护器件,增强CAN节点的抗干扰能力,并接有120Ω终端电阻,实现阻抗匹配。

3 软件部分

分布式烟温探测器的软件部分主要包括系统主程序、键盘扫描子程序、液晶显示子程序、蜂鸣器输出子程序、RS232数据收发子程序及CAN数据收发子程序等。软件主程序流程如图7所示。

图7 分布式烟温探测器软件主程序流程

主程序首先进行系统初始化,配置STM32主控器的GPIO端口,初始化CAN控制器和片内ADC,对火险报警相关配置参数进行校验,之后进入无限循环,根据不同功能标志位的变化进行相应模块的处理。键盘扫描子程序完成系统复位和自检功能。液晶显示子程序用来显示环境温度及烟雾浓度等信息。蜂鸣器输出子程序驱动蜂鸣器实现报警功能。RS232数据收发子程序完成探测器数据配置和程序调试功能。CAN数据收发子程序实现远程CAN数据收发,可以发送分布式探测器的状态、烟雾和温度信号到远程控制中心,也可以接收远程控制中心对分布式探测器的自检请求及参数配置等信息,实现远程控制。

限于篇幅,只列出关于CAN控制器初始化的部分代码:

unsigned char CAN_Mode_Init(unsigned char tsjw,unsigned char tbs2,unsigned char tbs1,unsigned short int brp,unsigned char mode) //CAN控制器初始化

{……

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);// PORTB时钟使能

RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);// CAN1时钟使能

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//推挽复用

GPIO_Init(GPIOB, &GPIO_InitStructure); //IO初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //输入带上拉电阻

GPIO_Init(GPIOB, &GPIO_InitStructure); //IO初始化

//CAN单元设置

CAN_InitStructure.CAN_TTCM=DISABLE;//非时间触发通信模式

CAN_InitStructure.CAN_ABOM=DISABLE;//软件自动离线管理

CAN_InitStructure.CAN_AWUM=DISABLE; //通过软件唤醒睡眠模式

CAN_InitStructure.CAN_NART=ENABLE; //禁止报文自动传送

CAN_InitStructure.CAN_RFLM=DISABLE;//新的覆盖旧的,报文不锁定

CAN_InitStructure.CAN_TXFP=DISABLE;//由报文标识符决定优先级

CAN_InitStructure.CAN_Mode= mode; //模式设置:0:普通;1:回环

//设置波特率

CAN_InitStructure.CAN_SJW=tsjw;//tsjw+1个时间单位为重新同步跳跃宽度

CAN_InitStructure.CAN_BS1=tbs1; //Tbs1=tbs1+1个时间单位

CAN_InitStructure.CAN_BS2=tbs2; //Tbs2=tbs2+1个时间单位

CAN_InitStructure.CAN_Prescaler=brp; // brp+1分频系数

CAN_Init(CAN1, &CAN_InitStructure); // CAN1初始化

CAN_FilterInitStructure.CAN_FilterNumber=0; //过滤器0

……

CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //激活过滤器0

CAN_FilterInit(&CAN_FilterInitStructure); //初始化滤波器0

}

4 结束语

经过测试,笔者设计的基于STM32的分布式烟温探测器能够准确地探测烟雾浓度和温度信号,工作稳定可靠、结构简单、成本低廉。另外,STM32主控器硬件资源丰富、功能强大,便于后期进行一系列的功能扩展,适合于恶劣工业现场环境的火险探测。本设计基本实现数字化,达到低功耗要求,实现分布式智能监测,并满足中央集中控制的要求。

[1] 王殊,窦征,王际锦.光电烟温复合探测器[J].测控技术,1998,17(2):24~25.

[2] 来清民.手把手教你学CAN总线[M].北京:北京航空航天大学出版社,2010.

[3] 王立刚,张殿元.低噪声光电检测电路的研究与设计[J].电测与仪表,2007,44(8):63~66.

[4] 劳五一,劳佳.模拟电子电路分析、设计与仿真[M].北京:清华大学出版社,2007.

[5] 董宝玉,薛严冰,马驰,等.基于AD9854与STM32的频率特性测试仪设计[J].化工自动化及仪表,2014,41(6):655~659.

猜你喜欢
烟温收发器火险
驻马店市高森林火险天气气候特征分析
光纤收发器故障排除经验谈
600MW超临界机组并网后喷氨快速投入方法
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
锅炉汽温、烟温偏低原因分析及处理
防火迟到
10种国内森林火险计算方法的相似性研究
锅炉特长非冷式烟温探针运行故障处理
光纤收发器常见故障原因