DSP圖像采集與傳輸_第1頁
DSP圖像采集與傳輸_第2頁
DSP圖像采集與傳輸_第3頁
DSP圖像采集與傳輸_第4頁
DSP圖像采集與傳輸_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、實驗?zāi)康耐ㄟ^該實驗,掌握模擬圖像經(jīng)采集成為數(shù)字圖像的方法,以及數(shù)字圖像在該系統(tǒng)中的傳輸,掌握系統(tǒng)的資源及DSP系統(tǒng)各硬件資源的功能模塊的作用。1了解PAL和NSTC視頻格式。2掌握圖像采集模塊和視頻解碼器TVP5150A的使用3. 掌握圖像顯示模塊和視頻編碼器SAA7121H的使用4. 掌握利用DM642進行圖像采集與顯示方法。二、實驗原理1. 數(shù)字圖像經(jīng)過數(shù)字化轉(zhuǎn)換并可以用數(shù)字表示、處理的圖像。由象素點組成,其中橫向的點數(shù)稱為水平分辨率,縱向的為垂直分辨率,一幅完整的圖分為若干行,稱為一幀圖像。每個象素根據(jù)量化精度不同其取值也不同,例如取三個色彩分量均為8位二進制數(shù)的RGB表示方法,用連

2、續(xù)的三個8位二進制數(shù)表示一個彩色點,如(200,100,64)描述的點的紅色分量為200,綠色分量100,藍色分量64,其中每個分量的取值均為0255表示從最暗到最亮256個等級。靜態(tài)圖像可以通過連續(xù)播放產(chǎn)生動態(tài)效果,25幀/秒或30幀/秒的幀速可產(chǎn)生較平滑的動態(tài)顯示效果。2. 色彩空間色彩空間(ColorSpace),又稱為色域空間,它表示的是一個圖像所能夠表現(xiàn)的色彩范圍。其模型是描述使用一組值(通常使用三個、四個值或者顏色成分)表示顏色方法的抽象數(shù)學(xué)模型。常用的色彩空間有兩種,即RGB和YUV色彩空間。其中RGB色彩空間通常為圖像采集和顯示設(shè)備采用,例如CCD、CMOS攝像頭,CRT 監(jiān)視

