當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于WinCE的嵌入式視頻數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

隨著嵌入式技術(shù)的不斷發(fā)展,各種嵌入式微處理器和控制器不斷出現(xiàn),并廣泛應(yīng)用于工控、通信、PDA、安保等領(lǐng)域?;贏RM920t內(nèi)核的嵌入式微處理器S3C2440,以其良好的數(shù)據(jù)處理能力、低功耗、小體積、支持多種嵌入式操作系統(tǒng)(如WinCE、Linux)、集成多種外設(shè)(如I2C控制器、LCD控制器等)等優(yōu)點(diǎn),廣泛應(yīng)用于手持設(shè)備等。WinCE操作系統(tǒng)具有內(nèi)核可剪裁、實(shí)時(shí)性好、支持多種通信、模塊化設(shè)計(jì)、具有豐富的API等特點(diǎn),廣泛用于嵌入式實(shí)時(shí)操作系統(tǒng)。這里提出的嵌入式圖像數(shù)據(jù)采集系統(tǒng)是某“納米技術(shù)與微系統(tǒng)”實(shí)驗(yàn)室開發(fā)的“嵌入式傳感測控系統(tǒng)”中實(shí)現(xiàn)圖像采集功能的子系統(tǒng),該系統(tǒng)是以S3C2440為硬件核心,以WinCE為軟件平臺,能實(shí)時(shí)、連續(xù)地采集清晰的視頻數(shù)據(jù)。

1 系統(tǒng)結(jié)構(gòu)框圖及視頻數(shù)據(jù)采集原理
    視頻數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)如圖1所示。


    從圖1中可以看出。系統(tǒng)由嵌入式微處理器S3C2440、存儲器(包括Nand Flash和SDRAM)、以太網(wǎng)接口、CMOS圖像傳感器0V9650、USB主/從口、SD卡、JTAG接口、電源與復(fù)位電路、LCD與觸摸屏組成。其中,S3C2440為整個(gè)系統(tǒng)的硬件核心,負(fù)責(zé)采集來自圖像傳感器的數(shù)據(jù),控制給各種外設(shè)等。Nand Flash存儲器與SDRAM構(gòu)成了系統(tǒng)的存儲器,其中SDRAM具有掉電數(shù)據(jù)不保存的特點(diǎn),只用作系統(tǒng)內(nèi)存,用于運(yùn)行主程序等,而Nand Flash則具有掉電保存數(shù)據(jù)的特點(diǎn),用于存儲操作系統(tǒng)內(nèi)核,引導(dǎo)加載程序(Bootloader)、用戶應(yīng)用程序等。
    CMOS圖像傳感器及其接口電路用于采集視頻數(shù)據(jù)。LCD與觸摸屏構(gòu)成人機(jī)交互模塊,起到數(shù)據(jù)交互的作用,相當(dāng)于PC機(jī)的鍵盤和液晶。J-TAG接口用于系統(tǒng)硬件調(diào)試和下載Bootloader程序。USB主口不但可以用于外接U盤和移動(dòng)硬盤等,還可外接帶USB接口的鼠標(biāo)。在觸摸屏校正出現(xiàn)大的偏差無法校正時(shí),用鼠標(biāo)輔助校正。USB從口用于下載WinCE內(nèi)核文件NK.bin。電源電路包括為微處理器與相關(guān)外設(shè)提供電壓(如微處理器的1.3 V內(nèi)核電壓、LCD的3.3 V背光電壓),以及為攝像頭供電。復(fù)位電路用于出現(xiàn)故障時(shí)系統(tǒng)重啟。以太網(wǎng)接口用于擴(kuò)展系統(tǒng)功能,在視頻數(shù)據(jù)采集的基礎(chǔ)上,通過以太網(wǎng),可以編程實(shí)現(xiàn)視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸。
    視頻數(shù)據(jù)采集原理如下:應(yīng)用程序通過文件系統(tǒng)的API調(diào)用攝像頭驅(qū)動(dòng)程序的流接口函數(shù)發(fā)送命令。驅(qū)動(dòng)程序?qū)⒔邮盏降拿钷D(zhuǎn)化為對外部設(shè)備的相應(yīng)操作,實(shí)現(xiàn)對處理器的CAMIF單元和圖像傳感器設(shè)備的初始化、I/O控制和電源管理等操作。圖像傳感器接收由處理器的I2C總線發(fā)送的配置數(shù)據(jù),正常工作之后將圖像數(shù)據(jù)和VSYNC、HREF、PCLK 3個(gè)時(shí)鐘信號發(fā)送到處理器的CAMIF單元中,2條DMA通道將采集到的圖像數(shù)據(jù)通過系統(tǒng)總線保存到內(nèi)存的幀緩沖區(qū)中,幀緩沖區(qū)的圖像數(shù)據(jù)能夠被流接口驅(qū)動(dòng)函數(shù)讀取。

