《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式WinCE5.0的無(wú)線監(jiān)控系統(tǒng)
基于嵌入式WinCE5.0的無(wú)線監(jiān)控系統(tǒng)
現(xiàn)代電子技術(shù)
許雪梅,郭遠(yuǎn)威,,吳愛(ài)軍,黃 帥,,徐蔚欽,,周 文 中南大學(xué)
摘要: 基于嵌入式Windows CE5.0的無(wú)線監(jiān)控系統(tǒng)研究,摘要:以ARM9微處理器作為核心板的控制器,,搭建無(wú)線視頻監(jiān)控系統(tǒng)硬件平臺(tái),擴(kuò)展基于OV9650芯片的攝像頭接口和GPRS無(wú)線傳輸模塊的串口接口,。利用Platform Builder5.O定制了合適的WinCE5.O的操作系統(tǒng)平臺(tái),,開(kāi)發(fā)了OV9
Abstract:
Key words :

摘要:以ARM9微處理器作為核心板的控制器,搭建無(wú)線視頻監(jiān)控系統(tǒng)硬件平臺(tái),,擴(kuò)展基于OV9650芯片的攝像頭接口和GPRS無(wú)線傳輸模塊的串口接口,。利用Platform Builder5.O定制了合適的WinCE5.O的操作系統(tǒng)平臺(tái),開(kāi)發(fā)了OV9650芯片和GPRS傳輸模塊的串口驅(qū)動(dòng),,設(shè)計(jì)了PC機(jī)端的監(jiān)控系統(tǒng)的軟件,,研究開(kāi)源的XVID MPEG一4視頻編解碼軟件以及GPRS傳輸流程。通過(guò)有機(jī)結(jié)合事件編程和消息機(jī)制編程,,調(diào)用底層VFW接口中的WIN32 API函數(shù)實(shí)現(xiàn)了監(jiān)控軟件的編譯,。該監(jiān)控系統(tǒng)具有實(shí)時(shí)抓拍、定時(shí)監(jiān)控,、錄像,、安裝方便等特點(diǎn)。
關(guān)鍵詞:視頻監(jiān)控,;嵌入式系統(tǒng),;WinCE5.0;ARM9,;GPRS


0 引 言
    傳統(tǒng)的視頻監(jiān)控系統(tǒng)主要以模擬信號(hào)監(jiān)控系統(tǒng)和基于插卡的數(shù)字監(jiān)控系統(tǒng)為主,。其中模擬信號(hào)監(jiān)控系統(tǒng)布線工程量大,要耗費(fèi)大量的存儲(chǔ)介質(zhì),,查詢?nèi)∽C也十分繁瑣,;基于插卡的數(shù)字監(jiān)控系統(tǒng)是由1臺(tái)PC機(jī)加圖像采集卡完成的,系統(tǒng)的成本高,,而且PC機(jī)需要有人值守,,無(wú)法在惡劣環(huán)境下使用。在視頻監(jiān)控領(lǐng)域中,,如何使信息傳輸?shù)酶?,更穩(wěn)定,距離更遠(yuǎn),,系統(tǒng)的成本,、體積、功耗更低等問(wèn)題是擺在當(dāng)前技術(shù)研發(fā)人員面前的首要問(wèn)題,。
    在此提出一種基于嵌入式Windows CE5.O的無(wú)線視頻監(jiān)控系統(tǒng),。解決了傳統(tǒng)視頻監(jiān)控系統(tǒng)成本高,、體積大、傳輸距離有限,、功耗大,、安裝不方便等問(wèn)題。該系統(tǒng)的設(shè)計(jì)將為無(wú)線視頻監(jiān)控提供一種新的思路,、方法和技術(shù)路線,;在安防、遠(yuǎn)程教育,、遠(yuǎn)程視頻會(huì)議,、醫(yī)療系統(tǒng)等無(wú)線視頻領(lǐng)域具有廣闊的應(yīng)用前景。


