1、引言
視頻監控系統是日常生產生活中的重要輔助設備,應用十分廣泛。當前視頻監控系統正逐步由模擬化走向數字化。隨著視頻壓縮技術和網絡技術的發展,開發新一代的基于計算機網絡和多媒體MPEG-4壓縮算法的視頻監控系統已成為整個行業技術發展的主要方向之一。通常人們采用DSP與MPEG-4算法結合的方案來實現,在編程的工作上有巨大的復雜程度,而且成本也過高。本文提出并研究設計一種基于MPEG-4專用壓縮芯片MPG440、以嵌入式Linux為操作系統的視頻監控系統方案,不僅開發便捷、成本低廉,而且實時性較好,適應范圍廣。
2、視頻監控系統總體設計
整個系統的總體設計分為硬件和軟件系統兩部分。硬件設計部分主要包括以下幾個模塊:系統主控制器、壓縮編碼部分、網絡接口模塊、攝像機控制模塊以及PC端監控部分。系統的主控制器模塊主要有主控制芯片S3C2410、數據存儲NandFlash以及內存單元SDRAM組成。其中主控制芯片S3C2410主要負責系統的整體調度,為整個系統的核心;NandFlash里固化了Linux的Bootloader、系統內核、文件系統、應用程序以及環境變量和系統配置文件等;SDRAM作為內存單元供系統運行時使用。壓縮編碼部分主要由視頻數據采集芯片、MPEG-4壓縮芯片以及SDRAM組成,負責將視頻流轉化為MPEG-4數據流。網絡接口模塊主要負責傳輸MPEG-4視頻流。攝像機的控制部分主要由串口芯片組成,用于實現轉發控制相機命令的功能。PC端則通過瀏覽器進行視頻的監測并可發送控制命令對攝像機狀態進行控制。主控制器通過對片內NandFlash控制器的操作將Linux內核從NandFlash中轉入SDRAM中,Linux系統內核從內存單元啟動。系統啟動后,主控制器通過主機接口(HPI)控制MPEG-4壓縮編碼模塊,系統結構框圖如圖(1)所示。
圖(1)系統結構框圖
系統的軟件部分主要由嵌入式Linux的Bootloader和內核的移植、MPEG-4壓縮編碼模塊、CGI控制程序的實現以及MPEG-4解碼程序的實現等四部分組成。Linux系統存儲在NandFlash中,負責系統軟件的調度。MPEG-4壓縮編碼模塊主要負責模擬視頻流的采集和A/D轉換,并將數字視頻流壓縮為MPEG-4數據流以便網絡的傳輸。CGI控制程序主要實現攝像機的控制以及對MPEG-4視頻流的相關設置。MPEG-4解碼程序則是在PC端對通過網絡取得的MPEG-4數據流進行解碼播放。
3系統硬件設計
3.1主控制器模塊
在整個系統中,主控制器是核心部件。文中選用的是三星公司的S3C2410,是一款基于ARM920T核的32位微控制器,其主頻可達203HZ,性價比較高,能很好的滿足嵌入式Linux系統的性能需求。其主要功能是在正常工作狀態下調度控制整個系統工作,在系統上電時配置所有需工作的芯片的功能寄存器,并通過以太網控制器控制物理層芯片發送視頻碼流。
S3C2410通過片內的NandFlash控制器和SDRAM控制器對外圍的NandFlash和內存單元SDRAM進行控制,利用片內的標準UART實現對串口芯片的控制,通過片內地址、數據以及控制總線對片外的網絡芯片進行控制。系統控制原理框圖如圖(2)所示。
3.2壓縮編碼模塊
壓縮編碼模塊包括兩部分:模擬視頻信號采集和MPEG-4壓縮模塊。視頻輸入解碼芯片采用TI公司的TVP5150,壓縮編碼芯片采用映佳公司的MPG440。TVP5105支持NTSC/PAL/SECAM等3種制式,實現模擬視頻信號轉換為數字并行信號ITU-RBT.601或ITU-RBT.656碼流格式,正常工作時的功耗僅為115mW。MPG440具有采用符合工業標準的16b/32b的雙向主機接口,用來與視頻解碼芯片和主控制器進行通信,而且支持VGA、QVGA、CIF、QCI、D1五種分辨率模式。主控制芯片通過HPI接口實現MPG440寄存器的初始化配置,接收MPEG-4數據流,整個壓縮編碼模塊硬件原理圖如圖(3)所示。
圖(3)壓縮編碼模塊電路
解碼芯片TVP5150的AIPIA模擬信號輸入口與攝像頭的信號輸出端相連,并向壓縮編碼芯片MPG440傳送視頻信號。由于TVP5150分場同步脈沖和行同步脈沖,分別對應的輸出端為VSYNC和HSYNC,MPG440根據與之相連的VSYNC和HSYNC信號線來實現圖象的場同步和行同步操作,MPG440的視頻信號輸入數據線DATA_TV[7:0]與TVP5150的輸出端YOUT[7:0]相連。MPG440將接收到的數據流傳送到壓縮編碼單元,壓縮編碼后的視頻數據存儲到外部SDRAM中,TVP5150所需的14.31818M赫茲時鐘頻率由外部硬件電路提供,MPG440可通過I/O口對TVP5150的參數進行設置。MPG440通過片內的PDMA控制器和SDRAM控制器來實現對SDRAM的訪問,并同時將數據流通過HPI總線發送到S3C2410以便通過網絡進行傳輸。
3.3網絡傳輸模塊
S3C2410通過地址、數據、控制線以及片選信號線對CS8900A網絡芯片進行控制和通信。主芯片發送信號時首先置發送使能信號,數據發送信號端TXD0~TXD1與CS8900A的
TXD0~TXD1引腳連接,作為數據的發送通道。數據接收端RXD0~RXD1與CS8900A的RXD0~RXD1引腳對應連接,為數據接收通道。CS8900A由S3C2410選通信號線nCS3來選通,通過對CS8900A一系列寄存器的設置,可以訪問CS8900A系統存儲空間。CS8900A的INTRQ0端用來產生中斷信號。
以太網控制芯片通過DMA通道進行數據的傳輸。首先設置好傳輸控制和傳輸地址寄存器的參數,依次從指定的數據存儲區域讀取數據,送入內部發送緩沖器中,用MAC對數據進行封狀發送,并同時記錄已發送完的字節數,等到整個數據塊發送完畢。一組數據發送完后,請求DMA中斷,由S3C2410進行處理。整個網絡模塊硬件設計原理圖如圖(4)所示。
4系統軟件設計
整個Linux系統由四部分組成:引導加載程序(BootLoader)、Linux內核(Kernel)、文件系統(filesystem)以及用戶空間(u ser)。四者分別被存儲在NandFlash的四個分區模塊中。本文中采用的是較節省空間的CRAMFS只讀文件系統,而Bootloader以及內核Kernel等在移植完成后可不需動態改變,u ser用戶空間則用來存放一些可以動態更新的配置文件,需要進行多次的讀寫操作,故可以使用支持動態擦寫保存的JFFS2文件系統。由于Linux系統移植技術已經很成熟,本文中不再細述,下文主要介紹MPEG-4壓縮編碼和CGI模塊的程序設計。
4.1MPEG-4壓縮編碼程序設計
整個壓縮編碼模塊完成了MPG440和TVP5150相關寄存器的配置,保證了MPEG-4數據流的正常輸出。系統啟動后,首先配置MPG440的寄存器,初始化完成后,通過I2C總線對TVP5150進行初始化配置。在壓縮編碼過程中,MPEG-4數據流接收存儲程序由MPG440的數據流緩沖器標志信號來進行控制。當緩沖器滿時,RISC_INT0置低,主控制器通過DMA通道把從MPG440的HPI接口接收過來的碼流通過網絡通道傳輸到PC端。其壓縮編碼模塊程序流程圖如圖(5)所示。
4.2CGI程序設計
CGI(CommonGatewayInterface)是外部應用程序與萬維網(WWW)服務器交互通信的一個標準接口。在本系統中,其工作過程如下:在監控端的PC機的瀏覽器中輸入網絡攝像機的IP地址,嵌入式網絡服務器根據請求,將相應的控制頁面反饋給IE瀏覽器,用戶填寫完表單,然后提交,CGI程序根據表單的信息,來處理相應的事件,如設置MPG440相關屬性、相機的云臺和鏡頭的相關操作等。CGI的控制原理圖如圖(6)所示。
CGI模塊程序的設計主要包括如下幾部分:WEB服務器的配置、html頁面的編寫、CGI程序的設計。嵌入式WEB服務器采用的是Boa,其配置是以文件的形式提供,放在文件系統中的/etc/httpd/conf/目錄下面,其配置主要涉及以下幾個方面:
(2)配置CGI程序所存放路徑:“ScriptAlias/cgi-bin/home/httpd/cgi-bin/”。
(3)配置環境變量:“SetEnvD_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib”,該變量將會被傳送到CGI腳本和SSI頁面,以保證CIG程序能正確找到所依賴的庫文件。
網頁頁面的編寫采用html與shtml相結合的方法。Html的解析速度較快,而shtml可以在普通網頁中嵌入外部CGI程序,通過這種方式將系統的默認配置反饋給客戶端。
CGI程序的設計采用的是C語言和shell腳本相結合的方式,其編寫過程和Linux下其他程序的編寫相同,在此不在贅述。
4.3MPEG-4解碼程序
由于映佳科技已經提供了供二次開發的MPEG-4解碼插件OCX,OCX在PC機注冊后可以方便的被網頁調用,實現在PC端實時觀看圖象。
5結語
本文敘述了一種基于S3C2410、MPG440以及TVP5150等芯片設計的嵌入式網絡視頻監控系統的實現方案。在測試過程中,該系統實時性好、穩定可靠、圖象質量也比較優越,可廣泛應用于銀行、交通以及工業監控、視頻會議等眾多領域。
本文作者創新點:設計了一個基于S3C2410的遠程圖像監控系統的實現方案,詳細討論了整個系統中的硬、軟件設計與實現。
參考文獻:
[1]趙印偉,謝勝利.基于AT91RM9200的嵌入式網絡攝像機的設計與實現[J]微計算機信息2006,5:26-28
[2]缐崴,孫先仿.攝像機運動參數估計中的8點算法及其改進[J]微計算機信息2005,8:99-100
[3]KenArnold,EmbeddedControllerHardwareDesigne,USA,LLHTechnologyPublishing