基于ARM的嵌入式監(jiān)控系統(tǒng)設計與實現(xiàn)
摘要 : 介紹了一種基于ARM7 的監(jiān)控系統(tǒng), 詳細描述了嵌入式網(wǎng)絡視頻服 務器和遠程控制平臺的設計與實現(xiàn).通過自定義協(xié)議,系統(tǒng)實現(xiàn)了數(shù)據(jù)的可靠傳輸和MPEG-4 視頻流圖像的平滑傳輸, 各項指標均符合設計要求.
1 引言
隨著視頻編解碼技術, 計算機網(wǎng)絡技術, 數(shù)字信號處理技 術和嵌入式系統(tǒng)的發(fā)展, 以嵌入式網(wǎng)絡視頻服務器為核心的遠 該系統(tǒng)把攝像機輸出 程視頻監(jiān)控系統(tǒng)開始在市場上嶄露頭角. 的模擬視頻信號通過內(nèi)置的嵌入式視頻編碼器直接轉換成視 頻流,通過計算機網(wǎng)絡傳輸出去. 嵌入式網(wǎng)絡視頻服務器具備視 網(wǎng)絡通信, 系統(tǒng)控制等強大功能,直接支持網(wǎng)絡視 頻編碼處理, 頻傳輸和網(wǎng)絡管理,使得監(jiān)控范圍達到前所未有的廣度.目前, 嵌入式網(wǎng)絡視頻服務器的解決方案主要有以下幾種:
(1)視頻采集芯片+DSP 處理器.該方案中由視頻采集芯片 完成圖像的預處理,由 DSP 完成圖像的存儲, 基于 MPEG-4, H. 或 M-JPEG 標準的圖像壓縮, 網(wǎng)絡傳輸. 文獻中提出了基于 263 ADSP-BF532 的嵌入式網(wǎng)絡視頻服務器方案, 文獻中提出了基 于 TMS320DSC21 的嵌入式網(wǎng)絡攝像機的方案.該方案的主要 缺點是控制不夠靈活,由于 DSP 通常沒有強大的操作系統(tǒng),功能 單一,不適合做系統(tǒng)控制.
(2)視頻采集芯片+圖像壓縮芯片+嵌入式處理器.文獻[4]提 出了一種采用 Philips 公司的視頻解碼芯片 SSAA7114H 進行圖 像采集, 采用 Intime 公司的 MPEG-4 編碼芯片 IME6400 進行圖 像壓縮, 摩托羅拉公司的嵌入式處理器 MCF5307 組成嵌入式視 頻監(jiān)控服務器方案.該方案的主要缺點是缺乏強大的圖像處理 能力,整個系統(tǒng)軟件必須運行于 μCLinux 之上,系統(tǒng)成本較高.
(3)ARM 嵌入式處理器+DSP 處理器.現(xiàn)在已有一些基于 ARM 和 DSP 的嵌入式視頻監(jiān)控方案, 文獻中提出一種采用 以 AnalogDevices 公司的 BF533 實現(xiàn) MPEG-4 標準的圖像壓縮, Intel 公司的 XscalePXA261 作為控制的嵌入式視頻監(jiān)控系統(tǒng). 文 獻 中 提 出 了 一 種 采 用 SAA7114A 進 行 圖 像 采 集 , 采 用 TMS320C6202B 進行 MJPEG2000 標準的圖像壓縮,以嵌入式 ARM 芯片 S3C4510 進行系統(tǒng)控制和網(wǎng)絡傳輸?shù)那度胧骄W(wǎng)絡視 頻服務器方案.該方案的主要缺點是:由于要使用 ARM 芯片對 調(diào)試, 使用較困難,整個系統(tǒng)軟件 DSP 的寄存器進行操作,設計, 必須運行于 μCLinux 之上,系統(tǒng)成本偏高.
本文提出的矩陣系統(tǒng)的模塊化設計便于將來系統(tǒng)的升級 和擴展,即使在將來擴展時,也不需要替換現(xiàn)有設備,而只需軟件 符合模塊化的設計 升級或添加硬件,從而保證了系統(tǒng)的延續(xù)性. 原則,設計, 調(diào)試更加容易,使用更方便. (2)為縮短系統(tǒng)開發(fā)周期, 提高系統(tǒng)的可靠性,本系統(tǒng)未使用嵌入式 μCLinux 操作系統(tǒng),而 是通過自定義電話號碼協(xié)議,切換協(xié)議,報警協(xié)議及精簡的 TCP/IP 協(xié)議等,系統(tǒng)實現(xiàn)了數(shù)據(jù)的可靠傳輸和 MPEG-4 視頻流 圖像的平滑傳輸與其它嵌入式視頻服務器方案相比, 系統(tǒng)功能 更加強大,使用更加方便,更加節(jié)省成本.
2 系統(tǒng)整體結構設計
2.1 系統(tǒng)的總體設計原則
2.1.1 合理性
這是系統(tǒng)設計的基本原則,注重周界防范, 將危險排除在 小區(qū)之外; 強調(diào)總體防范, 即以小區(qū)為中心 (而非住戶為中心) 進行防范; 立體防范, 多種防范手段相結合, 主要考慮在該小 區(qū)界設紅外線入侵探測系統(tǒng)和電視監(jiān)控系統(tǒng),小區(qū)的主入口 大門設全方位可調(diào)焦高清晰度攝像機,其最低照度應為 1在單元門入口, 車庫口設 3LUX 才能保證其良好的夜視效果, 超廣角攝像機, 覆蓋整個入口區(qū)域; 并且通過其長時滯錄像機 對近期的資料可隨意地對任一攝像機所攝取的畫面進行回 放.車庫里的攝像機配置*頭,保證有人破壞時能及時報 警.總之, 在力爭做到無死角又不浪費攝像機的基礎上, 使系 統(tǒng)的設計合理并達到最優(yōu).
2.1.2 可靠實用性
從性能價格比的角度考慮, 系統(tǒng)的關鍵部分全面采用世界 著名廠家的產(chǎn)品,保證了整個系統(tǒng)的可靠性. 同時兼顧到功能的 完善和操作簡單化的要求, 使本系統(tǒng)達到處理意外情況時反應 迅速,正確,提高了保安工作的效率. 《 現(xiàn)場總線技術應用 200 例》 李珍輝 : 講師 碩士 - 142 - 360 元 / 年 郵局訂閱號:82-946 您的論文得到兩院院士關注 ARM 開 發(fā) 與 應 用系統(tǒng)的嵌入式計算機構成, 在嵌入式操作系統(tǒng)之上運行著系統(tǒng) 網(wǎng)絡服務器采用的是基于 ARM7 內(nèi)核的 CPU—— — 的核心軟件. STR710F-Z2T6.該芯片是一款基于 ARM 芯片.它一方面具有 低功耗, 高性能等優(yōu)點; 同時又具有豐富的片上 ARM 處理器的: 資源, 非常適合嵌入式產(chǎn)品的開發(fā). MPEG-4 多媒體編碼芯片則采用北京九為安泰科技有限 公司的 Mpeg4 全 D1 網(wǎng)絡視頻服務器 (編碼) 該芯片提 EN4000, 供了豐富的外圍硬件接口: 支持 CCIR601 建議的 16Bit 視頻解 碼器接口, 32Bit 數(shù)據(jù), 81MHz 的 SDRAM 數(shù)據(jù)總線接口, 總 I2C 線接口, 外部音頻/PCM 編碼器/DSP 接口以及靈活的主機接 I2S 口,可以支持多種類型的 CPU. 圖 2 簡單介紹了 MPEG-4 硬 件視頻壓縮處理的結構和網(wǎng)絡接口.
2.1.3 模塊化設計
本套矩陣系統(tǒng)的模塊化設計便于將來系統(tǒng)的升級和擴展, 即使在將來擴展時,也不需要替換現(xiàn)有設備,而只需軟件升級或 添加硬件,從而保證了系統(tǒng)的延續(xù)性.
本系統(tǒng)實現(xiàn)的主要功能及實現(xiàn)等級:
(1)與報警系統(tǒng)聯(lián)網(wǎng),發(fā)生報警觸發(fā)錄像并自動彈出報警區(qū) 域的攝像機的圖像. 在圖像的切換過程
(2)在中控室可以切換看到所有的圖像. 中感覺不到圖像間的干擾. 日期, 地點, 攝像機編號提示,可在錄像帶
(3)系統(tǒng)設有時間, 上做標記,便于分析和處理.
(4)系統(tǒng)可任意選擇某個指定的攝像區(qū)域,便于重點監(jiān)視或 在某個范圍內(nèi)對多個攝像機區(qū)域做自動巡回顯示.
(5)矩陣系統(tǒng)具有分組同步切換的功能,可將系統(tǒng)全部或部 分攝像機分為若干個組, 每組攝像機圖像可以同時切換到一組 監(jiān)視器上. 通過副控鍵盤可以在監(jiān)視器上切
(6)必要的場所設置副控, 換看到所有的圖像, 并進行控制.
(7)在配置系統(tǒng)時,可以決定每個使用者有權進入系統(tǒng)的哪 個部分:使用者可觀看哪些攝像機;又能控制哪些攝像機;使用者 可以用自己的鍵盤手動操作哪些繼電器(連結到外圍),操作哪些 VCR 和多畫面分割器.本設計的系統(tǒng)結構如圖 1 所示.
圖 1 嵌入式遠程數(shù)字視頻監(jiān)控系統(tǒng)圖
圖1中攝像機通過 RS-232 接口受外界控制, 控制命令為 圖 1 中, 一系列的 ASCII 碼,可以調(diào)整攝像頭的焦距和控制云臺的轉 動. 可通過對它設置信源 ARM7 開發(fā)板也有一個 RS-232 接口, 式(PAL/NTSC), 編碼亮度, 編碼色度, 音頻速率, 編碼音量和編 編碼板通過 碼速率.編碼板與網(wǎng)絡服務器集成到一個機箱里, 接口向網(wǎng)絡服務器輸出數(shù)據(jù).網(wǎng)絡服務器有多個 RS-232 PCI 接口, 分別與攝像機和硬編碼板上的 RS-232 接口相連. 播放設 備由嵌入式硬解碼板和電視機組成. 解碼板采用速率自適應方 式設計, 解碼速率自動匹配遠端編碼器的編碼速率.解碼板和 網(wǎng)絡服務器同樣集成在一個機箱里. 該系統(tǒng)還實現(xiàn)了軟解碼方 式, 在這種方式中, 播放設備由一臺安裝了視頻采集卡的 PC 機 構成, 其上運行解碼軟件和媒體播放器, 通過 PC 機的顯示器和 音箱輸出圖像和聲音.系統(tǒng)的記錄設備由硬盤錄像機構成, 用 來存儲系統(tǒng)圖像.控制臺由一臺運行 Windows XP 操作系統(tǒng)的 管理服務器也由一 PC 機實現(xiàn), 機上運行客戶端的控制軟件. PC 臺運行 Windows XP 操作系統(tǒng)的 PC 機實現(xiàn), 機上運行系統(tǒng) PC 管理軟件.在簡化的系統(tǒng)實現(xiàn)中, 管理服務器和控制臺可以在 同一臺 PC 機上實現(xiàn), 在這種情況下, 管理軟件和控制軟件運行 在同一臺主機上, 但仍然通過網(wǎng)絡接口通信.
3 系統(tǒng)硬件設計
網(wǎng)絡服務器是系統(tǒng)硬件的核心部件,它由運行嵌入式操作系統(tǒng)的嵌入式計算機構成,在嵌入式操作系統(tǒng)之上運行著系統(tǒng)的核心軟件。網(wǎng)絡服務器采用的是基于ARM7內(nèi)核的CPU—STR710F-Z2T6 。該芯片是一款基于ARM 芯片。它一方面具有ARM處理器的:低功耗、高性能等優(yōu)點;同時又具有豐富的片上資源,非常適合嵌入式產(chǎn)品的開發(fā)。
MPEG-4多媒體編碼芯片則采用北京九為安泰科技有限公司的Mpeg4全D1 網(wǎng)絡視頻服務器(編碼)EN4000,該芯片提供了豐富的外圍硬件接口:支持CCIR601 建議的16Bit 視頻解碼器接口、32Bit數(shù)據(jù)、81MHz的SDRAM數(shù)據(jù)總線接口、I2C總線接口、I2C外部音頻/PCM編碼器/DSP 接口以及靈活的主機接口,可以支持多種類型的CPU。 圖2簡單介紹了MPEG-4硬件視頻壓縮處理的結構和網(wǎng)絡接口。
圖片2
圖 2 MPEG-4 硬件視頻壓縮處理的結構和網(wǎng)絡接口圖 MPEG-4 視頻采集壓縮模塊以 EN4000 芯片為核心,完成 對標準視頻信號(PAL 或 NTSC 信號)的 A/D 轉換, MPEG-4 壓縮 圖 以及與 S3C44B0X 之間的通信功能. 2 中視頻解碼 ADC 把從 攝像頭輸入的模擬視頻信號轉化為數(shù)字視頻信號, 然后進行編 碼預處理, 即把視頻解碼輸出的 CCIR601 格式的信號轉化為編 碼器可以處理的 CIF 或 QCIF 格式,然后再進行 MPEG-4 壓縮 編碼.S3C44B0X 上的軟件則通過總線接口單元來控制編碼器 的參數(shù)設置和讀取編碼壓縮后的碼流數(shù)據(jù).
視頻數(shù)據(jù)處理模塊包括以下功能單元: BT829 為核心的 以 以 視頻 ADC 單元; EN4000 為核心的 M PEG-4 視頻壓縮單元; 以 S3C44B0X 為核心構成的控制邏輯和總線接口單元.總線接 口單元是視頻數(shù)據(jù)處理模塊與 S3C44B0X 進行交互的通道, 可 以和主機進行視頻碼流和控制數(shù)據(jù)的交換.控制邏輯是視頻采 集壓縮模塊的核心, 它控制并協(xié)調(diào)各模塊工作, 提供控制信號, 通過指令實現(xiàn)系統(tǒng)各模塊所需要的選通, 緩沖, 讀/寫使能, 數(shù)據(jù) 總線和地址總線的切換等等.鏡頭云臺控制是通過 S3C44B0X 上的 RS-232 口進行的, 允許用戶根據(jù)自己的要求調(diào)節(jié)系統(tǒng). 用 戶可以通過調(diào)節(jié)鏡頭的景深,焦距以及光圈來調(diào)整圖像質(zhì)量, 還可以通過云臺的上下左右調(diào)節(jié)來獲取不同角度的圖像.由監(jiān) 控中心的客戶機端軟件通過 SOCKET 網(wǎng)絡接口, 把調(diào)整信息發(fā) 送給服務器端, 服務器接收到控制指令后, 進行指令識別, 然后 完成調(diào)整任務. 向?qū)?RS-232 口發(fā)送指令去控制云臺, 技術創(chuàng)新
4 視頻數(shù)據(jù)發(fā)送,指令控制模塊的設計與實現(xiàn)
監(jiān)控現(xiàn)場主機通過視頻數(shù)據(jù)發(fā)送模塊,將現(xiàn)場采集到的視 頻流數(shù)據(jù)經(jīng)過編碼后, IP 組播的形式通過計算機網(wǎng)絡發(fā)送出 以 去. 對于發(fā)送來的視頻數(shù)據(jù), 運行在監(jiān)控中心主機端的視頻數(shù)據(jù) 接收播放模塊一方面可以將其保存起來,作為資料庫便于以后 查詢及回放; 另一方面還可以實時播放出來. 本系統(tǒng)的軟件結構采用了客戶機服務器結構,兩端通過網(wǎng)絡建立 TCP/IP 連接, 按 照自定義的數(shù)據(jù)通信協(xié)議交換數(shù)據(jù),完成數(shù)據(jù)通信和系統(tǒng)控制 功能. 監(jiān)控中心的客戶端向服務器端申請建立連接, 服務器* 客戶端向服務器 到連接請求之后, 和客戶端建立 SOCKET 連接, 發(fā)送控制信號, 服務器端向客戶端發(fā)送視頻碼流. 服務器端軟件 軟件設計的主要思想如下: 讀取線程, 發(fā)送 運行 S3C44B0X 上, 線程和控制線程之間的同步, 防止有限資源的浪費.
為了充分利用 CPU 計算能力, 提高系統(tǒng)的整體性能, 在該 系統(tǒng)中采用多線程技術實現(xiàn)任務的調(diào)度.考慮到監(jiān)控中心主機 要同時監(jiān)控多個現(xiàn)場, 需要加入多個組播組的情況. 我們在設計 系統(tǒng)時要求監(jiān)控中心端在接收視頻數(shù)據(jù)前應向相應的監(jiān)控現(xiàn)場 發(fā)送數(shù)據(jù)請求.為此, 我們要建立兩個通訊通道: 一個是控制通 道, 一個為數(shù)據(jù)通道. 控制通道用來在發(fā)送端和接收端之間建立 會話, 包括發(fā)送一些數(shù)據(jù)請求和確認控制等信息. 接收端在接收 視頻流數(shù)據(jù)前先向相應的發(fā)送端發(fā)送數(shù)據(jù)請求,發(fā)送端在接收 到數(shù)據(jù)請求后向接收端發(fā)回相應的 IP 組播地址和端口, 接收端 則加入該組接收視頻流數(shù)據(jù).為了保證這些控制信息準確無誤 地到達對方,對于控制通道我們選擇可靠性較高的 TCP 協(xié)議. 數(shù)據(jù)通道用于視頻流數(shù)據(jù)的通信, 我們選用 VxWorks IP 組播組 來實現(xiàn).這兩個通訊通道互不相關, 各自執(zhí)行自己的任務.
4.1 視頻數(shù)據(jù)發(fā)送模塊的設計
在視頻傳輸中,服務器端要求碼流讀取和發(fā)送互不干擾, 在 避免讀取和發(fā)送相互等待或者相互沖突的情況出現(xiàn).同樣, 客戶端解碼和接收也存在這個關系, 我們可以采用任務間的通 信功能來協(xié)調(diào)多個獨立任務間的活動.VxWorks 提供了一套豐 信號量, 消息隊列和管道 富的任務間通信機制, 包括共享內(nèi)存, 任務間通信最直接, 最明顯的方法是訪問共享數(shù)據(jù)結構. 等等. 由于所有 VxWorks 任務共存單一的線性地址空間, 在多個任務 間共享數(shù)據(jù)結構是非常容易的, 任一程序中定義的各種類型的 全局變量, 都可以被所有任務直接訪問.由于實時組播的視頻 所以首先要從編碼器中獲得視頻數(shù) 流來自于 MPEG-4 編碼器, 本設計采 據(jù), 這主要通過訪問編碼器所提供的 I/O 端口來完成. 用了一種基于環(huán)形緩沖區(qū)的多任務視頻傳輸技術, 較好的解決 了碼流讀取和發(fā)送互不干擾的問題. 系統(tǒng)的環(huán)形緩沖區(qū)除了達 到數(shù)據(jù)分離互斥作用外, 還可以起到平滑碼流的作用.讀取任 務和發(fā)送任務是互斥的關系, 讀取任務一次從編碼模塊中讀入 使 4 K 的視頻數(shù)據(jù)供發(fā)送任務處理.在讀取時為了避免競爭, 用信號量對該環(huán)形緩沖區(qū)進行上鎖,以保證訪問的互斥進行. 發(fā)送任務的訪問環(huán)形緩沖區(qū)的情況也類似. 通過利用環(huán)形緩沖 區(qū)和互斥鎖完全可以解決這兩個任務的同步問題.
4.2 指令控制模塊的設計 系統(tǒng)定義了自己的指令系統(tǒng)和指令傳輸協(xié)議.指令可以分 為以下幾類:
工作控制( 傳輸開始, 傳輸停止, 存儲控制等); 鏡頭云臺控 制(焦距, 光圈, 自動轉動等); 系統(tǒng)設置(用戶管理, 通信參數(shù)設置 等), 每條指令前面都有其唯一的識別標志, 服務器接收到后可 以用來和其它指令進行區(qū)分.
多路復用的輸入/輸出模型 Select 函數(shù)可以實現(xiàn)高效的管 理套接字.使用工作在無阻塞方式的套接字, 在一定程度上提 高了程序的效率( 與阻塞套接字相比).但是, 程序需要不斷的 輪詢各個套接字描述符的情況, 這浪費了大量的 CPU 時間.如 果進程不是主動地輪詢套接字的情況, 而是將希望監(jiān)視的套接字向系統(tǒng)進行登記, 而后采取被動的態(tài)度等待, 當套接字上發(fā) 生了某些事件后, 系統(tǒng)再以某種方式通知進程, 接著進程去檢 測套接字的情況, 發(fā)現(xiàn)對應的事件并進行處理.在這種工作方 式下, 進程是在已經(jīng)知道在套接字上發(fā)生了事件時, 才對套接 字進行檢測, 而在沒有事件的情況下, 進程將睡眠, 所以這種工 作方式節(jié)省了大量的 CPU 時間,對于資源本來就非常緊張的 系統(tǒng), 可以大大提高系統(tǒng)的整體性能
5 結語
本文設計的基于 ARM7 的嵌入式 MPEG-4 網(wǎng)絡監(jiān)控系統(tǒng), 該監(jiān)控系統(tǒng)穩(wěn)定性高,支持基于 Internet 的數(shù)據(jù)傳輸, 的結 C/S 構體系允許用戶進行遠端操縱系統(tǒng)的工作方式.系統(tǒng)的各個子 模塊相對獨立, 通過采用 MPEG-4 視頻壓縮技術, 圖像高清晰, 畫質(zhì)接近 DVD 效果, 能夠?qū)崿F(xiàn)單畫面輪流監(jiān)看和 1~16 個畫面 同屏監(jiān)看.支持遠程和本地云臺控制, 支持多任務工作方式, 而 監(jiān)看, 遠程控制可同步進行, 監(jiān)控距離隨網(wǎng)絡延伸 且圖像存儲, 而不斷加長, 具有良好的發(fā)展應用前景.
作者創(chuàng)新點: 本文提出的矩陣系統(tǒng)的模塊化設計便于將來 系統(tǒng)的升級和擴展,即使在將來擴展時,也不需要替換現(xiàn)有設備, 而只需軟件升級或添加硬件,從而保證了系統(tǒng)的延續(xù)性. 符合模 調(diào)試更加容易,使用更方便. 塊化的設計原則,設計, 調(diào)試更加容易,使用更方便。
通過采用 MPEG-4 視頻壓縮技術, 圖像高清晰, 畫質(zhì)接近 能夠?qū)崿F(xiàn)單畫面輪流監(jiān)看和 1~16 個畫面同屏監(jiān)看. DVD 效果, 支持遠程和本地云臺控制,能夠?qū)崿F(xiàn)信號的可靠傳輸和 MPEG-4 視頻流圖像的平滑傳輸.