2 攝像頭接口及其電源電路
    攝像頭接口電路如圖2所示。本系統(tǒng)選用130萬像素的CMOS攝像頭0V9650,通過串行攝像頭控制總線(Serial Camera Control Bus,SCCB)接口實(shí)現(xiàn)對其控制。OV9650支持SXGA、VGA、QVGA、CIF等格式,8位數(shù)據(jù)輸出格式,可以是YUV/YCbCr(4:2:2)、GRB(4:2:2)和Raw RGB 3種。


    OV9650內(nèi)部主要包括1 300xl 028的圖像傳感器陣列、模擬信號處理器、ADC、DSP、數(shù)字視頻端口、SCCB接口、定時(shí)信號發(fā)生器和輸出格式器。數(shù)據(jù)輸出位YO只在RAW RGB數(shù)據(jù)時(shí)用作LSB,而Y1只在RGB數(shù)據(jù)時(shí)用作MS,這里都不使用,而用到的主要引腳有:RESET為重置位,用于清空所有的寄存器并重置為默認(rèn)的值,高電平有效:HREF為內(nèi)部參考電壓引腳,為器件提供參考電壓:PWDN為關(guān)閉電源模式選擇位,高電平有效,為0時(shí)是正常模式,為1時(shí)電源關(guān)閉模式;SIO_D為SCCB串行接口數(shù)據(jù)I/O,SIO_C為串行接口時(shí)鐘輸入引腳;Y[2:9]為數(shù)據(jù)輸出位,共8位;VSYNC為垂直同步輸出引腳:PCLK為像素時(shí)鐘輸出引腳,XCLKl為系統(tǒng)時(shí)鐘輸入引腳。
    OV9650的核心供電電壓為1.8 V.模擬輸入的供電電壓為2.45~2.8 V,I/O口的供電電壓可以為2.5~3.3 V。本系統(tǒng)設(shè)計(jì)中,攝像頭供電電路如圖3所示。采用電源轉(zhuǎn)換器ASlll7為攝像頭提供1.8 V和2.8 V電壓,其中2.8 V電壓是通過可調(diào)壓器件分壓得到。[!--empirenews.page--]



3 系統(tǒng)軟件設(shè)計(jì)
    系統(tǒng)的軟件設(shè)計(jì)應(yīng)當(dāng)包括兩部分:BSP的開發(fā)與應(yīng)用程序的開發(fā)。本文分別從這兩個(gè)方面簡單論述,BSP的開發(fā)主要介紹Bootloader程序設(shè)計(jì)及OV9650驅(qū)動(dòng)程序開發(fā)。
