隨著我國城鎮(zhèn)化建設(shè)進(jìn)程的加快,城鎮(zhèn)的火災(zāi)隱患越來越大,每年我國都因為火災(zāi)而造成巨大的經(jīng)濟(jì)損失。盡管目前我國大多數(shù)樓宇都安裝了火災(zāi)報警系統(tǒng)和消防系統(tǒng),但隨著火災(zāi)隱患復(fù)雜性的增加在諸如:火情的智能判斷,智能報警等方面提出了要求。本課題基于ARM11平臺研究了一種智能火災(zāi)監(jiān)測報警系統(tǒng),可以為用戶提供實時火災(zāi)現(xiàn)場情況以避免火情誤報,并為消防部門進(jìn)行滅火工作提供現(xiàn)場環(huán)境參考。
1 系統(tǒng)架構(gòu)
系統(tǒng)的總體設(shè)計框架如圖1所示,系統(tǒng)以ARM11核心處理器,采用了GPIO擴展口控制紅外火災(zāi)傳感器實時讀取現(xiàn)場信息,通過USB接口控制USB攝像頭獲取現(xiàn)場實時視頻和采集圖片,選用TTL串口控制GPRS模塊實現(xiàn)被采集圖片的發(fā)送。
1.1 基于S3C6410的系統(tǒng)主控部分
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等。
系統(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)選擇的幾條原則,我們選擇嵌入式Linux操作系統(tǒng),它具有如下優(yōu)點:
1)源代碼公開,可以按開發(fā)者意愿進(jìn)行修改。
2)遵從GPL,無須為每例應(yīng)用交納許可證費。
3)有大量的開發(fā)工具,方便設(shè)計者進(jìn)行開發(fā)。
4)具有很高的穩(wěn)定性和執(zhí)行效率。
5)支持多種處理器和開發(fā)平臺。
我們將Linux3.0.1內(nèi)核移植到驗證平臺上,利用搭建好的平臺進(jìn)行了如下工作:
1)提供GPIO接口,掛載火災(zāi)傳感器。
2)通過USB接口連接攝像頭采集視頻幀。
3)移植libjpeg庫到Linux內(nèi)核中,利用移植好的libjpeg庫將視頻幀轉(zhuǎn)成jpeg圖片。
4)提供TTL串口,控制GSM/GPRS模塊發(fā)送彩信。
1.2 火情信息的紅外采集
紅外火災(zāi)傳感器模塊是通過GPIO口與開發(fā)板進(jìn)行通信的。為此我們開發(fā)了GPIO的驅(qū)動程序。在Linux3.0.1核中,提供了gpio_get_val ue()、gpio_set_value()、gpio_request()等APl對GPIO設(shè)備的寄存器進(jìn)行讀取。我們利用這些API編寫了file_operations結(jié)構(gòu)體,提供了對GPIO設(shè)備文件進(jìn)行打開、關(guān)閉和讀寫操作的read()、write()、open()、release()函數(shù)。在進(jìn)入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中。
1.3 圖像信息的采集與壓縮
系統(tǒng)采用符合PAL制式的USB攝像頭。該攝像頭支持YUV422視頻格輸出,成本低廉。Linux在內(nèi)核中提供了關(guān)于視頻設(shè)備的API接口Video 4Linux2(簡稱V4L2),它是Linux下視頻驅(qū)動的標(biāo)準(zhǔn)框架,從linux2.6版本后開始加入Linux內(nèi)核??梢詫崿F(xiàn)對攝像頭的識別和支持,簡化設(shè)計開發(fā)的流程。
系統(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ū)。當(dāng)采集視頻幀數(shù)達(dá)到要求數(shù)目后,程序會將緩沖區(qū)的一幀數(shù)據(jù)移至內(nèi)存中,并將YUV數(shù)據(jù)按照式(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)
轉(zhuǎn)換完成后,我們利用libjpeg庫和得到的現(xiàn)場圖像的數(shù)據(jù)信息生出我們需要的jpeg格式的圖片。
1.4 圖像信息的發(fā)送
GSM/GPRS模塊在系統(tǒng)中負(fù)責(zé)將采集到的現(xiàn)場圖像以彩信形式發(fā)送到監(jiān)測者的手機上。本設(shè)計選用了晨訊科技公司的SIM900GSM/GPRS模塊。模塊內(nèi)封裝了彩信協(xié)議,可以自動將傳入的圖片封裝成彩信。
當(dāng)攝像頭采集圖像完成后,系統(tǒng)會自動啟動發(fā)送彩信的程序,通過簡單的AT指令控制模塊進(jìn)行發(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下載圖片到GSMGPRS模塊中,img_type為下載類型,以字符串“pic”表示正在下載的為圖片。Img_size為圖片大小,time為圖片下載時間閾值。
6)at+mmssnd發(fā)送彩信。
2 實驗結(jié)果
系統(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)境進(jìn)行監(jiān)測。當(dāng)傳感器持續(xù)檢測到有火情發(fā)生時,會主動啟動攝像頭進(jìn)行拍攝。當(dāng)系統(tǒng)完成圖像采集后,會自動運行GSM/GPRS模塊,向模塊中寫入AT指令和采集到的圖片。圖片寫入完成后,GSM/GPRS模塊會將封裝好的彩信發(fā)送到用戶手機上。
在室內(nèi)環(huán)境下,我們做了模擬火災(zāi)仿真,現(xiàn)場采集到的圖片如圖5所示。從圖中可以清楚的看到可燃物正在燃燒。
系統(tǒng)采集到圖像后自動將其以彩信形式發(fā)送到手機上,手機接收到彩信的情況如圖6所示。
3 結(jié)論
文中所設(shè)計的火災(zāi)檢測系統(tǒng)以監(jiān)測到火災(zāi)發(fā)生并將現(xiàn)場圖像發(fā)送到用戶的手機上為目的。同時利用GPIO驅(qū)動,V4L2編程,GSM/GPRS模塊封裝發(fā)送彩信等技術(shù),進(jìn)行了系統(tǒng)開發(fā)。經(jīng)過模擬實驗,結(jié)果表明系統(tǒng)可以實現(xiàn)火災(zāi)檢測,并達(dá)到向用戶傳回現(xiàn)場圖像的設(shè)計要求。
評論