新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于ARM的嵌入式MPEG-4遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于ARM的嵌入式MPEG-4遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者:■ 中國(guó)移動(dòng)(深圳)有限公司 王海波 時(shí)間:2005-04-27 來(lái)源:eaw 收藏

摘    要:本文詳細(xì)介紹了基于ARM的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)的視頻采集、壓縮、傳輸和系統(tǒng)控制等方面的設(shè)計(jì),提供了基于TCP/IP協(xié)議的C/S軟件結(jié)構(gòu)和通信的設(shè)計(jì)與實(shí)現(xiàn)方法。
關(guān)鍵詞:;;

在遠(yuǎn)程監(jiān)控系統(tǒng)的應(yīng)用中,往往要求監(jiān)控中心的主機(jī)可以同時(shí)接收一路或多路監(jiān)控?cái)?shù)據(jù),并且可以同時(shí)發(fā)送一路或多路的控制指令。因此,如何在有限帶寬的前提條件下,將多個(gè)現(xiàn)場(chǎng)的監(jiān)控?cái)?shù)據(jù)方便、高效地通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)傳送到監(jiān)控主機(jī)上,是該類(lèi)系統(tǒng)要解決的主要問(wèn)題。

系統(tǒng)整體結(jié)構(gòu)
為了實(shí)現(xiàn)一個(gè)基于TCP/IP網(wǎng)絡(luò)的遠(yuǎn)程數(shù)字視頻監(jiān)控系統(tǒng),本設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1中,攝像機(jī)通過(guò)RS-232接口受外界控制,控制命令為一系列的ASCII碼,可以調(diào)整攝像頭的焦距和控制云臺(tái)的轉(zhuǎn)動(dòng)。嵌入式硬編碼板也有一個(gè)RS-232接口,可通過(guò)它設(shè)置信源制式(PAL/NTSC)、編碼亮度、編碼色度、音頻速率、編碼音量和編碼速率。編碼板與網(wǎng)絡(luò)服務(wù)器集成到一個(gè)機(jī)箱里,編碼板通過(guò)PCI接口向網(wǎng)絡(luò)服務(wù)器輸出數(shù)據(jù)。網(wǎng)絡(luò)服務(wù)器有多個(gè)RS-232接口,分別與攝像機(jī)和硬編碼板上的RS-232接口相連。
播放設(shè)備由嵌入式硬解碼板和電視機(jī)組成。解碼板采用速率自適應(yīng)方式設(shè)計(jì),解碼速率自動(dòng)匹配遠(yuǎn)端編碼器的編碼速率。解碼板和網(wǎng)絡(luò)服務(wù)器同樣集成在一個(gè)機(jī)箱里。該系統(tǒng)還實(shí)現(xiàn)了軟解碼方式,在這種方式中,播放設(shè)備由一臺(tái)安裝了視頻采集卡的PC機(jī)構(gòu)成,其上運(yùn)行解碼軟件和媒體播放器,通過(guò)PC機(jī)的顯示器和音箱輸出圖像和聲音。
系統(tǒng)的記錄設(shè)備由硬盤(pán)錄像機(jī)構(gòu)成,安放于顯示點(diǎn)一側(cè),用來(lái)存儲(chǔ)系統(tǒng)圖像。
控制臺(tái)由一臺(tái)運(yùn)行Windows2000操作系統(tǒng)的PC機(jī)實(shí)現(xiàn),PC機(jī)上運(yùn)行客戶(hù)端的控制軟件。管理服務(wù)器也由一臺(tái)運(yùn)行Windows2000操作系統(tǒng)的PC機(jī)實(shí)現(xiàn),PC機(jī)上運(yùn)行系統(tǒng)管理軟件。在簡(jiǎn)化的系統(tǒng)實(shí)現(xiàn)中,管理服務(wù)器和控制臺(tái)可以在同一臺(tái)PC機(jī)上實(shí)現(xiàn),在這種情況下,管理軟件和控制軟件運(yùn)行在同一臺(tái)主機(jī)上,但仍然通過(guò)網(wǎng)絡(luò)接口通信。

