日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于WINCE6.0+S3C2443的camera驱动

發布時間:2025/4/16 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于WINCE6.0+S3C2443的camera驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

********************************LoongEmbedded************************

作者:LoongEmbedded(kandi)

時間:2011.02.13

類別:WINCE 驅動開發

********************************LoongEmbedded************************

?

?

備注:camera sensor:OV7950LCD:分辨率480*272,解碼器:TVP5150

?

1.? Camera驅動的架構

先是攝像頭傳感器OV7950抓取并輸出CMOSNTSC模擬信號到視頻解碼器TVP5150A,然后TVP5150A對輸入的NTSC視頻數據解碼,解碼之后輸出ITU-R BT.656數字視頻信號給S3C2443camera接口,接著是camera接口的PC通道的DMA把視頻數據復制到指定的內存處,最后是camera驅動從這指定的內存處取出視頻數據并且拷貝到LCD顯示的buffer中,這樣就可以看到攝像頭獲取的圖像了。

1

?

2.? camera電路設計部分

2

CPUTVP5150的硬件連接關系

IICSCL???? --------->GPE14

IICSDA???? --------->GPE15

CAMDATA0?? --------->GPJ0

CAMDATA1?? --------->GPJ1

CAMDATA2?? --------->GPJ2

CAMDATA3?? --------->GPJ3

CAMDATA4?? --------->GPJ4

CAMDATA5?? --------->GPJ5

CAMDATA6?? --------->GPJ6

CAMDATA7?? --------->GPJ7

CAMPCLK??? --------->GPJ8

CAMVSYNC?? --------->GPJ9

CAMHREF??? --------->GPJ10

VIDEO_PDN? --------->GPL8

CAMRESET?? --------->GPJ12

?

3.? TVP5150

3.1 TVP5150A的主要描述

?

TVP5150TI公司的一種可編程視頻輸入處理芯片,采用CMOS工藝。內部包含兩路模擬處理通道,能實現抗混疊濾波、9A/D轉換、自動箝位、自動增益控制(AGC)、時鐘發生(CGC)、多制式解碼、亮度,對比度,飽和度控制(BCS)和多標準VBI數據解碼等功能。

它可以接收2路復合視頻信號(CVBS)1S-Video信號,TVP5150將輸入的模擬視頻信號解碼為符合ITU-R BT656標準的84:2:2數字YCbCr信號(同步信號內嵌于數據流中串行輸出,這樣情況下可以不使用TVP5150VSYNCHSYNC信號),也可以輸出8422ITU-R BT.601信號(同步信號分離,單獨引腳與數據流并行輸出,這樣情況需要使用VSYNCHSYNC信號來同步視頻數據的輸出,輸出到camera interface)。

?

TVP5150輸出格式有兩種:8-bit 4:2:2格式和8-bit ITU-R BT.656格式。

兩種格式的區別:8-bit 4:2:2格式需要輸出行、場同步信號,數據總線上只有圖像數據;ITU-R BT.656格式不需要輸出行、場同步信號,該格式的行、場起始與結束都是通過嵌入到圖像數據中的標志碼來指示的,因此該格式又稱為嵌入同步方式。

?

3.2 TVP5150主要引腳的描述

AIP1A

模擬信號輸入端,可作為composite(混合)視頻信號的輸入端,在此設計中就是用這個引腳來接受OV7950輸出的NTSC模擬視頻信號;也可以作為S-video(單一視頻信號)luma(亮度)信號端。

?

AIP1B

模擬信號輸入端,可作為composite(混合)視頻信號的輸入端,在此設計中沒用此引腳用于模擬信號的輸入;也可以作為S-video(單一視頻信號)chroma(色度)信號端。

?

AVID

有效視頻數據指示信號(Active video indicator)AVID低電平時輸出數據無效,高電平有效。這樣就提供了一種控制TVP5150輸出視頻數據帶寬的方法。通過寄存器設置,控制AVID的開始和結束時機,同時對VBLK信號起始時機進行控制,那么就能從一幀圖像中截取某些部分輸出,如下圖所示。

3

此設計中沒有用到AVID這個引腳,但建議使用。

?

FID/GLCO

FID為奇偶場指示信號(odd/even field indicator)或垂直鎖定指示(vertical lock indicator),在場同步信號(VSYNC)下降沿跳變;GLCOgenlock control,串行輸出PLL的信息。

?

HSYNC

水平(也即行)同步信號,在TVP5150輸出的格式是8-bit 4:2:2格式時,會用到這個同步信號。

?

VSYNC

垂直(也即幀)同步信號,在TVP5150輸出的格式是8-bit 4:2:2格式時,會用到這個同步信號。

?

PCLK/SCLK

系統時鐘,是像素時鐘頻率的一倍或者2倍。可以通過對TVP51500F寄存器的第0位來選擇,見下圖所示:

4

下圖是0F寄存器的相關描述

5

