亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        S3C2440的camera接口特性及WinCE下的驅(qū)動

        2010-06-25 02:45:10魏銀庫
        關(guān)鍵詞:寄存器攝像頭像素

        魏銀庫

        (防空兵指揮學(xué)院基礎(chǔ)部,鄭州 450052)

        魏銀庫(教授),研究方向為嵌入式技術(shù)與防空武器裝備應(yīng)用。

        S3C2440是應(yīng)用十分廣泛且適用于嵌入式系統(tǒng)的一款嵌入式處理器。WinCE 5.0/6.0是微軟公司開發(fā)的一款專用于嵌入式系統(tǒng)的實時操作系統(tǒng)。其模塊化設(shè)計使開發(fā)人員可以根據(jù)需求定制設(shè)備。目前,國內(nèi)大部分OEM商都提供了對S3C2440的camera接口在WinCE 5.0/6.0下的驅(qū)動支持。

        遺憾的是,目前國內(nèi)OEM商提供的驅(qū)動僅限于對幾款微型攝像頭(如ov9650等)的驅(qū)動支持。當(dāng)用戶采用CCD攝像頭作為圖像采集的前端設(shè)備時,原來的驅(qū)動已經(jīng)不能使用了,而CCD攝像頭因其優(yōu)越的性能,在監(jiān)控領(lǐng)域扮演著主力軍角色。本文從分析S3C2440的camera接口特性出發(fā),詳細(xì)介紹當(dāng)攝像設(shè)備為CCD攝像頭時,在WinCE 5.0/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ù),一個為預(yù)覽通道(即P通道),另一個為編解碼通道(即C通道)。兩個通道均通過DMA方式將一幀圖像保存到系統(tǒng)內(nèi)存SDRAM中,在系統(tǒng)內(nèi)存中共開辟了4組幀圖像緩沖,從而保證了用戶應(yīng)用程序在讀取幀圖像數(shù)據(jù)時不影響另一幀圖像數(shù)據(jù)寫入。其特性如下:

        ◆支持ITU-R BT.601/656 YCbCr 8位數(shù)據(jù)格式視頻數(shù)據(jù)輸入,并可調(diào)整Y、Cb、Cr三個信號的順序,以適應(yīng)不同的視頻信號源;

        ◆具有DZI功能,相當(dāng)于數(shù)碼變焦;

        ◆C通道輸出圖像最大為4 096×4 096像素;

        ◆P通道輸出圖像最大為640×480像素;

        ◆P通道輸出圖像格式可配置為RGB16或GRB24;

        ◆C通道輸出圖像格式可配置為YCbCr 4∶2∶2或YCbCr 4∶2∶0;

        ◆輸出圖像可X方向鏡像翻轉(zhuǎn)、Y方向鏡像翻轉(zhuǎn),或180°旋轉(zhuǎn) ;

        ◆DMA數(shù)據(jù)傳輸,4組幀圖像緩沖,2個對應(yīng)的中斷處理,保證視頻實時采集;

        ◆2個通道不同圖像數(shù)據(jù)格式輸出,便于用戶程序開發(fā)。

        CAMIF對外接口信號定義如下:

        CAMPCLK 輸入的視頻像素同步時鐘。

        CAMVSYNC 輸入的視頻幀同步時鐘。

        CAMHREF 輸入的視頻行同步時鐘。

        CAMDATA[7:0] 輸入的視頻8位數(shù)據(jù)。

        CAMCLKOUT 輸出的時鐘,用于外接的沒有獨立時鐘的camera芯片的主時鐘。當(dāng)外接的 camera芯片有獨立的時鐘時,該信號可不用。

        CAM RESET 輸出的軟件復(fù)位信號,可對外接的camera芯片進(jìn)行復(fù)位。

        信號的時序圖如圖1所示。

        圖1 信號時序圖

        使用CAMIF時,必須對CAMIF相關(guān)寄存器進(jìn)行正確配置,下面介紹主要寄存器的配置原理。

        CAMRCFMT 選擇輸入視頻信號源格式寄存器

        ①選擇輸入視頻信號源為ITU-R BT.601 YCbCr 8位數(shù)據(jù)格式,或ITU-R BT.656 YCbCr 8位數(shù)據(jù)格式。

        ②選擇輸入視頻信號源水平像素大小和垂直像素大小,一定要和外接的camera設(shè)備分辨率一致。

        ③選擇輸入視頻信號YCbCr信號順序,一定要和外接camera信號的實際順序一致。

        CIWDOFST 從輸入信號中截取中心部分的圖像寄存器

        原理是:從輸入信號中截取中心部分的圖像輸出到大小不變的輸出圖像緩沖中,從而實現(xiàn)對圖像的放大或縮小。

        ①配置該寄存器允許縮放或不允許縮放。

        ②X方向圖像放大或縮小控制,原理是截切掉左部和右部的圖像像素數(shù)。

        ③Y方向圖像放大或縮小控制,原理是截切掉上部和下部的圖像像素數(shù)。

        CIGCTRL 全局控制寄存器

        通過該寄存器對外接的camera進(jìn)行復(fù)位,即控制CAMRESET信號的電平高低。

        CICOTRGFMT C通道輸出圖像格式及大小配置寄存器

        ①可將C通道輸出圖像格式配置為YCbCr 4:2:2或YCbCr 4:2:0格式。

        ②可設(shè)置C通道輸出圖像X方向像素數(shù)。

        ③可設(shè)置C通道輸出圖像Y方向像素數(shù)。

        ④可設(shè)置C通道輸出圖像X方向鏡像。

        ⑤可設(shè)置C通道輸出圖像Y方向鏡像。

        ⑥可設(shè)置C通道輸出圖像1800旋轉(zhuǎn)。

        CIPRTRGFMT P通道輸出圖像大小配置寄存器

        ①可設(shè)置P通道輸出圖像X方向像素數(shù)。

        ②可設(shè)置P通道輸出圖像Y方向像素數(shù)。

        ③可設(shè)置P通道輸出圖像X方向鏡像。

        ④可設(shè)置P通道輸出圖像Y方向鏡像。

        ⑤可設(shè)置P通道輸出圖像1800旋轉(zhuǎn)。

        CICOSTATUS和CIPRSTATUS 狀態(tài)寄存器

        CICOSTATUS反映C通道數(shù)據(jù)的寫入狀態(tài),即4組緩沖的哪一組;CIPRSTAT US反映P通道數(shù)據(jù)的寫入狀態(tài),即4組緩沖的哪一組。用戶程序采集圖像數(shù)據(jù)時,應(yīng)根據(jù)狀態(tài)寄存器當(dāng)前狀態(tài),決定從哪一組讀出數(shù)據(jù)。

        此外,CICOYSA1~CICOYSA4分別為C通道第1~4幀Y信號數(shù)據(jù)緩沖起始地址寄存器;CICOCBSA 1~CICOCBSA4分別為C通道第1~4幀Cb信號數(shù)據(jù)緩沖起始地址寄存器;CICOCRSA1~CICOCRSA4分別為C通道第1~4幀Cr信號數(shù)據(jù)緩沖起始地址寄存器;CIPRCLRSA 1~CIPRCLRSA4分別為P通道第1~4幀RGB信號數(shù)據(jù)緩沖起始地址寄存器。

        2 WinCE下的驅(qū)動開發(fā)

        目前,我國市場上的CCD攝像頭只有模擬視頻輸出接口,顯然它不能和S3C2440的camera接口直接連接,硬件上需要增加一塊解碼芯片。解碼芯片把CCD的模擬信號解碼為BT.601/656 YUV 4∶2∶2格式信號,這個信號和CAMIF信號是匹配的,因此解碼芯片輸出就可以直接連接到S3C2440的camera接口。典型的解碼芯片為SAA7113,接口電路如圖2所示。

        圖2 CCD攝像頭與S3C2440接口1

        如果想簡化硬件電路和驅(qū)動代碼,也可以根據(jù)需求向生產(chǎn)商定制CCD攝像頭,要求生產(chǎn)商生產(chǎn)的CCD攝像頭直接按照ITU-R BT.601/656格式輸出視頻信號。具有這種接口的CCD攝像頭就可以直接和S3C2440的camera接口連接,接口電路如圖3所示。

        兩種情況的驅(qū)動代碼開發(fā)過程基本上是相同的。區(qū)別是:前者需要S3C2440通過I2C總線對解碼芯片SAA7113的相關(guān)寄存器進(jìn)行配置,而后者則不需要。下面以前者為例介紹驅(qū)動的開發(fā)方法。

        圖3 CCD攝像頭與S3C2440接口2

        2.1 配置解碼芯片SAA7113

        SAA7113是NXP公司推出的視頻解碼系列芯片,在很多視頻產(chǎn)品(如電視卡、MPEG2、MPEG4)中都有應(yīng)用。SAA 7113的主要作用是把輸入模擬視頻信號解碼成標(biāo)準(zhǔn)的BT.656 YUV4∶2∶2數(shù)字信號,相當(dāng)于一種 A/D器件。它兼容全球各種視頻標(biāo)準(zhǔn),在我國應(yīng)用時必須根據(jù)我國視頻標(biāo)準(zhǔn)來配置內(nèi)部寄存器。

        對SAA7113配置需要通過I2C總線進(jìn)行,分配S3C2440的GPIO的E15模擬I2C的SDA線,E14模擬I2C的SCL線。OEM商提供的原驅(qū)動是針對手機攝像頭ov9650開發(fā)的,二者的配置原理和過程是相同的,但配置內(nèi)容不同,輸出圖像的格式也不同。ov9650輸出的圖像是逐行掃描的,SAA7113輸出的圖像則是隔行掃描的。由圖1可知,CAMIF是逐幀輸入的,所以必須把SAA 3117的場同步信號VS作為CAMIF的幀同步信號CAMSYNC,輸出圖像是逐場保存的。配置內(nèi)容為:

        ①復(fù)位SAA3117。

        ②模擬通道選擇。

        ③配置亮度、色度、對比度、自動增益控制量。

        ④將RTS1引腳配置為場同步信號VS,將RTS0信號配置為行同步信號HREF,信號極性應(yīng)分別與圖1中CAMVSYNC和CAMHREF信號極性一致。

        ⑤配置圖像寬度為720像素。

        ⑥配置幀圖像高度為576像素,一幀圖像分奇偶兩場分時輸出,每場圖像高度為288像素。

        ⑦配置數(shù)據(jù)格式為BT.656 YCbCr 4∶2∶2 8位格式輸出。注意,數(shù)據(jù)口的信號順序為CB0 Y0 CR0 Y1 CB1 Y2...CR359 Y719。

        ⑧時鐘采用24.576 MHz的獨立時鐘,此時LLC的頻率為27 MHz,場頻為50 Hz,幀頻為25 Hz。

        2.2 為CAMIF分配DMA內(nèi)存空間

        因為S3C2440從camera接口采集到的視頻數(shù)據(jù)是以DMA機制寫到內(nèi)存的,所以必須為C通道和P通道分別分配邏輯內(nèi)存(即 DMA緩沖區(qū))。WinCE有兩種分配DMA緩沖區(qū)的方法:使用CEDDK函數(shù)和使用WinCE內(nèi)核函數(shù)。建議使用CEDDK函數(shù):

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

        如果C通道格式為YCbCr 4∶2∶0,圖像寬度為CoDstWidth,圖像高度為CoDstHeight,分配的DMA地址為CoFrameBuffer,則二者的關(guān)聯(lián)關(guān)系為:

        這樣分配的目的是,保證每一組YCbCr信號的地址空間是連續(xù)的,便于用戶程序開發(fā)。

        如果P通道格式為RGB16,圖像寬度為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)寄存器

        ①把輸入視頻信號寬度配置為720像素,高度配置為288像素;

        ②把輸入視頻信號格式配置為BT.656 YCbCr 4∶2∶2格式;

        ③把輸入視頻信號順序配置為Cb Y Cr;

        ④根據(jù)用戶的LCD顯示終端的分辨率配置P通道的圖像寬度、高度像素和格式;

        ⑤根據(jù)用戶對圖像的處理需求來配置C通道的圖像寬度、高度像素和格式;

        ⑥配置C通道的縮放系數(shù);

        ⑦配置P通道的縮放系數(shù);

        ⑧把C通道的DMA地址配置給4組起始地址寄存器;

        ⑨把P通道的DMA地址配置給4組起始地址寄存器。

        2.4 創(chuàng)建camera流式驅(qū)動接口函數(shù)

        WinCE下的硬件驅(qū)動程序大多采用流式驅(qū)動來開發(fā),因為它有一個一致的接口函數(shù)供用戶調(diào)用。此處,把接口函數(shù)命名為:CAM_Close()、CAM_Deinit()、CAM_Init()、CAM_IOControl()、CAM_Open()、CAM_Power-Down()、CAM_PowerUp()、CAM_Read()、CAM_Seek()和CAM_Write()。

        (1)CAM_Init()函數(shù)

        該函數(shù)在驅(qū)動程序每次被設(shè)備管理器加載時調(diào)用。其實現(xiàn)的功能如下:

        配置SAA7113,分配C通道、P通道的DMA內(nèi)存空間,根據(jù)輸入信號源屬性和輸出圖像、預(yù)覽圖像屬性配置CAMIF寄存器。

        創(chuàng)建一個事件CameraEvent,使用WinCE內(nèi)核函數(shù)InterruptInitialize(SYSINIR_CAM,CameraEvent,NULL,0)把該事件與camera的邏輯中斷號SYSINIR_CAM關(guān)聯(lián)起來,即當(dāng)中斷發(fā)生時激活該事件。

        創(chuàng)建一個中斷服務(wù)線程。在該線程內(nèi)用WaitForSin tgleObjcet(CameraEvent,INFINITE)函數(shù)阻塞線程,并等待CameraEvent激活。把預(yù)覽視頻圖像的功能放到CameraEvent激活之后完成,即把P通道緩沖區(qū)的內(nèi)容拷貝到顯示終端。最后,用InterruptDone(SYSINIR_CAM)函數(shù)結(jié)束本次中斷處理。

        (2)CAM_IOControl()函數(shù)

        可以說,該函數(shù)才真正是用戶程序與驅(qū)動程序聯(lián)系的主要通道,用戶程序?qū)amera接口的控制及數(shù)據(jù)采集均是通過該函數(shù)完成的。其主要功能有:

        ①打開/關(guān)閉P通道或C通道輸出。

        ②修改配置參數(shù)。

        ③控制輸出圖像的放大或縮小。

        ④如果需要RGB數(shù)據(jù),則讀取P通道緩沖區(qū)內(nèi)容;如果需要YCbCr數(shù)據(jù),則讀取C通道緩沖區(qū)內(nèi)容。注意,讀取之前要根據(jù)狀態(tài)寄存器CICOSTAT US或CIPRSTATUS的當(dāng)前狀態(tài),確定訪問哪一組緩沖區(qū)。

        (3)CAM_Deinit()函數(shù)

        當(dāng)卸載本驅(qū)動時,該函數(shù)負(fù)責(zé)釋放分配的內(nèi)存空間和資源。

        (4)CAM_Open()函數(shù)

        該函數(shù)內(nèi)部并沒有具體的功能代碼,只是當(dāng)用戶程序使用CreateFile(TEXT("CAM1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0)函數(shù)打開camera驅(qū)動時調(diào)用該函數(shù),并返回一個文件句柄?;谠摼浔脩舨拍苓M(jìn)行后續(xù)操作。

        (5)CAM_Close()函數(shù)

        該函數(shù)內(nèi)部并沒有具體的功能代碼,只有當(dāng)用戶程序使用CloseFile(h file)函數(shù)關(guān)閉camera驅(qū)動時才調(diào)用該函數(shù),并釋放之前返回的文件句柄。

        其他接口函數(shù)沒用賦予其具體功能。

        結(jié) 語

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

        [1]何宗鍵.WinCE CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.

        [2]汪兵,等.Win CE CE嵌入式高級編程及其實例詳解[M].北京:中國水利水電出版社,2008.

        [3]張東泉.WinCE CE實用開發(fā)技術(shù)[M].北京:電子工業(yè)出版社,2006.

        [4]Samsung.S3C2440A User's Manual.Revision1.0,2004.

        猜你喜歡
        寄存器攝像頭像素
        趙運哲作品
        藝術(shù)家(2023年8期)2023-11-02 02:05:28
        浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
        像素前線之“幻影”2000
        攝像頭連接器可提供360°視角圖像
        Lite寄存器模型的設(shè)計與實現(xiàn)
        “像素”仙人掌
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        高像素不是全部
        CHIP新電腦(2016年3期)2016-03-10 14:22:03
        奔馳360°攝像頭系統(tǒng)介紹
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        亚洲国产香蕉视频欧美 | 日本女优爱爱中文字幕| 国产桃色一区二区三区| 漂亮人妻被强了完整版| 一区二区三区av波多野结衣| 99久久久无码国产aaa精品| 午夜tv视频免费国产区4| 91精品国产91热久久p| 亚洲国产一区久久yourpan| 午夜影院免费观看小视频| 国产一区二区长腿丝袜高跟鞋| 亚洲精品国产精品乱码在线观看 | 蜜桃视频无码区在线观看| 亚洲精品中文字幕无码蜜桃 | 久久久精品午夜免费不卡| 国产精品无码av一区二区三区| 亚洲女人被黑人巨大进入| 狠狠躁夜夜躁人人爽天天不卡| 精品国产乱子伦一区二区三| 亚洲女同一区二区| 成人免费看www网址入口| 一本久道久久综合五月丁香| 青青青视频手机在线观看| 日韩精品无码一区二区三区| 国产最新进精品视频| 四虎4545www国产精品| 一区二区三区在线观看日本视频| 伊人青青草综合在线视频免费播放| 中文在线8资源库| 成 人 网 站 免 费 av| 亚洲女同精品一区二区久久| 日韩av综合色区人妻| 一本色道久久hezyo无码| 亚洲乱码av中文一区二区| 91狼友在线观看免费完整版| 亚洲熟少妇一区二区三区| 国产乱子伦| 中文字幕第七页| 国产精品麻豆A在线播放| 日韩国产自拍视频在线观看| 国产不卡在线视频观看|