l 系統(tǒng)的整體硬件框圖介紹
    基于嵌入式WinCE5.0的無(wú)線監(jiān)控系統(tǒng)的硬件系統(tǒng)主要由嵌入式終端和服務(wù)器端的PC機(jī)組成,。嵌入式終端平臺(tái)的微處理器選擇的是基于ARM9T20內(nèi)核的S3C2440,S3C2440有豐富的接口,,其中攝像頭接口與CMOS的攝像頭相連,,串口與GPRS發(fā)射模塊相連;服務(wù)器端主要是1臺(tái)PC機(jī)和GPRS接收模塊,。整個(gè)框圖如1所示,。

    系統(tǒng)首先通過(guò)S3C2440微處理器控制CMOS攝像頭采集圖像數(shù)據(jù),經(jīng)過(guò)壓縮編碼后,,再通過(guò)GPRS無(wú)線發(fā)射模塊將壓縮后的數(shù)據(jù)發(fā)射出去,,在服務(wù)器端的PC機(jī)通過(guò)GPRS接收模塊接收數(shù)據(jù),并通過(guò)相應(yīng)的應(yīng)用程序,,對(duì)視頻數(shù)據(jù)進(jìn)行解碼,,并通過(guò)屏幕顯示出來(lái)。其中包含有S3C2440微處理器的嵌入式終端平臺(tái)的核心控制板如圖2所示,。

2 系統(tǒng)的擴(kuò)展接口設(shè)計(jì)
2.1 攝像頭接口設(shè)計(jì)
    攝像頭中用的圖像采集芯片為OV9650圖像傳感器,,該圖像傳感器具有10位的數(shù)據(jù)接口和標(biāo)準(zhǔn)的SCCB接口,采用CSP一28封裝,,體積小,。
    該芯片支持RGB(4:2:2),YUV(4:2:2),,YCrCb(4:2:2)三種數(shù)據(jù)輸出格式,,內(nèi)置138個(gè)設(shè)備控制寄存器,地址分別從Ox00~Ox8A,,通過(guò)SCCB接口可以方便地設(shè)置傳感器視窗大小,、增益、白平衡校正,、曝光控制,、飽和度,、色調(diào)等參數(shù)。包含有圖像傳感器OV9650攝像頭模塊如圖3所示,。
    S3C2440有一個(gè)專用的攝像頭接口,,CPU可以直接和CMOS圖像傳感器連接,當(dāng)0V9650輸出數(shù)據(jù)格式為8位的YUV時(shí),,要用到數(shù)據(jù)線D2~D9(D9為MSB位,,D2為L(zhǎng)SB位);當(dāng)輸出的數(shù)據(jù)格式為10位RGB,,用數(shù)據(jù)線D0~D9(D9為MSB位,,D0為L(zhǎng)SB位),該系統(tǒng)用YUV格式,。該攝像頭模塊與S3C2440的Camera接口連接,,其電路圖分別如圖4~圖6所示。

    其中用到了TI公司的電平轉(zhuǎn)換芯片74LVC4245,,是一種雙電源的電平移位器,,電平移位在其內(nèi)部進(jìn)行。5 V端用5 V電源作為VDD_CAM,,而3.3 V端則用3.3 V作為VCC33,。雙電源能保證兩邊端口的輸出擺幅都能達(dá)到滿電源幅值。
2.2 GPRS模塊的接口設(shè)計(jì)
    S3C2440有3個(gè)UART通道,,利用其中一個(gè)通道設(shè)計(jì)串口,,使其與GPRS模塊連接,由于S3C2440自帶的UART控制器,,使得硬件開(kāi)發(fā)和軟件設(shè)計(jì)都比較簡(jiǎn)單,。但RS 232標(biāo)準(zhǔn)所定義的高、低電平信號(hào),,與一般的微控制器系統(tǒng)的電路所定義的高,、低電平信號(hào)完全不同,如S3C2440系統(tǒng)的標(biāo)準(zhǔn)邏輯“1”對(duì)應(yīng)電平2~3 V,,標(biāo)準(zhǔn)邏輯“O”對(duì)應(yīng)0~4 V電平,。顯然,與RS 232標(biāo)準(zhǔn)所述的電平信號(hào)完全不同,。兩者之間要進(jìn)行通信,,必須經(jīng)過(guò)信號(hào)電平的轉(zhuǎn)換,目前常使用的電平轉(zhuǎn)換芯片有MAX232,,MAX3221和MAX324.3,,具體設(shè)計(jì)電路如圖7和圖8所示。