3.1 Bootloader的開發(fā)
    BSP的開發(fā)一般包括3個(gè)方面的內(nèi)容:Bootloader程序設(shè)計(jì)、OAL層及驅(qū)動(dòng)程序開發(fā)。Bootloader是操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序,用于初始化系統(tǒng)的硬件設(shè)備,如初始化MMU、屏蔽所有中斷、初始化NandFlash等,建立系統(tǒng)的內(nèi)存空間映射。從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)已知的狀態(tài),為操作系統(tǒng)內(nèi)核的最終調(diào)用準(zhǔn)備正確的環(huán)境。最后Bootloader把操作系統(tǒng)內(nèi)核映像加載到RAM中,并將系統(tǒng)的控制權(quán)傳遞于它,其作用類似于基于X86的PC中的BIOS。
    本系統(tǒng)設(shè)計(jì)的Bootloader,采用Eboot+Nboot的形式,支持USB從機(jī)下載通信手段和Nand flash存儲介質(zhì)。NandFlash不支持xip,故必須有一個(gè)可執(zhí)行的程序?qū)龑懺谄渲械腅boot搬到SDRAM中。Nboot一般配合Eboot一起使用。Eboot與Nboot同樣為啟動(dòng)代碼,但是Eboot的大小遠(yuǎn)超過4 KB,故不能直接將Eboot存放在block0中。Nboot的作用是初始化Flash等硬件,將Eboot搬到SDRAM運(yùn)行。而Eboot則負(fù)責(zé)內(nèi)存地址的映射以及其余設(shè)備的初始化、加載NK.bin內(nèi)核文件等。Nboot與Eboot在其中的位置如圖4所示。


3.2 0V9650驅(qū)動(dòng)程序的開發(fā)
    WinCE的驅(qū)動(dòng)程序按不同的分類方式分為:本機(jī)驅(qū)動(dòng)和流驅(qū)動(dòng)。而OV9650驅(qū)動(dòng)程序則屬于流驅(qū)動(dòng)程序。流接口驅(qū)動(dòng)程序由Device.exe統(tǒng)一加載和管理;用戶編寫的應(yīng)用程序通過使用WinCE操作系統(tǒng)的文件API函數(shù)如CloseHandler()函數(shù)、CreateFile()函數(shù)等與流接口進(jìn)行通信,達(dá)到應(yīng)用程序訪問驅(qū)動(dòng)程序最終操作硬件的目的。流接口驅(qū)動(dòng)程序具有固定的入口點(diǎn)函數(shù),WinCE的文件系統(tǒng)通過這些入口點(diǎn)函數(shù)與流接口驅(qū)動(dòng)進(jìn)行通信。OV9650流接口驅(qū)動(dòng)程序的入口點(diǎn)函數(shù)包括:CIS_Init,CIS_Deinit,CIS_Open,CIS_Close,CIS_IOControl,CIS_Read,CIS_Write,CIS_PowerUp,CIS_PowerDown等,CIS前綴表示設(shè)備的名稱。
    驅(qū)動(dòng)程序首先調(diào)用Virtual_Alloc()函數(shù)來完成將物理地址映射到虛擬空間內(nèi),以申請攝像頭I2C寄存器地址對應(yīng)的虛擬地址,隨后初始化I2C,通過下列語句打開I2C,并設(shè)定其訪問權(quán)限。

    接著調(diào)用Cam_Init()函數(shù),該函數(shù)主要負(fù)責(zé)攝像頭的一些硬件初始化工作,包括:攝像頭與S3C2440連接的GPI0的初始化、時(shí)鐘的初始化等。隨后調(diào)用InitInterruptThread()函數(shù),初始化中斷線程,通知系統(tǒng)注冊中斷;調(diào)用CreateEven()函數(shù)創(chuàng)建一個(gè)CameraEvent事件,在CameraCapturerTbread()函數(shù)中,調(diào)用WaitForSingle()biect()函數(shù)來等待CameraEvent事件的發(fā)生。
    這里重點(diǎn)說明CIS_IOControl()函數(shù)。該函數(shù)主要用于向設(shè)備發(fā)送一個(gè)命令。應(yīng)用程序使用DeviceIOControl()函數(shù)來通知WinCE調(diào)用這個(gè)函數(shù),通過參數(shù)dwCode通知驅(qū)動(dòng)程序要執(zhí)行的操作。該函數(shù)通過switch()語句為用戶提供能操作的語義,以下給出實(shí)現(xiàn)播放采集的MPEG4視頻數(shù)據(jù)和退出驅(qū)動(dòng)、停止采集功能的關(guān)鍵代碼,“……”表示省略部分代碼。[!--empirenews.page--]


    驅(qū)動(dòng)程序編寫完成后,通過DEF與Sources文件的編寫、流驅(qū)動(dòng)的編譯以及加載該驅(qū)動(dòng)進(jìn)入WinCE內(nèi)核,則直接可以通過應(yīng)用程序調(diào)用該驅(qū)動(dòng)。
