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