一、引言
應用嵌入式網絡技術的監控系統是監控領域最新的發展趨勢,嵌入式網絡監控系統是電子技術、計算機技術、通信技術和自動化技術快速發展并相互結合的高新技術產品,嵌入式網絡技術改變以往的監控系統體系結構,滿足了現代監控系統的可擴展性、分布式、實時性等,可廣泛應用在電信、電力、交通、銀行、水利、智能大廈等領域。正是在這一背景下,本文設計了一種嵌入式網絡化視頻監控系統,該系統在32位高性能嵌入式處理器和專用視頻壓縮芯片的硬件平臺上,采用MPEG-4編碼技術,嵌入式Linux操作系統和流媒體技術進行設計。利用本系統可以進行網絡數字化視頻監控,具有體積小、圖像質量穩定、遠距離監控等優點,具有良好的應用與發展前景。 本文從視頻監控技術的發展歷史和嵌入式系統的現狀入手,分析了嵌入式網絡視頻監控系統相關技術,對通用的嵌入式處理器和專用視頻壓縮芯片進行了深入的研究,給出了整個系統的設計方案和功能規劃。基于上面的背景和對市場進行深入調查取證,研究了目前流行的嵌入式系統和MPEG-4專用視頻壓縮芯片方案,在嵌入式系統方面確定了在AT91RM9200芯片上構建嵌入式Web服務器的解決方案。
二、系統的總體設計
整個網絡視頻監控系統采用C/S結構,從主體上分為兩部分:服務器端和客戶端。服務器端主要包括嵌入式處理器、攝像頭及其他外圍輔助設備,同時還包含運行在嵌入式平臺上的采集、壓縮與傳輸程序;客戶端則是普通PC機,通過它進行圖像接收與回放。網絡視頻監控系統的基本處理機理,即前端的視頻監控服務器從現場的攝像頭捕獲實時的視頻信息,壓縮處理后再通過以太網傳輸到遠端的監控終端上。
系統的整體結構如圖1所示,視頻圖像采集和打包發送在服務器端完成,圖像的接收與回放將在客戶端完成。
圖1、系統結構圖
三、系統的硬件設計
系統采用模塊化設計方案,主要包括以下幾個模塊:主控制器模塊、存儲電路模塊、外圍接口電路模塊、電源和復位電路,如圖2所示。
圖2、系統硬件結構圖
1、AT91RM9200主控器模塊
主控器模塊是整個系統的核心,選用的是ATMEL公司的AT91RM9200。它是一款基于ARM920T 核的32位微控制器。該處理器最高運行頻率可達到200MPS,它的低功耗、精簡和全靜態設計特別適合于對成本和功耗敏感的應用。AT91RM9200提供了豐富的片內資源,支持Linux,是本系統的合適選擇。它能完成整個系統的調度工作,在系統上電時配置所有需工作的芯片的功能寄存器,完成視頻流的編碼,并通過以太網控制器控制物理層芯片發送視頻碼流。
AT91RM9200微處理器最高主頻為180 MHz,其雙向、32位外部數據總線支持8/16/32位數據寬度,26位地址總線可以對最大64 MB空間進行尋址。片內集成了非常豐富的外圍功能模塊,包括內存管理單元(MMU)、內部包含16 KB的SRAM和128 KB的ROM,16 KB的數據緩存以及16 KB的指令緩存。其外部總線接口控制器(EBI),支持SDRAM,靜態存儲器,Burst FLASH以及Compact FLASH。為了提高系統性能還擴展了以下外設;增強的時鐘發生器與電源管理控制器(PMC);系統定時器(ST);實時時鐘(RTC);高級中斷控制器(AIC);4個32位PIO控制器;20通道的外設數據控制器(PDC);10/100兆Base-T型以太網卡接口;4個通用同步/異步串行收發器(UASRT)以及JTAG/ICE接口等。
在系統中AT91RM9200需要1.8 V和3.3 V電源,另外,大部分外圍器件需要3.3 V電源,小部分外圍器件還需要5 V電源,假設輸入電壓為5 V直流穩壓電源。為了得到可靠的3.3 V電壓,此處選用的電壓轉換芯片是NCPlll7ST33T3,它的輸入電壓為5 V,輸出電壓為3.3 V,最大輸出電流為0.8 A。同樣,為了得到可靠的1.8 V電壓,選用NCPlll7STl8T3,它的輸入電壓為5 V,輸出電壓為1.8 V,最大輸出電流為0.8 A。由于3.3 V和1.8 V屬于NCPlll7系列的2個固定輸出電壓,所以設計比較簡單,只需要在電路中與芯片并聯2個典型值為10 tlf、的濾波電容即可。
2、系統存儲電路模塊
主控器還需一些外圍存儲單元如Nor Flash和SDRAM。Nor Flash 中包含Linux 的Bootloader、系統內核、文件系統、應用程序以及環境變量和系統配置文件等等,同時還預留了一部分空間作為用戶使用;SDRAM讀寫速度快,系統運行時把它作為內存單元使用。為充分保證系統的可擴充性,系統設計采用了8M的Nor Flash和64M的SDRAM。
在網絡視頻監控系統的設計中,Flash用于存放操作系統、文件系統和驅動程序等;SDRAM主要用作運行嵌入式操作系統、應用服務程序和臨時存放視音頻信息。Flash存儲器選用的是Spansion的S29AL016D70TF。它是一個16 Mbit的Flash存儲器,容量為2,097,152個字節;采用48腳TSOP封裝和3.0V電源供電。S29AL016D70TF與Hi3510的接口連接框圖如圖3所示。其中。CE#管腳為芯片使能輸入,由于此Flash用于存儲引導程序,故此引腳連接EBICSlN#;OE#管腳為輸出使能輸入,連接EBIOEN;RY/BY為準備或忙輸出管腳,懸空。
圖3 Flash存儲器接口設計框圖
SDRDM存儲器選用的是Hynix的HY57V281620ET,它的容量位是16MB(4Banks×2M×16bits),單片數據寬度是16位,為了增大數據吞吐能力,選取兩片SDRAM構成32位地址寬度,存儲容量為32MB。HY57V281620ET的工作電壓為3.3V,常見封裝為54腳TSOP,兼容LVTTL接口。支持自動刷新(Auto-Refresh)和自刷新(Self-Refresh)。HY57V281620ET與Hi3510的接口連接框圖如圖4所示。
圖4 SDRDM存儲器接口設計框圖
3、視頻采集模塊設計
視頻采集芯片選用Philips公司生產的SAA7113H,它是一款功能強大且操作簡單的9位視頻輸入處理芯片,采用CMOS工藝,通過I2C總線與處理器或DSP連接可方便地構成應用系統。它內部包含四路模擬處理通道,可以選擇視頻信號源并可抗混疊濾波,同時還可以進行模數轉換、自動箝位、自動增益控制(AGC)、時鐘產生(CGC)、多制式解碼,另外還可以對亮度、對比度和飽和度進行控制。設置SAA7113H芯片的工作時鐘為24.576MHz,數據輸出格式為4:2:2,幀頻為25fps。視頻采集芯片SAA7113H在上電后,并不是立即采集模擬視頻信號進行A/D轉換,它必須由Hi3510通過I2C總線對其內部寄存器進行初始化設置后,才能正常工作。視頻采集芯片SAA7113H與Hi3510的接口連接框圖如圖5所示。
圖5視頻采集電路原理框圖
4、外圍電路模塊
本設計用到的外設有USB接口,網卡接口,串行接口和JTAG接口。同時為保證系統將來的可擴展性,系統還預留了PC104接口和大量的GPIO接口。AT91RM9200處理器的片內以太網卡端口和網絡物理層芯片DM9161E 的MII 接口通信。而且片內以太網卡內置了獨立的雙緩沖的讀寫DMA 通道,這樣大大提供了數據的發送速度,同時不影響AT91RM9200 的正常運行。
為保證視頻采集質量,監控系統選用了羅技等高端品牌的產品,然后攝像頭通過專用的USB集線器與處理器單元的USB接口連接。在實時監控狀態下,各個攝像頭上捕獲的圖像數據通過USB集線器傳輸到視頻監控系統的USB主控制器模塊上,然后再由USB主控制器模塊交由AT91RM9200處理器集中處理。AT91RM9200對采集到的圖像進行實時編碼壓縮,編碼之后的碼流直接傳輸到發送緩沖區中,等候發送。最后由上層應用程序將處理后的視頻數據通過以太網口進行發送。
四、軟件方案
系統的應用軟件建立在Linux操作系統之上,嵌入式Linux具有許多優點,如開放源碼,功能強大的內核,支持多用戶、多線程、多進程、實時性好、功能強大穩定;大小功能可定制等。本系統采用的嵌入式Linux系統是基于2.6.21的內核,支持了內核搶占式調度,同時調度周期為1ms,因此大大保證了系統的實時性。此外,系統內嵌的嵌入式Linux系統實現了對所有硬件設備的驅動支持,如基于Flash的文件系統、網卡驅動程序、USB驅動程序等等,完全保證了系統的可用性。
在本系統中,軟件設計可分為3部分:視頻圖像數據采集、圖像數據的JPEG壓縮以及系統平臺的網絡通信。
1、視頻圖像數據采集的實現
首先加載USB攝像頭驅動程序,接著就是編寫一個對視頻流采集的應用程序。攝像頭中的各種I/O口的控制主要依靠Vide04Linux提供的應用程序接口函數實現,主要有Open、Read、Write等。V4L下的視頻采集1。在本系統中,將有關攝像頭的各種數據和結構封裝成了一個類,主要用到的一些系統調用函數定義如下:
open(“/dev/vide00”,O—RDWR):設備的打開。
close(fd):設備的關閉。
mmap(void+addr,size—t len,int prot,int flags,int fd,off__t offset):
設備緩沖區到內存空間的映射。
munmap(void*addr,size t len):采集工作結束后取消mmap和mbuf的綁定。
ioctl(int Rl,jnt cmd...,):控制I/O的通道。
2、Linux下圖象數據的JPEG壓縮
由于視頻信息數據量過大,因此必須在視頻傳輸前對圖像數據進行壓縮處理。在本系統中,攝像頭采集過來的圖像數據格式為RGB24,通過調用Linux下的Libjpeg庫來實現視頻數據的編碼,把RGB24圖像數據轉換為JPEG格式。下面簡述下整個壓縮處理過程:首先初始化JPEG壓縮的圖片格式,調用jpeg_set—defauhs(&cmjpeg),接著初始化JPEG壓縮圖片質量,通過jpeg_set—ratio(&cmjpeg,raTIo,7rURE)實現。
開始壓縮:jpeg_start—compress(&cmjpeg,TURE);for(i--0,line--buf;ibuf 0。((_dst_ptr)cmjpeg.dest)一》buffer,size);
釋放內存并銷毀cmjpeg變量:jpeg_destory_compress(&cmjpeg)
jpeg_buff_free(&emjpeg);
最后返回return size;返回值size標記了緩沖區中視頻數據的實際長度。
3、系統網絡通訊的實現
本系統采用B/S(瀏覽器/服務器)模式的通信構架。用戶只需在遠程客戶機安裝一個普通的瀏覽器軟件,其他大部分工作由Web服務器完成。B/S模式開發的監控軟件,降低了對系統軟件的要求,避免了用戶對客戶端的安裝和設置,實現了軟件安裝的簡單化、自由化。
視頻監控系統實現了對USB攝像頭的驅動程序,這樣上層視頻采集程序可以直接通過標準的Video4Linux接口函數訪問USB攝像頭設備,捕獲實時的視頻流,放入上層緩沖區,同時通知上層服務器軟件處理。
系統中內置了一個完整的基于網絡的多用戶視頻服務器軟件,這樣當服務器軟件監聽到有網絡客戶連接時,立即啟動采集進程從緩沖區中把處理后的視頻流數據讀出,然后發送給相應的客戶連接。同時為了保證監控客戶端的簡單性與統一性,本系統中的客戶端可以直接使用IE軟件,即用戶打開PC端的IE軟件后,直接在地址欄內輸入需要訪問的設備IP地址或者域名,如192.168.0.5,此時就可以在IE瀏覽器中顯示當前的實時采集圖像。
五、結論
本系統采用嵌入式Linux,操作系統和ARM核處理器的硬件平臺相結合,視頻信號從前端圖像采集設備輸出時即為數字信號,以網絡為傳輸媒介,并基于國際通用的TCP/IP協議,使用流媒體技術實現視頻信號在網絡上的傳輸,構成了一個高質量、監控方式靈活、可靠性好和具有易于擴展架構的網絡視頻監控系統。ARM處理核和Linux。相結合,很好地體現了整個監控小型化、數字化、網絡化、低功耗的優點。系統電路板現已成功配置和運行,調試結果表明,整個系統具有穩定可靠、安裝簡便、成本低廉等特點,可廣泛使用在家庭、銀行、超市、公共場所等。
評論
查看更多