3.3 應(yīng)用程序開發(fā)
    應(yīng)用程序開發(fā)在可視化集成開發(fā)環(huán)境Embedded VisualC++中完成,主要基于MFC編程用C++語言實(shí)現(xiàn)。通過給“打開”按鈕添加單擊事件代碼,實(shí)現(xiàn)對驅(qū)動(dòng)程序的打開操作。打開驅(qū)動(dòng)程序通過以下語句實(shí)現(xiàn)。if語句用于判斷m_hFile的初始值是否為1,為1則關(guān)閉攝像頭驅(qū)動(dòng),重新賦值為1。CreateFile()函數(shù)用于打開驅(qū)動(dòng),并將結(jié)果返回給操作句柄。

    給“返回”按鈕添加單擊時(shí)間響應(yīng)函數(shù)代碼。通過調(diào)用CIS_IOControl()函數(shù)中的CAM_IOCTL_MOVIE_STOP,實(shí)現(xiàn)對驅(qū)動(dòng)程序的關(guān)閉。其實(shí)現(xiàn)方式跟“打開”按鈕基本一樣,這里不再贅述。當(dāng)然,返回按鈕還應(yīng)添加CDialog∷OnCancel()語句來返回到系統(tǒng)主界面。

4 視頻數(shù)據(jù)采集實(shí)驗(yàn)結(jié)果
   
應(yīng)用程序開發(fā)完成后,單擊“打開”按鈕,彈出“打開CISl成功”對話框,如圖5所示,表明攝像頭驅(qū)動(dòng)打開成功。單擊“顯示”按鈕,在右邊的視頻顯示區(qū),能實(shí)時(shí)顯示動(dòng)態(tài)的視頻數(shù)據(jù),如圖6所示。實(shí)驗(yàn)證明,攝像頭驅(qū)動(dòng)工作良好。實(shí)時(shí)數(shù)據(jù)采集的“納米技術(shù)與微系統(tǒng)”墻面上的展板畫面比較清晰,達(dá)到了預(yù)期效果。單擊“返回”按鈕,視頻顯示畫面順利關(guān)閉,返回主界面成功。



5 結(jié)束語
    以嵌入式微處理器S3C2440為硬件核心,以WinCE嵌入式實(shí)時(shí)操作系統(tǒng)為軟件開發(fā)平臺,以EVC為集成開發(fā)環(huán)境,完成系統(tǒng)的硬件設(shè)計(jì),B-SP的開發(fā)和應(yīng)用程序設(shè)計(jì)。在開發(fā)平臺上能順利打開驅(qū)動(dòng)程序,順利采集到實(shí)驗(yàn)室的展板圖像并實(shí)時(shí)連續(xù)播放視頻數(shù)據(jù),表明OV9650驅(qū)動(dòng)程序工作正常,軟硬件設(shè)計(jì)合理。下一步工作主要是采取合適的視頻編碼算法如H.264、M-JPEG等,通過以太網(wǎng)實(shí)現(xiàn)視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸,實(shí)現(xiàn)視頻遠(yuǎn)程監(jiān)控功能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