劉 林, 楊 晨, 丁 召
(貴州大學(xué) 電子信息學(xué)院,貴州 貴陽 550025)
隨著我國城鎮(zhèn)化建設(shè)進程的加快,城鎮(zhèn)的火災(zāi)隱患越來越大,每年我國都因為火災(zāi)而造成巨大的經(jīng)濟損失[1]。盡管目前我國大多數(shù)樓宇都安裝了火災(zāi)報警系統(tǒng)和消防系統(tǒng),但隨著火災(zāi)隱患復(fù)雜性的增加在諸如:火情的智能判斷,智能報警等方面提出了要求[2]。本課題基于ARM11平臺研究了一種智能火災(zāi)監(jiān)測報警系統(tǒng),可以為用戶提供實時火災(zāi)現(xiàn)場情況以避免火情誤報,并為消防部門進行滅火工作提供現(xiàn)場環(huán)境參考。
系統(tǒng)的總體設(shè)計框架如圖1所示,系統(tǒng)以ARM 11核心處理器,采用了GPIO擴展口控制紅外火災(zāi)傳感器實時讀取現(xiàn)場信息,通過USB接口控制USB攝像頭獲取現(xiàn)場實時視頻和采集圖片,選用TTL串口控制GPRS模塊實現(xiàn)被采集圖片的發(fā)送。
S3C6410處理器是由三星電子公司出產(chǎn)的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或灰色格式解碼。在硬件外設(shè)方面,S3C6410提供了USB主控制器,480Mbps高速USB OTG接口,187個可擴展GPIO接口,4通道 UART 等[3]。
圖1 系統(tǒng)設(shè)計框架Fig.1 The design framework of system
系統(tǒng)采用了基于S3C6410的OK6410開發(fā)平臺作為驗證平臺,OK6410平臺集成了多種接口,如:GPIO、UART、USB等,可以掛載多種不同接口的傳感器,符合本系統(tǒng)的設(shè)計要求。
對于嵌入式產(chǎn)品的設(shè)計,操作系統(tǒng)的選擇至關(guān)重要。目前,在嵌入式平臺上有多種嵌入式操作系統(tǒng),如:VxWorks、WindowsCE、μC/OS-Ⅱ、Linux等。根據(jù)操作系統(tǒng)選擇的幾條原則[4-5],我們選擇嵌入式Linux操作系統(tǒng),它具有如下優(yōu)點:
1)源代碼公開,可以按開發(fā)者意愿進行修改。
2)遵從GPL,無須為每例應(yīng)用交納許可證費。
3)有大量的開發(fā)工具,方便設(shè)計者進行開發(fā)。
4)具有很高的穩(wěn)定性和執(zhí)行效率。
5)支持多種處理器和開發(fā)平臺。
我們將Linux3.0.1內(nèi)核移植到驗證平臺上,利用搭建好的平臺進行了如下工作:
1)提供GPIO接口,掛載火災(zāi)傳感器。
2)通過USB接口連接攝像頭采集視頻幀。
3)移植libjpeg庫到Linux內(nèi)核中,利用移植好的libjpeg庫將視頻幀轉(zhuǎn)成jpeg圖片。
4)提供TTL串口,控制GSM/GPRS模塊發(fā)送彩信。
紅外火災(zāi)傳感器模塊是通過GPIO口與開發(fā)板進行通信的。為此我們開發(fā)了GPIO的驅(qū)動程序。在Linux3.0.1核中,提供 了 gpio_get_value()、gpio_set_value()、gpio_request()等API對GPIO設(shè)備的寄存器進行讀取。我們利用這些API編寫了file_operations結(jié)構(gòu)體,提供了對GPIO設(shè)備文件進行打開、關(guān)閉和讀寫操作的 read()、write()、open()、release()函數(shù)。在進入Linux系統(tǒng)后,使用insmod命令將驅(qū)動加載到內(nèi)核中,并使用mknod命令創(chuàng)建供讀寫操作的設(shè)備節(jié)點。
系統(tǒng)采用紅外檢測探頭和LM393雙電壓比較器集成電路組成紅外火災(zāi)檢測模塊,具有檢測范圍廣,響應(yīng)速度快,靈敏度可調(diào)節(jié),輸出量可以直接接入到I/O口中等特點。模塊的原理圖如圖2所示。 常態(tài)時,傳感器輸出高電平,當(dāng)傳感器感應(yīng)到熱源時,模塊輸出引腳輸出低電平,通過GPIO口輸入到S3C6410中。
圖2 火災(zāi)傳感器原理圖Fig.2 The schematic diagram of fire sensor
系統(tǒng)采用符合PAL制式的USB攝像頭。該攝像頭支持YUV422視頻格輸出,成本低廉。Linux在內(nèi)核中提供了關(guān)于視頻設(shè)備的 API接口 Video 4Linux2(簡稱V4L2),它是 Linux下視頻驅(qū)動的標準框架,從Linux2.6版本后開始加入Linux內(nèi)核??梢詫崿F(xiàn)對攝像頭的識別和支持,簡化設(shè)計開發(fā)的流程[6]。
系統(tǒng)判斷火災(zāi)發(fā)生后會啟動攝像頭,攝像頭采集圖像流程如圖3所示。系統(tǒng)通過使用V4L2編程框架中提供的函數(shù)獲取攝像頭輸出視頻格式后,調(diào)用控制函數(shù)設(shè)置視頻設(shè)備的視頻數(shù)據(jù)格式,例如設(shè)置視頻圖像數(shù)據(jù)的長、寬,圖像格式等。設(shè)置視頻圖像格式成功后,系統(tǒng)需要為獲取的視頻數(shù)據(jù)申請分配視頻緩沖區(qū)[7]。當(dāng)采集視頻幀數(shù)達到要求數(shù)目后,程序會將緩沖區(qū)的一幀數(shù)據(jù)移至內(nèi)存中,并將YUV數(shù)據(jù)按照式(1)、式(2)和式(3)[8]轉(zhuǎn)換成 RGB 格式。
轉(zhuǎn)換完成后,我們利用libjpeg庫和得到的現(xiàn)場圖像的數(shù)據(jù)信息生出我們需要的jpeg格式的圖片。
圖3 攝像頭采集圖像流程圖Fig.3 The flow chart of image capture by camera
GSM/GPRS模塊在系統(tǒng)中負責(zé)將采集到的現(xiàn)場圖像以彩信形式發(fā)送到監(jiān)測者的手機上。本設(shè)計選用了晨訊科技公司的SIM900GSM/GPRS模塊。模塊內(nèi)封裝了彩信協(xié)議,可以自動將傳入的圖片封裝成彩信。
當(dāng)攝像頭采集圖像完成后,系統(tǒng)會自動啟動發(fā)送彩信的程序,通過簡單的AT指令控制模塊進行發(fā)送。主要AT指令如下:
1)a+cmmsinit初始化GSM/GPRS模塊的彩信功能。
2)at+sapbr=3,1,"contype","gprs"設(shè)置網(wǎng)絡(luò)方式。
3)at+sapbr=3,1,"apn","cmwap"設(shè)置接入點為 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發(fā)送彩信。
系統(tǒng)實驗流程主要包括:加載GPIO驅(qū)動程序、啟動火災(zāi)檢測程序、啟動圖像采集處理程序和彩信發(fā)送程序。整個系統(tǒng)的流程圖如圖4所示。
當(dāng)開發(fā)板上的Linux操作系統(tǒng)啟動后,首先會加載編寫好的GPIO驅(qū)動模塊,創(chuàng)建設(shè)備文件節(jié)點。然后啟動火災(zāi)傳感器模塊,對周圍環(huán)境進行監(jiān)測。當(dāng)傳感器持續(xù)檢測到有火情發(fā)生時,會主動啟動攝像頭進行拍攝。當(dāng)系統(tǒng)完成圖像采集后,會自動運行GSM/GPRS模塊,向模塊中寫入AT指令和采集到的圖片。圖片寫入完成后,GSM/GPRS模塊會將封裝好的彩信發(fā)送到用戶手機上。
圖4 系統(tǒng)流程圖Fig.4 Flow chart of system
在室內(nèi)環(huán)境下,我們做了模擬火災(zāi)仿真,現(xiàn)場采集到的圖片如圖5所示。從圖中可以清楚的看到可燃物正在燃燒。
圖5 采集的現(xiàn)場圖像Fig.5 Live image capture
系統(tǒng)采集到圖像后自動將其以彩信形式發(fā)送到手機上,手機接收到彩信的情況如圖6所示。
文中所設(shè)計的火災(zāi)檢測系統(tǒng)以監(jiān)測到火災(zāi)發(fā)生并將現(xiàn)場圖像發(fā)送到用戶的手機上為目的。同時利用GPIO驅(qū)動,V4L2編程,GSM/GPRS模塊封裝發(fā)送彩信等技術(shù),進行了系統(tǒng)開發(fā)。經(jīng)過模擬實驗,結(jié)果表明系統(tǒng)可以實現(xiàn)火災(zāi)檢測,并達到向用戶傳回現(xiàn)場圖像的設(shè)計要求。
[1]范維澄,劉乃安.中國火災(zāi)科學(xué)基礎(chǔ)研究進展與展望[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,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]張麗杰,陳抗生.基于遺傳算法優(yōu)化的模糊神經(jīng)網(wǎng)絡(luò)在智能樓宇火災(zāi)探測中的應(yīng)用[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,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]宋延昭.嵌入式操作系統(tǒng)介紹及選型原則[J].工業(yè)控制計算機,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]朱亞杰,王勁強,石志成,等.淺談嵌入式操作系統(tǒng)在航天領(lǐng)域中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,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的視頻設(shè)備驅(qū)動開發(fā)[J].計算機工程與設(shè)計,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]謝婧波.家居視頻監(jiān)控系統(tǒng)的研究[D].西安:北方工業(yè)大學(xué),2013.
[8]羅小巧,樊偉良,李偉.基于FPGA的數(shù)字視頻轉(zhuǎn)換接口的設(shè)計與實現(xiàn)[J].電子測量技術(shù),2008,31(10):177-179.LUO Xiao-qiao,F(xiàn)AN 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及彩信的遠程監(jiān)控裝置的研究與實現(xiàn)[D].太原:中北大學(xué),2012.