<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > S3C2440的camera接口特性及WinCE 下的驅動(dòng)

S3C2440的camera接口特性及WinCE 下的驅動(dòng)

作者: 時(shí)間:2010-09-10 來(lái)源:網(wǎng)絡(luò ) 收藏

注意:C通道和P通道應分別分配。分配成功后,應將4組YCbCr信號的起始地址與分配給C通道的DMA緩沖區地址關(guān)聯(lián)起來(lái),將4組RGB信號的起始地址與分配給P通道的DMA緩沖區地址關(guān)聯(lián)起來(lái)。格式不同時(shí),關(guān)聯(lián)的空間大小是不同的。如果C通道格式為YCbCr4:2:2,圖像寬度為CoDstWidtlh,圖像高度為CoDstHeight,分配的DMA地址為CoFrameBuffer,則二者的關(guān)聯(lián)關(guān)系為:

10e.jpg

這樣分配的目的是,保證每一組YCbCr信號的地址空間是連續的,便于用戶(hù)程序開(kāi)發(fā)。
如果P通道格式為RGBl6,圖像寬度為PrDstWidth,圖像高度為PrDstHeight,分配的DMA地址為PrFrame Buffer,則二者的關(guān)聯(lián)關(guān)系為:

10f.jpg

如果P通道格式為RGB24,圖像寬度為PrDstWidth,圖像高度為PrDstHeight,分配的DMA地址為PrFrame Buffer,則二者的關(guān)聯(lián)關(guān)系為:

10g.jpg
2.3 配置CAMIF相關(guān)寄存器
①把輸入視頻信號寬度配置為720像素,高度配置為288像素;
②把輸入視頻信號格式配置為BT.656 YCbcr 4:2:2格式;
③把輸入視頻信號順序配置為CbYCr;
④根據用戶(hù)的LCD顯示終端的分辨率配置P通道的圖像寬度、高度像素和格式;
⑤根據用戶(hù)對圖像的處理需求來(lái)配置C通道的圖像寬度、高度像素和格式;
⑥配置C通道的縮放系數;
⑦配置P通道的縮放系數;
⑧把C通道的DMA地址配置給4組起始地址寄存器;
⑨把P通道的DMA地址配置給4組起始地址寄存器。
2.4 創(chuàng )建流式驅動(dòng)函數
下的硬件驅動(dòng)程序大多采用流式驅動(dòng)來(lái)開(kāi)發(fā),因為它有一個(gè)一致的函數供用戶(hù)調用。此處,把函數命名為:CAM_Close()、CAM_Deinit()、CAM_Init()、CAM IOControl()、CAM()pen()、CAM PowerDown()、CAM_PowerUp()、CAM_Read()、CAM_Seek()和CAM-_Write()。
(1)CAM_Init()函數
該函數在驅動(dòng)程序每次被設備管理器加載時(shí)調用。其實(shí)現的功能如下:
配置SAA7113,分配C通道、P通道的DMA內存空間,根據輸入信號源屬性和輸出圖像、預覽圖像屬性配置CAMIF寄存器。
創(chuàng )建一個(gè)事件CameraEvent,使用內核函數InterruptInitialize(SYSINIR_CAM,CameraEvent,NULL,O)把該事件與的邏輯中斷號SYSINIR_CAM關(guān)聯(lián)起來(lái),即當中斷發(fā)生時(shí)激活該事件。
創(chuàng )建一個(gè)中斷服務(wù)線(xiàn)程。在該線(xiàn)程內用WaitForSintgleObjcet(CameraEvent,INFINITE)函數阻塞線(xiàn)程,并等待CameraEvent激活。把預覽視頻圖像的功能放到CameraEyent激活之后完成,即把P通道緩沖區的內容拷貝到顯示終端。最后,用InterruptDone(SYSINIR_CAM)函數結束本次中斷處理。
(2)CAM_IOControl()函數
可以說(shuō),該函數才真正是用戶(hù)程序與驅動(dòng)程序聯(lián)系的主要通道,用戶(hù)程序對接口的控制及數據采集均是通過(guò)該函數完成的。其主要功能有:
①打開(kāi)/關(guān)閉P通道或C通道輸出。
②修改配置參數。
③控制輸出圖像的放大或縮小。
④如果需要RGB數據,則讀取P通道緩沖區內容;
如果需要YCbCr數據,則讀取C通道緩沖區內容。注意,讀取之前要根據狀態(tài)寄存器CICOSTATUS或CIPRSTATUS的當前狀態(tài),確定訪(fǎng)問(wèn)哪一組緩沖區。
(3)CAM_Deinit()函數
當卸載本驅動(dòng)時(shí),該函數負責釋放分配的內存空間和資源。
(4)CAM_Open()函數
該函數內部并沒(méi)有具體的功能代碼,只是當用戶(hù)程序使用CreateFile(TEXT(“CAMl:”),GENERIC_READ|GENERIC WRITE,O,NULL,OP-EN_EXISTING,O,O)函數打開(kāi)camera驅動(dòng)時(shí)調用該函數,并返回一個(gè)文件句柄?;谠摼浔脩?hù)才能進(jìn)行后續操作。
(5)CAM_Close()函數
該函數內部并沒(méi)有具體的功能代碼,只有當用戶(hù)程序使用CloseFile(hfile)函數關(guān)閉camera驅動(dòng)時(shí)才調用該函數,并釋放之前返回的文件句柄。其他接口函數沒(méi)用賦予其具體功能。

結語(yǔ)
按照上述方法開(kāi)發(fā)的驅動(dòng)代碼,連同其他驅動(dòng)已在PB5.O環(huán)境下編譯通過(guò),生成的內核文件在原硬件平臺下成功運行,P通道視頻圖像流暢,C通道圖像質(zhì)量較高。該方法彌補了目前國內在 5.O/6.O操作系統環(huán)境下CCD攝像頭無(wú)法連接到的camera接口的缺陷,為工程技術(shù)人員設計嵌入式圖像采集系統時(shí)提供了一種有效手段。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: S3C2440 camera WinCE 接口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>