摘要: 介紹了一種家居簡(jiǎn)易智能監(jiān)控系統(tǒng)的設(shè)計(jì)方法, 該方法主要通過(guò)嵌入式Web服務(wù)器技術(shù), 并在系統(tǒng)中融入簡(jiǎn)易的智能控制機(jī)制, 然后通過(guò)分析其硬件和軟件實(shí)現(xiàn)機(jī)制來(lái)最終實(shí)現(xiàn)系統(tǒng)的總體設(shè)計(jì)。此外, 文中還就CGI編程中的一些常見(jiàn)問(wèn)題提出了解決辦法。
0 引言
隨著Internet和個(gè)人計(jì)算機(jī)的普及, Internet用戶(hù)已達(dá)到了空前的數(shù)量, 而對(duì)網(wǎng)絡(luò)的利用也已經(jīng)逐漸滲透到了各個(gè)行業(yè), 現(xiàn)在已出現(xiàn)了如視頻會(huì)議、電子商務(wù)等新型業(yè)務(wù), 這些業(yè)務(wù)的推出大大方便了人們的生活, 提高了社會(huì)效率。同樣, 視頻監(jiān)控技術(shù)發(fā)展也經(jīng)歷了模擬監(jiān)控、數(shù)字監(jiān)控階段, 現(xiàn)在正在向大規(guī)模網(wǎng)絡(luò)監(jiān)控技術(shù)方向發(fā)展。
網(wǎng)絡(luò)監(jiān)控系統(tǒng)具有能夠克服地域的限制、傳輸信號(hào)不易受干擾、網(wǎng)絡(luò)帶寬可復(fù)用的巨大優(yōu)勢(shì), 因而較之傳統(tǒng)監(jiān)控模式具有更廣闊的發(fā)展空間。為此, 本文結(jié)合相關(guān)技術(shù), 提出了一種基于嵌入式Web服務(wù)器的遠(yuǎn)程監(jiān)控系統(tǒng)方案, 該方案整合了門(mén)禁、紅外監(jiān)測(cè)、煙霧探測(cè)等外圍設(shè)備, 并具有監(jiān)控智慧化、存儲(chǔ)設(shè)備成本低、網(wǎng)絡(luò)資源占用率小、方便擴(kuò)展等特點(diǎn)。
1 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)以S3C2410為控制核心, 并基于嵌入式Linux操作系統(tǒng)來(lái)開(kāi)發(fā)設(shè)計(jì)。nand flash設(shè)備采用cramfs文件系統(tǒng), 上電后掛載yaffs文件系統(tǒng)來(lái)保存臨時(shí)數(shù)據(jù)文件, 并提供有SD卡接口以用于保存視頻文件。
本系統(tǒng)中的視頻采集設(shè)備采用中芯微的ZC301芯片中的USB Camera.該芯片目前在市場(chǎng)上已被廣泛應(yīng)用, 它能夠支持Video4linux.
Video4linux作為L(zhǎng)inux系統(tǒng)中可支持影像設(shè)備的一組API, 只要配合適當(dāng)?shù)囊曨l采集設(shè)備和驅(qū)動(dòng),就可以實(shí)現(xiàn)影像采集。
網(wǎng)絡(luò)接入系統(tǒng)一般有兩種設(shè)計(jì)方式, 一是通過(guò)外部擴(kuò)展網(wǎng)絡(luò)芯片RTL8019AS來(lái)實(shí)現(xiàn), 另一種是通過(guò)外部擴(kuò)展的GPRS模塊(設(shè)計(jì)中, GPRS核心模塊可采用wavecomQ2403A) 來(lái)實(shí)現(xiàn)。前者適合應(yīng)用在檢測(cè)地點(diǎn)固定的情況下, 而后一種方式既能提供事件觸發(fā)短信發(fā)送功能, 又可以提供GPRS網(wǎng)絡(luò)接入功能, 從而使得視頻監(jiān)控系統(tǒng)在汽車(chē)、野外現(xiàn)場(chǎng)等環(huán)境中也能夠得到應(yīng)用。
此外, 本系統(tǒng)還擴(kuò)展了紅外、煙霧測(cè)控設(shè)備、門(mén)禁系統(tǒng), 并配備了報(bào)警裝置, 其系統(tǒng)硬件設(shè)計(jì)的整體框圖如圖1所示。
圖1 系統(tǒng)硬件設(shè)計(jì)整體框圖
2 軟件設(shè)計(jì)
本系統(tǒng)軟件由后臺(tái)進(jìn)程和前臺(tái)用戶(hù)接口兩部分組成。為了防止競(jìng)態(tài)的出現(xiàn), 在軟件實(shí)現(xiàn)時(shí),用戶(hù)CGI接口可利用system V的郵箱通信機(jī)制向后臺(tái)進(jìn)程提出請(qǐng)求。后臺(tái)開(kāi)設(shè)有線程接收請(qǐng)求并對(duì)各設(shè)備功能模塊進(jìn)行統(tǒng)一調(diào)度。圖2所示是本系統(tǒng)的軟件整體結(jié)構(gòu)框架。下面分別對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行介紹。
圖2 系統(tǒng)軟件整體框架圖
2.1 紅外探測(cè)模塊及煙霧檢測(cè)模塊
目前多數(shù)家居監(jiān)控方案主要采用網(wǎng)絡(luò)攝像頭作為監(jiān)控終端設(shè)備, 用戶(hù)可通過(guò)Web瀏覽器隨時(shí)隨地的監(jiān)控家中狀況, 這給用戶(hù)帶來(lái)了巨大的便捷。但是, 由于它連續(xù)不間斷的監(jiān)控, 缺點(diǎn)也是顯而易見(jiàn)。首先是對(duì)存儲(chǔ)設(shè)備容量有巨大的要求, 由于被迫記錄了大量的非必要視頻, 存儲(chǔ)空間被嚴(yán)重浪費(fèi)。面對(duì)這個(gè)問(wèn)題, 智能化成為對(duì)數(shù)字視頻監(jiān)控系統(tǒng)的又一個(gè)主要要求。本文提出的方案是一種基于事件觸發(fā)的機(jī)制, 系統(tǒng)可以實(shí)現(xiàn)智能控制并只保存發(fā)生異常時(shí)的視頻文件。這種設(shè)計(jì)能有效節(jié)省系統(tǒng)存儲(chǔ)開(kāi)支、靈活控制監(jiān)控設(shè)備, 為用戶(hù)提供很大方便。在基于事件觸發(fā)機(jī)制的方案設(shè)計(jì)中, 主要有針對(duì)軟、硬件的兩種設(shè)計(jì)方向。
其一是軟件主導(dǎo)的觸發(fā)方案, 這種方式可以參考motion開(kāi)源軟件項(xiàng)目的設(shè)計(jì)思路, 其原理是對(duì)采集到的jpeg圖片進(jìn)行比對(duì), 當(dāng)差異超過(guò)規(guī)定閾值則觸發(fā)相應(yīng)動(dòng)作。motion是一個(gè)運(yùn)行在Linux操作系統(tǒng)環(huán)境下的應(yīng)用軟件, 它最大的特點(diǎn)就是能夠探測(cè)采集到畫(huà)面有效部分的變化, 也就是說(shuō), 能夠監(jiān)測(cè)到運(yùn)動(dòng)。當(dāng)畫(huà)面有變化時(shí), motion將以一定的頻率采集jpeg文件, 并將其壓縮為視頻文件自動(dòng)保存。
這種軟件的實(shí)現(xiàn)機(jī)制依托實(shí)時(shí)的數(shù)據(jù)分析,對(duì)系統(tǒng)的處理和運(yùn)算能力要求較高, 因此, 在實(shí)際使用中會(huì)有一些限制, 但是, 隨著處理器運(yùn)算能力的提高, 作為監(jiān)控系統(tǒng)的智能化發(fā)展方向,將會(huì)有很好的發(fā)展前景。
其二是硬件主導(dǎo)的觸發(fā)方案, 本設(shè)計(jì)使用的便是這種方式。本系統(tǒng)采用紅外傳感器來(lái)探測(cè)異常, 同時(shí)整合了煙霧傳感器來(lái)監(jiān)控火災(zāi), 當(dāng)監(jiān)控范圍內(nèi)出現(xiàn)異常時(shí)便觸發(fā)中斷, 并由中斷處理程序啟動(dòng)視頻采集和火災(zāi)報(bào)警等功能。采集到的視頻和資料將保存在外部存儲(chǔ)設(shè)備上。而門(mén)禁系統(tǒng)中的報(bào)警開(kāi)關(guān), 則可在用戶(hù)刷卡回到家中后, 自動(dòng)關(guān)閉監(jiān)控功能。
2.2 數(shù)字壓縮單元
本系統(tǒng)采用MPEG-4視頻編碼器來(lái)對(duì)視頻圖像進(jìn)行壓縮編碼, 并利用FFmpeg視頻處理工具來(lái)實(shí)現(xiàn)。H.264算法具有很高的編碼效率, 在相同的重建圖像質(zhì)量下, 能夠比H.263節(jié)約50%左右的碼率。H.264的碼流結(jié)構(gòu)網(wǎng)絡(luò)適應(yīng)性強(qiáng), 同時(shí)增加了差錯(cuò)恢復(fù)能力, 能夠很好地適應(yīng)IP和無(wú)線網(wǎng)絡(luò)??梢哉f(shuō), H.264是目前壓縮率最高的視頻壓縮標(biāo)準(zhǔn), 并已在數(shù)字監(jiān)控系統(tǒng)中得到應(yīng)用。
本系統(tǒng)的設(shè)計(jì)主要是針對(duì)家居監(jiān)控應(yīng)用, 家庭中的大部分都采用ADSL等設(shè)備接入網(wǎng)絡(luò)。由于會(huì)受到上行帶寬的限制, 故導(dǎo)致在進(jìn)行網(wǎng)絡(luò)視頻監(jiān)控時(shí)視頻信號(hào)傳輸不流暢, 影響監(jiān)控效果。
針對(duì)這種情況, 通過(guò)對(duì)MPEG系列壓縮算法的核心進(jìn)行分析, 發(fā)現(xiàn)其采用了I幀、P幀和B幀的模式, 其中I幀是關(guān)鍵幀, P幀是前向預(yù)測(cè)幀, B幀是后向預(yù)測(cè)幀。譯碼器收到一個(gè)I幀, 可無(wú)條件立刻解碼; 而當(dāng)譯碼器收到P幀或B幀, 則必須先譯碼前面的P幀或I幀, 然后才能進(jìn)行譯碼。這樣, P幀對(duì)于I幀的依賴(lài)就形成了很大的延時(shí)。之后, 借鑒相關(guān)技術(shù)來(lái)對(duì)MPEG算法進(jìn)行優(yōu)化, 便可以通過(guò)對(duì)GOP (Group Of Picture) 這一值進(jìn)行設(shè)置來(lái)縮短I幀產(chǎn)生的間隔。這樣, 在以后的擴(kuò)展中, 就可以利用帶寬實(shí)時(shí)檢測(cè)技術(shù)動(dòng)態(tài)的設(shè)置GOP, 從而最大限度地利用帶寬進(jìn)行視頻傳輸。
2.3 嵌入式web服務(wù)器模塊
嵌入式Web系統(tǒng)提供有一種經(jīng)濟(jì)實(shí)用的互聯(lián)網(wǎng)嵌入式接入方案, 故可為管理、控制和監(jiān)測(cè)多種設(shè)備提供一個(gè)很好的途徑。由于嵌入式設(shè)備中的資源有限, 只能選擇輕量級(jí)的Web Server (如:thttpd、boa等), 考慮到應(yīng)用的廣泛性, 本系統(tǒng)也選擇了boa服務(wù)器。作為與用戶(hù)交互的主要方式,Web page力求簡(jiǎn)潔, 并可提供很多的功能接口。
這些功能接口基本可以分為兩種類(lèi)型, 一種是觸發(fā)動(dòng)作功能, 主要利用button觸發(fā)實(shí)現(xiàn)現(xiàn)場(chǎng)圖片的采集等動(dòng)作的操作。另一種是文件交互功能,這種功能的實(shí)現(xiàn)相對(duì)比較復(fù)雜, 它不只需要button觸發(fā), 還需要一些文本域作為用戶(hù)配置的傳遞機(jī)制。動(dòng)態(tài)Web交互功能主要通過(guò)form窗體來(lái)實(shí)現(xiàn), 當(dāng)用戶(hù)點(diǎn)擊功能接口, 瀏覽器將窗體內(nèi)容通過(guò)http協(xié)議傳輸給服務(wù)器后, 服務(wù)器再根據(jù)form中的action字段來(lái)調(diào)用相應(yīng)的CGI文件。在經(jīng)過(guò)CGI的一系列URL解析動(dòng)作后, 即可得到對(duì)應(yīng)參數(shù), 系統(tǒng)根據(jù)得到的參數(shù)調(diào)用相應(yīng)的功能函數(shù),最終實(shí)現(xiàn)用戶(hù)對(duì)動(dòng)態(tài)頁(yè)面的操作功能。
本系統(tǒng)在文件交互功能Web頁(yè)設(shè)計(jì)中采用了iframe嵌入CGI文件的方式, CGI代碼同時(shí)擔(dān)負(fù)讀寫(xiě)文件和頁(yè)面顯示兩個(gè)功能。這種實(shí)現(xiàn)方式有時(shí)會(huì)遇到iframe高度自適應(yīng)問(wèn)題, 系統(tǒng)如果禁止scrolling (下拉列表) 功能, 那么, iframe的高度是不能變化的, 需要預(yù)先設(shè)置。而實(shí)際情況是CGI將要顯示的高度往往是不確定的, 系統(tǒng)無(wú)法預(yù)知所要顯示的數(shù)據(jù)的長(zhǎng)度或表格行數(shù)。為此,本系統(tǒng)使用javascript腳本來(lái)在客戶(hù)端進(jìn)行調(diào)節(jié),并通過(guò)在CGI代碼中加入如下代碼來(lái)實(shí)現(xiàn)iframe高度的自動(dòng)調(diào)節(jié):
onload=“ this.height=0 ;
var fdh = ( this.Document ?
this.Document.body.scrollHeight:this.content-
Document.body.offsetHeight ) ;
this.height=fdh”
在iframe子頁(yè)面中實(shí)現(xiàn)對(duì)父頁(yè)面刷新功能時(shí),可使用如下的javascript代碼來(lái)完成:
《script language =javascript 》window.parent.location.href=\“ /Video_Processor.html\” ;《/script》
2.4 文件系統(tǒng)
根據(jù)需保存文件的類(lèi)型, 本系統(tǒng)提供有兩種文件系統(tǒng), 其中不會(huì)被修改的文件使用cramfs文件系統(tǒng)進(jìn)行保存, 而將臨時(shí)數(shù)據(jù)保存在yaffs文件系統(tǒng)中。用于與用戶(hù)交互的文件類(lèi)型主要有三種, 分別為配置文件、實(shí)時(shí)數(shù)據(jù)文件以及臨時(shí)文件。配置文件主要進(jìn)行系統(tǒng)設(shè)置, 包括常溫范圍、短信發(fā)送對(duì)方手機(jī)號(hào)碼等配置信息; 實(shí)時(shí)數(shù)據(jù)文件中包括實(shí)時(shí)采集到的煙霧信息和視頻信息等; 臨時(shí)文件則用于一些需要臨時(shí)存放在系統(tǒng)中的文件。另外, 系統(tǒng)上電后需要檢測(cè)并掛載外部大容量存儲(chǔ)設(shè)備, 如SD卡或U盤(pán)等, 以用于存放歷史數(shù)據(jù)文件, 實(shí)際操作時(shí),用戶(hù)可以通過(guò)網(wǎng)頁(yè)來(lái)配置當(dāng)前需要采用哪種外圍存儲(chǔ)設(shè)備以及存儲(chǔ)容量等相關(guān)信息。
3 結(jié)束語(yǔ)
本文介紹的系統(tǒng)可為用戶(hù)提供良好的用戶(hù)接口。它結(jié)合事件驅(qū)動(dòng)機(jī)制, 能夠讓用戶(hù)在節(jié)約大量存儲(chǔ)成本的同時(shí), 在更大范圍內(nèi)更靈活的得到監(jiān)控信息, 并具有很好的實(shí)用性和擴(kuò)展性。
評(píng)論
查看更多