關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > S3C2440的camera接口特性及WinCE 下的驅動

        S3C2440的camera接口特性及WinCE 下的驅動

        作者: 時間:2010-09-10 來源:網絡 收藏

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

        10e.jpg

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

        10f.jpg

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

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

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


        上一頁 1 2 3 下一頁

        關鍵詞: S3C2440 camera WinCE 接口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天峨县| 嘉兴市| 巨鹿县| 刚察县| 苍溪县| 福州市| 喀什市| 景德镇市| 苏尼特右旗| 永善县| 天峻县| 赞皇县| 平谷区| 牙克石市| 磴口县| 法库县| 安平县| 甘泉县| 威远县| 镇平县| 黄浦区| 辉南县| 合阳县| 西华县| 泰兴市| 西贡区| 浠水县| 武安市| 江北区| 安平县| 临湘市| 娱乐| 枞阳县| 思茅市| 沭阳县| 资溪县| 清新县| 白玉县| 柏乡县| 扎赉特旗| 修武县|