基于嵌入式的智能火灾监测报警系统的设计
摘要:监测是预防火灾发生的重要手段,其关键在于对火情判断的实时性和准确性。因此基于嵌入式技术研究设计了一套智能火灾监测系统。该系统借助嵌入式处理器和Linux操作系统,具有良好的实时性、强大的数据运算能力和丰富的控制接口。系统利用红外探测技术实现对火情的监测,并采用了图像处理技术和无线通信技术实现了主动报警。实验结果表明,系统可以有效的监测到火情发生,承担主动报警的任务。
本文引用地址://m.amcfsurvey.com/article/201609/304489.htm随着我国城镇化建设进程的加快,城镇的火灾隐患越来越大,每年我国都因为火灾而造成巨大的经济损失。尽管目前我国大多数楼宇都安装了火灾报警系统和消防系统,但随着火灾隐患复杂性的增加在诸如:火情的智能判断,智能报警等方面提出了要求。本课题基于ARM11平台研究了一种智能火灾监测报警系统,可以为用户提供实时火灾现场情况以避免火情误报,并为消防部门进行灭火工作提供现场环境参考。
1 系统架构
系统的总体设计框架如图1所示,系统以ARM11核心处理器,采用了GPIO扩展口控制红外火灾传感器实时读取现场信息,通过USB接口控制USB摄像头获取现场实时视频和采集图片,选用TTL串口控制GPRS模块实现被采集图片的发送。
![基于嵌入式的智能火灾监测报警系统的设计](http://m.amcfsurvey.com/editerupload/fetch/20160912/304489_1_0.jpg)
1.1 基于S3C6410的系统主控部分
S3C6410处理器是由三星电子公司出产的ARM11系列16/32位RISC微处理器,工作频率为533 MHz/667 MHz。具有成本低、性能高、功耗低等特点。它包括许多强大的硬件加速器,像视频处理、音频处理等;集成多格式编码器,支持NTSC和PAL模式的电视信号输出。它包含JPEG解码器,支持YCbCr 4:2:2格式编码,支持YCbCr 4:4:4/4:2:2,4:2:0/4:1:1或灰色格式解码。在硬件外设方面,S3C6410提供了USB主控制器,480Mbps高速USB OTG接口,187个可扩展GPIO接口,4通道UART等。
系统采用了基于S3C6410的OK6410开发平台作为验证平台,OK6410平台集成了多种接口,如:GPIO、UART、USB等,可以挂载多种不同接口的传感器,符合本系统的设计要求。
对于嵌入式产品的设计,操作系统的选择至关重要。目前,在嵌入式平台上有多种嵌入式操作系统,如:VxWorks、WindowsCE、μC/OS-Ⅱ、Linux等。根据操作系统选择的几条原则,我们选择嵌入式Linux操作系统,它具有如下优点:
1)源代码公开,可以按开发者意愿进行修改。
2)遵从GPL,无须为每例应用交纳许可证费。
3)有大量的开发工具,方便设计者进行开发。
4)具有很高的稳定性和执行效率。
5)支持多种处理器和开发平台。
我们将Linux3.0.1内核移植到验证平台上,利用搭建好的平台进行了如下工作:
1)提供GPIO接口,挂载火灾传感器。
2)通过USB接口连接摄像头采集视频帧。
3)移植libjpeg库到Linux内核中,利用移植好的libjpeg库将视频帧转成jpeg图片。
4)提供TTL串口,控制GSM/GPRS模块发送彩信。
1.2 火情信息的红外采集
红外火灾传感器模块是通过GPIO口与开发板进行通信的。为此我们开发了GPIO的驱动程序。在Linux3.0.1核中,提供了gpio_get_val ue()、gpio_set_value()、gpio_request()等APl对GPIO设备的寄存器进行读取。我们利用这些API编写了file_operations结构体,提供了对GPIO设备文件进行打开、关闭和读写操作的read()、write()、open()、release()函数。在进入Linux系统后,使用insmod命令将驱动加载到内核中,并使用mknod命令创建供读写操作的设备节点。
系统采用红外检测探头和LM393双电压比较器集成电路组成红外火灾检测模块,具有检测范围广,响应速度快,灵敏度可调节,输出量可以直接接入到I/O口中等特点。模块的原理图如图2所示。常态时,传感器输出高电平,当传感器感应到热源时,模块输出引脚输出低电平,通过GPIO口输入到S3C6410中。
![基于嵌入式的智能火灾监测报警系统的设计](http://m.amcfsurvey.com/editerupload/fetch/20160912/304489_1_1.jpg)
1.3 图像信息的采集与压缩
系统采用符合PAL制式的USB摄像头。该摄像头支持YUV422视频格输出,成本低廉。Linux在内核中提供了关于视频设备的API接口Video 4Linux2(简称V4L2),它是Linux下视频驱动的标准框架,从linux2.6版本后开始加入Linux内核。可以实现对摄像头的识别和支持,简化设计开发的流程。
![基于嵌入式的智能火灾监测报警系统的设计](http://m.amcfsurvey.com/editerupload/fetch/20160912/304489_1_2.jpg)
系统判断火灾发生后会启动摄像头,摄像头采集图像流程如图3所示。系统通过使用V4L2编程框架中提供的函数获取摄像头输出视频格式后,调用控制函数设置视频设备的视频数据格式,例如设置视频图像数据的长、宽,图像格式等。设置视频图像格式成功后,系统需要为获取的视频数据申请分配视频缓冲区。当采集视频帧数达到要求数目后,程序会将缓冲区的一帧数据移至内存中,并将YUV数据按照式(1)、式(2)和式(3)啭换成RGB格式。
R=(298×Y+409×(V-128)+128)/256 (1)
G=(298xY-100(U-128)-208x(V-128)+128)/256 (2)
B=(298xY+516x(U-128)+128)/256 (3)
转换完成后,我们利用libjpeg库和得到的现场图像的数据信息生出我们需要的jpeg格式的图片。
1.4 图像信息的发送
GSM/GPRS模块在系统中负责将采集到的现场图像以彩信形式发送到监测者的手机上。本设计选用了晨讯科技公司的SIM900GSM/GPRS模块。模块内封装了彩信协议,可以自动将传入的图片封装成彩信。
当摄像头采集图像完成后,系统会自动启动发送彩信的程序,通过简单的AT指令控制模块进行发送。主要AT指令如下:
1)a+cmmsinit初始化GSM/GPRS模块的彩信功能。
2)at+sapbr=3,1,“contype”,“gprs”设置网络方式。
3)at+sapbr=3,1,“apn”,“cmwap”设置接入点为cmwap。
评论