當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]摘要:分析S3C2440的camera接口特性,介紹當(dāng)攝像設(shè)備為CCD攝像頭時(shí),在WinCE 5.0/6.O操作系統(tǒng)環(huán)境下開(kāi)發(fā)camera驅(qū)動(dòng)的方法。該方法彌補(bǔ)了目前國(guó)內(nèi)在WinCE 5.0/6.0操作系統(tǒng)環(huán)境下CCD攝像頭無(wú)法連接到S3C2440的


摘要:分析S3C2440的camera接口特性,介紹當(dāng)攝像設(shè)備為CCD攝像頭時(shí),在WinCE 5.0/6.O操作系統(tǒng)環(huán)境下開(kāi)發(fā)camera驅(qū)動(dòng)的方法。該方法彌補(bǔ)了目前國(guó)內(nèi)在WinCE 5.0/6.0操作系統(tǒng)環(huán)境下CCD攝像頭無(wú)法連接到S3C2440的camera接口的缺陷。
關(guān)鍵詞:camera接口;WinCE;驅(qū)動(dòng)

    S3C2440是應(yīng)用十分廣泛且適用于嵌入式系統(tǒng)的一款嵌入式處理器。winCE 5.0/6.O是微軟公司開(kāi)發(fā)的一款專用于嵌入式系統(tǒng)的實(shí)時(shí)操作系統(tǒng)。其模塊化設(shè)計(jì)使開(kāi)發(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í),原來(lái)的驅(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)境下開(kāi)發(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è)通道均通過(guò)DMA方式將一幀圖像保存到系統(tǒng)內(nèi)存SDRAM中,在系統(tǒng)內(nèi)存中共開(kāi)辟了4組幀圖像緩沖,從而保證了用戶應(yīng)用程序在讀取幀圖像數(shù)據(jù)時(shí)不影響另一幀圖像數(shù)據(jù)寫(xiě)入。其特性如下:
    ◆支持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ù)格式輸出,便于用戶程序開(kāi)發(fā)。
    CAMIF對(duì)外接口信號(hào)定義如下:
    CAMPCLK輸入的視頻像素同步時(shí)鐘。
    CAMVSYNC輸入的視頻幀同步時(shí)鐘。
    CAMHREF輸入的視頻行同步時(shí)鐘。
    CAMDATA[7:0] 輸入的視頻8位數(shù)據(jù)。
    CAMCLKOUT輸出的時(shí)鐘,用于外接的沒(méi)有獨(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 全局控制寄存器
    通過(guò)該寄存器對(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ù)的寫(xiě)入狀態(tài),即4組緩沖的哪一組;CIPRSTATUS反映P通道數(shù)據(jù)的寫(xiě)入狀態(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ù)緩沖起始地址寄存器。

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總線對(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總線進(jìn)行,分配S3C2440的GPIO的E15模擬I2C的SDA線,E14模擬I2C的SCL線。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ù):

    注意:C通道和P通道應(yīng)分別分配。分配成功后,應(yīng)將4組YCbCr信號(hào)的起始地址與分配給C通道的DMA緩沖區(qū)地址關(guān)聯(lián)起來(lái),將4組RGB信號(hào)的起始地址與分配給P通道的DMA緩沖區(qū)地址關(guān)聯(lián)起來(lái)。格式不同時(shí),關(guān)聯(lián)的空間大小是不同的。如果C通道格式為YCbCr4:2:2,圖像寬度為CoDstWidtlh,圖像高度為CoDstHeight,分配的DMA地址為CoFrameBuffer,則二者的關(guān)聯(lián)關(guān)系為:

    這樣分配的目的是,保證每一組YCbCr信號(hào)的地址空間是連續(xù)的,便于用戶程序開(kāi)發(fā)。
    如果P通道格式為RGBl6,圖像寬度為PrDstWidth,圖像高度為PrDstHeight,分配的DMA地址為PrFrame Buffer,則二者的關(guān)聯(lián)關(guān)系為:

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


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

結(jié)語(yǔ)
    按照上述方法開(kāi)發(fā)的驅(qū)動(dòng)代碼,連同其他驅(qū)動(dòng)已在PB5.O環(huán)境下編譯通過(guò),生成的內(nèi)核文件在原硬件平臺(tái)下成功運(yùn)行,P通道視頻圖像流暢,C通道圖像質(zhì)量較高。該方法彌補(bǔ)了目前國(guó)內(nèi)在WinCE 5.O/6.O操作系統(tǒng)環(huán)境下CCD攝像頭無(wú)法連接到S3C2440的camera接口的缺陷,為工程技術(shù)人員設(shè)計(jì)嵌入式圖像采集系統(tǒng)時(shí)提供了一種有效手段。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