摘 要 本文介紹了以Windows CE.NET操作系統,微處理器ARM的硬件核心的嵌入式視頻監控系統的設計,在構建的平臺上開發了流媒體視頻采集、傳輸和播放的嵌入式應用程序。
關鍵字:Windows CE;嵌入式操作系統;ARM;監控
中圖分類號: X924.3 文獻標識碼:A文章編號:1671-489X(2007)07-0056-03
Design of System for Monitor based on Embedded Windows CE.NET//Mang Jingwei, Lv Yishun
Abstract The thesis introduces a design of Video Monitoring Systems based on an embedded operation system ,The core is EOS Windows CE.NET and MCU ARM.We have developed embedded applications programs for gatheringtransmitting and playing streaming media video based on created platform.
Key words Windows CE.NET; Embedded OS; ARM, monitor
Author’s address
1. College of Mathe and Computer, Harbin University, Harbin 150080
2. Centre of Heilongjiang Teaching Equipment Managment,Harbin150000
1 前言
計算機網絡技術和流媒體技術的發展,促進了各種網絡視頻通信應用。在基于嵌入式系統的監控應用結構中,前端采用攝像機,通過網絡視頻編碼器將視頻經過數字化、壓縮、打包等過程變成基于網絡協議的視頻流,使用者可以利用軟件進行解碼,在PC機上進行顯示和處理。根據上述思想,我們設計了一種基于S3C2410X的ARM9芯片和嵌入式Windows CE.NET的視頻監控系統,采用USB攝像頭捕捉視頻,經MPEG4算法壓縮編碼,系統直接與網絡相連,監控端使用標準的網絡瀏覽器和流媒體播放程序即可查看遠程視頻影像。
2 系統硬件設計
數字視頻監控系統的硬件核心ARM微處理器S3C2410X是韓國的三星公司生產的32位RISC微處理器。含ARM920T內核[1]、CPU主頻203MHz、板載64MB SDRAM、64MBFLASH。
主板資源包括:主、從USB口,10M以太網口,支持MPEG4、MP3編解碼的音視頻模塊。芯片極高的集成度簡化了應用系統硬件設計,提高了系統的可靠性。系統的核心硬件設計組成如圖,S3C2410X自身具有A/D轉換器、PWM信號輸出和多個I/O口等,S3C2410X上移植了Windows CE.NET作為操作系統,通過I2C接口初始化圖像采集芯片及圖像壓縮芯片,從雙口RAM中讀取視頻流數據并打包發送到網絡上去。同時,在操作系統的平臺下可運行用戶程序,實現遠程監控。