3 操作系統(tǒng)平臺(tái)的定制
    Windows CE是高度模塊化的嵌入式操作系統(tǒng),,正因?yàn)槿绱?,用戶為了滿足特定的要求而對(duì)操作系統(tǒng)進(jìn)行定制,,如果為自己的嵌入式設(shè)備定制Windows CE操作系統(tǒng),則須進(jìn)行創(chuàng)建,、構(gòu)建,、運(yùn)行和發(fā)布OS等一系列操作。在無(wú)線視頻監(jiān)控系統(tǒng)中,,根據(jù)功能要求,,利用Platform Builder5.0定制系統(tǒng)的流程如下:
    (1)導(dǎo)入BSP開(kāi)發(fā)包。由于用的是三星公司的基于ARM920T核的S3C2440,,所以在BSP包中找到SMDK2440文件下的SMDK2440.CEC文件將其導(dǎo)入,。打開(kāi)“Platform Builder5.0”,選擇“File”菜單下的 “Manage Catalog Features”,,如圖9所示,。在彈出的對(duì) 話框中單擊“Import”,瀏覽到SMDK2440文件下的 smdk2440.cec文件,,將其導(dǎo)入,。

    (2)創(chuàng)建項(xiàng)目。根據(jù)WinCE無(wú)線監(jiān)控系統(tǒng)的要求,,在定制系統(tǒng)的過(guò)程中選擇合適的組件來(lái)實(shí)現(xiàn)。其中包括的組件有:支持應(yīng)用程序開(kāi)發(fā)的MFC組件和支持網(wǎng)絡(luò)的相關(guān)組件等,。
    (3)編譯項(xiàng)目:點(diǎn)擊菜單“Build OS”→“Sysgen”開(kāi)始編譯項(xiàng)目,。
    (4)下載運(yùn)行時(shí)映像,調(diào)試成功后啟動(dòng),。編譯成功后會(huì)在目WinCES00\PBWorkspaces\testl\RelDir\smdk2 440_ARMV4I_Release下生成nk.bin和nk.nb0等文件,,將nk.nb0下載到硬件平臺(tái)上運(yùn)行。

4 驅(qū)動(dòng)程序的開(kāi)發(fā)
4.1 攝像頭驅(qū)動(dòng)的開(kāi)發(fā)
    攝像頭驅(qū)動(dòng)開(kāi)發(fā)是設(shè)計(jì)中的一個(gè)難點(diǎn),,也是一個(gè)關(guān)鍵部分,。由于攝像頭采集的視頻數(shù)據(jù)可以當(dāng)作數(shù)據(jù)流來(lái)處理,所以對(duì)于攝像頭的驅(qū)動(dòng)將采用流式接口的方法來(lái)開(kāi)發(fā),。
    (1)在Platform Builder中打開(kāi)前面定制的操作系統(tǒng)工程,,然后在新建一個(gè)WIN32 DLL項(xiàng)目,添加2個(gè)C++的源文件,,即:camera.cpp和IIc.cpp,,其中camer—a.cpp包含驅(qū)動(dòng)的入口函數(shù)DLLMain();驅(qū)動(dòng)的前綴為“CIS”,,IIc.cpp包含通過(guò)ICC接口對(duì)攝像頭相關(guān)寄存器進(jìn)行配置的函數(shù),。
    (2)根據(jù)前面的硬件電路和OV9650芯片的工作時(shí)序,通過(guò)編寫(xiě)流接口的CIS_Init函數(shù)實(shí)現(xiàn)OV9650初始化,。主要包括以下3步:調(diào)用InterruptInitialize(SYSINTR_CAM,,CameraEvent,,NULL,0)函數(shù)通知系統(tǒng)注冊(cè)中斷,;調(diào)用CreateEvent()函數(shù)創(chuàng)建一個(gè)CameraEvent事件,;調(diào)用CreateThread()函數(shù)創(chuàng)建CameraThread線程。在Camera Capture Thread服務(wù)函數(shù)中調(diào)用WaitForSingleObject(CameraEvent,,Dis—play Time)函數(shù)等待Camera Event事件的發(fā)生,。此事件由與其關(guān)聯(lián)的SYSINTR_CAM中斷來(lái)觸發(fā)。此外還有其它流接口函數(shù)(CIS_IOControl等)也可以以類似的方法實(shí)現(xiàn),。
    (3)編寫(xiě)DLL的導(dǎo)出函數(shù)定義文件.DEF,。.DEF文件定義了DLL的導(dǎo)出函數(shù)類表,。.DEF文件可以就用一般的記事本編輯,,保存時(shí)后綴名改為.DEF即可,,關(guān)于本攝像頭驅(qū)動(dòng)的.DEF文件內(nèi)容如下:

   
    (4)為驅(qū)動(dòng)程序配置注冊(cè)表,。在platform.reg中添加以下注冊(cè)項(xiàng)即可:

    
    在攝像頭驅(qū)動(dòng)開(kāi)發(fā)完成后,,通過(guò)編寫(xiě)應(yīng)用程序在嵌入式終端的觸摸屏上顯示出來(lái),,如圖10所示,。首先通過(guò)CreateWindow這個(gè)API函數(shù)創(chuàng)建一個(gè)用來(lái)顯示圖像的窗體,,然后創(chuàng)建回調(diào)函數(shù)CaptureThreadProc的線程,,在回調(diào)函數(shù)中根據(jù)不同的操作向操作系統(tǒng)發(fā)送不同的消息值,,處理圖像的讀取、顯示等,。測(cè)試結(jié)果如圖11所示,。