3、器等。因其色彩分量之間有較大的相關(guān)性,不適于做圖像處理。YCbCr是YUV色彩空間的使用最廣泛的一種色彩編碼,其中Y表示亮度,Cb表示藍色色差色差,Cr表示紅色色差。各色彩分量之間相關(guān)性小,適于進行處理操作,通常為計算機設(shè)備采用。YCbCr采樣格式有4:4:4(完全取樣)、4:2:2(2:1水平采樣,沒有垂直下采樣)、4:2:0( 2:1水平采樣,2:1垂直下采樣0、4:1:1( 4:1水平取樣,沒有垂直下采樣)。RGB和YCbCr色彩空間是可以相互轉(zhuǎn)換的。3 視頻視頻是活動圖像。每秒鐘播放的圖像的張數(shù)稱為幀,如PAL制式每秒鐘25幀,隔行掃描。當每秒鐘播放的照片張數(shù)不足時會出現(xiàn)動作不連貫現(xiàn)象

4、。 常見的電視信號制式是PAL(逐行倒相正交平衡調(diào)幅制)和NTSC(正交平衡調(diào)幅制),另外還有SECAM等。PAL電視標準,每秒25幀,電視掃描線為625線,奇場在前,偶場在后,標準的數(shù)字化PAL電視標準分辨率為720x576、24比特的色彩位。中國、歐洲等國家和地區(qū)大多采用PAL電視標準。NTSC電視標準,每秒29.97幀(簡化為30幀),電視掃描線為525線,偶場在前,奇場在后,標準的數(shù)字化NTSC電視標準分辨率為720x486、24比特的色彩位。美、日等國家和地區(qū)采用NTSC電視標準。三、硬件連接 SEED-VPM642圖像與視頻處理設(shè)備連接正確,計算機中CCS軟件和XDS510或XDS

5、560驅(qū)動安裝正確,就可以進行圖像與視頻處理實驗了。如圖7-1-1所示為SEED-VPM642圖像與視頻處理設(shè)備連線圖。 實驗箱連接按照以下步驟。(1) 將SEED-VPM642板卡通過仿真器XDS510連接到計算機的USB口。(2) 將實驗箱的右下角的5V直流電源接線頭連接到板卡的電源端口。 (3) 將BNC轉(zhuǎn)接頭裝到Vout端口上。 (4) 將液晶顯示器支起,并將其電源接頭連接到一個12V直流電源端口。將攝像頭視頻輸入頭連接到Vout上的BNC轉(zhuǎn)接頭上。 (5) 取出攝像頭并用三角架支好,將攝像頭連接到12V直流電源端口。 (6) 用BNC連接線連接攝像頭的VIDEO OUT和實驗箱上的i

6、n,將實驗箱電源連接到220V電源。 (7) 開啟電源,如連接正確,則電源端口右方的指示燈為亮,仿真器上指示燈也為亮。 (8) 如果液晶顯示屏不亮,請按其上的POWER鍵。 圖7-1-1SEED-VPM642圖像與視頻處理設(shè)備連線圖四DSP圖像采集與PAL格式顯示程序設(shè)計在視頻采集與顯示任務(wù)中,程序首先將攝像頭捕捉到的視頻數(shù)據(jù)通過EDMA讀入FIFO中,然后再將數(shù)據(jù)從FIFO中讀到輸入數(shù)據(jù)緩沖區(qū),最后將輸入緩沖區(qū)的數(shù)據(jù)放入顯示緩沖區(qū),通過液晶屏顯示。DSP圖像采集與PAL格式顯示程序設(shè)計流程框圖如圖7-1-2所示。圖7-1-2 DSP圖像采集與處理的一般流程圖對DSP片上資源的使用,一般通過調(diào)

7、用CSL API庫函數(shù)來完成的,CSL模塊是頂層API模塊,使用CSL API前必須調(diào)用此函數(shù)。下面是主程序用到的一些CSL API和函數(shù)。CSL_init():芯片運行支持庫CSL初始化,使用CSL API前必須調(diào)用此函數(shù)。CHIP_config():調(diào)用CSL庫中CHIP模塊,向配置地址中寫設(shè)備配置值。CHIP模塊是駐留著指定芯片和芯片相關(guān)代碼,如器件的大小端、CPU和REV ID等。 EMIFA_Config():調(diào)用CSL庫中EMIFA模塊。外設(shè)EMIFA的配置結(jié)構(gòu),初始化外設(shè)EMIFA的寄存器來初始化EMIFA。IRQ_setVecs()、IRQ_nmiEnable()、IRQ_gl

8、obalEnable()、IRQ_map()、IRQ_map()、IRQ_reset()、IRQ_reset():調(diào)用CSL庫中IRQ模塊,初始化中斷向量表。I2C_Config():調(diào)用CSL庫中I2C模塊,動態(tài)配置外設(shè)I2C,初始化外設(shè)I2C的寄存器。I2C_open():調(diào)用CSL庫中I2C模塊,打開一個I2C設(shè)備。DAT_open():調(diào)用CSL庫中DAT模塊,打開一個DMA或EDMA通道。DAT_copy():調(diào)用CSL庫中DAT模塊,使用DMA或EDMA將數(shù)據(jù)從存儲器一個地方移到另一個地方。SEEDDM642_rset():讀CPLD寄存器值(函數(shù)體在seeddm642_cpld.

9、c中)GPIO_RSET():初始化GPIO的輸出值(csl_stdinchal.h和csl_chiphal.h中預(yù)定義)_IIC_read():從I2C總線中讀(函數(shù)體在iic.c中)。_IIC_write():向I2C總線中寫(函數(shù)體在iic.c中)。bt656_8bit_ncfc():配置給定視頻端口通道A不連續(xù)幀捕捉8位BT.656視頻采集,打開一個視頻端口VP,輸入VP端口號,輸出VP句柄(函數(shù)體在vportcap.c中)。bt656_capture_start():配置給定視頻端口通道A不連續(xù)幀捕捉8位BT.656視頻采集,輸入VP句柄,進行視頻采集(函數(shù)體在vportcap.c中

10、)。 bt656_display_start():配置給定視頻端口不連續(xù)幀捕捉8位BT.656視頻顯示,輸入VP句柄,進行視頻顯示(函數(shù)體在vportdis.c中)。DSP圖像采集與PAL顯示工程文件管理器如圖7-1-3所示。工程由下列文件組成:主程序dm642main.c、TVP5150A初始化文件_tvp51xx.c、SA7121H初始化文件_sa7121h.c、SEEDDM642的I2C結(jié)構(gòu)設(shè)置iic.c、CPLD邏輯模塊seed_cpld.c、圖像采集參數(shù)定義程序vportcap.c、圖像顯示參數(shù)定義程序vportdis.c、中斷向量表ves_dm642.asm、連接命令文件文件see

11、ddm642video.cmd、庫文件cslDM642.lib和rts6400.lib以及相關(guān)的頭文件。圖7-1-3 DSP圖像采集與PAL顯示工程文件管理器雙擊DSP圖像采集與PAL顯示工程的相應(yīng)文件名,查看具體源程序。以下是各源程序代碼及其詳細分析。 1.主程序的功能如7-1-2 DSP圖像采集與處理的一般流程圖所示,具體代碼及其詳細分析如下。/*/* */*/* 包含頭文件*/#include <csl.h> /函數(shù)申明,調(diào)用CSL庫必須包含相應(yīng)的頭文件。#include <csl_emifa.h>#include <csl_i2c.h>#includ

12、e <csl_gpio.h>#include <csl_irq.h>#include <csl_chip.h>#include <csl_dat.h>#include "iic.h" /讀IIC與寫IIC程序的申明文件,函數(shù)體在iic.c中。#include "vportcap.h" /通過EDMA視頻捕捉程序的申明文件,函數(shù)體在vportcap.c中。#include "vportdis.h" /通過EDMA視頻顯示程序的申明文件,函數(shù)體在vportdis.c中。#include &q

13、uot;sa7121h.h" /定義SAA7112H寄存器#include "TVP51xx.h" /定義TVP5150A寄存器#include "seeddm642.h" /定義seeddm642板上CPLD和其它片上外設(shè)的地址/*SEEDDM642的emifa的設(shè)置結(jié)構(gòu)*/EMIFA_Config Seeddm642ConfigA = 0x00052078, /*gblctl寄存器:EMIFA(B)全局控制寄存器值 */ /*將CLK6、4、1使能;將MRMODE置1;使能EK2EN,EK2RATE*/ 0xffffffd3, /*cect

14、l0寄存器:CE0空間控制寄存器值,將CE0空間設(shè)為SDRAM*/ 0x73a28e01, /*cectl1寄存器:CE1空間控制寄存器值。讀保持1個時鐘,MTYPE=0000,選擇8位的異步接口;讀選通01110,即14個時鐘寬度。TA:2個時鐘;讀建立2個時鐘,寫保持2個時鐘,寫選通14個時鐘,寫建立7個時鐘*/ 0x22a28a22, /*cectl2寄存器:CE2空間控制寄存器值*/ 0x22a28a42, /*cectl3寄存器:CE3空間控制寄存器值*/ 0x57115000, /*sdctl寄存器:SDRAM 控制寄存器值*/ 0x0000081b, /*sdtim寄存器:SDR

15、AM 時序寄存器值*/ 0x001faf4d, /*sdext寄存器:SDRAM 擴展寄存器值*/ 0x00000002, /*cesec0寄存器:CE0空間次控制寄存器值*/ 0x00000002, /*cesec1寄存器:CE1空間次控制寄存器值*/ 0x00000002, /*cesec2寄存器:CE2空間次控制寄存器值*/ 0x00000073 /*cesec3寄存器:CE3空間次控制寄存器值*/;/*SEEDDM642的IIC設(shè)置結(jié)構(gòu)*/I2C_Config SEEDDM642IIC_Config = 0, /*i2coar寄存器,采用主模式 */ 0, /* i2cimr寄存器,采

16、用無中斷方式只寫、不讀 */ (20-5), /* i2cclkl寄存器,scl low time */ (20-5), /* i2cclkh寄存器,scl high time */ 1, /* i2ccnt寄存器,configure later*/ 0, /* i2csar寄存器,configure later*/ 0x4ea0, /* i2cmdr寄存器,主機發(fā)送模式,i2c runs free,8-bit data + NACK,不重復(fù)模式 */ (75-1), /* i2cpsc寄存器,4MHz時鐘 */;I2C_Handle hSeeddm642i2c;int portNumber;

17、extern SA7121H_ConfParams sa7121hPAL45;extern SA7121H_ConfParams sa7121hNTSC45;Uint8 vFromat = 0;Uint8 misc_ctrl = 0x6D;Uint8 output_format = 0x47;/*地址為0 for cvbs port1,選擇復(fù)合信號做為輸入*/Uint8 input_sel = 0x00;/*地址為0xf,將Pin27設(shè)置成為CAPEN功能*/Uint8 pin_cfg = 0x02;/*地址為1B*/Uint8 chro_ctrl_2 = 0x14;/*圖像句柄的聲明*/VP

18、_Handle vpHchannel0;VP_Handle vpHchannel1;VP_Handle vpHchannel2;/*確定圖像的參數(shù)*/int numPixels = 720; /每行720個像素int numLines = 576; /每幀576行(PAL)/*采集與顯示緩沖區(qū)的首址,可參見seeddm642video.cmd*/Uint32 capYbuffer=0x80000000; /*采集到的Y分量數(shù)據(jù)存放在存儲器中的起始地址*/Uint32 capCbbuffer=0x800675c0; /*采集到的Cb分量數(shù)據(jù)存放在存儲器中的起始地址*/Uint32 capCrbu

19、ffer = 0x8009b0a0; /*采集到的Cr量數(shù)據(jù)存放在存儲器中的起始地址*/Uint32 disYbuffer = 0x80100000; /*Y分量顯示數(shù)據(jù)存放在存儲器中的起始地址*/Uint32 disCbbuffer = 0x801675c0; /*Cb分量顯示數(shù)據(jù)存放在存儲器中的起始地址*/Uint32 disCrbuffer = 0x8019b0a0; /*Cr分量顯示數(shù)據(jù)存放在存儲器中的起始地址*/*圖像格式標志*/Uint8 NTSCorPAL = 0;extern far void vectors();extern volatile Uint32 capNewFra

20、me;extern volatile Uint32 disNewFrame;/*-*/* main() */*-*/*此程序可將四個采集口的數(shù)據(jù)經(jīng)過Video Port0送出*/void main()Uint8 addrI2C;int i;/*-*/* 執(zhí)行所有的初始化 */*-*/* 初始化CSL庫 */CSL_init(); /CSL模塊是頂層API模塊,使用CSL API前必須調(diào)用此函數(shù)CHIP_config(&SEEDDM642percfg); /向配置地址中寫設(shè)備配置值/*-*/*EMIFA的初始化,將CE0設(shè)為SDRAM空間,CE1設(shè)為異步空間 注意DM642支持EMIFA

21、,不支持EMIF*/EMIFA_config(&Seeddm642ConfigA);/*-*/*中斷向量表的初始化*/ IRQ_setVecs(vectors); IRQ_nmiEnable(); IRQ_globalEnable(); IRQ_map(IRQ_EVT_VINT1, 11); /*將VP1通道中斷對應(yīng)為CPU中斷11*/ IRQ_map(IRQ_EVT_VINT0, 12); /*將VP0通道中斷對應(yīng)為CPU中斷12*/ IRQ_reset(IRQ_EVT_VINT1); IRQ_reset(IRQ_EVT_VINT1);/*打開一個數(shù)據(jù)拷貝的數(shù)據(jù)通路,Uint32 D

22、AT_open(int chaNum,int priority,Uint32 flags);*/ DAT_open(DAT_CHAANY,DAT_PRI_LOW,DAT_OPEN_2D); /*-*/*進行IIC的初始化*/hSeeddm642i2c = I2C_open(I2C_PORT0,I2C_OPEN_RESET);I2C_config(hSeeddm642i2c,&SEEDDM642IIC_Config);/*-*/*進行解碼器TVP5150pbs的初始化*/SEEDDM642_rset(0x15, 2);/*選擇TVP5150,設(shè)置第三通路*/GPIO_RSET(GPGC,

23、0x0); /*將GPIO0不作為GPINT使用*/GPIO_RSET(GPDIR,0x1); /*將GPIO0作為輸出*/GPIO_RSET(GPVAL,0x0); /*GPIO0輸出為高,選擇IIC1總線,配置第二路,即為U21*/addrI2C = 0xBA >>1; /*TVP5150A IIC寫地址(I2CSEL=1)*/*I2C地址分為10位模式或7位模式,DSP支持7位I2C模式,則要按7位模式使用,取后8位地址右移1位即是7位的I2C地址。TVP5150寫地址為0xBA或0xB8,讀地址為0xBB或0xB9,因此與TVP5150進行通信,須將I2C的地址向右移一位。

24、*/ _IIC_write(hSeeddm642i2c, addrI2C,0x00, input_sel); /*四個參數(shù)依次為I2C Handle(I2C_open函數(shù)返回值)、從器件地址、寄存器地址和需要配置的寄存器值 */ _IIC_write(hSeeddm642i2c, addrI2C,0x03, misc_ctrl); _IIC_write(hSeeddm642i2c, addrI2C,0x0D, output_format); _IIC_write(hSeeddm642i2c, addrI2C,0x0F, pin_cfg); _IIC_write(hSeeddm642i2c, a

25、ddrI2C,0x1B, chro_ctrl_2); /*回讀當前攝像設(shè)備的格式*/ _IIC_read(hSeeddm642i2c, addrI2C,0x8c, &vFromat); vFromat = vFromat & 0xff;switch (vFromat)case TVP51XX_NTSCM:case TVP51XX_NTSC443:NTSCorPAL = 1; /*系統(tǒng)為NTSC的模式*/break;case TVP51XX_PALBGHIN:case TVP51XX_PALM:NTSCorPAL = 0; /*系統(tǒng)為PAL的模式*/break;default:N

26、TSCorPAL = 2; /*系統(tǒng)為不支持的模式*/break;if(NTSCorPAL =2)/*系統(tǒng)不支持的模式,重新配置*/for(;) /*-*/*進行SAA7121H的初始化*/GPIO_RSET(GPVAL,0x0);/*GPIO0輸出為低,選擇IIC1總線,配置圖像輸出*/addrI2C = 0xB8 >>1; /*選擇第0路的I2C的地址,TVP5150A IIC寫地址(I2CSEL=0)*/*將第0路的視頻輸入口的數(shù)據(jù)口設(shè)為高阻狀態(tài),使能SCLK,將第27腳設(shè)為輸入*/_IIC_write(hSeeddm642i2c, addrI2C,0x03, 0x1);/*

27、配置SAA7121H*/GPIO_RSET(GPVAL,0x1);/*GPIO0輸出為低,選擇IIC1總線,配置圖像輸出*/*初始化Video Port0*/*將Video Port1設(shè)為視頻編碼器SAA7121H的輸出*/portNumber = 0;vpHchannel0 = bt656_8bit_ncfd(portNumber);addrI2C = 0x88 >>1; /SAA7121 IIC地址(因SAA7121的21管腳SA接低電平)for(i =0; i<43; i+)if(NTSCorPAL = 1)_IIC_write(hSeeddm642i2c, addrI

28、2C, (sa7121hNTSCi.regsubaddr), (sa7121hNTSCi.regvule);else_IIC_write(hSeeddm642i2c, addrI2C, (sa7121hPALi.regsubaddr), (sa7121hPALi.regvule);/寫SAA7121寄存器值/*-*/*初始化Video Port1*/*將Video Port1設(shè)為采集輸入*/portNumber = 1;vpHchannel1 = bt656_8bit_ncfc(portNumber);/打開一個VP口,進行采集bt656_capture_start(vpHchannel1);

29、/*等待第一幀數(shù)據(jù)采集完成*/while(capNewFrame = 0)/*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標志*/capNewFrame =0;for(i=0;i<numLines;i+)/*傳送Y緩沖區(qū)*/ /DAT_copy(void *src,void *dst,Uint16 byteCnt);DAT_copy(void *)(capYbuffer + i * numPixels), (void *)(disYbuffer + i * numPixels), numPixels); /*傳送Cb緩沖區(qū)*/ DAT_copy(void *)(capCbbuffer + i *

30、 (numPixels >> 1),/*YCrCb=4:2:2,因此將numPixels減少一半,即右移一位*/ (void *)(disCbbuffer + i * (numPixels >> 1), numPixels>>1);/*傳送Cr緩沖區(qū)*/ DAT_copy(void *)(capCrbuffer + i * (numPixels >> 1), (void *)(disCrbuffer + i * (numPixels >> 1), numPixels>>1); /*啟動顯示模塊*/bt656_display

31、_start(vpHchannel0);/*建立顯示的實時循環(huán)*/for(;)/*當采集區(qū)的數(shù)據(jù)已經(jīng)采集好,而顯示緩沖區(qū)的數(shù)據(jù)已空*/if(capNewFrame = 1)&&(disNewFrame = 1)/*將數(shù)據(jù)裝入顯示緩沖區(qū),并清采集完成的標志*/capNewFrame =0;disNewFrame =0;for(i=0;i<numLines;i+)/*傳送Y緩沖區(qū)*/DAT_copy(void *)(capYbuffer + i * numPixels), (void *)(disYbuffer + i * numPixels), numPixels); /*

32、傳送Cb緩沖區(qū)*/ DAT_copy(void *)(capCbbuffer + i * (numPixels >> 1), (void *)(disCbbuffer + i * (numPixels >> 1), numPixels>>1);/*傳送Cr緩沖區(qū)*/ DAT_copy(void *)(capCrbuffer + i * (numPixels >> 1), (void *)(disCrbuffer + i * (numPixels >> 1), numPixels>>1); for(;)/-/*采集與回放*/

33、*/2TVP5150A視頻解碼器初始化(tvp51xx.h、_tvp51xx.h和_tvp51xx.c)TVP5150A視頻解碼器可以將NTSC、PAL和SECAM視頻信號轉(zhuǎn)換為8位ITU-R BT.656格式信號。TVP5150A將基帶模擬視頻信號轉(zhuǎn)換為YCbCr 4:2:2分量視頻,兩個模擬輸入端口可接收兩個可選的復(fù)合視頻輸入,或一個S視頻輸入。此芯片內(nèi)含一個9位模數(shù)轉(zhuǎn)換器,抽樣頻率符合ITU-R BT.601標準(為27.0MHz)。輸出信號格式可以是8位4:2:2或8位ITU-R BT.656格式。TVP5150A只用作IIC從設(shè)備(IIC地址為0xBA或0xB8)。 對TVP5150

34、A視頻解碼器的初始化,即對其各寄存器進行賦值。根據(jù)TVP5150A手冊,其各寄存器地址和位定義如表所示,具體位說明可參考手冊。表7-1-1TVP5150A各寄存器地址及其位定義寄存器功能地址缺省值 讀/寫視頻輸入源選擇#100h00hR/W模擬通道控制01h15hR/W操作模式控制02h 00hR/W各類控制03h01h R/W自動開關(guān)掩碼:TVP5150A04hFChR/WTVP5150AM104hDCh R/W保留05h 00hR/W彩色抑制管門限控制06h 10h R/W亮度(luminance)處理控制#107h 60hR/W亮度(luminance)處理控制#208h00hR/W亮度

35、(brightness)控制09h80hR/W色彩飽和度控制0Ah 80hR/W色度(hue)控制0Bh00hR/W對比度控制0Ch80hR/W輸出和數(shù)據(jù)速率選擇0Dh47h R/W亮度(luminance)處理控制#3 0Eh00hR/W配置共用管腳0Fh08hR/W保留10h活動視頻剪輯開始高位11h00hR/W活動視頻剪輯開始低位12h00h R/W活動視頻剪輯停止高位13h 00h R/W活動視頻剪輯停止低位14h 00h R/W同步鎖相/實時時鐘(Genlock/RTC)15h01h R/W水平同步開始16h 80h R/W保留17h垂直消隱開始 18h 00h R/W垂直消隱結(jié)束1

36、9h00h R/W色度(chrominance)處理控制#11Ah0ChR/W色度(chrominance)處理控制#21Bh14h R/W中斷復(fù)位寄存器B1Ch 00hR/W中斷使能寄存器B1Dh00hR/W中斷配置寄存器B 1Eh00h R/W保留1Fh27h視頻標準28h00hR/W保留29h2BhCb增益因子2ChRCr 增益因子 2DhR復(fù)制保護(macrovision)開計數(shù)器2Eh0FhR/W復(fù)制保護(macrovision)關(guān)計數(shù)器2Fh 01h R/W656修正選擇(只TVP5150AM1) 30h00h R/W保留31h7Fh設(shè)備ID高位80h51h R設(shè)備ID低位81h5

37、0hRROM主要版本:TVP5150A82h03h RTVP5150AM182h04h RROM次要版本:TVP5150A83h21h RTVP5150AM183h 00hR垂直行計數(shù)高位84h R垂直行計數(shù)低位85hR中斷狀態(tài)寄存器B86h R中斷活動寄存器B87h R狀態(tài)寄存器#1 88h R狀態(tài)寄存器#289h R狀態(tài)寄存器#38AhR狀態(tài)寄存器#4 8BhR狀態(tài)寄存器#58ChR保留 8Dh8Fh隱藏字幕數(shù)據(jù)寄存器90h93hRWSS數(shù)據(jù)寄存器94h99hRVPS數(shù)據(jù)寄存器9AhA6h RVITC數(shù)據(jù)寄存器A7hAFhRVBI FIFO讀數(shù)據(jù)B0hR文字電視廣播濾波器1B1hB5h00

38、h R/W文字電視廣播濾波器2B6hBAh00hR/W文字電視廣播濾波器使能BBh 00h R/W保留BChBFh中斷狀態(tài)寄存器A C0h00hR/W中斷使能寄存器AC1h00h R/W中斷配置C2h 04hR/WVDP配置RAM數(shù)據(jù)C3hDCh R/W配置RAM地址低字節(jié)C4h0FhR/W配置RAM地址高字節(jié)C5h 00h R/WVDP狀態(tài)寄存器C6hRFIFO字計數(shù)C7h RFIFO中斷門限C8h 80h R/WFIFO復(fù)位C9h00h W行數(shù)中斷CAh00h R/W像素對齊寄存器低字節(jié)CBh4Eh R/W像素對齊寄存器高字節(jié)CCh 00h R/WFIFO輸出控制CDh 01h R/W保留

39、CEh全部場使能CFh 00h R/W行模式寄存器D0hD1hFBh00hFFhR/W全部場模式寄存器FCh7Fh R/W保留FDhFFh頭文件5150A給出了定義寄存器地址和及其賦值方法。具體代碼及其詳細分析如下。/*/* tvp51xx.h file */*/#ifndef _TVP51XX_H#define _TVP51XX_H#include <csl_i2c.h>#include <std.h>#include <csl_stdinc.h>typedef enum TVP51XX_AnalogFormat TVP51XX_AFMT_COMPOSIT

40、E, TVP51XX_AFMT_SVIDEO, TVP51XX_AFMT_RGB, TVP51XX_AFMT_YPBPR TVP51XX_AnalogFormat;typedef enum TVP51XX_Mode TVP51XX_MODE_NTSC601,TVP51XX_MODE_NTSCSqp, TVP51XX_MODE_PAL601, TVP51XX_MODE_PALSqp, TVP51XX_MODE_USERTVP51XX_Mode;typedef unsigned int TVP51XX_Cmd;#define TVP51XX_POWERDOWN EDC_USER+1#define

41、TVP51XX_POWERUP EDC_USER+2 #define TVP51XX_SET_AMUXMODE EDC_USER+3#define TVP51XX_NTSCM 0x81#define TVP51XX_PALBGHIN 0x83#define TVP51XX_PALM 0x85#define TVP51XX_COMBINATION-N 0x87#define TVP51XX_NTSC443 0x89 typedef struct TVP51XX_Mode videoMode; TVP51XX_AnalogFormat aFmt; Bool enableBT656Sync; int

42、 inputPort; I2C_Handle hI2C; TVP51XX_ConfParams;#endif/*/*/* _tvp51xx.h file */*/#ifndef _TVP51XX_H#define _TVP51XX_H#ifdef _cplusplusextern "C" #endif#include <tvp51xx.h>#define _TVP5150_IIC_ADDR (0xB8>>1) /#define _TVP5146_IIC_ADDR (0xBA>>1)/typedef unsigned Uns; /32位無符

43、號整型數(shù)Uint8 NTSC601_EXEC82, NTSCSGP_EXEC82, PAL601_EXEC82, PALSGP_EXEC82;typedef struct _TVP51XX_Generics/*視頻輸入源選擇#1 (地址0x00) */Uns svideo_sel : 1; Uns channel1_sel : 1;Unssource_sel_rsv1 : 1; Uns black_output : 1; Uns source_sel_rsv2: 4;/*模擬通道控制(地址0x01) */ Uns automatic_gain_ctrl : 2; Uns automatic_o

44、ffset_ctrl : 2; Uns analog_channel_ctrl_rsv : 4;/* 操作模式控制(地址0x02) */ Uns power_down_mode : 1; Uns luma_peak_disable : 1; Uns color_subcarrier_pll_frozen : 1; Uns white_peak_disable : 1; Uns tv_vcr_mode : 2; Uns color_burst_ref_disable : 1; Uns operation_mode_ctrl_rsv : 1;/* 各類控制(地址0x03) */ Uns clock

45、_output_enable : 1; Uns vertical_blanking_onoff : 1; Uns hsync_vsync_output_enable : 1; Uns ycrcb_output_enable : 1; Uns lock_status : 1;Uns gpcl_io_mode_sel : 1; Uns gpcl : 1; Uns vbko : 1;/* 自動開關(guān)掩碼(地址0x04) */ Uns autoswitch_mask_rsv1 : 2; Uns palm_off : 1; Uns paln_off : 1; Uns n443_off : 1; Uns s

46、ec_off : 1; Uns autoswitch_mask_rsv2 : 2;/* 軟件復(fù)位(地址0x05) */ Uns reset : 1; Uns software_reset_rsv : 7;/* 彩色抑制管門限控制(地址0x06) */ Uns color_killer_shreshold : 5; Uns automatic_color_killer : 2; Uns color_killer_shreshold_rsv: 1;/* 亮度(luminance)處理控制#1(地址0x07) */ Uns luminance_signal_delay : 4; Uns luma_b

47、ypass : 1; Uns disable_raw_header : 1; Uns pedestal_not_present: 1; Uns luma_bypass_mode : 1;/* 亮度(luminance)處理控制#2 (地址0x08) */ Uns mac_agc_ctrl : 2; Uns peaking_gain : 2; Uns luminance_processing_ctrl_rsv1 : 2; Uns luminance_filter_sel : 1; Uns luminance_processing_ctrl_rsv2 : 1;/* 亮度(brightness)控制(地址0x09) */ Uint8 brightness_ctrl;/* 色彩飽和度控制(地址0x0A) */ Uint8 saturation_ctrl;/* 色度(hue)控制(地址0x0B) */ Uint8 hue_ctrl;/* 對比度控制(地址0x0C) */ Uint8 contrast_ctrl;/* 輸出和數(shù)據(jù)速率選擇 (地址0x0D) */ Uns ycrcb_output_format : 3; Uns ycrcb_data_path_bypass : 2;Uns cbcr_code_format : 1; Uns ycbcr_o

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論