S3C2440的camera接口特性及WinCE 下的驅(qū)動(dòng)
摘要:分析S3C2440的camera接口特性,介紹當(dāng)攝像設(shè)備為CCD攝像頭時(shí),在WinCE 5.0/6.O操作系統(tǒng)環(huán)境下開發(fā)camera驅(qū)動(dòng)的方法。該方法彌補(bǔ)了目前國(guó)內(nèi)在WinCE 5.0/6.0操作系統(tǒng)環(huán)境下CCD攝像頭無法連接到S3C2440的camera接口的缺陷。
關(guān)鍵詞:camera接口;WinCE;驅(qū)動(dòng)
S3C2440是應(yīng)用十分廣泛且適用于嵌入式系統(tǒng)的一款嵌入式處理器。winCE 5.0/6.O是微軟公司開發(fā)的一款專用于嵌入式系統(tǒng)的實(shí)時(shí)操作系統(tǒng)。其模塊化設(shè)計(jì)使開發(fā)人員可以根據(jù)需求定制設(shè)備。目前,國(guó)內(nèi)大部分OEM商都提供了對(duì)S3C2440的camera接口在WinCE5.O/6.0下的驅(qū)動(dòng)支持。遺憾的是,目前國(guó)內(nèi)OEM商提供的驅(qū)動(dòng)僅限于對(duì)幾款微型攝像頭(如ov9650等)的驅(qū)動(dòng)支持。當(dāng)用戶采用CCD攝像頭作為圖像采集的前端設(shè)備時(shí),原來的驅(qū)動(dòng)已經(jīng)不能使用了,而CCD攝像頭因其優(yōu)越的性能,在監(jiān)控領(lǐng)域扮演著主力軍角色。本文從分析S3C2440的camera接口特性出發(fā),詳細(xì)介紹當(dāng)攝像設(shè)備為CCD攝像頭時(shí),在WinCE 5.O/6.0操作系統(tǒng)環(huán)境下開發(fā)camera驅(qū)動(dòng)的形式、方法和主要的驅(qū)動(dòng)代碼。
1 camera接口特性
S3C2440處理器有一個(gè)專用的camera接口(CAMIF),該接口支持ITU-R BT.601/656 YCbCr 8位數(shù)據(jù)格式視頻數(shù)據(jù)輸入,最大輸入視頻圖像大小為4 096×4 096像素。視頻輸入后分兩個(gè)通道逐幀保存圖像數(shù)據(jù),一個(gè)為預(yù)覽通道(即P通道),另一個(gè)為編解碼通道(即C通道)。兩個(gè)通道均通過DMA方式將一幀圖像保存到系統(tǒng)內(nèi)存SDRAM中,在系統(tǒng)內(nèi)存中共開辟了4組幀圖像緩沖,從而保證了用戶應(yīng)用程序在讀取幀圖像數(shù)據(jù)時(shí)不影響另一幀圖像數(shù)據(jù)寫入。其特性如下:
◆支持ITU-R BT.601/656 YCbCr 8位數(shù)據(jù)格式視頻數(shù)據(jù)輸入,并可調(diào)整Y、Cb、Cr三個(gè)信號(hào)的順序,以適應(yīng)不同的視頻信號(hào)源;
◆具有DZI功能,相當(dāng)于數(shù)碼變焦;
◆C通道輸出圖像最大為4 096×4 096像素;
◆P通道輸出圖像最大為640×480像素;
◆P通道輸出圖像格式可配置為RGBl6或GRB24;
◆C通道輸出圖像格式可配置為YCbCr 4:2:2或YCbCr 4:2:0:
◆輸出圖像可X方向鏡像翻轉(zhuǎn)、Y方向鏡像翻轉(zhuǎn),或180°旋轉(zhuǎn);
◆DMA數(shù)據(jù)傳輸,4組幀圖像緩沖,2個(gè)對(duì)應(yīng)的中斷處理,保證視頻實(shí)時(shí)采集;
◆2個(gè)通道不同圖像數(shù)據(jù)格式輸出,便于用戶程序開發(fā)。
CAMIF對(duì)外接口信號(hào)定義如下:
CAMPCLK輸入的視頻像素同步時(shí)鐘。
CAMVSYNC輸入的視頻幀同步時(shí)鐘。
CAMHREF輸入的視頻行同步時(shí)鐘。
CAMDATA[7:0] 輸入的視頻8位數(shù)據(jù)。
CAMCLKOUT輸出的時(shí)鐘,用于外接的沒有獨(dú)立時(shí)鐘的camera芯片的主時(shí)鐘。當(dāng)外接的camera芯片有獨(dú)立的時(shí)鐘時(shí),該信號(hào)可不用。
CAMRESET輸出的軟件復(fù)位信號(hào),可對(duì)外接的camera芯片進(jìn)行復(fù)位。
信號(hào)的時(shí)序圖如圖1所示。
使用CAMIF時(shí),必須對(duì)CAMIF相關(guān)寄存器進(jìn)行正確配置,下面介紹主要寄存器的配置原理。
CAMRCFMT 選擇輸入視頻信號(hào)源格式寄存器
①選擇輸入視頻信號(hào)源為ITU-R BT.601 YCbCr 8位數(shù)據(jù)格式,或ITU-R BT.656 YCbCr 8位數(shù)據(jù)格式。
②選擇輸入視頻信號(hào)源水平像素大小和垂直像素大小,一定要和外接的camera設(shè)備分辨率一致。
③選擇輸入視頻信號(hào)Ycbcr信號(hào)順序,一定要和外接camera信號(hào)的實(shí)際順序一致。
CIWDOFST 從輸入信號(hào)中截取中心部分的圖像寄存器
原理是:從輸入信號(hào)中截取中心部分的圖像輸出到大小不變的輸出圖像緩沖中,從而實(shí)現(xiàn)對(duì)圖像的放大或縮小。
①配置該寄存器允許縮放或不允許縮放。
②X方向圖像放大或縮小控制,原理是截切掉左部和右部的圖像像素?cái)?shù)。
③Y方向圖像放大或縮小控制,原理是截切掉上部和下部的圖像像素?cái)?shù)。
CIGCTRL 全局控制寄存器
通過該寄存器對(duì)外接的camera進(jìn)行復(fù)位,即控制CAMRESET信號(hào)的電平高低。
CICOTRGFMT C通道輸出圖像格式及大小配置寄存器
①可將C通道輸出圖像格式配置為YCbCr 4:2:2或YCbCr 4:2:0格式。
②可設(shè)置C通道輸出圖像X方向像素?cái)?shù)。
③可設(shè)置C通道輸出圖像Y方向像素?cái)?shù)。
④可設(shè)置C通道輸出圖像X方向鏡像。
⑤可設(shè)置C通道輸出圖像Y方向鏡像。
⑥可設(shè)置C通道輸出圖像180°旋轉(zhuǎn)。
CIPRTRGFMT P通道輸出圖像大小配置寄存器
①可設(shè)置P通道輸出圖像X方向像素?cái)?shù)。
②可設(shè)置P通道輸出圖像Y方向像素?cái)?shù)。
③可設(shè)置P通道輸出圖像X方向鏡像。
④可設(shè)置P通道輸出圖像Y方向鏡像。
⑤可設(shè)置P通道輸出圖像180°旋轉(zhuǎn)。
CICOSTATUS和CIPRSTATUS 狀態(tài)寄存器
CICOSTATUS反映C通道數(shù)據(jù)的寫入狀態(tài),即4組緩沖的哪一組;CIPRSTATUS反映P通道數(shù)據(jù)的寫入狀態(tài),即4組緩沖的哪一組。用戶程序采集圖像數(shù)據(jù)時(shí),應(yīng)根據(jù)狀態(tài)寄存器當(dāng)前狀態(tài),決定從哪一組讀出數(shù)據(jù)。
此外,CICOYSAl~CICOYSA4分別為C通道第1~4幀Y信號(hào)數(shù)據(jù)緩沖起始地址寄存器;CICOCBSAl~CICOCBSA4分別為C通道第1~4幀Cb信號(hào)數(shù)據(jù)緩沖起始地址寄存器;CICOCRSAl~CICOCRSA4分別為C通道第1~4幀Cr信號(hào)數(shù)據(jù)緩沖起始地址寄存器;CIPRCLRSAl~CIPRCLRSA4分別為P通道第1~4幀RGB信號(hào)數(shù)據(jù)緩沖起始地址寄存器。
評(píng)論