0 引言
隨著信息技術(shù)飛速發(fā)展,視頻已成為人類獲取信息的重要途徑。由于受信道傳輸帶寬和存儲容量的限制,在視頻信號傳輸中,只有對視頻信號進(jìn)行有效的編碼,才能實(shí)現(xiàn)高效傳輸和存儲。傳統(tǒng)的視頻采集、存儲器件已遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前數(shù)據(jù)量的要求。TI公司的高性能數(shù)字媒體處理器TMS320DM642是專用于音、視頻處理的高性能DSP芯片,其強(qiáng)大的運(yùn)算性能、靈活的編程特性和豐富的片上資源為視頻應(yīng)用提供了理想的開發(fā)平臺。
本文介紹了一種基于TMS320DM642的實(shí)時視頻編碼系統(tǒng)硬件平臺的設(shè)計,包括系統(tǒng)的硬件組成、主要硬件電路的設(shè)計,并給出了系統(tǒng)的實(shí)驗(yàn)結(jié)果。
1 系統(tǒng)硬件組成
基于TMS320DM642的視頻編碼系統(tǒng)硬件平臺設(shè)有視頻預(yù)處理模塊、12C總線模塊、外圍數(shù)據(jù)存儲模塊、數(shù)據(jù)驅(qū)動模塊、網(wǎng)絡(luò)傳輸模塊等。系統(tǒng)組成見圖1。主要功能芯片包括1片TMS320DM642(DSP)、1片SAA7113H(A/D采集)、1片SAA7121H(D,A轉(zhuǎn)換輸出)、2片48LCH3282(sDRAM)、1片AM29LV320DB(FLASH)、1片XC95144(時序控制)、1片LXT971A等。本文重點(diǎn)介紹平臺的硬件設(shè)計。
2 硬件設(shè)計
2.1 DM642 DSP模塊功能
本模塊處理芯片采用TI的TMS320DM642 DSP,它具有720MHz的主頻。主要功能是將采集到的數(shù)字視頻流進(jìn)行壓縮編碼處理。DM642的主要外圍設(shè)備包括:3個VPORT;1個MDIO;1個McASP;1個12C總線模塊;3個32位Timer;1個用戶可配置的16/32位HPI接口;1個16針GPIO;1個64位EMIF;1個具有64路獨(dú)立通道的EDMA等。DM642將采集到的視頻數(shù)據(jù)先放入SDRAM。SDRAM由2片Micron的48LCI-IM3282組成4M×64位的存儲空間。對于SDRAM中的數(shù)據(jù),DM642一方面不做編碼處理直接經(jīng)VPORT輸出給輸出預(yù)覽模塊顯示預(yù)覽,另一方面做編碼處理后通過PIO方式將壓縮結(jié)果存入硬盤。
2.2 視頻預(yù)處理模塊設(shè)計
本模塊由1片Phillips SAA7113H1視頻預(yù)處理芯片和1片Phillips SAA7121H視頻輸出解碼芯片組成。SAA7113H1視頻預(yù)處理芯片主要功能是將攝像頭采集的模擬視頻的YUV三個分量分離并通過A/D變換以及亮度、對比度和飽和度控制產(chǎn)生標(biāo)準(zhǔn)的BT.656的8比特視頻數(shù)據(jù),數(shù)據(jù)格式為YUV4:2:2Planar。采集的這些數(shù)字視頻數(shù)據(jù)和
時間參數(shù)EAV、SAV一起產(chǎn)生最終的數(shù)字視頻接口數(shù)據(jù)流,送入DM642 VPORT端口的5120Bytes大小的緩沖區(qū)FIFO。當(dāng)FIFO中的數(shù)據(jù)超過設(shè)定的門限,會自動觸發(fā)DMA事件,DMA將FIFO中的數(shù)據(jù)通過EMIF(Enhance Memory Interface)接口搬移到片外的SDRAM。DM642可通過EDMA讀取SDRAM中數(shù)據(jù)進(jìn)行編碼操作。SAA7121H芯片主要作用是視頻預(yù)覽。DMA將SDRAM中的未壓縮的視頻數(shù)據(jù)經(jīng)EMIF送入SAA7121H的FIFO,經(jīng)SAA7121H作D/A轉(zhuǎn)換,變?yōu)镻AL/NTFS制的模擬視頻在監(jiān)視器上預(yù)覽顯示。
視頻預(yù)處理模塊的電路示意圖見圖2。
為了保證芯片的正常工作,需對SAA7113的寄存器進(jìn)行正確的設(shè)置,如制式及濾波器參數(shù)的選擇等。表1是本系統(tǒng)中芯片SAA7113的寄存器設(shè)置。設(shè)置通過DM542的12C控制總線來完成(詳見2.3)。
2.3 12C總線模塊及外圍電路設(shè)計
TI公司在DM642中加入了一個L2C總線模塊,通過串行數(shù)據(jù)線(sDA)和串行時鐘線(sCL)可以對視頻預(yù)處理芯片進(jìn)行配置。12C總線模塊可以通過設(shè)置內(nèi)部的模式寄存器12CMDR來控制片外其它外設(shè)的工作。12C總線模塊有四種工作模式:主接收模式、主發(fā)送模式、從接收模式以及從發(fā)送模式,系統(tǒng)只利用其中的兩種主模式來通過12C總線初始化視頻轉(zhuǎn)換芯片。
在主模式下,12C模塊將輸入時鐘四分頻后產(chǎn)生的CPU主時鐘用預(yù)分頻寄存器和時鐘分頻寄存器再兩次分
頻后產(chǎn)生出12C總線的時鐘信號。12C在訪問其他從設(shè)備之前,需要在模塊的從地址寄存器12CSAR中寫入從設(shè)備地址,然后,通過操作模式寄存器中的起始條件位STT產(chǎn)生一個起始條件來發(fā)起一次傳輸,根據(jù)12C模塊的接收或發(fā)送模式設(shè)置以及從地址寄存器中的值產(chǎn)生12C總線的從地址,之后才開始真正的數(shù)據(jù)傳輸。
數(shù)據(jù)傳輸有非循環(huán)和循環(huán)兩種模式,由模式寄存器的循環(huán)模式位RM來決定。在非循環(huán)模式下,傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)由12C數(shù)據(jù)計數(shù)寄存器12CCNT決定。當(dāng)規(guī)定個數(shù)的數(shù)據(jù)傳輸完之后,12C模塊會自動停止傳輸。在循環(huán)模式下,數(shù)據(jù)傳輸直到操作模式寄存器的停止條件位STP產(chǎn)生停止條件為止。
有三種方法來控制12C模塊的數(shù)據(jù)傳輸。其中查詢方式通過查詢12C狀態(tài)寄存器12CSTR的一些狀態(tài)位獲得傳輸信息,比如從設(shè)備是否產(chǎn)生有效響應(yīng)位、12C模塊發(fā)送寄存器是否為空或接收寄存器是否已滿等,根據(jù)這些信息CPU就可以寫入12C數(shù)據(jù)發(fā)送寄存器或讀取12C數(shù)據(jù)接收寄存器,繼續(xù)下一個字節(jié)的傳輸,或者根據(jù)需要產(chǎn)生停止條件來結(jié)束本次傳輸。而中斷方式或DMA方式則是通過狀態(tài)寄存器中的一些狀態(tài)位來觸發(fā)中斷或DMA來完成數(shù)據(jù)傳輸。
由于本次設(shè)計中只需要在初始化階段進(jìn)行12C操作,為簡便起見,采用了自動的非循環(huán)模式進(jìn)行數(shù)據(jù)傳輸,并使用查詢方式來控制傳輸?shù)倪M(jìn)行。視頻編碼系統(tǒng)的12C控制電路是將各個芯片的串行時鐘和串行數(shù)據(jù)彼此連接,然后用兩個10K左右的上拉電阻將它們上拉到3.3V。
2.4 外圍存儲模塊設(shè)計
由于DM642提供了功能強(qiáng)大而且可以靈活設(shè)置時間參數(shù)的EMIF接口,外部存儲器的擴(kuò)展就變得相對簡單。但是視頻編碼系統(tǒng)需要存放大容量視頻數(shù)據(jù),所以本系統(tǒng)使用了兩片16M字節(jié)的AM29LV320DB作為FLASH,為此需要DM642提供22個地址信號。
DM642的EMIF接口只有20根地址線,所以我們使用DM642的兩個GPIO來驅(qū)動FLASH的最高兩位地址。對于存儲空間的分配,需要考慮DM642的自舉過程。在上電或復(fù)位之后DM642對EA[22:21]進(jìn)行采樣,決定DM642的自舉模式,有不自舉、HPI/PCI自舉以及EMIF自舉三種模式。本次設(shè)計使用的是EMFI自舉模式。在這種模式下DM642復(fù)位后會自動地從CE1空間開始處讀取1KB的數(shù)據(jù)到片內(nèi)內(nèi)存的0×0地址,這種讀取使用8位異步存儲器模式,并采用最保守的時間參數(shù)即建立選通和保持時間都用最大值。然后DM642從0×0的地方開始運(yùn)行,通常這1KB的數(shù)據(jù)就是一個二級自舉程序,由該程序來完成整個系統(tǒng)的自舉。所以CE1在本次設(shè)計中被分配給了非易失的FLASH存儲器AM29LV320DB。其余的CEO被分別給了SDRAM。32位SDRAM并聯(lián)組成64位的數(shù)據(jù)總線,這樣可以將EMIF的SDRAM接口帶寬最大化,減少CPU訪問SDRAM所花費(fèi)的時間。
2.5 系統(tǒng)的PCB設(shè)計
PCB設(shè)計是電路板性能的關(guān)鍵,特別是當(dāng)電路中有大量復(fù)雜的信號網(wǎng)絡(luò)時,若不注意PCB設(shè)計的細(xì)節(jié),將影響系統(tǒng)的性能。PCB設(shè)計中要考慮和解決的關(guān)鍵問題有三個:電源網(wǎng)絡(luò)、信號反射和阻抗匹配以及串?dāng)_問題。
(1)電源網(wǎng)絡(luò)設(shè)計
一個無噪音的系統(tǒng)必須有一個無噪音的電源網(wǎng)絡(luò)。這里要解決的細(xì)節(jié)有三個,分別是供電方式、濾波和數(shù)模分離??偩€式供電由于要給信號線留出空間,所以電路板上會出現(xiàn)帶有阻抗的細(xì)長帶子;電源層由于面積較大,阻抗要比總線式小一到兩個數(shù)量級。所以系統(tǒng)采用電源層供電。模擬實(shí)驗(yàn)證明電源層系統(tǒng)比總線系統(tǒng)的噪音小。本系統(tǒng)采用的電源層從上到下具體分層為:頂層信號層、地層、中間信號層1、中間信號層2、電源層、底層信號層,共6層。
編碼系統(tǒng)在設(shè)計時采用旁路電容過濾電源中的交流部分,以減少噪音。
由于電容器實(shí)際上是一個串聯(lián)的共振電路,電容器在頻率小于共振頻率FR時呈現(xiàn)容性,阻抗隨頻率增高而減小,大于FR時呈現(xiàn)感性,阻抗隨頻率增高而增大,阻抗在頻率為FR時達(dá)到最小值。因此電容器更像是一個帶阻濾波器而不是一個低通濾波器。系統(tǒng)在設(shè)計中使用了兩種不同的電容:在每個電源芯片的輸出端附近以并聯(lián)方式放置兩個10uF至33uF的低ESR(等級級聯(lián)電阻)鉭電容,用來過濾低頻噪聲;而在每個芯片電源引腳附近使用ESL(等級級聯(lián)電感)很小的0.1uF瓷片電容,以過濾高頻噪聲。
噪聲在一個電源平面上并不是均衡的,電容只是用來過濾芯片附近的噪聲,所以為了達(dá)到良好的性能還需要精心考慮瓷片電容的放置位置。芯片與電容必須在同一點(diǎn)上接Vcc和接地以保證電容對進(jìn)入芯片的電源起濾波作用。Vcc和地的接入點(diǎn)一般為過孔到電容器和芯片引腳的連線,由于在信號層面上所以應(yīng)該越短越好。本次設(shè)計中盡可能地將0.1uF的電容放在芯片反面靠近電源引腳的地方以縮短連線長度。
(2)信號反射和阻抗匹配
PCB板上的高頻信號線與地或者電源平面之間存在著分布參數(shù)效應(yīng),表現(xiàn)為分布電感效應(yīng)和分布電容效應(yīng)。當(dāng)信號線的幾何長度超過線上傳輸?shù)碾姶挪ǖ牟ㄩL的1/10時,這些分布效應(yīng)就非常明顯。分布電容和分布電感可等效為圖3所示電路模型。
這個模型有兩個重要參數(shù):特征阻抗(Zc)和傳輸延遲(Tpd)。信號源產(chǎn)生的信號能量通過特征阻抗為ZC的傳輸線最后由負(fù)載ZL消耗。根據(jù)傳輸線理論,若要把全部能量都傳輸給負(fù)載,那么ZL必須與zC相等。如果它們不相等,則只有一部分能量被損耗,剩余部分被反射回信號源。若線路的傳輸延遲很長,反射信號在信號源改變了一個較大幅度之后才回到信號源,這時信號源就必須改變一個比較大的量去補(bǔ)償負(fù)載。負(fù)載又會反射新的一輪傳輸從而可能導(dǎo)致振鈴(Ring)現(xiàn)象,即反復(fù)出現(xiàn)上下過沖。傳輸延遲對于SDRAM等工作頻率在100MHz以上的高速器件是非常有害的,甚至?xí)顾鼈児ぷ鞑徽?,?dǎo)致整個系統(tǒng)的性能下降。
因此,必須采用阻抗匹配技術(shù)來減小反射。阻抗匹配可通過在線路中加入終接(Termination)來實(shí)現(xiàn):將—個電阻與源串聯(lián)增加zs,使其等于ZC。這種情況下由于ZS和ZC的分壓關(guān)系,只有一半的信號沿傳輸線傳輸?shù)竭_(dá)負(fù)載,由于負(fù)載處的反射系數(shù)為l,所以反射會將原來減為一半的信號增大一倍,從而使負(fù)載的信號與原始信號相同。反射信號返回信號源后,由于zs等于zc故源反射系數(shù)為0。這樣既避免了源反射又避免了負(fù)載反射。
(3)串?dāng)_問題的解決
串?dāng)_是一種發(fā)生在電路中的耦合信號,是一種干擾信號,主要分為電容性串?dāng)_和電感性串?dāng)_兩種。
a、避免電容性串?dāng)_
由于受板面空間的限制,設(shè)計時只對那些關(guān)鍵的、對噪聲較為敏感的信號線采取措施,避免電容性串?dāng)_。
視頻編碼器中EMW的100MHz主時鐘脈沖是一個非常重要的信號。一方面它同步著整個EMIF的64條數(shù)據(jù)線以及眾多地址線和其它控制線,所以必須保證它不會受到其它信號的干擾;另一方面,它頻率最高耦合電容的阻抗較小,所以耦合程度也較高,比較容易干擾其它信號。所以,在視頻編碼器的PCB設(shè)計中,在EMIF的周圍用地線進(jìn)行了隔離,并且地線每隔一段距離就用過孔連接地平面以減小這段地線的阻抗提高隔離性能。
b、避免電感性串?dāng)_
電感性串?dāng)_可以被看作是一個變壓器的初級線圈和次級線圈產(chǎn)生的耦合信號,變壓器的線圈就是板子上的電流回路。耦合線負(fù)載的多余信號的大小依賴線圈的大小尺寸,也依賴于被影響負(fù)載的阻抗。線圈尺寸越大、越緊密,傳輸?shù)哪芰烤驮酱?,次級線圈負(fù)載端的信號隨著負(fù)載阻抗的增大而增大。因此必須保證每條信號都有自己的回路。最好的方法就是始終保持在連續(xù)的地平面或電源平面上走線,這樣回路的尺寸最小,干擾也就最小。
2.6 系統(tǒng)的PCB布線
為防止信號反射,提高電路板工作性能,本次硬件布線遵循以下原則:
(1)避免信號線上出現(xiàn)阻抗突變的點(diǎn),因?yàn)樗鼈円矔斐煞瓷?。適用于線的終端處計算反射系數(shù)的公式在這些點(diǎn)上也同樣適用。這些點(diǎn)可能出現(xiàn)在板子上線路尖銳的拐角處或過孔等處。設(shè)計中所有線路拐彎處使用45度拐角取代90度拐角,起平滑作用。此外,由于外層信號線和內(nèi)部信號線屬于不同類型的傳輸線,阻抗也不同,故信號線要盡量少地切換走線的層面,以避免阻抗突變,同時也避免了阻抗不可控的過孔的出現(xiàn)。
(2)總線的信號線長度要在一定的范圍內(nèi)。因?yàn)樾盘柕难舆t與信號線的長度成正比,在多個信號線組成的總線中,如果信號線長度相差太大的話,信號到達(dá)的時間就會相差較大,這樣就有可能造成諸如保持時間或建立時間達(dá)不到時序要求的情況。應(yīng)盡量避免這種情形。
3 結(jié)束語
圖4為本文所設(shè)計的視頻編碼系統(tǒng)的硬件結(jié)構(gòu)圖。系統(tǒng)運(yùn)行高效的視頻編碼算法MPEG4,實(shí)現(xiàn)了一路D1(704*576)高清晰視頻的實(shí)時編碼、傳輸、存儲。該系統(tǒng)已通過河南省科技廳組織的科技成果鑒定,技術(shù)水平國內(nèi)領(lǐng)先。成果登記編號:9412008Y1082。