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