色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關(guān) 閉

          新聞中心

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

          S3C2440的camera接口特性及WinCE 下的驅(qū)動

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

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

          10e.jpg

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

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


          上一頁 1 2 3 下一頁

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

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