系統(tǒng)硬件設(shè)計(jì)
網(wǎng)絡(luò)服務(wù)器是系統(tǒng)硬件的核心部件,它由運(yùn)行嵌入式操作系統(tǒng)的嵌入式計(jì)算機(jī)構(gòu)成,在嵌入式操作系統(tǒng)之上運(yùn)行著系統(tǒng)的核心軟件。
網(wǎng)絡(luò)服務(wù)器采用的是基于ARM 內(nèi)核的CPU——。該芯片是一款基于ARM 7TDMI RISC芯片。它一方面具有ARM處理器的:低功耗、高性能等優(yōu)點(diǎn);同時(shí)又具有豐富的片上資源,非常適合嵌入式產(chǎn)品的開(kāi)發(fā)。
多媒體編碼芯片則采用韓國(guó)INTIME公司生產(chǎn)的IME6400,該芯片提供了豐富的外圍硬件接口:支持CCIR601建議的16Bit視頻解碼器接口、32Bit數(shù)據(jù)、81MHz的SDRAM數(shù)據(jù)總線接口、I2C總線接口、I2S外部音頻/PCM編碼器/DSP接口以及靈活的主機(jī)接口,可以支持多種類(lèi)型的CPU。
圖2簡(jiǎn)單介紹了MPEG-4硬件視頻壓縮處理的結(jié)構(gòu)和網(wǎng)絡(luò)接口。MPEG-4視頻采集壓縮模塊以IME6400芯片為核心,完成對(duì)標(biāo)準(zhǔn)視頻信號(hào)(PAL或NTSC信號(hào))的A/D轉(zhuǎn)換、MPEG-4壓縮以及與之間的通信功能。圖2中視頻解碼ADC把從攝像頭輸入的模擬視頻信號(hào)轉(zhuǎn)化為數(shù)字視頻信號(hào),然后進(jìn)行編碼預(yù)處理,即把視頻解碼輸出的CCIR601格式的信號(hào)轉(zhuǎn)化為編碼器可以處理的CIF或QCIF格式,然后再進(jìn)行MPEG-4壓縮編碼。S3C44B0X上的軟件則通過(guò)總線接口單元來(lái)控制編碼器的參數(shù)設(shè)置和讀取編碼壓縮后的碼流數(shù)據(jù)。視頻數(shù)據(jù)處理模塊包括以下功能單元:以BT829為核心的視頻ADC單元;以IME6400為核心的MPEG-4視頻壓縮單元;以S3C44B0X 為核心構(gòu)成的控制邏輯和總線接口單元??偩€接口單元是視頻數(shù)據(jù)處理模塊與S3C44B0X進(jìn)行交互的通道,可以和主機(jī)進(jìn)行視頻碼流和控制數(shù)據(jù)的交換??刂七壿嬍且曨l采集壓縮模塊的核心,它控制并協(xié)調(diào)各模塊工作,提供控制信號(hào),通過(guò)指令實(shí)現(xiàn)系統(tǒng)各模塊所需要的選通、緩沖、讀/寫(xiě)使能、數(shù)據(jù)總線和地址總線的切換等等。
鏡頭云臺(tái)控制是通過(guò)S3C44B0X上的RS-232口進(jìn)行的,允許用戶(hù)根據(jù)自己的要求調(diào)節(jié)系統(tǒng)。用戶(hù)可以通過(guò)調(diào)節(jié)鏡頭的景深、焦距以及光圈來(lái)調(diào)整圖像質(zhì)量,還可以通過(guò)云臺(tái)的上下左右調(diào)節(jié)來(lái)獲取不同角度的圖像。由監(jiān)控中心的客戶(hù)機(jī)端軟件通過(guò)SOCKET網(wǎng)絡(luò)接口,把調(diào)整信息發(fā)送給服務(wù)器端,服務(wù)器接收到控制指令后,進(jìn)行指令識(shí)別,然后向?qū)?yīng)的RS-232口發(fā)送指令去控制云臺(tái),完成調(diào)整任務(wù)。

