国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于WinCE的嵌入式視頻數據采集系統設計

發布時間:2010-11-24 16:33    發布者:eetech
關鍵詞: WINCE , 嵌入式 , 視頻 , 數據采集
隨著嵌入式技術的不斷發展,各種嵌入式微處理器和控制器不斷出現,并廣泛應用于工控、通信、PDA、安保等領域。基于ARM920t內核的嵌入式微處理器S3C2440,以其良好的數據處理能力、低功耗、小體積、支持多種嵌入式操作系統(如WinCE、Linux)、集成多種外設(如I2C控制器、LCD控制器等)等優點,廣泛應用于手持設備等。WinCE操作系統具有內核可剪裁、實時性好、支持多種通信、模塊化設計、具有豐富的API等特點,廣泛用于嵌入式實時操作系統。這里提出的嵌入式圖像數據采集系統是某“納米技術與微系統”實驗室開發的“嵌入式傳感測控系統”中實現圖像采集功能的子系統,該系統是以S3C2440為硬件核心,以WinCE為軟件平臺,能實時、連續地采集清晰的視頻數據。

1 系統結構框圖及視頻數據采集原理

視頻數據采集系統結構如圖1所示。




從圖1中可以看出。系統由嵌入式微處理器S3C2440、存儲器(包括Nand Flash和SDRAM)、以太網接口、CMOS圖像傳感器0V9650、USB主/從口、SD卡、JTAG接口、電源與復位電路、LCD與觸摸屏組成。其中,S3C2440為整個系統的硬件核心,負責采集來自圖像傳感器的數據,控制給各種外設等。Nand Flash存儲器與SDRAM構成了系統的存儲器,其中SDRAM具有掉電數據不保存的特點,只用作系統內存,用于運行主程序等,而Nand Flash則具有掉電保存數據的特點,用于存儲操作系統內核,引導加載程序(Bootloader)、用戶應用程序等。

CMOS圖像傳感器及其接口電路用于采集視頻數據。LCD與觸摸屏構成人機交互模塊,起到數據交互的作用,相當于PC機的鍵盤和液晶。J-TAG接口用于系統硬件調試和下載Bootloader程序。USB主口不但可以用于外接U盤和移動硬盤等,還可外接帶USB接口的鼠標。在觸摸屏校正出現大的偏差無法校正時,用鼠標輔助校正。USB從口用于下載WinCE內核文件NK.bin。電源電路包括為微處理器與相關外設提供電壓(如微處理器的1.3 V內核電壓、LCD的3.3 V背光電壓),以及為攝像頭供電。復位電路用于出現故障時系統重啟。以太網接口用于擴展系統功能,在視頻數據采集的基礎上,通過以太網,可以編程實現視頻數據的網絡傳輸。
視頻數據采集原理如下:應用程序通過文件系統的API調用攝像頭驅動程序的流接口函數發送命令。驅動程序將接收到的命令轉化為對外部設備的相應操作,實現對處理器的CAMIF單元和圖像傳感器設備的初始化、I/O控制和電源管理等操作。圖像傳感器接收由處理器的I2C總線發送的配置數據,正常工作之后將圖像數據和VSYNC、HREF、PCLK 3個時鐘信號發送到處理器的CAMIF單元中,2條DMA通道將采集到的圖像數據通過系統總線保存到內存的幀緩沖區中,幀緩沖區的圖像數據能夠被流接口驅動函數讀取。

2 攝像頭接口及其電源電路

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




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





3 系統軟件設計

系統的軟件設計應當包括兩部分:BSP的開發與應用程序的開發。本文分別從這兩個方面簡單論述,BSP的開發主要介紹Bootloader程序設計及OV9650驅動程序開發。

3.1 Bootloader的開發

BSP的開發一般包括3個方面的內容:Bootloader程序設計、OAL層及驅動程序開發。Bootloader是操作系統內核運行之前運行的一段小程序,用于初始化系統的硬件設備,如初始化MMU、屏蔽所有中斷、初始化NandFlash等,建立系統的內存空間映射。從而將系統的軟硬件環境帶到一個已知的狀態,為操作系統內核的最終調用準備正確的環境。最后Bootloader把操作系統內核映像加載到RAM中,并將系統的控制權傳遞于它,其作用類似于基于X86的PC中的BIOS。

本系統設計的Bootloader,采用Eboot+Nboot的形式,支持USB從機下載通信手段和Nand flash存儲介質。NandFlash不支持xip,故必須有一個可執行的程序將燒寫在其中的Eboot搬到SDRAM中。Nboot一般配合Eboot一起使用。Eboot與Nboot同樣為啟動代碼,但是Eboot的大小遠超過4 KB,故不能直接將Eboot存放在block0中。Nboot的作用是初始化Flash等硬件,將Eboot搬到SDRAM運行。而Eboot則負責內存地址的映射以及其余設備的初始化、加載NK.bin內核文件等。Nboot與Eboot在其中的位置如圖4所示。





