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