S3C2440的camera接口特性及WinCE 下的驅(qū)動(dòng)
2 WinCE下的驅(qū)動(dòng)開(kāi)發(fā)
目前,我國(guó)市場(chǎng)上的CCD攝像頭只有模擬視頻輸出接口,顯然它不能和S3C2440的camera接口直接連接,硬件上需要增加一塊解碼芯片。解碼芯片把CCD的模擬信號(hào)解碼為BT.601/656 YUV4:2:2格式信號(hào),這個(gè)信號(hào)和CAMIF信號(hào)是匹配的,因此解碼芯片輸出就可以直接連接到
S3C2440的camera接口。典型的解碼芯片為SAA7113,接口電路如圖2所示。
如果想簡(jiǎn)化硬件電路和驅(qū)動(dòng)代碼,也可以根據(jù)需求向生產(chǎn)商定制CCD攝像頭,要求生產(chǎn)商生產(chǎn)的CCD攝像頭直接按照ITU-R BT.601/656格式輸出視頻信號(hào)。具有這種接口的CCD攝像頭就可以直接和S3C2440的camera接口連接,接口電路如圖3所示。
兩種情況的驅(qū)動(dòng)代碼開(kāi)發(fā)過(guò)程基本上是相同的。區(qū)別是:前者需要S3C2440通過(guò)I2C總線(xiàn)對(duì)解碼芯片SAA7113的相關(guān)寄存器進(jìn)行配置,而后者則不需要。下面以前者為例介紹驅(qū)動(dòng)的開(kāi)發(fā)方法。
2.1 配置解碼芯片SAA7113
SAA7113是NXP公司推出的視頻解碼系列芯片,在很多視頻產(chǎn)品(如電視卡、MPEG2、MPEG4)中都有應(yīng)用。SAA7113的主要作用是把輸入模擬視頻信號(hào)解碼成標(biāo)準(zhǔn)的BT.656 YUV4:2:2數(shù)字信號(hào),相當(dāng)于一種A/D器件。它兼容全球各種視頻標(biāo)準(zhǔn),在我國(guó)應(yīng)用時(shí)必須根據(jù)我國(guó)視頻標(biāo)準(zhǔn)來(lái)配置內(nèi)部寄存器。
對(duì)SAA7113配置需要通過(guò)I2C總線(xiàn)進(jìn)行,分配S3C2440的GPIO的E15模擬I2C的SDA線(xiàn),E14模擬I2C的SCL線(xiàn)。OEM商提供的原驅(qū)動(dòng)是針對(duì)手機(jī)攝像頭ov9650開(kāi)發(fā)的,二者的配置原理和過(guò)程是相同的,但配置內(nèi)容不同,輸出圖像的格式也不同。ov9650輸出的圖像是逐行掃描的,SAA7 113輸出的圖像則是隔行掃描的。由圖1可知,CAMIF是逐幀輸入的,所以必須把SAA3117的場(chǎng)同步信號(hào)VS作為CAMIF的幀同步信號(hào)CAMSYNC,輸出圖像是逐場(chǎng)保存的。配置內(nèi)容為:
①?gòu)?fù)位SAA3117。
②模擬通道選擇。
③配置亮度、色度、對(duì)比度、自動(dòng)增益控制量。
④將RTSl引腳配置為場(chǎng)同步信號(hào)VS,將RTSO信號(hào)配置為行同步信號(hào)HREF,信號(hào)極性應(yīng)分別與圖1中CAMVSYNC和CAMHREF信號(hào)極性一致。
⑤配置圖像寬度為720像素。
⑥配置幀圖像高度為576像素,一幀圖像分奇偶兩場(chǎng)分時(shí)輸出,每場(chǎng)圖像高度為288像素。
⑦配置數(shù)據(jù)格式為BT.656 YCbCr 4:2:2 8位格式輸出。注意,數(shù)據(jù)口的信號(hào)順序?yàn)镃B0 Y0 CR0 Y1 CBlY2…CR359 Y719。
⑧時(shí)鐘采用24.576 MHz的獨(dú)立時(shí)鐘,此時(shí)LLC的頻率為27 MHz,場(chǎng)頻為50Hz,幀頻為25 Hz。
2.2 為CAMlF分配DMA內(nèi)存空間
因?yàn)镾3C2440從camera接口采集到的視頻數(shù)據(jù)是以DMA機(jī)制寫(xiě)到內(nèi)存的,所以必須為C通道和P通道分別分配邏輯內(nèi)存(即DMA緩沖區(qū))。Win CE有兩種分配DMA緩沖區(qū)的方法:使用CEDDK函數(shù)和使用winCE內(nèi)核函數(shù)。建議使用CEDDK函數(shù):
評(píng)論