視頻數(shù)據(jù)發(fā)送、指令控制模塊的設(shè)計(jì)與實(shí)現(xiàn)
監(jiān)控現(xiàn)場(chǎng)主機(jī)通過(guò)視頻數(shù)據(jù)發(fā)送模塊,將現(xiàn)場(chǎng)采集到的視頻流數(shù)據(jù)經(jīng)過(guò)編碼后,以IP 組播的形式通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送出去。對(duì)于發(fā)送來(lái)的視頻數(shù)據(jù),運(yùn)行在監(jiān)控中心主機(jī)端的視頻數(shù)據(jù)接收播放模塊一方面可以將其保存起來(lái),作為資料庫(kù)便于以后查詢(xún)及回放;另一方面還可以實(shí)時(shí)播放出來(lái)。
本系統(tǒng)的軟件結(jié)構(gòu)采用了客戶(hù)機(jī)服務(wù)器結(jié)構(gòu),兩端通過(guò)網(wǎng)絡(luò)建立TCP/IP連接,按照自定義的數(shù)據(jù)通信協(xié)議交換數(shù)據(jù),完成數(shù)據(jù)通信和系統(tǒng)控制功能。監(jiān)控中心的客戶(hù)端向服務(wù)器端申請(qǐng)建立連接,服務(wù)器監(jiān)聽(tīng)到連接請(qǐng)求之后,和客戶(hù)端建立SOCKET連接,客戶(hù)端向服務(wù)器發(fā)送控制信號(hào),服務(wù)器端向客戶(hù)端發(fā)送視頻碼流。
服務(wù)器端軟件運(yùn)行在S3C44B0X上,軟件設(shè)計(jì)的主要思想如下:讀取線程、發(fā)送線程和控制線程之間的同步,防止有限資源的浪費(fèi)。
為了充分利用CPU計(jì)算能力,提高系統(tǒng)的整體性能,在該系統(tǒng)中采用技術(shù)實(shí)現(xiàn)任務(wù)的調(diào)度。
考慮到監(jiān)控中心主機(jī)要同時(shí)監(jiān)控多個(gè)現(xiàn)場(chǎng),需要加入多個(gè)組播組的情況。我們?cè)谠O(shè)計(jì)系統(tǒng)時(shí)要求監(jiān)控中心端在接收視頻數(shù)據(jù)前應(yīng)向相應(yīng)的監(jiān)控現(xiàn)場(chǎng)發(fā)送數(shù)據(jù)請(qǐng)求。為此,我們要建立兩個(gè)通訊通道:一個(gè)是控制通道,一個(gè)為數(shù)據(jù)通道??刂仆ǖ烙脕?lái)在發(fā)送端和接收端之間建立會(huì)話,包括發(fā)送一些數(shù)據(jù)請(qǐng)求和確認(rèn)控制等信息。接收端在接收視頻流數(shù)據(jù)前先向相應(yīng)的發(fā)送端發(fā)送數(shù)據(jù)請(qǐng)求,發(fā)送端在接收到數(shù)據(jù)請(qǐng)求后向接收端發(fā)回相應(yīng)的IP 組播地址和端口,接收端則加入該組接收視頻流數(shù)據(jù)。為了保證這些控制信息準(zhǔn)確無(wú)誤地到達(dá)對(duì)方,對(duì)于控制通道我們選擇可靠性較高的TCP 協(xié)議。數(shù)據(jù)通道用于視頻流數(shù)據(jù)的通信,我們選用VxWorks IP組播組來(lái)實(shí)現(xiàn)。這兩個(gè)通訊通道互不相關(guān),各自執(zhí)行自己的任務(wù)。