3 系統軟件設計
軟件部分包括Windows CE.NET OS鏡像文件NK.BIN和應用程序模塊。
Windows CE.NET提供了嵌入式平臺的集成開發環境Platform Builder 4.0, 其自帶設計、創建、生成、測試和調試等開發工具,和對標準開發板具備良好支持的板級支持包,可快速定制一個基于標準PC硬件結構的嵌入式平臺,實現基于Windows平臺軟件的重用和移植,能較好地滿足嵌入式PC視頻監控系統的開發和應用需求。
3.1嵌入式系統平臺設計
NK.BIN是系統配置文件和定制的OS核心模塊合并后經編譯形成的一個二進制文件, NK.BIN的構建就是對構成OS的模塊進行配置、鏈接、定址以生成可啟動OS鏡像的過程,在嵌入式平臺創建過程中完成。根據視頻監控功能需求,主要是選擇BSP以及對OS各模塊特性進行定制。
(1)選擇BSP。針對本系統的ARM920T硬件平臺,我們選擇了硬件廠商附帶的BSP作為嵌入式平臺的底板支持。此BSP提供了對相關設備驅動(ARM920T芯片驅動、0網卡,USB攝像頭等)的軟件實現和支持,以及Windows CE.NET OS的核心特性的支持。
(2)應用程序和服務特性。選擇COM組件特性,以提供對DirectX基于COM對象的函數和方法的接口支持。
(3)通信和網絡特性。網絡設備/驅動器接口規范,TCP/IP協議棧及其它網絡API,包括Windows Networking API、RTC Client API等網絡模塊,以實現向網絡服務器發送視頻數據的能力。
(4)文件系統和數據存儲特性。對內置文件系統選取ROMRAM File System模塊,用于OS鏡像的存放和運行。外圍存儲設備的文件系統由存儲管理器負責管理,選取Storage Manager模塊,以實現對FAT文件系統的存儲管理。
(5)編譯、鏈接、裝配OS各定制模塊,生成NK.BIN文件。建造CE操作系統后,應創建為平臺上其他應用程序的開發提供支持的軟件開發工具包SDK(包括Windows CE.NET操作系統組件,硬件驅動程序等)。可以利用Embedded Visual C++4.0提供的工具來創建、測試和修改應用程序.利用 Platform Builder4.0創建SDK并導入到Microsoft Embedded Visual C++4.0,然后從環境列表中選擇所定制的平臺,進行應用程序的開發、調試和運行。
3.2應用程序設計
應用程序模塊主要由數據視頻采集控制、視頻數據發送、指令控制的設計和數據視頻的解碼與回放3部分組成,下面以數據視頻采集控制為例,介紹程序設計過程。
流媒體視頻采用MPEG-4壓縮編碼,能較好地完成對圖像序列和視頻的實時采集、壓縮、解壓、回放以及視頻傳送和廣播。傳送視頻數據可以根據帶寬和實時性選擇不同的網絡協議,這里采用了基于IP/TCP的RTP協議和HTTP協議。
系統采用硬件編碼,用軟件進行解碼播放的方法。數據解碼及顯示模塊負責在客戶端異步地在線讀取網絡上發送來的MPEG4視頻數據,在線地進行解碼和播放。這個模塊主要是通過DirectShow來實現的。涉及到的類主要是CMediaClient。
DirectShow是一個自成體系的COM對象集合,通常我們只要作為一個COM客戶機調用DirectShow的COM接口。一個簡單的播放媒體文件的調用如下[2]:
(1)先初始化COM;
(2)使用標準的COM函數取得過濾器圖組管理器的接口指針;
Crect rect;//主窗口矩形結構
I VideoWindow*m-pVW; //視頻窗口
IfilterGraph*m-pifg; //圖像過濾
IgraphBuilder*m-pigb; //圖像建立
ImediaControl* m-pimc; //媒體控制
ImediaEventEx* m-pime; //媒體事件
IMediaPosition *m-ppos;//媒體進度
CHECK-ERROR(CoCreateInstance(CLISID-FilterGraph,NULL,CLSCTX-INFROC,IID-IfilterGraph,(void* *)m-pifg), \"CoCreateInstance Error\"); //標準COM初始化
CHECK-ERROR(m-pifg->QueryInterface(IID-IgraphBuilder,(void* *)m-pigb),\"QueryInter face (IGraph Builder)Error\");//獲得媒體建立接口
CHECK-ERROR(m-pifb->QueryInterface(IID-IMediaControl,(void * *)m-pigc),\"QueryInter
face (IMediaControl)Error\"); //獲得媒體控制接口
CHECK-ERROR(m-pifb->QueryInterface(IID-IMediaEventEx,(void* *)m-pige),\"QueryInter face(IMediaEventEx)Error\"); //獲得媒體事件接口
CHECK-ERROR(m-pifb->QueryInterface(IID-IVideoWindow,(void* *)m-pv),\"QueryInter
face(IvideoWindow)Error\");//獲得視頻接口
(3)調用相應的接口函數實現對流媒體的控制(視頻文件名filename)
m-pigb->RenderFile(filename); //分析文件數據
m-pigc->Run(); //播放
本系統的一個源過濾器,從內存中和網絡上讀取的數據放在內存緩沖中,只要源過濾器能夠成功地讀取內存數據,并且做到與播放同步,就可以實現在線播放了。
在設計的過程中采用了雙緩沖隊列技術。網絡客戶端接收到MPEG4數據必須進行一定量的緩沖,然后才能交給DirectShow解碼處理。接著動態地一邊繼續從網絡接收數據,一邊得到新的數據進行解碼回放。
4 結束語
本文設計的是采用流媒體技術傳輸的嵌入式網絡視頻監控系統,監控端解碼得到的圖像質量基本接近源信息。由于編碼端和播放端的數據有緩沖,監控端回放被監控現場時會有滯后的現象。我們在局域網做的實驗中,有10秒鐘左右的延遲,在本文實時性要求不太高的情況下,還是可以接受的。鑒于嵌入式視頻監控系統具有獨特的性價比優勢,在普通視頻監控的場合可以得到應用。