婁德成,韋銀
隨著智能小區(qū)的逐漸普及以及數(shù)字化城市建設(shè)的飛速發(fā)展,越來越多的樓棟及街道都布滿了各式各樣的攝像頭,視頻監(jiān)控也理所當(dāng)然的以其方便、直觀和信息內(nèi)容豐富等特點成為信息領(lǐng)域最熱門的應(yīng)用技術(shù)之一。傳統(tǒng)的視頻監(jiān)控系統(tǒng)通常有兩類,一類為閉路電視監(jiān)控,監(jiān)控區(qū)域有限,缺乏智能化,在很大程度上仍需要依賴于人的主觀判斷,常常導(dǎo)致誤報、漏報現(xiàn)象;另一類為基于普通PC的數(shù)字化監(jiān)控,雖然可為客戶提供良好的監(jiān)控解決方案,但其體積通常較大,視頻監(jiān)控前端設(shè)計較復(fù)雜、功耗大、不夠穩(wěn)定[1],同樣監(jiān)控使用的電腦需專人管理。再者傳統(tǒng)的視頻監(jiān)控系統(tǒng)往往存在操作繁瑣、可移動性差、不便組網(wǎng)以及升級維護(hù)成本高等缺點,因此如何設(shè)計出一套易升級維護(hù)、可遠(yuǎn)程監(jiān)控、可靠性高的嵌入式視頻監(jiān)控系統(tǒng)就成為行業(yè)內(nèi)的迫切需要。
論文設(shè)計了一種基于 B/S模式的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),設(shè)計總體目標(biāo)是:能夠?qū)崟r采集遠(yuǎn)端監(jiān)控區(qū)域的視頻信息,對視頻信息進(jìn)行壓縮,通過互聯(lián)網(wǎng)絡(luò)進(jìn)行傳輸;系統(tǒng)對視頻信息的目標(biāo)檢測,一旦發(fā)現(xiàn)異常即可報警,從而實現(xiàn)智能化視頻監(jiān)控的目的;由于還設(shè)計了基于 B/S的架構(gòu)方式,用戶端僅需要通過瀏覽器就能方便地對遠(yuǎn)端進(jìn)行監(jiān)控、對視頻信息存儲和回放等。
圖1 系統(tǒng)硬件框圖
該系統(tǒng)硬件平臺的基礎(chǔ)部分是以嵌入式微處理器S3C2410A為核心的最小系統(tǒng),包含閃存、靜態(tài)隨機(jī)讀/寫存儲器、串口以及電源和復(fù)位等電路接口;在此基礎(chǔ)上拓展了網(wǎng)絡(luò)攝像頭以及以太網(wǎng)接口模塊用以實現(xiàn)視頻監(jiān)控功能如圖1所示:為了實現(xiàn)視頻監(jiān)控系統(tǒng)的基本功能,且易于編程實現(xiàn),該系統(tǒng)將外圍硬件設(shè)備按功能需求劃分為各個獨立模塊。因為視頻信息需要依賴TCP/IP協(xié)議實現(xiàn)網(wǎng)絡(luò)傳輸,所以在總線上擴(kuò)展了Ethernet接口芯片DM9000。為了方便系統(tǒng)軟件的調(diào)試和下載,擴(kuò)展了Jtag口和RS232串口。
S3C2410A內(nèi)嵌有以太網(wǎng)控制器, 但是沒有提供物理層接口[2],為了實現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)互連,需要自行設(shè)計相應(yīng)的硬件接口電路及驅(qū)動程序。本系統(tǒng)選擇臺灣聯(lián)杰國際生產(chǎn)的10/100M快速以太網(wǎng)控制芯片DM9000作為以太網(wǎng)的物理層接口,該芯片支持 8/16位數(shù)據(jù)總線,適應(yīng)不同的網(wǎng)絡(luò)速度要求;內(nèi)置16KB的SRAM,支持IP /TCP /UDP加速,支持半/全雙工流量控制,響應(yīng)時間只有 20ns[3],S3C2410A與DM9000的連接電路如圖2所示:
圖2 系統(tǒng)硬件框圖
S3C2410A的數(shù)據(jù)線DATA[15:0]與DM9000的數(shù)據(jù)線D[15:0]連接,用來實現(xiàn)其數(shù)據(jù)傳輸;S3C2410A的DM_IOR引腳連接 DM9000的讀引腳 IOR#,DM_IOW 引腳連接DM9000的寫引腳 IOW#,同時,DM9000占用 S3C2410A的中斷引腳EINT7,使得S3C2410A能夠響應(yīng)DM9000的中斷[4]。DM9000與網(wǎng)絡(luò)的連接由接收信號線RX+、RX-和發(fā)送信號線 TX+、TX-通過隔離變壓器 E-2023與以太網(wǎng)水晶接頭RJ_45相連。隔離變壓器的主要作用是將嵌入式系統(tǒng)與外部線路相隔離,可實現(xiàn)帶電插拔功能。
在攝像頭接口模塊設(shè)計上,采用USB接口的CMOS攝像頭,即插即用,處理器通過USB控制器控制攝像頭。具體型號為中星微公司的ZC301系列。ZC301是該公司針對圖像采集和處理應(yīng)用而專門設(shè)計的攝像機(jī)數(shù)字圖像處理芯片,它集成了 CMOS傳感器接口、圖形信號處理單元、圖形壓縮單元以及JPEG編碼的位流支持,具備30萬像素分辨率,幀速高達(dá)30幀/秒[5],符合項目要求。
視頻監(jiān)控系統(tǒng)軟件設(shè)計部分包含嵌入式操作系統(tǒng)和相應(yīng)驅(qū)動程序等系統(tǒng)級的底層設(shè)計;另一部分包含系統(tǒng)主程序設(shè)計、各模塊應(yīng)用的設(shè)計、B/S模式下視頻服務(wù)器的設(shè)計等等。
B/S模式即瀏覽器/服務(wù)器模式,它是對C/S模式應(yīng)用的擴(kuò)展和改進(jìn)[6],主要包含3部分:客戶端瀏覽器、Web服務(wù)器和數(shù)據(jù)庫服務(wù)器。B/S模式最大的特點就是操作簡便,用戶的主要工作都是通過瀏覽器來實現(xiàn)。維護(hù)時也很方便,只需修改服務(wù)器端的頁面,所有用戶即可實現(xiàn)同步更新。
視頻監(jiān)控軟件可分為服務(wù)器端和客戶端兩部分。服務(wù)器端主要負(fù)責(zé)視頻數(shù)據(jù)的采集、壓縮、網(wǎng)絡(luò)傳輸?shù)裙δ?;客戶端?fù)責(zé)對視頻數(shù)據(jù)的接收和顯示,并能對服務(wù)器端發(fā)出控制信息。具體實現(xiàn)過程如圖3所示:
圖3 視頻監(jiān)控實現(xiàn)流程圖
首先,啟動服務(wù)器端的服務(wù)程序,把從攝像頭采集到的視頻數(shù)據(jù)不斷進(jìn)行壓縮處理,并等待監(jiān)控端連接請求;當(dāng)收到監(jiān)控端的連接請求后,建立網(wǎng)絡(luò)連接,并基于 TCP傳輸協(xié)議進(jìn)行網(wǎng)絡(luò)傳輸;隨后,監(jiān)控端即可不斷獲取視頻信息,經(jīng)過解碼后即可顯示出監(jiān)控現(xiàn)場的視頻畫面。
3.2.1 視頻采集技術(shù)
Linux內(nèi)核針對各種視頻設(shè)備提供了 V4L(VideoforLinux)接口函數(shù),極大地方便了編程人員對視頻設(shè)備的應(yīng)用程序開發(fā)[7]。V4L采用兩層式架構(gòu),下層是已封裝好的視頻設(shè)備的驅(qū)動程序;上層為 V4L驅(qū)動程序本身,為系統(tǒng)提供各種API,屏蔽了底層的驅(qū)動,可供用戶直接調(diào)用。在Linux中視頻設(shè)備被看作設(shè)備文件,可像操作普通文件一樣進(jìn)行訪問,攝像頭設(shè)備對應(yīng)的文件是:/dev/video,視頻采集流程如圖4所示:
圖4 視頻采集流程圖
3.2.2 視頻壓縮技術(shù)
所設(shè)計系統(tǒng)采用Linux下的libjpeg庫完成圖像壓縮功能,能實現(xiàn)JPEG解碼、編碼及其他的JPEG功能。具體用int JpegCompress(char **buffer,char *data,int picWidth,int picHeight,int quality)函數(shù)來實現(xiàn)壓縮功能[7],5個參數(shù)的含義分別為:buffer指針指向壓縮后數(shù)據(jù)的起始地址,data是采集到的原始一幀視頻數(shù)據(jù)的起始地址,picWidth和picHeight分別用于確定圖像的寬度和高度,quality用于設(shè)定JPEG圖像的壓縮品質(zhì)。
3.2.3 視頻傳輸技術(shù)
所設(shè)計系統(tǒng)視頻傳輸部分采用基于 TCP連接的流式套接字編程實現(xiàn),客戶端向服務(wù)器發(fā)送服務(wù)請求,服務(wù)器便根據(jù)請求提供相應(yīng)的服務(wù)[8]。具體的通信示意圖如圖5所示:
圖5 基于TCP 連接的socket編程流程圖
該網(wǎng)絡(luò)傳輸模塊中,服務(wù)器端的功能主要是響應(yīng)監(jiān)控端的連接請求,然后發(fā)送采集到的視頻信息,并及時響應(yīng)監(jiān)控端的控制信息。
本系統(tǒng)嵌入式服務(wù)器采用三星公司的FS2410核心板,操作系統(tǒng)為移植的嵌入式Linux2.6.35版本。監(jiān)控端使用PC機(jī)進(jìn)行測試,操作系統(tǒng)是 WindowsXP。由于目標(biāo)板沒有顯示終端,所以只能通過目標(biāo)板的串口與PC機(jī)進(jìn)行交互操作。在測試過程中,本系統(tǒng)采用增量集成法,所有模塊測試無誤后再對完整的系統(tǒng)進(jìn)行系統(tǒng)測試。
客戶端的操作非常簡單,用戶只需在瀏覽器地址欄輸入服務(wù)器端的IP地址,即可通過網(wǎng)絡(luò)訪問監(jiān)控系統(tǒng)的登陸頁面。為了確保用戶的安全,設(shè)置了用戶登陸權(quán)限,用戶輸入正確的用戶名和密碼后,就可通過安全認(rèn)證進(jìn)入系統(tǒng)監(jiān)控頁面,點擊視頻采集下方的“PLAY”按鈕即可通過嵌入式服務(wù)器去調(diào)用目標(biāo)板上的USB攝像頭進(jìn)行工作。主要測試USB攝像頭模塊能否實時傳輸視頻信息、是否出現(xiàn)丟幀現(xiàn)象、顯示效果是否流暢等。由于JPEG的壓縮效果較好,試驗結(jié)果表明該監(jiān)控模塊每秒采集25幀數(shù)據(jù),無丟幀現(xiàn)象,連續(xù)采集24小時所占的存儲空間僅為3GB不到,且采集圖像較清晰,視頻顯示流暢。該監(jiān)控模塊可以很好地實現(xiàn)對特定監(jiān)控區(qū)域的實時監(jiān)控,系統(tǒng)的交互性也較好,實現(xiàn)了遠(yuǎn)程監(jiān)控的預(yù)期功能,具體如圖6所示:
圖6 B/S模式下的監(jiān)控畫面
本系統(tǒng)擴(kuò)展性強(qiáng),可結(jié)合客戶自身需求進(jìn)行定制。由于基于B/S模式,用戶端只需通過IE瀏覽器登陸監(jiān)控機(jī)的主頁面,就可對遠(yuǎn)端的視頻信息進(jìn)行查看或存儲,以便將火災(zāi)、盜竊等安全隱患及時消滅在萌芽狀態(tài),因此廣泛地適應(yīng)于交通、小區(qū)、以及環(huán)境惡劣、無人值守等工作場合的監(jiān)控。
[1]西剎子.安防天下—智能網(wǎng)絡(luò)視頻監(jiān)控技術(shù)詳解與實踐[M].北京:清華大學(xué)出版社,2010.
[2]袁安富.基于ARM和Linux的DM9000網(wǎng)絡(luò)接口設(shè)計及驅(qū)動實現(xiàn)[J].湖南:計算機(jī)工程與科學(xué), 2011.
[3]DM9000A-DS-P03 Datasheet. DAVICOM Semiconductor[S], 2005.
[4]Samsung Electronic Corp.S3C2410A 32-bit RISC MicroProcessor User’s Manual[S].Revision 1.0,2004.
[5]Vimicro Corp.Digital Video Processor Manual Revision 1.0[S],2009.
[6]楊念.基于 B/S的嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].北京:計算機(jī)工程與設(shè)計, 2008.
[7]孫紀(jì)坤, 張小全.嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解—基于ARM[M].北京:人民郵電出版社,2006.
[8]W.Richard Stevens.UNIX網(wǎng)絡(luò)編程 卷1:套接字聯(lián)網(wǎng)API (第3版)[M].北京:人民郵電出版社,2010.