視頻數(shù)據(jù)發(fā)送模塊的設(shè)計(jì)
在視頻傳輸中,服務(wù)器端要求碼流讀取和發(fā)送互不干擾,避免讀取和發(fā)送相互等待或者相互沖突的情況出現(xiàn)。同樣,在客戶(hù)端解碼和接收也存在這個(gè)關(guān)系,我們可以采用任務(wù)間的通信功能來(lái)協(xié)調(diào)多個(gè)獨(dú)立任務(wù)間的活動(dòng)。VxWorks提供了一套豐富的任務(wù)間通信機(jī)制,包括共享內(nèi)存、信號(hào)量、消息隊(duì)列和管道等等。任務(wù)間通信最直接、最明顯的方法是訪問(wèn)共享數(shù)據(jù)結(jié)構(gòu)。由于所有VxWorks任務(wù)共存單一的線性地址空間,在多個(gè)任務(wù)間共享數(shù)據(jù)結(jié)構(gòu)是非常容易的,任一程序中定義的各種類(lèi)型的全局變量,都可以被所有任務(wù)直接訪問(wèn)。
由于實(shí)時(shí)組播的視頻流來(lái)自于MPEG-4編碼器,所以首先要從編碼器中獲得視頻數(shù)據(jù),這主要通過(guò)訪問(wèn)編碼器所提供的I/O端口來(lái)完成。本設(shè)計(jì)采用了一種基于環(huán)形緩沖區(qū)的多任務(wù)視頻傳輸技術(shù),較好的解決了碼流讀取和發(fā)送互不干擾的問(wèn)題。系統(tǒng)的環(huán)形緩沖區(qū)除了達(dá)到數(shù)據(jù)分離互斥作用外,還可以起到平滑碼流的作用。讀取任務(wù)和發(fā)送任務(wù)是互斥的關(guān)系,讀取任務(wù)一次從編碼模塊中讀入4K的視頻數(shù)據(jù)供發(fā)送任務(wù)處理。在讀取時(shí)為了避免競(jìng)爭(zhēng),使用信號(hào)量對(duì)該環(huán)形緩沖區(qū)進(jìn)行上鎖,以保證訪問(wèn)的互斥進(jìn)行。發(fā)送任務(wù)的訪問(wèn)環(huán)形緩沖區(qū)的情況也類(lèi)似。通過(guò)利用環(huán)形緩沖區(qū)和互斥鎖完全可以解決這兩個(gè)任務(wù)的同步問(wèn)題。
指令控制模塊的設(shè)計(jì)
系統(tǒng)定義了自己的指令系統(tǒng)和指令傳輸協(xié)議。指令可以分為以下幾類(lèi):工作控制(傳輸開(kāi)始、傳輸停止、存儲(chǔ)控制等);鏡頭云臺(tái)控制(焦距、光圈、自動(dòng)轉(zhuǎn)動(dòng)等);系統(tǒng)設(shè)置(用戶(hù)管理、通信參數(shù)設(shè)置等),每條指令前面都有其唯一的識(shí)別標(biāo)志,服務(wù)器接收到后可以用來(lái)和其它指令進(jìn)行區(qū)分。
多路復(fù)用的輸入/輸出模型Select函數(shù)可以實(shí)現(xiàn)高效的管理套接字。使用工作在無(wú)阻塞方式的套接字,在一定程度上提高了程序的效率(與阻塞套接字相比)。但是,程序需要不斷的輪詢(xún)各個(gè)套接字描述符的情況,這浪費(fèi)了大量的CPU時(shí)間。如果進(jìn)程不是主動(dòng)地輪詢(xún)套接字的情況,而是將希望監(jiān)視的套接字向系統(tǒng)進(jìn)行登記,而后采取被動(dòng)的態(tài)度等待,當(dāng)套接字上發(fā)生了某些事件后,系統(tǒng)再以某種方式通知進(jìn)程,接著進(jìn)程去檢測(cè)套接字的情況,發(fā)現(xiàn)對(duì)應(yīng)的事件并進(jìn)行處理。在這種工作方式下,進(jìn)程是在已經(jīng)知道在套接字上發(fā)生了事件時(shí),才對(duì)套接字進(jìn)行檢測(cè),而在沒(méi)有事件的情況下,進(jìn)程將睡眠,所以這種工作方式節(jié)省了大量的CPU時(shí)間,對(duì)于資源本來(lái)就非常緊張的系統(tǒng),可以大大提高系統(tǒng)的整體性能。

結(jié)語(yǔ)
本文設(shè)計(jì)的基于ARM S3C44B0X的嵌入式MPEG-4遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng),目前已經(jīng)在某省高速公路監(jiān)控中得到了應(yīng)用,并取得了很好的應(yīng)用效果。該監(jiān)控系統(tǒng)穩(wěn)定性高,支持基于Internet的數(shù)據(jù)傳輸,C/S的結(jié)構(gòu)體系允許用戶(hù)進(jìn)行遠(yuǎn)端操縱系統(tǒng)的工作方式。系統(tǒng)的各個(gè)子模塊相對(duì)獨(dú)立,通過(guò)采用MPEG-4視頻壓縮技術(shù),圖像高清晰,畫(huà)質(zhì)可接近DVD效果,能夠?qū)崿F(xiàn)單畫(huà)面輪流監(jiān)看和1~16個(gè)畫(huà)面同屏監(jiān)看。支持遠(yuǎn)程和本地云臺(tái)控制,支持多任務(wù)工作方式,而且圖像存儲(chǔ)、監(jiān)看、遠(yuǎn)程控制可同步進(jìn)行,監(jiān)控距離隨網(wǎng)絡(luò)延伸而不斷加長(zhǎng),具有良好的發(fā)展應(yīng)用前景?!?/P>

參考文獻(xiàn)
1 余兆明,李曉飛,陳來(lái)春編著. 數(shù)字電視設(shè)備及測(cè)量. 人民郵電出版社,2000
2 Stevens. TCP/IP詳解,卷1:協(xié)議,機(jī)械工業(yè)出版社,2000
3 林宇,郭凌云編著. Linux網(wǎng)絡(luò)編程. 人民郵電出版社,2000
4 VxWorks Programmer誷 Guide 5.4.1. WinRiver System Inc., 1999
5 S3C44B0X User誷 Manual. SUMSUNG Inc., 1997
6 孔祥營(yíng),柏桂枝編著. 嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks及其開(kāi)發(fā)環(huán)境Tornado. 中國(guó)電力出版社,2002

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞: MPEG-4 S3C44B0X 多線程 嵌入式

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