基于3G手機的視頻監(jiān)控系統(tǒng)的設(shè)計
摘要:3G網(wǎng)絡(luò)的發(fā)展,手機將成為信息社會的核心樞紐,隨時、隨地地進(jìn)行遠(yuǎn)程檢測實時監(jiān)控已成為需求。介紹了基于Micro2440開發(fā)板的手機視頻監(jiān)控系統(tǒng),前端視頻采集以ARM920t內(nèi)核的嵌入式微處理器S3C2440為硬件核心,以WinCE為嵌入式實時操作系統(tǒng)。傳輸系統(tǒng)采用中國聯(lián)通的WCDMA無線網(wǎng)絡(luò),應(yīng)用萬維網(wǎng)作為服務(wù)器,后端監(jiān)控系統(tǒng)驅(qū)動程序開發(fā)在Platform Builder中完成,應(yīng)用程序在EVC可視化開發(fā)環(huán)境中完成。通過實驗,證明了系統(tǒng)設(shè)計的正確與合理:已在3G手機中顯示圖片,圖片清晰,性價比高,系統(tǒng)穩(wěn)定性好。
關(guān)鍵詞:WCDMA;手機;ARM9;WinCE;視頻監(jiān)控
隨著3G網(wǎng)絡(luò)技術(shù)的快速發(fā)展以及3G手機各項功能的增強,使得利用3G手機實現(xiàn)隨時隨地的視頻監(jiān)控已成為可能。而嵌入式技術(shù)作為當(dāng)今IT業(yè)的熱門技術(shù),各種嵌入式芯片如DSP,ARM,SOC等被廣泛應(yīng)用于數(shù)碼、安防、交通信號采集、遠(yuǎn)程醫(yī)療等領(lǐng)域,可以預(yù)見未來便攜式多功能的個人醫(yī)療數(shù)字服務(wù)終端會像手機一樣普及,用戶可以隨時隨地地將自己重要的生理信息實時、準(zhǔn)確、快速地傳送到遠(yuǎn)程醫(yī)療中心或家庭護理專家處,從而得到醫(yī)生的專業(yè)建議和指導(dǎo),實現(xiàn)遠(yuǎn)程醫(yī)療監(jiān)護的應(yīng)用。文獻(xiàn)中的無線監(jiān)控系統(tǒng)也用到ARM9芯片和WinCE操作系統(tǒng),但對軟件設(shè)計部分論述不清晰,文獻(xiàn)論述的基于ARM的無線視頻監(jiān)控系統(tǒng)只介紹了簡單的硬件結(jié)構(gòu)和程序流程圖,沒有給出實驗結(jié)果,文獻(xiàn)只給出了仿真圖,文獻(xiàn)論述的基于3G的手機遠(yuǎn)程監(jiān)控系統(tǒng)也只介紹了簡單的系統(tǒng)框圖和應(yīng)用實例,并沒有實驗結(jié)果,文獻(xiàn)均采用ARM9內(nèi)核嵌入式芯片,且采用Linux操作系統(tǒng),但是都沒有實驗驗證,且主要論述的是Linux內(nèi)核編譯。本文設(shè)計一種基于ARM9芯片的3G手機嵌入式視頻采集系統(tǒng),該系統(tǒng)與參考文獻(xiàn)所論述的視頻采集系統(tǒng)相比,具有體積小、能耗低、更新維護方便、開發(fā)難度低等特點。
1 系統(tǒng)硬件結(jié)構(gòu)
本系統(tǒng)的硬件平臺實物如圖1,鑒于系統(tǒng)的可靠性、可擴展性、可維護性,本系統(tǒng)采用模塊化的設(shè)計原則,整個系統(tǒng)的視頻采集系統(tǒng)硬件由3個部分構(gòu)成。
1.1 微系統(tǒng)核心模塊
該模塊是由嵌入式微處理器S3C2440A,NANDFALSH接口電路、SDRAM接口電路和總線接口電路組成。S3C2440是三星公司基于ARM920T內(nèi)核的32位RISC微處理器芯片,為手持設(shè)備及一般類型的應(yīng)用提供低價格、低功耗、高性能小型微控制器的解決方案。采用了新的總線架構(gòu)AMB-A,其內(nèi)核還實現(xiàn)了MMU,Harvard高速緩沖體系結(jié)構(gòu)。另外其加強的ARM體系結(jié)構(gòu)MMU支持WinCE,Linux和EPOC32等操作系統(tǒng),支持ARM調(diào)制體系結(jié)構(gòu),支持從NAND FLAsH存儲器啟動。而且,它還集成了豐富的片上功能,如LCD控制器、UART接口、USB主從接口、I2C接口、CAM IF單元等。
SDRAM雖掉電不能保存數(shù)據(jù),但它有非常高的讀寫速度,故適合主程序的運行。本系統(tǒng)采用2片32 MB型號為HY57V561620的芯片級聯(lián)構(gòu)成64 MB的SDRAM存儲器,該芯片的內(nèi)部存儲結(jié)構(gòu)是4 Banks×4M×16 b,共4個Bank。NAND FLASH存儲系統(tǒng)采用三星公司的K9F1208U0M芯片,存儲容量為64M×8 b。核心模塊與外設(shè)控制模塊的接口連接由總線接口實現(xiàn)。
1.2 視頻采集模塊
該模塊采用Micro2440開發(fā)板自帶的CMOS攝像頭接口,直接使用友善之臂提供的CAM130攝像頭模塊,該模塊由一個130萬像素的CMOS圖像傳感器OV9650及其接口電路、電源電路組成。選擇CMOS傳感器是因為它有集成度高、體積小、功耗低、編程方便、易于控制、成本低等優(yōu)點,并且該類型的傳感器正向低噪聲和高靈敏度等方向發(fā)展,故CMOS傳感器是目前低像素圖像采集系統(tǒng)的最佳選擇。接口電路將圖像信號進(jìn)行A/D轉(zhuǎn)換和處理,傳送到處理器的CAM IF。微系統(tǒng)核心模塊通過I2C串行總線實現(xiàn)對傳感器的控制。電源電路由電源轉(zhuǎn)換芯片AS1117為攝像頭提供1.8 V和2.8 V電壓,其中2.8 V電壓是通過可調(diào)壓芯片分壓得到(即為圖2中的VDD_CAM)。該模塊的供電電壓為3.3 V,與微系統(tǒng)核心模塊的供電電壓是一致的,無需另外單獨提供。
1.3 外設(shè)控制模塊
該模塊由LCD與觸摸屏接口電路、JTAG調(diào)試接口電路、USB主從口電路、復(fù)位電路、電源電路、RS 232串口電路等構(gòu)成。LCD與觸摸屏接口電路用于顯示應(yīng)用程序編寫完成后采集的視頻數(shù)據(jù)、接受用戶的外部控制命令等,起到人機接口的作用。JATG調(diào)試接口提供硬件調(diào)試的功能,它遵循IEEE 11491標(biāo)準(zhǔn),利用邊界掃描技術(shù),通過邊界掃描鏈實現(xiàn)對芯片輸入輸出信號的觀察控制。JATG在本系統(tǒng)中的一個重要功能就是將引導(dǎo)加載程序Bootloader燒寫進(jìn)開發(fā)板,用于進(jìn)一步的內(nèi)核加載。USB主口用于外接U盤、移動硬盤和鼠標(biāo)等支持USB總線接口的設(shè)備,可以擴展存儲空間。USB從口則用于向系統(tǒng)燒寫WinCE內(nèi)核文件以及系統(tǒng)與PC機之間的通信。復(fù)位電路采用既有電源監(jiān)控和數(shù)據(jù)保護又有看門狗作用的專門復(fù)位芯片MAX811來保證系統(tǒng)出現(xiàn)異常時能可靠復(fù)位。RS 232用于通過超級終端或DNW工具查看Bootloader程序啟動的情況以及擴展串口通信功能。該處的電源電路提供5 V(為整個系統(tǒng)提供外部電源)、3.3 V(核心模塊、外設(shè)控制、圖像采集模塊供電)和1.3 V(核心模塊供電)。
2 圖像傳感器接口電路與工作原理
攝像頭使用的是CAM130模塊,其中的圖像傳感器為OV9650,該部分原理圖及接口電路如圖2所示。
OV9650與處理器的接口包括SCCB(串行攝像機控制總線)接口、數(shù)據(jù)輸出接口和控制接口等3部分。
SCCB接口起到傳遞處理器提供的初始化OV9650內(nèi)部寄存器參數(shù)的作用,其數(shù)據(jù)線SIOD和時鐘線SIOC,相當(dāng)于I2C總線中的SDA與SCL。也就是說,SCCB起到I2C總線的作用。OV9650是I2C總線的從器件,S3C2440是對應(yīng)的主器件。I2C總線采用串行方式從高位到低位傳輸字節(jié)數(shù)據(jù),每個字節(jié)傳輸完后,主控制器將SDA置為高電平并釋放,等待從設(shè)備發(fā)送確認(rèn)信號。OV9650內(nèi)嵌了一個10位A/D轉(zhuǎn)換器,對應(yīng)有10個數(shù)據(jù)輸出口D[0:9]。輸出圖像數(shù)據(jù)的格式可以為10位原始RAW,RGB或經(jīng)過內(nèi)部DSP轉(zhuǎn)換的8位RGB/YCbCr。本系統(tǒng)選擇的微處理器芯片S3C2440的CAMIF單元支持8位的YUV/YCbCr格式,故需將OV9650的數(shù)據(jù)接口D[9:2]與CAM IF的數(shù)據(jù)口CAMDATA[7:0]相連接。OV9650的XVCLK用于接收CPU輸出的24 MHz的工作時鐘。OV9650內(nèi)部產(chǎn)生的幀同步信號VSYNC、行同步信號HREF、像素時鐘信號PCLK等3個時鐘信號傳入ARM芯片中,用于控制圖像采集。每一個VSYNC脈沖表示一幀圖像數(shù)據(jù)采集的開始,HREF的高電平則表示采集一行圖像數(shù)據(jù),圖像傳感器按從左到右的順序在每個PCLK
脈沖過程中依次采集一個字節(jié)的數(shù)據(jù),直到一幀圖像數(shù)據(jù)全部采集完成。
3 3G圖片傳輸流程
圖片傳輸流程圖如圖3所示,3G手機向MINI2440開發(fā)板發(fā)送短信請求發(fā)照片,ARM9控制中心接收到信息,發(fā)送出文件名與文件大小,TCP服務(wù)器收到信息接收完圖片并關(guān)閉窗口,同時向3G手機回饋圖片已接收完畢的信息,接著3G手機向服務(wù)器發(fā)送請求接收照片,TCP服務(wù)器向3G手機發(fā)送圖片數(shù)據(jù),直到圖片接收完畢,當(dāng)接收完畢,3G手機向服務(wù)器反饋圖片接收完畢。
有關(guān)Micro2440開發(fā)板發(fā)送圖片及3G手機接收圖片的部分程序如下所示:
4 應(yīng)用軟件設(shè)計及實驗結(jié)果
操作系統(tǒng)與硬件平臺間采用虛擬串口進(jìn)行通信,EVC在實現(xiàn)串口數(shù)據(jù)通信中存在2個局限性:一是EVC不支持串口通信控件MScomm,另一個是WinCE不支持重疊I/O操作。因此,要采用WinCE的API函數(shù)和多線程技術(shù)進(jìn)行數(shù)據(jù)串口通信的底層開發(fā)。Windows API函數(shù)將串口視為文件,對于串口的操作類似于對于普通文件的操作。在EVC環(huán)境中,通過調(diào)用CreateFile函數(shù)來打開串口,設(shè)置串口讀寫模式:
因為WinCE不支持重疊I/O,所以CreateFile的第6個參數(shù)不能設(shè)置為:FILE_FLAG_OVER_LAPPED,這里設(shè)置成通用常數(shù)“0”,否則串行通信處理將被系統(tǒng)信息阻塞。
打開串口以后,可以使用串口初始化函數(shù)SetCommState()來獲取串口當(dāng)前的配置,如串口號、波特率、奇偶校驗、數(shù)據(jù)位、停止位等:
應(yīng)用程序開發(fā)是在EVC集成開發(fā)環(huán)境中進(jìn)行的。用EVC的AppWizard向?qū)Ы⒒贛FC的對話框程序架構(gòu),在進(jìn)行頁面布局“圖像顯示區(qū)域”、“初始化”、“接聽”、“撥號”、“掛機”等按鈕后,為各種按鈕添加各種消息響應(yīng)時間以及完成對各按鈕進(jìn)行的設(shè)置,以響應(yīng)用戶期待的命令。“初始化”按鈕是進(jìn)行3G網(wǎng)絡(luò)的初始化。“接聽”按鈕就是響應(yīng)3G手機發(fā)送給開發(fā)板的命令,“撥號”按鈕所需進(jìn)行的設(shè)置有對方號碼、撥號時發(fā)送的消息以及服務(wù)器IP和端口號,設(shè)置完這些就可進(jìn)行撥號等待響應(yīng)了;“掛機”按鈕實現(xiàn)退出應(yīng)用程序和關(guān)閉攝像頭驅(qū)動的功能。實現(xiàn)這些按鈕的單擊事件響應(yīng)函數(shù)的添加是比較容易的,在EVC環(huán)境中直接雙擊按鈕,進(jìn)入代碼編輯區(qū)就可進(jìn)行編程調(diào)試。這里給出“初始化”和“撥號”按鈕的部分代碼,…后面為省略的部分。
系統(tǒng)應(yīng)用軟件開發(fā)完成之后,在3G手機應(yīng)用程序中打開手機主控端軟件,單擊“初始化”按鈕完成“撥號”前的設(shè)置,將信息發(fā)送給Mi-cro2440開發(fā)板,等待響應(yīng),順利地采集圖片并最終顯示到3G手機上,圖4為3G手機主控終端軟件界面及圖片顯示結(jié)果。
5 結(jié)語
該系統(tǒng)實現(xiàn)基于ARM9平臺和WinCE操作系統(tǒng),通過CMOS攝像頭采集現(xiàn)場照片信息,然后通過WCDMA無線網(wǎng)絡(luò)連接到萬維網(wǎng)服務(wù)器,手機端設(shè)計出滿足條件的軟件,最終在3G手機上實現(xiàn)圖片監(jiān)控的功能。該系統(tǒng)具有實時性較好、成本較低、便于攜帶等優(yōu)點,非常適合在安保、交通、手持設(shè)備、家電、學(xué)校巡防等方面的應(yīng)用,它是實現(xiàn)視頻監(jiān)控部分的重要組成部分。目前只實現(xiàn)了圖像的傳輸及在3G手機上的顯示,視頻部分的傳輸顯示,由于時間原因,還暫時沒有完成。下一步將采用合適的視頻壓縮編碼算法如H.264,MPEG4編解碼技術(shù),實現(xiàn)視頻監(jiān)控功能。