萬叢, 王幫奇
?
嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的研究
萬叢, 王幫奇
(武漢船用電力推進(jìn)研究所,武漢 430064)
視頻監(jiān)控系統(tǒng)是安防系統(tǒng)的重要組成部分,是一種防范能力較強(qiáng)的綜合系統(tǒng)。本設(shè)計在視頻監(jiān)控系統(tǒng)軟硬件平臺、視頻的采集、數(shù)據(jù)的傳輸以及終端的顯示等方面作了深入的研究,重點(diǎn)討論了視頻信息的采集、視頻信息的解編碼技術(shù)和視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸及客戶終端的設(shè)計和實(shí)現(xiàn)。最后對本系統(tǒng)進(jìn)行了整體測試,研究結(jié)果基本實(shí)現(xiàn)了設(shè)計所要求的功能,對基于嵌入式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究具有一定的借鑒參考作用。
嵌入式系統(tǒng) 視頻采集 數(shù)據(jù)傳輸 視頻監(jiān)控
視頻監(jiān)控系統(tǒng)已廣泛應(yīng)用到工業(yè)生產(chǎn)、銀行、交通等領(lǐng)域?,F(xiàn)階段的視頻監(jiān)控系統(tǒng)主要是基于嵌入式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),它的優(yōu)點(diǎn)是前端一體化,視頻信息數(shù)字化,信息傳輸?shù)木W(wǎng)絡(luò)化[1]。
本設(shè)計是一個成本低、可靠性高、通用性強(qiáng)的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。研究包括利用USB攝像頭采集視頻信息,然后經(jīng)過基于S3C2440的視頻信號處理傳輸模塊對視頻信息編解碼處理,進(jìn)行傳輸?shù)臏?zhǔn)備,最后通過網(wǎng)絡(luò)編程,壓縮的視頻信息在IP網(wǎng)絡(luò)中使用流媒體技術(shù)傳輸,客戶端則在PC上通過Web瀏覽器監(jiān)控從Web服務(wù)器上傳來的視頻信息[2]。在軟件設(shè)計上完成了軟件系統(tǒng)平臺的搭建、USB攝像頭驅(qū)動開發(fā)和視頻采集模塊的編程、網(wǎng)絡(luò)通信及客戶端設(shè)計。這些工作對嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)有一定的應(yīng)用價值和參考借鑒意義。
圖1為系統(tǒng)總體功能構(gòu)架示意圖。系統(tǒng)中攝像頭采用的是中芯微ZC301USB攝像頭芯片。主控芯片采用的是三星的S3C2440A,擴(kuò)展了RS232串口通信電路,JTAG接口電路,以太網(wǎng)網(wǎng)卡接口電路。攝像頭先采集視頻信息再通過處理器進(jìn)行信息編解碼處理,由構(gòu)建的嵌入式服務(wù)器與客戶端的PC機(jī)上的瀏覽器進(jìn)行數(shù)據(jù)傳輸通信,實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控。系統(tǒng)的總體設(shè)計分為兩大部分,系統(tǒng)的硬件平臺的設(shè)計和軟件環(huán)境的搭建及驅(qū)動程序的開發(fā)設(shè)計。
系統(tǒng)硬件設(shè)計采用基于ARM9的嵌入式模塊作為系統(tǒng)的中心處理模塊[3]。中心處理模塊通過USB接口連接攝像裝置,并驅(qū)動攝像裝置采集視頻信號,經(jīng)過相應(yīng)的處理后通過以太網(wǎng)進(jìn)行傳輸。系統(tǒng)的硬件架構(gòu)以及信號流向如圖2所示:
本設(shè)計主要由USB攝像頭,ARM9芯片及其外圍接口電路,終端視頻信號接收、顯示終端構(gòu)成。首先USB攝像頭采集視頻信息,通過USB接口將數(shù)據(jù)傳輸?shù)接葾RM芯片及其外圍電路組成的核心模塊進(jìn)行處理,將原始的視頻信息處理成可傳輸、儲存、再處理或顯示的視頻信號,再通過以太網(wǎng)傳輸?shù)浇K端PC上直接顯示或是儲存,完成實(shí)現(xiàn)實(shí)時監(jiān)控的功能。
該系統(tǒng)中,需要5 V和3.3 V對芯片、外設(shè)及元器件供電,要得到3.3 V電壓,可以采用DC-DC轉(zhuǎn)換器來將5 V轉(zhuǎn)換成3.3 V。系統(tǒng)的電源電路原理圖見圖3。
系統(tǒng)中復(fù)位電路主要作用有兩個:系統(tǒng)完成上電后復(fù)位,還有就是系統(tǒng)在運(yùn)行時用戶通過按鍵復(fù)位功能,由簡單的RC電路構(gòu)成就可構(gòu)成復(fù)位電路,而要實(shí)現(xiàn)功能更完善的復(fù)位電路,就必須使用較復(fù)雜的復(fù)位電路,如下圖所示:
圖3 電源電路原理圖
圖4 復(fù)位電路原理圖
本設(shè)計中采用的攝像頭裝置是中芯微ZC301芯片的攝像頭。S3C2440A芯片內(nèi)部提供了USB接口,只要在芯片外部擴(kuò)展USB接口電路,再與USB攝像頭相接就可實(shí)現(xiàn)USB攝像裝置的硬件連接。
ZC301圖像處理芯片像素可達(dá)130W,可實(shí)現(xiàn)VGA級別(640×480)的壓縮視頻信號輸出。而且USB2.0接口傳輸速度較快,可達(dá)480Mbp/s,完全能夠滿足分辨率為640×480,15 fps/s的VGA級別壓縮視頻數(shù)據(jù)傳輸。
圖5 USB接口電路原理圖
本文設(shè)計網(wǎng)卡控制器采用的是DM9000,它是集成度較高的以太網(wǎng)MAC控制器,具有超低功耗、功率降低和電源故障模式,兼容3.3 V和5 V的輸入輸出電壓。DM9000是一款非常簡單的網(wǎng)卡控制器芯片,在嵌入式操作系統(tǒng)中可以比較容易的移植到該系統(tǒng)下的接口驅(qū)動程序。M9000的網(wǎng)卡接口電路圖如圖6所示。
視頻的采集與傳輸顯示是通過視頻采集的各個功能模塊相互通信來實(shí)現(xiàn)的,各個功能模塊的工作流程是首先將視頻模塊的信息采集過來,然后再通過壓縮模塊將視頻信息壓縮,放入視頻圖像緩沖區(qū),等待Web服務(wù)器的響應(yīng),然后再根據(jù)客戶端的Web瀏覽器提出請求,建立服務(wù)器與客戶端的連接后就在網(wǎng)頁上顯示視頻信息給客戶,整個視頻采集系統(tǒng)系統(tǒng)分為五大模塊,分別是視頻采集模塊、視頻壓縮模塊、視頻圖像緩沖模塊、網(wǎng)絡(luò)服務(wù)器模塊和視頻圖像顯示模塊[4]。各個功能模塊的邏輯如圖7所示。
視頻采集模塊是通過v4l編程來對視頻信息采集、然后通過軟件技術(shù)對視頻信息編解碼,這個功能是視頻壓縮模塊來完成的,將壓縮的數(shù)據(jù)發(fā)送放入視頻圖像緩沖模塊中,等待網(wǎng)絡(luò)服務(wù)器的提取,最后作為視頻圖像顯示模塊的Web瀏覽器來提取并顯示信息。
由于視頻監(jiān)控要不斷的獲取視頻信息,這個信息量是相當(dāng)龐大的,因此對于視頻信息的壓縮編碼處理是非常必要的。H.264是常用的視頻編碼標(biāo)準(zhǔn),有很高的壓縮性能和很好的網(wǎng)絡(luò)適應(yīng)性。因此設(shè)計中選擇了基于H.264的編碼技術(shù)來進(jìn)行視頻的壓縮編碼。本文采用Linux下開源高效的基于FFmpeg的H.264作為本系統(tǒng)的視頻編碼器,對USB采集的視頻數(shù)據(jù)進(jìn)行編碼。
USB攝像頭輸出的數(shù)據(jù)流被成功接收后,要做的工作就是讓攝像頭采集的視頻信號能夠在網(wǎng)絡(luò)上傳輸并最終顯示在監(jiān)控客戶端上,這就需要設(shè)計一個網(wǎng)絡(luò)視頻服務(wù)器來負(fù)責(zé)接收監(jiān)控終端的視頻信號傳輸請求,然后讀取視頻信號并通過特定的網(wǎng)絡(luò)協(xié)議來傳輸視頻信號。
根據(jù)本設(shè)計的要求和軟硬件環(huán)境,視頻服務(wù)器與客戶端之間采用TCP/IP協(xié)議進(jìn)行通訊,使用C語言編寫Socket套接字程序來實(shí)現(xiàn)視頻數(shù)據(jù)的傳輸。在Linux中的網(wǎng)絡(luò)編程是通過Socket接口來進(jìn)行的??梢园裇ocket接口是一種特殊的I/O,也是一種文件描述符。每一個socket的表示是用一個半相關(guān)描述{協(xié)議,本地地址,本地端口},而一個完整的表示則是用一個相關(guān)描述{協(xié)議,本地地址、本地端口、遠(yuǎn)程地址、遠(yuǎn)程端口}。使用Socket調(diào)用后,只是產(chǎn)生了一個可以使用的Socket描述,但此時還不能進(jìn)行通信,還需要調(diào)用其他的函數(shù),直到Socket中所指的結(jié)構(gòu)需要的信息都得到時,才能建立起連接。Socket網(wǎng)絡(luò)編程的基本流程如圖8所示。
本系統(tǒng)測試的主要工作是攝像頭采集視頻信息經(jīng)過ARM目標(biāo)板處理信息之后,發(fā)送到網(wǎng)絡(luò)服務(wù)器,再在Web瀏覽器中顯示出監(jiān)控畫面。整個系統(tǒng)測試步驟如下:1)連接USB攝像頭,以及目標(biāo)板上的網(wǎng)線;2)給系統(tǒng)上電,啟動ARM操作系統(tǒng);3)通過Web瀏覽器登錄用戶網(wǎng)頁,進(jìn)入視頻監(jiān)控頁面;4)讀取監(jiān)控畫面。
在系統(tǒng)測試開始時,點(diǎn)擊左側(cè)的監(jiān)控按鈕,就開始獲取視頻信息。視頻信息在客戶端網(wǎng)頁顯示出來了,實(shí)現(xiàn)了視頻監(jiān)控的目的,達(dá)到了本設(shè)計的預(yù)期目標(biāo),具有一定的實(shí)際應(yīng)用價值。
[1] 劉富強(qiáng). 數(shù)字視頻監(jiān)控系統(tǒng)開發(fā)及應(yīng)用[M]. 北京:機(jī)械工業(yè)出版社,2003,(3):15-17.
[2] 陳績. ARM9嵌入式技術(shù)及Linux高級實(shí)踐教程[M]. 第l版. 北京:北京航空航大學(xué)出版社,2005.
[3] 杜春雷. ARM體系結(jié)構(gòu)與編程[M]. 北京:清華大學(xué)出版社, 2003.
[4] 譚云福, 張建忠. 基于s3c2410微控制器的視頻采集系統(tǒng)設(shè)計[J]. 電子器件, 2008, 31(4):1237-1240.
[5] 鄭偉, 徐榮華, 王欽若. 嵌入式Linux系統(tǒng)CGI程序設(shè)計技術(shù)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2004, (10):21-23.
[6] 袁宇麗. 基于HTML網(wǎng)頁的Web信息提取研究[D].電子科技大學(xué), 2006.
Research on Embedded Remote Video Monitoring System
Wan Cong,Wang Bangqi
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TH311
A
1003-4862(2014)07-0010-04
2014-03-31
萬叢(1988-),男,碩士。研究方向:控制工程。