基于A(yíng)RM的視頻監控終端的設計與實(shí)現

發(fā)布時(shí)間:2009-6-16 13:09    發(fā)布者:ARM
關(guān)鍵詞: arm , 視頻監控
視頻監控系統在工業(yè)、軍事、民用領(lǐng)域有著(zhù)廣泛的應用,為這些行業(yè)的安全防范和環(huán)境監控起到了不可忽視的作用。視頻監控系統正逐步由模擬化走向數字化,隨著(zhù)半導體技術(shù)的飛速發(fā)展和多媒體視頻編解碼技術(shù)的日益成熟,高性能、復雜的視頻流壓縮算法在嵌入式系統中的應用成為了現實(shí)。如今監控系統多采用專(zhuān)用處理器或RISC嵌入式處理器與DSP相結合的方法實(shí)現,本文探討的是用ARM處理器與軟件壓縮相結合的辦法實(shí)現。
視頻臨控系統總體設計
  首先需要對系統進(jìn)行總體規劃,將系統劃分成幾個(gè)功能模塊,確定各個(gè)模塊的實(shí)現方法。整個(gè)視頻監控系統采用C/S結構,從主體上分為兩部分:服務(wù)器端和客戶(hù)端。服務(wù)器端主要包括S3C2410平臺上運行的采集、壓縮、傳輸程序,客戶(hù)端是PC機上運行的接收、解壓、回放程序。視頻監控終端從現場(chǎng)的攝像頭捕獲實(shí)時(shí)的視頻信息,壓縮之后通過(guò)以太網(wǎng)傳輸到視頻監控服務(wù)器上。
  如系統結構圖(圖1)所示,視頻圖像采集和打包發(fā)送在服務(wù)器端完成,圖像的接收解包和回放將在客戶(hù)端完成。

系統的硬件設計
  系統采用模塊化設計方案,主要包括以下幾個(gè)模塊:主控制器模塊、儲存電路模塊、外圍接口電路模塊、電源和復位電路,如圖2所示。

  S3C2410主控器模塊
  主控器模塊是整個(gè)系統的核心,采用的S3C2410處理器是Samsung公司基于A(yíng)RM920T處理器核的16/32位微控制器,該處理器最高運行頻率可達到203MHz,它的低功耗、精簡(jiǎn)和全靜態(tài)設計特別適合于對成本和功耗敏感的應用。S3C2410提供了豐富的片內資源,支持Linux,是本系統的合適選擇。它能完成整個(gè)系統的調度工作,在系統上電時(shí)配置所有需工作的芯片的功能寄存器,完成視頻流的編碼,并通過(guò)以太網(wǎng)控制器控制物理層芯片發(fā)送視頻碼流。
  系統存儲電路模塊
  主控器還需一些外圍存儲單元如Nand Flash,和SDRAM。Nand Flash 中包含Linux 的Bootloader、系統內核、文件系統、應用程序以及環(huán)境變量和系統配置文件等;SDRAM讀寫(xiě)速度快,系統運行時(shí)把它作為內存單元使用。設計采用了64M的Nand Flash和64M的SDRAM。
  外圍電路模塊
  本設計用到的外設有USB接口,網(wǎng)卡接口,RS232接口和JTAG接口。
  視頻監控終端的USB主控制器模塊通過(guò)專(zhuān)用的USB集線(xiàn)器與多個(gè)USB攝像頭相連。在實(shí)時(shí)監控狀態(tài)下,各個(gè)攝像頭上捕獲的圖像數據通過(guò)USB集線(xiàn)器傳輸到視頻監控終端的USB主控制器模塊上,然后再由USB主控制器模塊交由S3C2410處理器集中處理。S3C2410對采集到的圖像進(jìn)行實(shí)時(shí)編碼壓縮,編碼之后的碼流直接傳輸到發(fā)送緩沖區中,等候發(fā)送。
  本設計采用CS8900A擴展網(wǎng)絡(luò )接口,它是CIRRUSLOGIC公司生產(chǎn)的16位以太網(wǎng)控制器,通過(guò)內部寄存器的設置來(lái)適應不同的應用環(huán)境。S3C2410通過(guò)地址、數據、控制線(xiàn)以及片選信號線(xiàn)對CS8900A網(wǎng)絡(luò )芯片進(jìn)行控制和通信。CS8900A與S3C2410的連接如圖3所示,CS8900A由S3C2410的nGCS3信號選通,CS8900A的INTRQ0端用來(lái)產(chǎn)生中斷信號,與S3C2410的16位數據總線(xiàn)相連,地址線(xiàn)使用了A[24:0]。


  CS8900A以太網(wǎng)控制芯片通過(guò)DMA通道進(jìn)行數據的傳輸。首先設置好傳輸控制和傳輸地址寄存器的參數,依次從指定的數據存儲區域讀取數據,送入內部發(fā)送緩沖器中,用MAC對數據進(jìn)行封裝發(fā)送。一組數據發(fā)送完后,請求DMA中斷,由S3C2410進(jìn)行處理。
  RS-232接口與PC機串行總線(xiàn)相連,通過(guò)PC機對嵌入式系統進(jìn)行相關(guān)信息顯示和控制。而JTAG接口主要是對系統進(jìn)行調試,還可將程序燒寫(xiě)到Flash中。