其中PCLKSCLK腳時鐘信號可對應輸出13.5 MHz27 MHz兩種頻率。

?

PDN

Power-down引腳,低電平有效,也就是說在TVP5150正常工作的模式下,必須保證PDN這個引腳為高電平,一般由CPU的某一個GPIO口來控制這個引腳。

?

RESETB

復位引腳,低電平有效,只有在PDN=1的時候才能有效使用RESETB的功能,因為PDN=1的時候硬件關閉了TVP5150模塊。當RESETB引腳被拉低的時候,會復位TVP5150所有寄存器并且重啟TVP5150內部處理器,RESETBPDN引腳一般是結合使用,如下所示:

6

?

SCL

I2C串行時鐘引腳,在讀寫TVP5150的寄存器的值的時候是基于此時鐘來讀寫的。

?

SDA

I2C串行數據引腳,用于讀寫TVP5150的寄存器的值。

?

YOUT[6:0]

符合ITU-R BT.656標準的熟悉信號及YCbCr 4:2:2信號輸出引腳。

?

YOUT7/I2CSEL

YOUT7ITU-R BT.656標準的熟悉信號及YCbCr 4:2:2信號輸出的最高位。

I2CSELI2C從地址選擇端,可以通過連接上拉或下拉電阻來獲得所需要的從地址,當I2CSEL=1時,I2C從地址是0xBA,當I2CSEL=0時,I2C從地址是0xB8TVP5150是作為從I2C總線的從設備存在的,這也是由TVP5150的設計決定的,但如何去理解TVP5150作為從設備呢,因為我們是通過I2C總線來讀寫TVP5150寄存器的值的,而這些動作都是有CPU來發起,通過I2總線來讀寫的,所以TVP5150是作為I2C系統的從設備存在的。

?

3.3 TVP5150作為I2C系統從設備地址的確定

I2CSEL=1時的設計圖如下:

7

?

I2CSEL=0時的設計圖如下

8

確定了從地址之后,就要確定相應的讀寫地址,可以根據下面兩個表來確定:

寫地址的確定

?

9

讀地址的確定

?

10

?

4.? S3C2443camera接口

本設計中,TVP5150輸出的是ITU-R BT.656格式的視頻信號,也就是說我們輸入ITU-R BT.656格式的視頻數據給camera接口。

?

4.1 camera接口的功能框圖

11

本設計主要是用到P通道,所以后面將主要描述P通道的工作。

?

4.2 Camera接口支持的兩種視頻數據

12

?

?

5.? WINCE+s3c2443camera驅動

下面就結合代碼來分析camera驅動的工作內容以是如何實現的

5.1動態內存的分配

13

其中Preview_Mem_Size大小的定義如下

#define Preview_Mem_Size??? (720*288*2*4)

為什么是這個表達式呢,因為TVP5150輸出的是ITU-R BT.656格式的數字視頻流,所以其視頻數據的分辨率是720*288,那為什么還要*2呢?因為我們的LCD驅動的RGB格式是16位的,而16位是2個字節,所以要*2,那么720*288*2就是進來camera接口的一個視頻幀的字節大小。*2之后為什么還要*4呢?這有camera接口部分對視頻幀對應的內存機制有關,見camera接口的相關描述

14

是因為幀內存是由4ping-pong內存組成,每個在這里大小是720*288*2個字節。

?

5.2 動態申請camera中斷的邏輯中斷號

15

5.3 初始化cameraI2C讀寫接口

16

?

5.4camera接口的初始化

17

5.5 camera接口的復位

18

結合下圖可以更好理解上面的代碼

19

?

5.6 Camera接口的工作時鐘

我們先來看camera接口對其時鐘的描述

20

下圖是對camera接口提供時鐘源及camera接口為external camera processor提供時鐘源的代碼

21

?

?

5.7 復位TVP5150

22

下圖是CIGCTRL寄存器相關位的描述

23

下面就是通過CAMRESET引腳來控制TVP5150模塊的復位

24

?

5.8 通過I2C驅動提供的讀寫函數讀寫TVP5150的相關寄存器

25

下圖是需要寫TVP5150模塊的寄存器的集合

26

5.9 初始化camera接口的寄存器

27

下圖是圖像縮放示例

28

29

30

31

32

?

?

S3C2440camera接口特性及WinCE 下的驅動

http://www.21ic.com/app/computer/201009/65366_2.htm

?

?

wince5.0Camera驅動程序分析

http://bluefish.blog.51cto.com/214870/58112

?

camera驅動移植總結

http://www.linuxview.net/show.php?id=155

?

TVP5150的低功耗視頻解碼模塊

http://www.jdzj.com/diangong/article/2009-9-7/12471-1.htm

?

?

ITU-R BT.601 /BT.656數字視頻標準

http://apps.hi.baidu.com/share/detail/18599810

?

?

總結

以上是生活随笔為你收集整理的基于WINCE6.0+S3C2443的camera驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。