刘 林, 杨 晨, 丁 召
(贵州大学 电子信息学院,贵州 贵阳 550025)
随着我国城镇化建设进程的加快,城镇的火灾隐患越来越大,每年我国都因为火灾而造成巨大的经济损失[1]。尽管目前我国大多数楼宇都安装了火灾报警系统和消防系统,但随着火灾隐患复杂性的增加在诸如:火情的智能判断,智能报警等方面提出了要求[2]。本课题基于ARM11平台研究了一种智能火灾监测报警系统,可以为用户提供实时火灾现场情况以避免火情误报,并为消防部门进行灭火工作提供现场环境参考。
系统的总体设计框架如图1所示,系统以ARM 11核心处理器,采用了GPIO扩展口控制红外火灾传感器实时读取现场信息,通过USB接口控制USB摄像头获取现场实时视频和采集图片,选用TTL串口控制GPRS模块实现被采集图片的发送。
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 等[3]。
图1 系统设计框架Fig.1 The design framework of system
系统采用了基于S3C6410的OK6410开发平台作为验证平台,OK6410平台集成了多种接口,如:GPIO、UART、USB等,可以挂载多种不同接口的传感器,符合本系统的设计要求。
对于嵌入式产品的设计,操作系统的选择至关重要。目前,在嵌入式平台上有多种嵌入式操作系统,如:VxWorks、WindowsCE、μC/OS-Ⅱ、Linux等。根据操作系统选择的几条原则[4-5],我们选择嵌入式Linux操作系统,它具有如下优点:
1)源代码公开,可以按开发者意愿进行修改。
2)遵从GPL,无须为每例应用交纳许可证费。
3)有大量的开发工具,方便设计者进行开发。
4)具有很高的稳定性和执行效率。
5)支持多种处理器和开发平台。
我们将Linux3.0.1内核移植到验证平台上,利用搭建好的平台进行了如下工作:
1)提供GPIO接口,挂载火灾传感器。
2)通过USB接口连接摄像头采集视频帧。
3)移植libjpeg库到Linux内核中,利用移植好的libjpeg库将视频帧转成jpeg图片。
4)提供TTL串口,控制GSM/GPRS模块发送彩信。
红外火灾传感器模块是通过GPIO口与开发板进行通信的。为此我们开发了GPIO的驱动程序。在Linux3.0.1核中,提供 了 gpio_get_value()、gpio_set_value()、gpio_request()等API对GPIO设备的寄存器进行读取。我们利用这些API编写了file_operations结构体,提供了对GPIO设备文件进行打开、关闭和读写操作的 read()、write()、open()、release()函数。在进入Linux系统后,使用insmod命令将驱动加载到内核中,并使用mknod命令创建供读写操作的设备节点。
系统采用红外检测探头和LM393双电压比较器集成电路组成红外火灾检测模块,具有检测范围广,响应速度快,灵敏度可调节,输出量可以直接接入到I/O口中等特点。模块的原理图如图2所示。 常态时,传感器输出高电平,当传感器感应到热源时,模块输出引脚输出低电平,通过GPIO口输入到S3C6410中。
图2 火灾传感器原理图Fig.2 The schematic diagram of fire sensor
系统采用符合PAL制式的USB摄像头。该摄像头支持YUV422视频格输出,成本低廉。Linux在内核中提供了关于视频设备的 API接口 Video 4Linux2(简称V4L2),它是 Linux下视频驱动的标准框架,从Linux2.6版本后开始加入Linux内核。可以实现对摄像头的识别和支持,简化设计开发的流程[6]。
系统判断火灾发生后会启动摄像头,摄像头采集图像流程如图3所示。系统通过使用V4L2编程框架中提供的函数获取摄像头输出视频格式后,调用控制函数设置视频设备的视频数据格式,例如设置视频图像数据的长、宽,图像格式等。设置视频图像格式成功后,系统需要为获取的视频数据申请分配视频缓冲区[7]。当采集视频帧数达到要求数目后,程序会将缓冲区的一帧数据移至内存中,并将YUV数据按照式(1)、式(2)和式(3)[8]转换成 RGB 格式。
转换完成后,我们利用libjpeg库和得到的现场图像的数据信息生出我们需要的jpeg格式的图片。
图3 摄像头采集图像流程图Fig.3 The flow chart of image capture by camera
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。
4)at+cmmsedit=1打开GSM/GPRS模块的彩信编辑功能。
5)at+mmsdown=img_type,img_size,time 下载图片到 GSM/GPRS模块中,img_type为下载类型,以字符串"pic"表示正在下载的为图片。Img_size为图片大小,time为图片下载时间阈值。
6)at+mmssnd发送彩信。
系统实验流程主要包括:加载GPIO驱动程序、启动火灾检测程序、启动图像采集处理程序和彩信发送程序。整个系统的流程图如图4所示。
当开发板上的Linux操作系统启动后,首先会加载编写好的GPIO驱动模块,创建设备文件节点。然后启动火灾传感器模块,对周围环境进行监测。当传感器持续检测到有火情发生时,会主动启动摄像头进行拍摄。当系统完成图像采集后,会自动运行GSM/GPRS模块,向模块中写入AT指令和采集到的图片。图片写入完成后,GSM/GPRS模块会将封装好的彩信发送到用户手机上。
图4 系统流程图Fig.4 Flow chart of system
在室内环境下,我们做了模拟火灾仿真,现场采集到的图片如图5所示。从图中可以清楚的看到可燃物正在燃烧。
图5 采集的现场图像Fig.5 Live image capture
系统采集到图像后自动将其以彩信形式发送到手机上,手机接收到彩信的情况如图6所示。
文中所设计的火灾检测系统以监测到火灾发生并将现场图像发送到用户的手机上为目的。同时利用GPIO驱动,V4L2编程,GSM/GPRS模块封装发送彩信等技术,进行了系统开发。经过模拟实验,结果表明系统可以实现火灾检测,并达到向用户传回现场图像的设计要求。
[1]范维澄,刘乃安.中国火灾科学基础研究进展与展望[J].中国科学技术大学学报,2006,36(1):1-8.FAN Wei-cheng,LIU Nai-an.Progress and prospect of fundamental fire research in China[J].Journal of University of Science and Technology of China,2006,36(1):1-8.
[2]张丽杰,陈抗生.基于遗传算法优化的模糊神经网络在智能楼宇火灾探测中的应用[J].长春理工大学学报:自然科学版,2008,31(2):108-111.ZHANG Li-jie,CHEN Kang-shen.Fuzzy neural networks applingbased on geneticalgorithmsoptimized in fire detection of intelligent architecture[J].Journal of Changchun University ofScience and Technology:NaturalScience Edition,2008,31(2):108-111.
[3]Samsung Electronics.S3C6410X RISC Microprocessor User’s Manual Revision 1.20[S].2009.
[4]宋延昭.嵌入式操作系统介绍及选型原则[J].工业控制计算机,2005,18(7):41-42,24.SONG Yan-zhao.Introduction of the rules to select embedded operating system[J].Industrial Control Computer,2005,18(7):24,41-42.
[5]朱亚杰,王劲强,石志成,等.浅谈嵌入式操作系统在航天领域中的应用[J].单片机与嵌入式系统应用,2013,13(5):7-10.ZHU Ya-jie,WANG Jin-qiang,SHI Zhi-cheng,et al.Discussion on application of embedded operating system in aerospace[J].Microcontrollers&Embedded System,2013,13(5):7-10.
[6]徐家,陈奇.基于V4L2的视频设备驱动开发[J].计算机工程与设计,2010,31(16):3569-3572.XU Jia,CHEN Qi.Video driver development based on V4L2[J].Computer Engineering and Design,2010,31 (16):3569-3572.
[7]谢婧波.家居视频监控系统的研究[D].西安:北方工业大学,2013.
[8]罗小巧,樊伟良,李伟.基于FPGA的数字视频转换接口的设计与实现[J].电子测量技术,2008,31(10):177-179.LUO Xiao-qiao,FAN Wei-liang,LI Wei.Design and implementation of digital video conversion interface based on FPGA[J].Electronic Measurement Technology,2008,31(10):177-179.
[9]赵敏.基于GPRS及彩信的远程监控装置的研究与实现[D].太原:中北大学,2012.