系統的軟件設計
  視頻監控終端的軟件設計主要完成兩方面的工作:
 。1)在硬件上搭建一個(gè)軟件平臺,搭建嵌入式Linux軟件開(kāi)發(fā)平臺需要完成UBOOT移植、嵌入式Linux操作系統內核移植以及嵌入式Linux操作系統的設備驅動(dòng)程序的開(kāi)發(fā)等工作。
 。2)在軟件平臺的基礎上,開(kāi)發(fā)系統的應用程序。借助交叉編譯工具,開(kāi)發(fā)視頻監控終端上運行的采集、壓縮、傳輸程序。
  構建基于S3C2410的Linux平臺
  Linux具有許多優(yōu)點(diǎn),如開(kāi)放源碼;功能強大的內核,支持多用戶(hù)、多線(xiàn)程、多進(jìn)程、實(shí)時(shí)性好、功能強大穩定;大小功能可定制;支持多種體系結構。
  構建嵌入式Linux開(kāi)發(fā)平臺需要先構建交叉編譯環(huán)境,如圖4所示。一套完整的交叉編譯環(huán)境包括主機和目標機。在開(kāi)發(fā)中主機是一臺裝有紅帽公司的FedoreCore 2操作系統的PC機,目標機是基于S3C2410的視頻監控終端。選用的交叉編譯器是GCC3.3.4 for ARM版,嵌入式Linux內核源代碼包版本號為2.6.8RC。

  2.6.8RC版的Linux內核源代碼包中包含了所有的功能模塊。系統中只用到了其中的一部分。因此,編譯內核之前首先要配置內核,裁減掉冗余的功能模塊,經(jīng)過(guò)定制的內核才符合系統設計。具體步驟如下:
 。1)鍵入命令makemenuconfig,對內核進(jìn)行配置,選擇YAFFS文件系統,支持NFS啟動(dòng),系統使用的是USB接口的攝像頭,故要啟用USB設備支持模塊,包括USB設備文件支持模塊、USB主控制器驅動(dòng)模塊等。此外,USB攝像頭屬于視頻設備,為了使應用程序能夠訪(fǎng)問(wèn)它,還需要啟用Video4Linux模塊。
 。2)用make dep命令生成內核程序間依賴(lài)關(guān)系。
 。3)make zImage命令生成內核映像文件。
 。4)make modules和make modules_install命令生成系統可加載模塊。
  這樣就生成了zImage內核映像文件,把它下載到目標平臺的Flash中。
  本設計采用USB外置攝像頭,在內核配置時(shí)要求以模塊形式加載。首先要完成驅動(dòng)程序,驅動(dòng)中需要提供基本的I/O操作接口函數open、read、write、close的實(shí)現,對中斷的處理實(shí)現,內存映射功能以及對I/O通道的控制接口函數ioctl等,并把他們定義在structfile_operations中。這樣當應用程序對設備文件進(jìn)行諸如open、close、read、write等,系統調用操作時(shí),嵌入式Linux內核將通過(guò)file_operations結構訪(fǎng)問(wèn)驅動(dòng)程序提供的函數。接著(zhù)把USB驅動(dòng)程序編譯成可以動(dòng)態(tài)加載的模塊,這樣攝像頭就可正常工作了。
  視頻監控終端軟件的設計
  視頻監控終端軟件按功能分為三部分:視頻采集、壓縮、傳輸。這個(gè)軟件的開(kāi)發(fā)都是基于先前配置好的嵌入式內核。
  (1)視頻采集部分
  使用Video4Linux接口函數訪(fǎng)問(wèn)USB攝像頭設備,捕獲實(shí)時(shí)的視頻流。首先完成v4l_struct數據結構的定義,如設備基本信息,圖像屬性,各個(gè)信號源屬性等;采集模塊一方面通過(guò)USB集線(xiàn)器采集USB攝像頭中的圖像,另一方面啟動(dòng)多個(gè)采集線(xiàn)程,分別在不同的端口上監聽(tīng),一旦有請求連接,采集線(xiàn)程立即從設備緩沖區中把視頻流數據讀出,放入到視頻處理緩沖區中進(jìn)行下一步的處理。
  (2)視頻數據的壓縮部分
  在視頻監控系統中,大量的數據需要通過(guò)網(wǎng)絡(luò )傳輸,為了保證傳輸質(zhì)量和傳輸實(shí)時(shí)性,就需要在傳輸之前進(jìn)行編碼壓縮以減少數據量,本文采用MPEG-4編碼標準進(jìn)行數據壓縮。在網(wǎng)絡(luò )上可以下載到開(kāi)源的xvidcore軟件作為視頻壓縮的核心算法,xvidcore是一個(gè)高效的、移植性很強的多媒體編碼軟件,將它在PC機上進(jìn)行交叉編譯,生成的文件拷貝到目標系統下。
  (3) 視頻數據傳輸部分
  傳輸模塊的作用在于把壓縮之后的視頻流傳送到遠程的PC機客戶(hù)上,視頻流數據的傳輸是基于TCP/IP協(xié)議。視頻傳輸采用了標準的RTP傳輸協(xié)議。RTP是目前解決流媒體實(shí)時(shí)傳輸問(wèn)題的最好辦法,在Linux平臺上進(jìn)行實(shí)時(shí)流媒體編程,需要使用一些開(kāi)放源代碼的RTP庫,如LIBRTP、JRTPLIB等。定義一種較為簡(jiǎn)單的握手協(xié)議:PC機端的采集程序不停地發(fā)請求數據包到采集終端,采集終端把已經(jīng)捕獲的圖像打包返回給主機。每個(gè)RTP信息包被封裝在UDP消息段中,然后再封裝在IP數據包中發(fā)送出去。接收方自動(dòng)組裝接收到的數據幀,還原成視頻數據。
結束語(yǔ)
  本文介紹了一種基于A(yíng)RM的視頻監控系統的設計方案,采用軟壓縮算法,討論了系統的硬件和軟件設計。本系統和市場(chǎng)上其它視頻監控系統相比,開(kāi)發(fā)周期短,價(jià)格低廉,適用于對視頻圖像要求不太高的場(chǎng)合。
本文地址:http://selenalain.com/thread-2761-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页