<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于S3C2410網絡視頻監(jiān)控系統(tǒng)的設計與實現

          基于S3C2410網絡視頻監(jiān)控系統(tǒng)的設計與實現

          作者: 時間:2008-04-02 來源: 收藏

            1 引言

          本文引用地址:http://www.ex-cimer.com/article/81070.htm

            視頻監(jiān)控系統(tǒng)是日常生產生活中的重要輔助設備,應用十分廣泛。當前視頻監(jiān)控系統(tǒng)正逐步由模擬化走向數字化。隨著視頻壓縮技術和網絡技術的發(fā)展,開發(fā)新一代的基于計算機網絡和多媒體MPEG-4壓縮算法的視頻監(jiān)控系統(tǒng)已成為整個行業(yè)技術發(fā)展的主要方向之一。通常人們采用DSP與MPEG-4算法結合的方案來實現,在編程的工作上有巨大的復雜程度,而且成本也過高。本文提出并研究設計一種基于MPEG-4專用壓縮芯片MPG440、以嵌入式Linux為操作系統(tǒng)的視頻監(jiān)控系統(tǒng)方案,不僅開發(fā)便捷、成本低廉,而且實時性較好,適應范圍廣。

           2 視頻監(jiān)控系統(tǒng)總體設計

            整個系統(tǒng)的總體設計分為硬件和軟件系統(tǒng)兩部分。硬件設計部分主要包括以下幾個模塊:系統(tǒng)主控制器、壓縮編碼部分、網絡接口模塊、攝像機控制模塊以及PC端監(jiān)控部分。系統(tǒng)的主控制器模塊主要有主控制芯片S3C2410、數據存儲Nand Flash以及內存單元SDRAM組成。其中主控制芯片S3C2410主要負責系統(tǒng)的整體調度,為整個系統(tǒng)的核心;Nand Flash里固化了Linux的Bootloader、系統(tǒng)內核、文件系統(tǒng)、應用程序以及環(huán)境變量和系統(tǒng)配置文件等;SDRAM作為內存單元供系統(tǒng)運行時使用。壓縮編碼部分主要由視頻數據采集芯片、MPEG-4壓縮芯片以及SDRAM組成,負責將視頻流轉化為MPEG-4數據流。網絡接口模塊主要負責傳輸MPEG-4視頻流。攝像機的控制部分主要由串口芯片組成,用于實現轉發(fā)控制相機命令的功能。PC端則通過瀏覽器進行視頻的監(jiān)測并可發(fā)送控制命令對攝像機狀態(tài)進行控制。主控制器通過對片內Nand Flash控制器的操作將Linux內核從Nand Flash中轉入SDRAM中,Linux系統(tǒng)內核從內存單元啟動。系統(tǒng)啟動后,主控制器通過主機接口(HPI)控制MPEG-4壓縮編碼模塊,系統(tǒng)結構框圖如圖(1)所示。


            系統(tǒng)結構框圖


            圖(1) 系統(tǒng)結構框圖

            系統(tǒng)的軟件部分主要由嵌入式Linux的Bootloader和內核的移植、MPEG-4壓縮編碼模塊、CGI控制程序的實現以及MPEG-4解碼程序的實現等四部分組成。Linux系統(tǒng)存儲在Nand Flash中,負責系統(tǒng)軟件的調度。MPEG-4壓縮編碼模塊主要負責模擬視頻流的采集和A/D轉換,并將數字視頻流壓縮為MPEG-4數據流以便網絡的傳輸。CGI控制程序主要實現攝像機的控制以及對MPEG-4視頻流的相關設置。MPEG-4解碼程序則是在PC端對通過網絡取得的MPEG-4數據流進行解碼播放。

           3 系統(tǒng)硬件設計

            3.1 主控制器模塊

            在整個系統(tǒng)中,主控制器是核心部件。文中選用的是三星公司的S3C2410,是一款基于ARM920T核的32位微控制器,其主頻可達203HZ,性價比較高,能很好的滿足嵌入式Linux系統(tǒng)的性能需求。其主要功能是在正常工作狀態(tài)下調度控制整個系統(tǒng)工作,在系統(tǒng)上電時配置所有需工作的芯片的功能寄存器,并通過以太網控制器控制物理層芯片發(fā)送視頻碼流。

            S3C2410通過片內的Nand Flash控制器和SDRAM控制器對外圍的 Nand Flash和內存單元SDRAM進行控制,利用片內的標準UART實現對串口芯片的控制,通過片內地址、數據以及控制總線對片外的網絡芯片進行控制。系統(tǒng)控制原理框圖如圖(2)所示。


          控制原理


            3.2 壓縮編碼模塊

            壓縮編碼模塊包括兩部分:模擬視頻信號采集和MPEG-4壓縮模塊。視頻輸入解碼芯片采用TI公司的TVP5150,壓縮編碼芯片采用映佳公司的MPG440。TVP5105支持NTSC/PAL/SECAM等3種制式,實現模擬視頻信號轉換為數字并行信號ITU-R BT.601 或ITU-R BT.656碼流格式,正常工作時的功耗僅為115mW。MPG440具有采用符合工業(yè)標準的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總線發(fā)送到S3C2410以便通過網絡進行傳輸。

            3.3 網絡傳輸模塊

            S3C2410通過地址、數據、控制線以及片選信號線對CS8900A網絡芯片進行控制和通信。主芯片發(fā)送信號時首先置發(fā)送使能信號,數據發(fā)送信號端TXD0~TXD1與CS8900A的

            TXD0~TXD1引腳連接,作為數據的發(fā)送通道。數據接收端RXD0~RXD1與CS8900A的RXD0~RXD1引腳對應連接,為數據接收通道。CS8900A由S3C2410選通信號線nCS3來選通,通過對CS8900A一系列寄存器的設置,可以訪問CS8900A系統(tǒng)存儲空間。CS8900A的INTRQ0端用來產生中斷信號。

            以太網控制芯片通過DMA通道進行數據的傳輸。首先設置好傳輸控制和傳輸地址寄存器的參數,依次從指定的數據存儲區(qū)域讀取數據,送入內部發(fā)送緩沖器中,用MAC對數據進行封狀發(fā)送,并同時記錄已發(fā)送完的字節(jié)數,等到整個數據塊發(fā)送完畢。一組數據發(fā)送完后,請求DMA中斷,由S3C2410進行處理。整個網絡模塊硬件設計原理圖如圖(4)所示。


          網絡模塊硬件設計原理圖


            4 系統(tǒng)軟件設計

            整個Linux系統(tǒng)由四部分組成:引導加載程序(BootLoader)、Linux內核(Kernel)、文件系統(tǒng)(filesystem)以及用戶空間(user)。四者分別被存儲在Nand Flash的四個分區(qū)模塊中。本文中采用的是較節(jié)省空間的CRAMFS只讀文件系統(tǒng),而Bootloader以及內核Kernel等在移植完成后可不需動態(tài)改變,user用戶空間則用來存放一些可以動態(tài)更新的配置文件,需要進行多次的讀寫操作,故可以使用支持動態(tài)擦寫保存的JFFS2文件系統(tǒng)。由于Linux系統(tǒng)移植技術已經很成熟,本文中不再細述,下文主要介紹MPEG-4壓縮編碼和CGI模塊的程序設計。

            4.1 MPEG-4壓縮編碼程序設計

            整個壓縮編碼模塊完成了MPG440和TVP5150相關寄存器的配置,保證了MPEG-4數據流的正常輸出。系統(tǒng)啟動后,首先配置MPG440的寄存器,初始化完成后,通過I2C總線對TVP5150進行初始化配置。在壓縮編碼過程中,MPEG-4數據流接收存儲程序由MPG440的數據流緩沖器標志信號來進行控制。當緩沖器滿時,RISC_INT0置低,主控制器通過DMA通道把從MPG440的HPI接口接收過來的碼流通過網絡通道傳輸到PC端。其壓縮編碼模塊程序流程圖如圖(5)所示。


          壓縮編碼模塊程序流程圖


            4.2 CGI程序設計

            CGI(Common Gateway Interface)是外部應用程序與萬維網(WWW)服務器交互通信的一個標準接口。在本系統(tǒng)中,其工作過程如下:在監(jiān)控端的PC機的瀏覽器中輸入網絡攝像機的IP地址,嵌入式網絡服務器根據請求,將相應的控制頁面反饋給IE瀏覽器,用戶填寫完表單,然后提交,CGI程序根據表單的信息,來處理相應的事件,如設置MPG440相關屬性、相機的云臺和鏡頭的相關操作等。CGI的控制原理圖如圖(6)所示。


          CGI的控制原理圖


            CGI模塊程序的設計主要包括如下幾部分:WEB服務器的配置、html頁面的編寫、CGI程序的設計。嵌入式WEB服務器采用的是Boa,其配置是以文件的形式提供,放在文件系統(tǒng)中的/etc/httpd/conf/目錄下面,其配置主要涉及以下幾個方面:

            (1)配置根文件的路徑:“DocumentRoot /home/httpd/html/”,html頁面必須放到此目錄下。

            (2)配置CGI程序所存放路徑:“ScriptAlias /cgi-bin/ home/httpd/cgi-bin/”。

            (3)配置環(huán)境變量:“SetEnv D_LIBRARY-_PATH=/lib:/usr/local/lib:/usr/lib”,該變量將會被傳送到CGI腳本和SSI頁面,以保證CIG程序能正確找到所依賴的庫文件。

            網頁頁面的編寫采用html與shtml相結合的方法。Html的解析速度較快,而shtml可以在普通網頁中嵌入外部CGI程序,通過這種方式將系統(tǒng)的默認配置反饋給客戶端。

            CGI程序的設計采用的是C語言和shell腳本相結合的方式,其編寫過程和Linux下其他程序的編寫相同,在此不在贅述。

            4.3 MPEG-4解碼程序

            由于映佳科技已經提供了供二次開發(fā)的MPEG-4解碼插件OCX,OCX在PC機注冊后可以方便的被網頁調用,實現在PC端實時觀看圖象。

            5 結語

            本文敘述了一種基于S3C2410、MPG440以及TVP5150等芯片設計的嵌入式網絡視頻監(jiān)控系統(tǒng)的實現方案。在測試過程中,該系統(tǒng)實時性好、穩(wěn)定可靠、圖象質量也比較優(yōu)越,可廣泛應用于銀行、交通以及工業(yè)監(jiān)控、視頻會議等眾多領域。

            本文作者創(chuàng)新點:設計了一個基于S3C2410的遠程圖像監(jiān)控系統(tǒng)的實現方案,詳細討論了整個系統(tǒng)中的硬、軟件設計與實現。

            參考文獻:

            [1]趙印偉,謝勝利. 基于AT91RM9200的嵌入式網絡攝像機的設計與實現[J]微計算機信息2006,5:26-28

            [2]缐崴,孫先仿. 攝像機運動參數估計中的8點算法及其改進[J]微計算機信息2005, 8:99-100

            [3]Ken Arnold, Embedded Controller Hardware Designe, USA, LLH Technology Publishing

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          c語言相關文章:c語言教程


          linux相關文章:linux教程


          攝像頭相關文章:攝像頭原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();