4.2 串口驅(qū)動(dòng)開(kāi)發(fā)
    在Windows CE中串口的驅(qū)動(dòng)實(shí)現(xiàn)是有固定模型的,基于流驅(qū)動(dòng)模型,,采用分層結(jié)構(gòu),。串口驅(qū)動(dòng)的開(kāi)發(fā)的步驟和上面攝像頭驅(qū)動(dòng)開(kāi)發(fā)的步驟一樣,關(guān)鍵是實(shí)現(xiàn)流接口函數(shù),,由于這里采用了分層的結(jié)構(gòu),,MDD層的代碼可以參考微軟提供的源代碼在%WINCEROOT%\PUBUC\COMMON\OAK\DRIVERS\SERIAL\COMMDD2目錄下,PDD層中的代碼是與硬件相關(guān)的代碼,,需要針對(duì)不同的設(shè)備來(lái)編寫(xiě),。MDD層中的代碼調(diào)用PDD層中的代碼來(lái)實(shí)現(xiàn)具體的硬件操作。串口驅(qū)動(dòng)的結(jié)構(gòu)如圖12所示,。

5 PC機(jī)端監(jiān)控中心程序的開(kāi)發(fā)
    監(jiān)控中心是無(wú)線視頻監(jiān)控系統(tǒng)的核心部分,,它負(fù)責(zé)管理整個(gè)系統(tǒng)并顯示監(jiān)控的圖像。在該論文中,,監(jiān)控中心的應(yīng)用程序?qū)崿F(xiàn)了實(shí)時(shí)監(jiān)控,、定時(shí)錄像、抓拍等功能,。在系統(tǒng)中監(jiān)控程序的開(kāi)發(fā),,同時(shí)使用了C#語(yǔ)言和WIN32 API,,利用C#語(yǔ)言基于事件的編程方法,設(shè)計(jì)了程序圖形界面,,利用VFW接口中的API函數(shù)基于消息機(jī)制設(shè)計(jì)了底層圖像數(shù)據(jù)的讀取和顯示,。該系統(tǒng)中API函數(shù)主要來(lái)自于VFW軟件工具包。VFW(Video forWindows)提供了一系列應(yīng)用程序編程接口(API),,用戶可以通過(guò)它們很方便地實(shí)現(xiàn)視頻捕獲,、視頻編輯及視頻播放等通用功能,還可利用回調(diào)函數(shù)開(kāi)發(fā)更復(fù)雜的視頻應(yīng)用程序,。其特點(diǎn)是播放視頻時(shí),,不需要專用的硬件設(shè)備,而且應(yīng)用靈活,,可以滿足視頻應(yīng)用程序開(kāi)發(fā)的需要,。監(jiān)控中心的程序調(diào)試運(yùn)行效果如圖13所示。

