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