车内可燃气体监测报警系统设计
2018-01-16吴增,齐虹,陈冲
吴 增,齐 虹,陈 冲
(福州大学电气工程与自动化学院,福建 福州 350116)
0 引言
汽油、酒精等易燃性液体在日常的生活、生产中得到了广泛的使用,但易燃性液体的恶意使用不仅会造成巨大的财物损失,而且会危害民众的生命[1]. 近年来,犯罪分子利用易燃性液体引发公交车着火的事件屡次发生. 城市公交车的乘客往往较多,而车上没有配套相应的危险品检测设备,存在较大的安全隐患.
由于公交车上下车的乘客往往人多且杂,即使有乘客携带易燃危险品,也很难发现. 为了使驾驶员能尽早察觉乘客携带的危险品并及时采取有效措施,为公交车配备危险品检测设备是必要的. 常见的大型检测设备因成本、管理和检测耗时等原因不适合在公交车上安装. 因此,研究一种能实时监测可燃气体浓度变化的检测设备是很有必要的. 此外,要求设备应具有可靠性高、兼容性好、扩展性强的特点,同时要朝微型化、智能化发展. 本研究介绍一种能满足上述要求的可燃气体监测报警系统,可实现对公交车内可燃气体浓度实时检测. 该系统能在乘客携带易燃品上车时或者刚打开容器时,就检测到周围环境可燃气体浓度超标,然后提醒驾驶员采取相关措施,预防危险发生.
1 系统总体设计方案
可燃气体监测报警系统的作用就是要能及时发现工作环境中易燃气体浓度的异常变化,并发出警报. 同时,要求系统尽可能减少误报警和漏报警. 其功能需求分别有:能灵敏地感应工作环境的可燃气体浓度; 采样数据能本地存储; 报警方式为声光报警; 无线传输距离达15 m,能实现单点对多点的数据通讯.
由功能需求知,可燃气体监测报警系统设计由以下几部分组成:可燃气体浓度信号采集电路、SDHC卡存储电路、报警信号发射与接收电路、声光报警电路. 可燃气体浓度检测传感器的电压信号经A/D转换后,由单片机获取相应数字信号,并利用阈值法结合持续时间法判断是否产生报警信号. 一旦产生报警信号,通过无线射频收发器发送信息. 监控设备接收到报警信号,立刻触发声光报警,警示驾驶员可能发生突发情况.
2 系统硬件设计
图1 系统硬件模块图Fig.1 System hardware module diagram
本系统包括可燃气体浓度检测设备和监控报警设备. 可燃气体浓度检测设备一般有多个,依据公交车的长度及车内空间大小配备2~5个,本系统中仅在前后门空旷处各配备一个. 每个可燃气体浓度检测设备包括STC12C5A60S2单片机、配备集气风扇的可燃气体浓度检测传感器、SDHC卡、无线射频收发器及相应电路等. 监控报警设备则包括声光报警电路、无线射频收发器等,一般安装在车内仪表板旁,方便驾驶员观察. 图1所示为系统硬件模块图.
2.1 单片机STC12C5A60S2
系统以单片机作为核心来设计系统的检测控制器. 根据对系统功能需求分析,要求系统使用的单片机应具备运行速度快、自带10位高速A/D、驱动能力强、功耗低等特点. 在满足要求条件的基础上选择开发简单、性价比高、增强型8051单片机STC12C5A60S2. 该型号单片机接口资源丰富、功能强大,有利于未来对系统进行功能扩展[2-3].
2.2 可燃气体传感器
通过对近年来公交车纵火案的分析可知,不法分子绝大多数利用汽油作案,而生活中汽油、柴油的获取方式也相对容易. 因此,乘客乘坐公交车时携带此类危险品远比其他类别的危险品概率大得多. 针对汽油这类危险品,本设计中采用了重复性和稳定性均极为良好的半导体气敏传感器2M010. 该传感器在对油气、油气挥发气检测方面,具有灵敏度高、响应时间短、寿命长等优点,能够满足系统检测可燃气体浓度反应快、使用时间长的要求[4]. 2M010型可燃气体传感器连接在单片机P1.0口,利用单片机自带的A/D,将传感器测得的可燃气体浓度电压值转换成数字信号,并由单片机进行数据处理和存储.
2.3 SDHC卡
采样数据不仅可以在相关设备中直接使用,而且存储后可以做进一步分析. 因此,数据存储是可燃气体浓度检测系统的基本功能要求,以便能实时记录工作环境中的可燃气体浓度变化.
SDHC卡为遵从SD联盟发布的SD2.0系统规范的SD卡[5],本系统中采用了存储容量为8 G的金士顿SDHC卡. SDHC卡接口支持SPI和SD接口通信模式. 单片机可以通过相应指令选择SDHC卡通信模式. 在设计SDHC卡接口电路时,采用了SPI通信模式. 一方面本系统实时记录的数据量不大; 另一方面,SPI通信模式编程相对简单.
图2所示为SPI总线下SDHC卡模块与单片机连接原理图. 在设计硬件电路图时,需要注意SDHC卡与单片机的电平匹配问题. SDHC卡的工作电压为3.3 V,如果使用的CPU芯片工作电压为3.3 V,则无需进行电平转换; 本系统采用的是STC12C5A60S2芯片,其工作电压为5 V,故设计时采用一块电平转换芯片74LVC4245,防止单片机I/O输出5 V电压对SDHC卡造成毁坏[6].
2.4 nRF2401射频收发芯片
无线通信解决了必须在环境中布线的限制,降低设备安装难度,具有灵活的移动性. 因此,无线通信特别适合在公交车上使用. 系统采用了nRF2401射频收发芯片来实现设备间的通信.
图2 SDHC卡与单片机连接原理图Fig.2 Hardware circuit of SDHC card connected with the micro-controller
图3 nRF2401与单片机连接原理图Fig.3 Hardware circuit of nRF2401connected with the micro-controller
nRF2401模块与STC12C5A60S2连接原理如图3所示. 单片机与nRF2401通信采用4线制SPI总线. nRF2401芯片的工作电压允许范围为1.9~3.6 V,供电电压一旦超出3.6 V,将会烧毁整个模块. 因此,在设计过程中将由电源电路转换得到3.3 V电压. 除了电源VCC和接地端,其余引脚与单片机I/O口相连接时,利用电平转换芯片74LVC4245,实现不同逻辑电平之间的数据连接.
3 系统软件设计
3.1 信号处理
3.1.1 持续时间算法实现有限冲激响应滤波器
为了过滤信号在极短时间内大幅度地上升引起误报警的干扰,系统采用持续时间算法. 持续时间算法,即检测可燃气体浓度信号的持续特征. 该算法需要事先确定一个报警阈值,用于考察可燃气体浓度信号超过该报警阈值的持续时间. 由于有限冲激响应滤波器(FIR)具备这种特性,因此采用数字滤波器实现持续时间算法. 根据数字信号处理相关知识可知,一个一维有限冲激响应的系统,它的冲激响应h(n)为一个有限长序列[7-8]. 冲激响应长度设为N,输入信号设为x(n),那么一个一维FIR滤波器的输出结果y(n)将表示成:
图4 FIR滤波器模拟框图Fig.4 Block diagram of FIR filter
图4为式(1)实现的模拟框图,图中z-1为延迟器,它表示延迟一个时间单位,即系统采样间隔时间; 三角形(▽)为系数乘法器. 通过式(1)可知,FIR滤波器输出y(n)其实可以看作输入信号x(n)的N个序列值分别乘以相应权系数h(n)之和.
由于持续时间算法只对超过报警阈值的信号进行处理,故在式(1)中增加报警阈值和单位阶跃函数,则有式(2).
式中:C为常数;w(n,i)为相应的权函数;si为报警阈值. 式(2)是偏值滤波算法的数学模型,其中u(.)为单位阶跃函数,它的存在确保了只有当信号超过报警阈值时,输出结果才会累加,而且累加的也只是信号超出报警阈值的部分. 因此,FIR滤波器输出结果y(n)的大小实际上对应着信号超出报警阈值的大小及持续时间.
实际情况中,可以令权函数w(n,i)=1,则式(2)以递推形式表示为:
由上式可知,只有当x(n)超过报警阈值si后,才会对y(n)进行连续累加,否则FIR滤波器输出结果为0.
3.1.2 分级阈值算法实现系统报警
图5 可燃气体浓度检测传感器2M010特性曲线Fig.5 Characteristic curves of combustible gas concentration detection sensor 2M010
持续时间算法的使用需要一个关键参数:报警阈值. 当传感器处于静止环境中,仅需使用“固定门限检测法”即可实现系统监测报警功能. 但由于公交车可能处于由堵塞导致高浓度尾气的公路上,或者车上有人抽烟,又或者经过加油站等区域. 这都会导致传感器工作环境中的可燃气体浓度上升,便极有可能发生误报警. 因此,系统中设计了分级式报警策略,即需要依据不同的情况,设置不同的报警阈值. 系统监测实现分级报警,这极大地减少了误报警率,也降低了漏报警率.
图5为可燃气体浓度检测传感器2M010的特性曲线,分级式报警阈值大小的设定便是依据图中电压与汽油浓度的对应关系. 系统设置1、2、3级警报,其中3级报警阈值对应于汽油浓度100×10-6(电压值约为1.5 V),2级报警阈值对应于汽油浓度250×10-6(电压值约为2.0 V),1级报警阈值对应于汽油浓度500×10-6(电压值约为2.5 V). 当3级警报响起时,若恰好是乘客上下车时,驾驶员须询问刚上车乘客是否携带易燃液体; 若在行车中,驾驶员可通过车载监控视频观察是否有人吸烟等,寻找报警源头,并判断是否采取停车疏散措施. 当1级警报响起时,驾驶员应立即靠边停车疏散乘客,做好随时救人救火的准备. 若情况安全,再去寻找高浓度的可燃气体源头.
3.2 系统主程序设计
可燃气体浓度监测报警系统软件设计分为两部分,一部分是检测设备主程序设计,主要包括可燃气体浓度采集的转换、存储和处理程序. 一旦程序判断可燃气体浓度超标,则调用无线传输程序发送报警信号. 另一部分是监控报警设备主程序设计,主要是接收采样数据和报警信号程序、实时显示可燃气体浓度值程序. 若是接收到报警信号,则立即调用声光报警程序. 图6所示为两部分程序流程图,系统各功能的软件实现都采用模块化结构,由主程序调用相应子程序实现各自功能.
图6 系统软件工作流程图Fig.6 Flowchart of software
3.3 nRF24L01无线收发模块设计
图7 nRF2401数据收发流程图Fig.7 Flowchart of receiving and sending data of nRF2401
nRF2401正确初始化是实现通信的关键. nRF2401芯片参数配置,即寄存器的设置有几个重要点要注意. 设置发送、接收地址寄存器时,只有接收地址与发送地址相同时,接收端才能收到数据; 必须设置自动应答,数据发送完成后将等待接收端应答信号,该设置能确保发送数据的有效性; 设置nRF2401工作于ShockBurstTM收发模式,使得系统的软件程序编写更简单,同时稳定性更好[9-10].
nRF2401初始化完成后,就可以开始发送数据或等待接收数据. 发送数据时,把待发送数据写入到nRF2401缓冲区中,然后设置其处于发送状态即可. 接收数据时,直接使nRF2401处于接收状态,由中断程序获取发送的数据. 数据的收发流程如图7所示.
3.4 数据存储软件设计
为了实现在PC机上能直接访问SDHC卡中存储的可燃气体浓度的数据,在单片机中引入最新的FAT32文件系统,即移植znFAT文件系统到单片机中.
3.4.1 SDHC卡的初始化和扇区读写操作
图8 SDHC卡扇区数据读写流程图Fig.8 Flowchart of accessing data from the sector of the SDHC card
图9 znFAT文件系统3层构架图Fig.9 Three layer architecture diagram of znFAT file system
SDHC卡从上电到实现卡内扇区读写操作的过程中,须有一个对SDHC卡初始化的阶段. 因此,SDHC卡的正确初始化是实现SDHC卡驱动的基础. 初始化的流程一般包括SDHC卡通讯模式的切换、工作电压的判定、SD卡版本的鉴别(SDHC、SD、MMC)、扇区选址方式的获取等操作. SDHC卡的初始化用到了CMD0、CMD8、ACMD41等命令[11].
SDHC卡初始化成功后,就可以开始扇区读写操作. 扇区读写是SDHC卡驱动中最基本的核心操作,单片机对SDHC卡存储或读取数据操作和各种文件管理操作,其本质就是扇区读写操作. 扇区默认大小为512 B. 对扇区操作时,只能是整个扇区读写,而不能对扇区中的某一字节进行读写操作. 图8为SDHC卡扇区数据读写流程图.
3.4.2 znFAT文件系统移植
znFAT是一种高效、完备且可移植性高的嵌入式FAT32文件系统解决方案. znFAT具备清晰的层次结构和良好的硬件平台独立性,图9是znFAT文件系统3层构架. 最顶层为应用层,对应于znFAT.h文件,该文件包含相关数据结构、宏定义和API函数声明. 用户可以直接调用一系列API函数进行文件读写等操作,而不必深入了解FAT32文件系统的协议和znFAT方案的内部结构. 中间层完整地实现了FAT32文件系统协议,对应于znFAT.c文件. 该文件是对znFAT.h文件中所有API函数的具体实现. 最底层在移植过程中必须处理:数据类型重定义、SDHC卡物理扇区读写驱动. 用户需要根据单片机的数据类型实现mytype.h文件中数据类型的修改; 根据单片机的资源对iospi.c文件进行修改,即实现硬件SPI接口或者模拟SPI 接口函数; 对deviceio.c文件进行修改,即实现SDHC卡初始化和物理扇区读写函数.
4 系统测试
系统设备在公交车内安装并进行多次测试. 运行系统后,分别携带未密封的装有汽油和柴油的容器经过检测设备,系统均能在1 s左右发现工作环境可燃气体浓度超标,并启动报警器; 若在可燃气体浓度传感器工作范围2~3 m间泼洒汽油,系统通过吸气风扇也能在3 s左右检测到可燃气体浓度骤升的变化,同时发出声光警报.
5 结论
可燃气体浓度监测报警系统实现了对公交车内的可燃气体浓度检测、存储、报警等功能. 其中针对检测环境多变等问题,采用了分级式报警策略,有效地降低了误报警和漏报警率. nRF2401射频收发模块极大地方便了检测设备和监控报警设备的通信. 通过分析SDHC卡存储的采样信息,对优化系统等方面都有极大帮助. 系统具有结构简单、可扩展性强、安全可靠、安装简便等特点,在客车车厢内监测可燃气体浓度方面具有良好的应用前景.
[1] 杨志舟. 易燃液体火灾成灾机制及危险性控制技术研究[D]. 天津:天津理工大学,2007.
[2] 陈桂友. 增强型8051单片机实用开发技术[M]. 北京:北京航空航天大学出版社,2010.
[3] 肖春华,何琼. 单片机接口技术与应用[M]. 北京:化学工业出版社,2015.
[4] 李华洋. 基于微控制器的客车火灾报警系统[J]. 现代电子技术,2015(6): 74-77.
[5] 李定川. 15类存储卡品种及特点介绍[J]. 数字与缩微影像,2008(2): 39-42.
[6] 左丽霞,邓芳芳,卢山,等. 基于DSP的高速数据采集系统设计与实现[J]. 电力系统保护与控制,2010, 38(13): 18-112.
[7] 刘顺兰,吴杰. 数字信号处理[M]. 西安:西安电子科技大学出版社, 2009.
[8] 周利清,苏菲,罗仁泽. 数字信号处理基础[M]. 3版. 北京:北京邮电大学出版社, 2012.
[9] 王国防. 基于nRF24E1的数据采集及无线传输系统的研究[D]. 石家庄:河北科技大学,2009.
[10] 朱嵘涛,徐爱钧,叶传涛,等. STC15单片机和nRF2401的无线门禁系统设计[J]. 单片机与嵌入式系统应用,2014(6): 57-60.
[11] 冯欣宇,夏路易. 基于STC89C52单片机的SDHC卡初始化操作[J]. 机械工程与自动化,2012(1): 65-66, 69.