6 視頻壓縮編碼和傳輸理論研究
6.1 視頻壓縮編碼研究
    圖像和視頻包含巨大數(shù)量的信息,,其傳輸和存儲(chǔ)需要很寬的帶寬,,多媒體視頻數(shù)據(jù)在無(wú)線傳輸之前,必須進(jìn)行壓縮,。常用的數(shù)字壓縮技術(shù)主要包括用于會(huì)議電視系統(tǒng)的H.261壓縮編碼,,用于計(jì)算機(jī)靜止圖像壓縮的JPEG和用于活動(dòng)圖像壓縮的MPEG數(shù)字壓縮技術(shù)和近年來(lái)比較熱點(diǎn)的H.263和H.264壓縮編碼技術(shù)。MPEG一4采用新一代視頻編碼技術(shù),,它在視頻編碼發(fā)展史上第一次把編碼對(duì)象從圖像幀拓展到具有實(shí)際意義的任意形狀視頻對(duì)象,,從而實(shí)現(xiàn)了從基于像素的傳統(tǒng)編碼向基于對(duì)象和內(nèi)容的現(xiàn)代編碼的轉(zhuǎn)變,因而引領(lǐng)著新一代智能圖像編碼的發(fā)展潮流,。
    由于MPEG一4壓縮編碼系統(tǒng)比較復(fù)雜,在論文中將重點(diǎn)對(duì)MPEG一4壓縮編碼技術(shù)進(jìn)行研究,,分析其在PC機(jī)上的壓縮編碼的源碼,,為以后在ARM等嵌入式設(shè)備上的移植奠定基礎(chǔ)。對(duì)一幀圖像進(jìn)行MlPEG一4編碼的流程如圖14所示,。

    編譯開(kāi)源的MPEG一4 XVID模型的源代碼,,將生成一個(gè)xvidcore.dIl文件,在應(yīng)用程序開(kāi)發(fā)中調(diào)用庫(kù)中的相關(guān)函數(shù),,程序執(zhí)行過(guò)程如圖15所示,。其中程序在PC機(jī)上測(cè)試,先從攝像頭中讀取視頻數(shù)據(jù),,再進(jìn)行MPEG一4編碼,。

6.2 無(wú)線傳輸研究
    GPRS采用基于分組傳輸模式的無(wú)線IP技術(shù),以一種有效的方式高速傳送數(shù)據(jù),,支持Internet上應(yīng)用最廣泛的IP協(xié)議和X.25協(xié)議,,傳輸速率最高達(dá)117 KB/s,,所以視頻數(shù)據(jù)通過(guò)MPEG一4壓縮后,完全可以通過(guò)GPRS模塊進(jìn)行傳輸,。在此傳輸過(guò)程中通信的連接建立,、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)TCP/IP網(wǎng)絡(luò)的API,Socket接口實(shí)現(xiàn),。整個(gè)無(wú)線傳輸效果如圖16所示,。


7 結(jié) 語(yǔ)
    基于Windows CE5.0的無(wú)線監(jiān)控系統(tǒng)涉及到了計(jì)算機(jī)編程技術(shù)、嵌入式技術(shù),、視頻編碼,、無(wú)線傳輸?shù)榷喾矫娴闹R(shí),在此課題中完成了大量的工作,,測(cè)試結(jié)果達(dá)到了該論文預(yù)期的目的,。嵌入式終端平臺(tái)具有體積小、功耗低,、運(yùn)行速度快,、采集的圖像清晰等特點(diǎn),在監(jiān)控中心程序的設(shè)計(jì)也具有友好的人機(jī)交互界面,,實(shí)現(xiàn)了定時(shí)監(jiān)控,、錄像、拍照等功能,。視頻壓縮與無(wú)線傳輸方面從理論上研究方法的可行性,,提出具體的解決方法,這為以后進(jìn)一步完善系統(tǒng)奠定了堅(jiān)實(shí)的基礎(chǔ),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。