3? 系統(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ù)器采用的是基于ARM7內(nèi)核的CPU—STR710F-Z2T6 。該芯片是一款基于ARM 芯片。它一方面具有ARM處理器的:低功耗、高性能等優(yōu)點(diǎn);同時(shí)又具有豐富的片上資源,非常適合嵌入式產(chǎn)品的開(kāi)發(fā)。
MPEG-4多媒體編碼芯片則采用北京九為安泰科技有限公司的Mpeg4全D1? 網(wǎng)絡(luò)視頻服務(wù)器(編碼)EN4000,該芯片提供了豐富的外圍硬件接口:支持CCIR601 建議的16Bit 視頻解碼器接口、32Bit數(shù)據(jù)、81MHz的SDRAM數(shù)據(jù)總線(xiàn)接口、I2C總線(xiàn)接口、I2C外部音頻/PCM編碼器/DSP 接口以及靈活的主機(jī)接口,可以支持多種類(lèi)型的CPU。 圖2簡(jiǎn)單介紹了MPEG-4硬件視頻壓縮處理的結(jié)構(gòu)和網(wǎng)絡(luò)接口。
?
圖片2
圖 2 MPEG-4 硬件視頻壓縮處理的結(jié)構(gòu)和網(wǎng)絡(luò)接口圖 MPEG-4 視頻采集壓縮模塊以 EN4000 芯片為核心,完成 對(duì)標(biāo)準(zhǔn)視頻信號(hào)(PAL 或 NTSC 信號(hào))的 A/D 轉(zhuǎn)換, MPEG-4 壓縮 圖 以及與 S3C44B0X 之間的通信功能. 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ò)總線(xiàn)接口單元來(lái)控制編碼器 的參數(shù)設(shè)置和讀取編碼壓縮后的碼流數(shù)據(jù).
視頻數(shù)據(jù)處理模塊包括以下功能單元: BT829 為核心的 以 以 視頻 ADC 單元; EN4000 為核心的 M PEG-4 視頻壓縮單元; 以 S3C44B0X 為核心構(gòu)成的控制邏輯和總線(xiàn)接口單元.總線(xiàn)接 口單元是視頻數(shù)據(jù)處理模塊與 S3C44B0X 進(jìn)行交互的通道, 可 以和主機(jī)進(jìn)行視頻碼流和控制數(shù)據(jù)的交換.控制邏輯是視頻采 集壓縮模塊的核心, 它控制并協(xié)調(diào)各模塊工作, 提供控制信號(hào), 通過(guò)指令實(shí)現(xiàn)系統(tǒng)各模塊所需要的選通, 緩沖, 讀/寫(xiě)使能, 數(shù)據(jù) 總線(xiàn)和地址總線(xiàn)的切換等等.鏡頭云臺(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í)別, 然后 完成調(diào)整任務(wù). 向?qū)?yīng)的 RS-232 口發(fā)送指令去控制云臺(tái), 技術(shù)創(chuàng)新
4 視頻數(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ù)器* 客戶(hù)端向服務(wù)器 到連接請(qǐng)求之后, 和客戶(hù)端建立 SOCKET 連接, 發(fā)送控制信號(hào), 服務(wù)器端向客戶(hù)端發(fā)送視頻碼流. 服務(wù)器端軟件 軟件設(shè)計(jì)的主要思想如下: 讀取線(xiàn)程, 發(fā)送 運(yùn)行 S3C44B0X 上, 線(xiàn)程和控制線(xiàn)程之間的同步, 防止有限資源的浪費(fèi).
為了充分利用 CPU 計(jì)算能力, 提高系統(tǒng)的整體性能, 在該 系統(tǒng)中采用多線(xiàn)程技術(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ì)話(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ù).
4.1 視頻數(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 提供了一套豐 信號(hào)量, 消息隊(duì)列和管道 富的任務(wù)間通信機(jī)制, 包括共享內(nèi)存, 任務(wù)間通信最直接, 最明顯的方法是訪(fǎng)問(wèn)共享數(shù)據(jù)結(jié)構(gòu). 等等. 由于所有 VxWorks 任務(wù)共存單一的線(xiàn)性地址空間, 在多個(gè)任務(wù) 間共享數(shù)據(jù)結(jié)構(gòu)是非常容易的, 任一程序中定義的各種類(lèi)型的 全局變量, 都可以被所有任務(wù)直接訪(fǎng)問(wèn).由于實(shí)時(shí)組播的視頻 所以首先要從編碼器中獲得視頻數(shù) 流來(lái)自于 MPEG-4 編碼器, 本設(shè)計(jì)采 據(jù), 這主要通過(guò)訪(fǎng)問(wèn)編碼器所提供的 I/O 端口來(lái)完成. 用了一種基于環(huán)形緩沖區(qū)的多任務(wù)視頻傳輸技術(shù), 較好的解決 了碼流讀取和發(fā)送互不干擾的問(wèn)題. 系統(tǒng)的環(huán)形緩沖區(qū)除了達(dá) 到數(shù)據(jù)分離互斥作用外, 還可以起到平滑碼流的作用.讀取任 務(wù)和發(fā)送任務(wù)是互斥的關(guān)系, 讀取任務(wù)一次從編碼模塊中讀入 使 4 K 的視頻數(shù)據(jù)供發(fā)送任務(wù)處理.在讀取時(shí)為了避免競(jìng)爭(zhēng), 用信號(hào)量對(duì)該環(huán)形緩沖區(qū)進(jìn)行上鎖,以保證訪(fǎng)問(wèn)的互斥進(jìn)行. 發(fā)送任務(wù)的訪(fǎng)問(wèn)環(huán)形緩沖區(qū)的情況也類(lèi)似. 通過(guò)利用環(huán)形緩沖 區(qū)和互斥鎖完全可以解決這兩個(gè)任務(wù)的同步問(wèn)題.
4.2 指令控制模塊的設(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)的整體性能
5 結(jié)語(yǔ)
本文設(shè)計(jì)的基于 ARM7 的嵌入式 MPEG-4 網(wǎng)絡(luò)監(jiān)控系統(tǒng), 該監(jiān)控系統(tǒng)穩(wěn)定性高,支持基于 Internet 的數(shù)據(jù)傳輸, 的結(jié) C/S 構(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ù)工作方式, 而 監(jiān)看, 遠(yuǎn)程控制可同步進(jìn)行, 監(jiān)控距離隨網(wǎng)絡(luò)延伸 且圖像存儲(chǔ), 而不斷加長(zhǎng), 具有良好的發(fā)展應(yīng)用前景.
作者創(chuàng)新點(diǎn): 本文提出的矩陣系統(tǒng)的模塊化設(shè)計(jì)便于將來(lái) 系統(tǒng)的升級(jí)和擴(kuò)展,即使在將來(lái)擴(kuò)展時(shí),也不需要替換現(xiàn)有設(shè)備, 而只需軟件升級(jí)或添加硬件,從而保證了系統(tǒng)的延續(xù)性. 符合模 調(diào)試更加容易,使用更方便. 塊化的設(shè)計(jì)原則,設(shè)計(jì), 調(diào)試更加容易,使用更方便。
通過(guò)采用 MPEG-4 視頻壓縮技術(shù), 圖像高清晰, 畫(huà)質(zhì)接近 能夠?qū)崿F(xiàn)單畫(huà)面輪流監(jiān)看和 1~16 個(gè)畫(huà)面同屏監(jiān)看. DVD 效果, 支持遠(yuǎn)程和本地云臺(tái)控制,能夠?qū)崿F(xiàn)信號(hào)的可靠傳輸和 MPEG-4 視頻流圖像的平滑傳輸.
評(píng)論