TVP5150的低功耗視頻解碼模塊
隨著便攜式多媒體終端需求量迅速增加,在視頻解碼等方面對(duì)芯片低功耗的要求也越來(lái)越高。
因此,只有將模擬視頻信號(hào)轉(zhuǎn)換成為符合ITU-R BT.656標(biāo)準(zhǔn)的數(shù)字信號(hào),才可方便地利用FPGA或者DSP甚至PC機(jī)來(lái)進(jìn)行信號(hào)處理。本模塊就是利用TI公司的超低功耗TVP5150芯片對(duì)視頻信號(hào)A/D解碼,由單片機(jī)通過(guò)I2C總線控制,預(yù)留地址數(shù)據(jù)等接口,作為模塊驗(yàn)證以及后續(xù)數(shù)字信號(hào)處理之用。
1模塊硬件構(gòu)成
1.1系統(tǒng)基本構(gòu)成
系統(tǒng)總體構(gòu)成框圖如圖1所示。
TVP5150是超低功耗、支持NTSC/PAL/SECAM等格式的高性能視頻解碼器,在正常工作時(shí),它的功耗僅115 mW,并且具有超小封裝(32腳的TQFP),因此非常適用于便攜、批量大、高質(zhì)量和高性能的視頻產(chǎn)品。它可以接收2路復(fù)合視頻信號(hào)(CVBS)或1路S-Video信號(hào)。通過(guò)單片機(jī)I2C總線設(shè)置內(nèi)部寄存器,可以輸出8位4:2:2的ITU-R BT.656信號(hào)(同步信號(hào)內(nèi)嵌),以及8位4:2:2的ITU-R BT.601信號(hào)(同步信號(hào)分離,單獨(dú)引腳輸出)。
單片機(jī)選用TI公司的MSP430F2013,超低功耗,有2 kB+256 B Flash存儲(chǔ)器和128 B RAM,14腳超小封裝(TSSOP)。其功耗是一般單片機(jī)的1/5,特別適合于手持設(shè)備,在1.8 V~3.6 V電壓、1 MHz的時(shí)鐘條件下,耗電電流在0.1 μA~400 μA之間(因工作模式不同而不同)。單片機(jī)通過(guò)MAX3232與串口連接,由PC機(jī)通過(guò)串口對(duì)單片機(jī)在線編程,方便對(duì)單片機(jī)程序及時(shí)修改。由PC設(shè)置并且隨時(shí)調(diào)整TVP5150的內(nèi)部寄存器,控制其工作狀態(tài),輸出信號(hào)等。單片機(jī)預(yù)留控制口,以增加本模塊的可擴(kuò)展性。
74HC16245總線控制器用來(lái)提高本模塊輸出信號(hào)的負(fù)載驅(qū)動(dòng)能力,它是可選部分,視需要可將信號(hào)直通以降低模塊功耗。如果有多個(gè)模塊組合工作,由單片機(jī)對(duì)74HC16245使能控制,協(xié)調(diào)各模塊信號(hào)輸出。
驗(yàn)證模塊主要由SAA7121視頻編碼芯片構(gòu)成,可將8位4:2:2的ITU-R BT.656或者ITU-R BT.601輸入信號(hào)編碼成CVBS信號(hào)或S-Video信號(hào)輸出。如果TVP5150解碼模塊工作正常,利用此驗(yàn)證模塊可以得到模擬視頻信號(hào),接人顯示設(shè)備可得到輸入圖像。
1.2系統(tǒng)硬件設(shè)計(jì)
TVP5150芯片應(yīng)用原理圖如圖2所示。芯片采用14.318 18 MHz晶振,數(shù)字和模擬輸入電壓為1.8 V,IO口電壓為3.3 V;信號(hào)輸入有CH1和CH2兩路,并且都進(jìn)行阻抗匹配設(shè)計(jì),防止對(duì)輸入信號(hào)的反射;YOUT[0:7]輸出8路YCbCr信號(hào),消隱信號(hào)可選擇單獨(dú)引腳HSYNC和VSYNC輸出,或者內(nèi)嵌于這8路信號(hào)中。PCLK/SCLK腳時(shí)鐘信號(hào)可輸出13.5 MHz和27 MHz兩種頻率。
2模塊程序構(gòu)成
本模塊主要由PC機(jī)與單片機(jī)串口通信程序和單片機(jī)與TVP5150的I2C控制程序兩部分軟件組成。
2.1 PC機(jī)與單片機(jī)串口通信程序
PC機(jī)與單片機(jī)通信協(xié)議見(jiàn)表1。
注:帶引號(hào)部分為傳輸數(shù)據(jù)頭,供單片機(jī)識(shí)別處理;Addr為地址;Data為數(shù)據(jù)。
本程序在dephi7.0開(kāi)發(fā)環(huán)境下完成設(shè)計(jì),配置文件為txt格式,能讀取和保存配置文件,在配置表格中能對(duì)配置文件進(jìn)行簡(jiǎn)單處理,能選取配置文件中的寄存器信息通過(guò)串口發(fā)送給單片機(jī),并且能讀取單片機(jī)發(fā)送來(lái)的寄存器信息。
程序分為前臺(tái)的界面處理與后臺(tái)數(shù)據(jù)和功能處理兩層。前臺(tái)只負(fù)責(zé)界面的設(shè)置與動(dòng)作,對(duì)表格中一切數(shù)據(jù)的處理都在后臺(tái)。通過(guò)SPcomm串口通信控件進(jìn)行串口通信操作。
定義Sendlist和Revlist兩個(gè)類,將所有允許發(fā)送項(xiàng)存入Sendlist,然后通過(guò)串口發(fā)送,而接收到的單片機(jī)發(fā)送來(lái)的數(shù)據(jù)存入Revlist。然后,將Sendlist和Revlist兩者進(jìn)行對(duì)比。如果相同,則存儲(chǔ),并在表格中顯示;否則,報(bào)錯(cuò)處理。每發(fā)送一個(gè)寄存器項(xiàng)有一定的延時(shí)用于單片機(jī)處理。軟件有超時(shí)設(shè)置,如果發(fā)送5 s后無(wú)法接收到單片機(jī)回復(fù)數(shù)據(jù),則判斷為超時(shí)出錯(cuò)。
本程序流程如圖3所示。
2.2 單片機(jī)程序
單片機(jī)程序完成串口通信和I2C總線控制兩個(gè)功能。
圖4為I2C時(shí)序圖。I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘線SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。I2C總線在傳送數(shù)據(jù)過(guò)程中有以下3種類型信號(hào):
a)開(kāi)始信號(hào)(Start)。SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。
b)結(jié)束信號(hào)(Stop)。SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
c)應(yīng)答信號(hào)(AcK)。接收數(shù)據(jù)的IC在接收到8 bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。
I2C總線在傳送數(shù)據(jù)時(shí),必須保證在SCL高電平時(shí)SDA上數(shù)據(jù)穩(wěn)定,否則就判斷為開(kāi)始或結(jié)束信號(hào)。
單片機(jī)內(nèi)程序按照通信協(xié)議與PC機(jī)進(jìn)行數(shù)據(jù)傳輸,然后識(shí)別數(shù)據(jù)頭,按協(xié)議分別處理,經(jīng)由I2C總線,對(duì)TVP5150內(nèi)部寄存器進(jìn)行讀寫操作。單片機(jī)通信收發(fā)主程序由C語(yǔ)言編寫,通過(guò)串口中斷接收PC機(jī)數(shù)據(jù),判斷接收的是數(shù)據(jù)頭還是有效數(shù)據(jù)。當(dāng)接收數(shù)據(jù)頭R時(shí),回發(fā)PC機(jī)r,然后將后面的1個(gè)字節(jié)地址,由I2C總線操作讀出TVP5150該地址寄存器中的數(shù)據(jù),并通過(guò)串口回發(fā)給PC機(jī)。如果幀頭是W,回發(fā)PC機(jī)w,并且緩存它后面2個(gè)字節(jié)的數(shù)據(jù),第1個(gè)字節(jié)為TVP5150寄存器地址,第2個(gè)為寫入該寄存器的數(shù)據(jù)。通過(guò)I2C總線完成此寫操作,并讀出寫入數(shù)據(jù)后寄存器中數(shù)據(jù),通過(guò)串口回發(fā)給PC機(jī),以備PC機(jī)端軟件校驗(yàn)。
3主要視頻信號(hào)
3.1輸出信號(hào)
模塊將模擬視頻信號(hào)解碼成符合ITU-R BT.656標(biāo)準(zhǔn)的數(shù)字視頻信號(hào),輸出8位Y:Cb:Cr=4:2:2的數(shù)字信號(hào)。同步信號(hào)內(nèi)嵌于數(shù)據(jù)流中串行輸出,也可以單獨(dú)引腳與數(shù)據(jù)流并行輸出。 圖5所示為完整一幀數(shù)據(jù),分奇偶兩場(chǎng),23~311行是偶數(shù)場(chǎng)數(shù)據(jù),366~624行是奇數(shù)場(chǎng)數(shù)據(jù),其余為場(chǎng)控制信號(hào)或者無(wú)效數(shù)據(jù)。FID為奇偶場(chǎng)指示信號(hào),在場(chǎng)同步信號(hào)(VSYNC)下降沿跳變。VBLK為場(chǎng)消隱信號(hào),高電平有效,可以通過(guò)設(shè)置TVP5150寄存器來(lái)改變其長(zhǎng)短,控制有效圖像數(shù)據(jù)輸出,因?yàn)樵赩BLK信號(hào)低電平期間對(duì)應(yīng)輸出視頻有效數(shù)據(jù)。
每一行的數(shù)據(jù)結(jié)構(gòu)如圖6所示。每行開(kāi)始的288字節(jié)為行控制信號(hào),開(kāi)始的4字節(jié)為EAV(有效視頻結(jié)束)信號(hào),緊接著280個(gè)固定填充數(shù)據(jù),最后4個(gè)字節(jié)是SAV(有效視頻起始)信號(hào)。SAV信號(hào)和EAV信號(hào)有3字節(jié)的前導(dǎo):FF、FF、00;最后1字節(jié)XY表示該行位于整個(gè)數(shù)據(jù)幀的位置以及如何區(qū)分SAV、EAV信號(hào)。
XY各位的含義如圖7所示。圖中最高位是固定數(shù)據(jù)1,F(xiàn)=0表示偶數(shù)場(chǎng),F(xiàn)=1表示奇數(shù)場(chǎng);V=0表示該行為有效視頻數(shù)據(jù),V=1表示該行沒(méi)有有效視頻數(shù)據(jù);H=0表示為SAV信號(hào),H=1表示為EAV信號(hào);
P3~P0為保護(hù)信號(hào),由F、V、H信號(hào)計(jì)算生成。
3.2 AVID截取
AVID信號(hào)是TVP5150產(chǎn)生的專有信號(hào),是有效視頻數(shù)據(jù)指示信號(hào),AVID低電平時(shí)輸出數(shù)據(jù)無(wú)效,高電平有效。這樣就提供了一種控制TVP5150輸出視頻數(shù)據(jù)帶寬的方法。通過(guò)寄存器設(shè)置,控制AVID的開(kāi)始和結(jié)束時(shí)機(jī),同時(shí)對(duì)VBLK信號(hào)起始時(shí)機(jī)進(jìn)行控制,那么就能從一幀圖像中截取某些部分輸出,如圖8所示。
4結(jié)束語(yǔ)
本模塊的調(diào)試結(jié)合了SAA7121視頻編碼模塊。由視頻信號(hào)發(fā)生器輸出模擬視頻信號(hào)經(jīng)過(guò)本模塊解碼,轉(zhuǎn)換為數(shù)字視頻信號(hào),再由SAA7121模塊轉(zhuǎn)換成模擬視頻信號(hào)接入顯示設(shè)備,如果模塊運(yùn)行正常,就可以看到顯示設(shè)備上對(duì)應(yīng)的輸入畫面。第1步將RGB各單色視頻信號(hào)輸入,通過(guò)示波器觀察輸出視頻及各同步信號(hào),時(shí)序正常后,經(jīng)SAAT121模塊接入顯示設(shè)備。得到正確圖像后,模塊由DVD機(jī)輸入CVBS信號(hào),顯示設(shè)備得到正常影像則調(diào)試基本完成。調(diào)試的主要工作在于TVP5150的內(nèi)部寄存器正確設(shè)置及其改變對(duì)輸出各信號(hào)的影響。如果開(kāi)啟74HC16245,那么本實(shí)驗(yàn)?zāi)K總功耗在200 mW左右;關(guān)閉則功耗可控制在130 mW左右。可見(jiàn),本視頻解碼模塊的功耗參數(shù)非常低,如果優(yōu)化單片機(jī)程序,還可進(jìn)一步降低功耗。本模塊將模擬復(fù)合視頻信號(hào)解碼成符合ITU-RBT.656標(biāo)準(zhǔn)的數(shù)字視頻信號(hào)輸出。方便利用FPGA、DSP等進(jìn)行數(shù)字視頻信號(hào)輸出,方便利用FPGA、DSP等進(jìn)行數(shù)字視頻圖像去隔行,方便利用FPGA等進(jìn)行數(shù)字視頻力圖像去隔行,分辨率轉(zhuǎn)換甚至MPEG編碼等處理。
評(píng)論
查看更多