3.2 0V9650驅動程序的開發
WinCE的驅動程序按不同的分類方式分為:本機驅動和流驅動。而OV9650驅動程序則屬于流驅動程序。流接口驅動程序由Device.exe統一加載和管理;用戶編寫的應用程序通過使用WinCE操作系統的文件API函數如CloseHandler()函數、CreateFile()函數等與流接口進行通信,達到應用程序訪問驅動程序最終操作硬件的目的。流接口驅動程序具有固定的入口點函數,WinCE的文件系統通過這些入口點函數與流接口驅動進行通信。OV9650流接口驅動程序的入口點函數包括:CIS_Init,CIS_Deinit,CIS_Open,CIS_Close,CIS_IOControl,CIS_Read,CIS_Write,CIS_PowerUp,CIS_PowerDown等,CIS前綴表示設備的名稱。

驅動程序首先調用Virtual_Alloc()函數來完成將物理地址映射到虛擬空間內,以申請攝像頭I2C寄存器地址對應的虛擬地址,隨后初始化I2C,通過下列語句打開I2C,并設定其訪問權限。




接著調用Cam_Init()函數,該函數主要負責攝像頭的一些硬件初始化工作,包括:攝像頭與S3C2440連接的GPI0的初始化、時鐘的初始化等。隨后調用IniTInterruptThread()函數,初始化中斷線程,通知系統注冊中斷;調用CreateEven()函數創建一個CameraEvent事件,在CameraCapturerTbread()函數中,調用WaitForSingle()biect()函數來等待CameraEvent事件的發生。

這里重點說明CIS_IOControl()函數。該函數主要用于向設備發送一個命令。應用程序使用DeviceIOControl()函數來通知WinCE調用這個函數,通過參數dwCode通知驅動程序要執行的操作。該函數通過switch()語句為用戶提供能操作的語義,以下給出實現播放采集的MPEG4視頻數據和退出驅動、停止采集功能的關鍵代碼,“……”表示省略部分代碼。









驅動程序編寫完成后,通過DEF與Sources文件的編寫、流驅動的編譯以及加載該驅動進入WinCE內核,則直接可以通過應用程序調用該驅動。

3.3 應用程序開發

應用程序開發在可視化集成開發環境Embedded VisualC++中完成,主要基于MFC編程用C++語言實現。通過給“打開”按鈕添加單擊事件代碼,實現對驅動程序的打開操作。打開驅動程序通過以下語句實現。if語句用于判斷m_hFile的初始值是否為1,為1則關閉攝像頭驅動,重新賦值為1。CreateFile()函數用于打開驅動,并將結果返回給操作句柄。





給“返回”按鈕添加單擊時間響應函數代碼。通過調用CIS_IOControl()函數中的CAM_IOCTL_MOVIE_STOP,實現對驅動程序的關閉。其實現方式跟“打開”按鈕基本一樣,這里不再贅述。當然,返回按鈕還應添加CDialog∷OnCancel()語句來返回到系統主界面。

4 視頻數據采集實驗結果

應用程序開發完成后,單擊“打開”按鈕,彈出“打開CISl成功”對話框,如圖5所示,表明攝像頭驅動打開成功。單擊“顯示”按鈕,在右邊的視頻顯示區,能實時顯示動態的視頻數據,如圖6所示。實驗證明,攝像頭驅動工作良好。實時數據采集的“納米技術與微系統”墻面上的展板畫面比較清晰,達到了預期效果。單擊“返回”按鈕,視頻顯示畫面順利關閉,返回主界面成功。




5 結束語

以嵌入式微處理器S3C2440為硬件核心,以WinCE嵌入式實時操作系統為軟件開發平臺,以EVC為集成開發環境,完成系統的硬件設計,B-SP的開發和應用程序設計。在開發平臺上能順利打開驅動程序,順利采集到實驗室的展板圖像并實時連續播放視頻數據,表明OV9650驅動程序工作正常,軟硬件設計合理。下一步工作主要是采取合適的視頻編碼算法如H.264、M-JPEG等,通過以太網實現視頻數據的網絡傳輸,實現視頻遠程監控功能。
本文地址:http://m.qingdxww.cn/thread-41538-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品aaa久久久影院| 麻花豆传媒剧国产免费mv观看| 2022一本久道久久综合狂躁| 国产成人 免费观看| 久久激情网| 撕开美女的衣服2| 妖精视频免费高清观看| 亚洲欧美人妖另类激情综合区| 亚洲成在人天堂在线| 色图自拍偷拍| 日本高清观看视频| 亚洲大片| 午夜亚洲国产| 在线点播| 国产免费福利在线视频| 欧美最猛12teevideos| 最近免费中文MV在线字幕| 热线视频在线观看| 三级大黄| 四虎1515hh.com| 艳姐李铁柱王淑兰的小说| 爱啪国产精品视频在线| 老司机午夜影院试看区| 影音先锋av电影| 亚洲精品第一综合99久久| 色天使网| 亚洲国产高清在线精品一区| 91夫妻交友论坛| 久久综合视频网站| 用快播看黄的网站| 欧美一级一级做性视频| 午夜激情网站| 香蕉tv国产在线永久播放| 国产成人一区二区三区在线观看| 午夜免费福利小电影| 亚洲一级毛片免观看| 天天上天天干| 性xxxx中国| 波多野结衣 无码片| 嫩草影院久久99| 日本在线高清|