DM642在視頻處理系統(tǒng)硬件設(shè)計的應(yīng)用
圖像(音頻、視頻)采集和處理是現(xiàn)代樓宇自動化、可視對講、電視會議以及遠(yuǎn)程實時監(jiān)控系統(tǒng)等應(yīng)用中的核心技術(shù)?,F(xiàn)在市面上的可視對講和安防監(jiān)控產(chǎn)品主要是模擬通道的,且采用同軸電費傳輸。由于模擬信號的抗擾弱等問題,傳輸?shù)木嚯x有限并且效果不甚理想。將傳統(tǒng)的圖像模擬化處理改成數(shù)字化處理和傳輸,可以極大地提高圖像質(zhì)量與監(jiān)控效率,并且使得整個系統(tǒng)易于維護。隨著嵌入式系統(tǒng)的不斷發(fā)展,甚至嵌入式音/視頻處理系統(tǒng)正逐步取代傳統(tǒng)的圖像處理系統(tǒng),呈現(xiàn)強勁的發(fā)展趨勢。
視頻監(jiān)控系統(tǒng)的設(shè)計方案有很多種,但是市場產(chǎn)品的主流一般選擇兩種方案:一是基于CPU和專用的視頻編解碼ASIC芯片。該方案選擇以ARM為核心的CPU和專用媒體處理芯片搭建。優(yōu)點是開發(fā)時間相對較短,但由于采用ASIC,靈活性較差,產(chǎn)品一旦定型,很難更改。二是采用面向媒體處理的專用DSP.其開發(fā)時間不長,優(yōu)點是由于算法是軟件代碼,所以可以不斷對產(chǎn)品性能進行升級,重復(fù)開發(fā)成本較低。由全球最大的DSP制造商德州儀器(TI)推出的TMS320DM642(以下簡稱DM642)作為一款高性價比、專用于多媒體應(yīng)用的DSP,已被國內(nèi)外視頻應(yīng)用從業(yè)者廣泛接受和采用。本文較詳細(xì)地介紹DM642的主要特性和系統(tǒng)應(yīng)用開發(fā)技術(shù),并給出基于DM642的視頻監(jiān)控應(yīng)用實例。
1 系統(tǒng)硬件設(shè)計方案
1.1 系統(tǒng)的硬件結(jié)構(gòu)
DM642是TI 公司專門為多媒體應(yīng)用而開發(fā)的DSP,采用TI 的第二代高級超長指令字結(jié)構(gòu)(VelociTI),使得在一個指令周期能夠并行處理多條指令。它可在600MHz時鐘頻率下工作,每個指令周期可并行8條32bit指令,因此,可達(dá)到4800MIPS的峰值計算速度。DM642采用兩級緩存結(jié)構(gòu):第一級包括相互獨立的LIP(16kB)和LID (16kB),只能作為高速緩存使用;第二級L2(256kB)是一個統(tǒng)一的程序/數(shù)據(jù)空間,可整體作為SRAM映射到存儲空間,也可整體作為第二級Cache,或是二者按比例的一種組合來使用。DM642具有64個獨立通道的EDMA(擴展的直接存儲器訪問)控制器,負(fù)責(zé)片內(nèi)L2與其他外設(shè)之間的數(shù)據(jù)傳輸。容量較大的兩級緩存和EDMA 通道是DM642高性能的體現(xiàn)之一,若能合理使用和管理,將能大幅度提高程序的運行性能。
數(shù)字信號經(jīng)過DM642的軟件編碼器進行編碼壓縮處理,編碼壓縮生成的視頻碼流數(shù)據(jù)打包后通過RJ-45接口經(jīng)以太網(wǎng)傳送到遠(yuǎn)端的上位機,上位機作為SERVER,這樣就構(gòu)成監(jiān)控系統(tǒng)。通過DM642獨立多媒體接口(MII),片外連接一片以太網(wǎng)處理芯片,就可以構(gòu)成10/100 Mbpa以太網(wǎng)模塊。本地回放由視頻編碼芯片來完成。
通過DM642的EMIF接口可以連接SDRAM和Flash存儲器。盡管DSP提供了片內(nèi)RAM,但是在大多數(shù)情況下不能滿足系統(tǒng)的要求;同時對于要求實時處理的系統(tǒng)而言,又要求盡量減小在數(shù)據(jù)流動過程中由于存儲器讀寫造成的時間開銷,因此在系統(tǒng)中配置了高性能的SDRAM,它在運行程序和數(shù)據(jù)處理時使用。Flash在系統(tǒng)中主要是用來存放系統(tǒng)軟件和配置參數(shù)的。
系統(tǒng)的總體框圖如圖1所示。
在該視頻處理系統(tǒng)上集成了相當(dāng)數(shù)量的板上設(shè)備以適應(yīng)不同的應(yīng)用環(huán)境,其主要特點為:
1)系統(tǒng)的運行頻率為600 MHzc.
2)2個視頻端口:1個為板上解碼器,1個為板上編碼器。
3)32 MB的同步DRAM空間。
4)2 MB的Flash空間。
5)以太網(wǎng)接口。
6)配有仿真器接口可以用來進行JTAG仿真。
7)供電電壓為+5 V.
8)蜂鳴器報警。
1.2 存儲器模塊設(shè)計
在數(shù)據(jù)處理模塊中,DSP芯片、SDRAM芯片和Flash芯片這3塊芯片是整個模塊電路的核心。該模塊的功能是完成與外部數(shù)據(jù)存儲器的數(shù)據(jù)傳輸和程序存儲器的程序讀寫任務(wù)。通過JTAG接口電路與仿真器相連后接到計算機主機進行仿真調(diào)試,實現(xiàn)與目標(biāo)主機的數(shù)據(jù)交換。
1.2.1 SDRAM接口設(shè)計
SDRAM:Synchronous Dynamic Random Access Memory,同步動態(tài)隨機存儲器,同步是指 Memory工作需要同步時鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動態(tài)是指存儲陣列需要不斷的刷新來保證數(shù)據(jù)不丟失;隨機是指數(shù)據(jù)不是線性依次存儲,而是自由指定地址進行數(shù)據(jù)讀寫。
在系統(tǒng)的硬件設(shè)計中,SDRAM內(nèi)存芯片選用Micron公司生產(chǎn)的MT48LCAM3282-1Mx32×4 banks.SDRAM,即Synchronous DRAM(同步動態(tài)隨機存儲器),表明它的工作速度是和系統(tǒng)的總線速度同步的。MT48LC4M3282總線最高時鐘為166 MHz,它主要用來存儲數(shù)據(jù)和程序,SDRAM的刷新由DSP芯片自動控制。MT48LCAM3282是一款高速CMOS動態(tài)隨機存儲器,它內(nèi)部配置為4個區(qū)的同步接口。
DM642的EMIF可以對SDRAM的地址屬性進行編程,它和SDRAM可以實現(xiàn)無縫連接。EMIFA最大的時鐘總線可達(dá)133 MHz.SDRAM控制器可以支持16 M~256 Mbit的SDRAM芯片。TMS320DM642上的Cache容量有限,所以視頻數(shù)據(jù)通常存放在片外SDRAM中,在需要用到的時候通過EDMA把數(shù)據(jù)從片外搬移到片內(nèi)處理,這樣就可以提高程序的執(zhí)行效率四。TMS320DM642的SDRAM接口圖如圖2所示。
由于TMS320DM642的數(shù)據(jù)總線是64位,而每片MT48LC4M3282的數(shù)據(jù)總線是32位,所以需要并聯(lián)兩片MT48LC4M3282才能構(gòu)成64位的數(shù)據(jù)總線,這樣才可以與TMS320DM642的EMW數(shù)據(jù)總線相連。參照DM642數(shù)據(jù)手冊中SDRAM的配置方法,EA15、EA16控制SDRAM的組,EA3-EA14控制行地址,EA3-EA11控制列地址,片選信號接到DM642的上
,這樣就把SDRAM分配到CE0空間上。
1.2.2 Flash接口設(shè)計
Flash的前身是Future Wave公司的Future Splash,是世界上第一個商用的二維矢量動畫軟件,用于設(shè)計和編輯Flash文檔。1996年11月,美國Macromedia公司收購了Future Wave,并將其改名為Flash.在出到Flash 8以后,Macromedia又被Adobe公司收購。最新版本為:Adobe Flash Professional CS5.5.Flash通常也指Macromedia Flash Player(現(xiàn)Adobe Flash Player),用于播放Flash文件。
DM642 EMIFA的異步接口為各種存儲器和外設(shè)類型提供了可配置的存儲器周期類型,包括SRAM、EPROM、Flash等,在本系統(tǒng)中Flash采用的是SST公司生產(chǎn)的SST39VF1601 Flash,片選信號接到DM642的引腳上。當(dāng)DSP上電后
,DSP通過增強的直接存儲器訪問從外部的CE1尋址空間復(fù)制1 K字節(jié)的數(shù)據(jù)傳給內(nèi)部存儲空間,然后再從內(nèi)部存儲空間0x0處開始運行,所以Flash ROM必須配置在DSP的CE1空間,在DSP存儲器中對應(yīng)的地址是0x90000000-0x90200000.
1.3 JTAG接口設(shè)計
JTAG也是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE 1149.1兼容),主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。 相關(guān)JTAG引腳的定義為:TCK為測試時鐘輸入;TDI為測試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI引腳輸入JTAG接口;TDO為測試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO引腳從JTAG接口輸出;TMS為測試模式選擇,TMS用來設(shè)置JTAG接口處于某種特定的測試模式;TRST為測試復(fù)位,輸入引腳,低電平有效。
JTAG接口是調(diào)試環(huán)境和目標(biāo)板之間的接口,它的好處是可以讓開發(fā)者在對目標(biāo)板進行開發(fā)的同時可以不改變目標(biāo)板的系統(tǒng)結(jié)構(gòu),從而方便了系統(tǒng)的開發(fā)與測試。XDS510仿真器通過JTAG接口將系統(tǒng)板與電腦連接起來,這樣就可以使用TI提供的集成化開發(fā)環(huán)境對系統(tǒng)進行調(diào)試了。JTAG接口采用標(biāo)準(zhǔn)的雙排14腳插座。系統(tǒng)的JTAG接口電路如圖3所示。
1.4 電源模塊設(shè)計
DM642需要兩種電源,一種是內(nèi)核電源(1.4 V),另一種是I/O電源(3.3 V)。通常由于DM642用于嵌入式系統(tǒng)中,因此電源電路設(shè)計不僅要考慮電壓精度、穩(wěn)定度和外圍電路的復(fù)雜度等問題,還要考慮低功耗問題。另外,根據(jù)設(shè)計要求,為了保證芯片正常工作,在系統(tǒng)上電作時,對這兩種電源的上電順序還有一定的要求,如果違反該要求,可能降低器件的性能或永久損壞器件。內(nèi)核電源要比I/O電源早上電,至少不能晚于I/O電源上電。在電路設(shè)計中,通過采用在兩個電源之間串聯(lián)二極管的方法來解決系統(tǒng)上電順序的問題。
系統(tǒng)設(shè)計中,電源芯片采用的是TI公司的TPS54310,它是TI公司生產(chǎn)的一款開關(guān)電源調(diào)節(jié)芯片,它能夠?qū)崿F(xiàn)低電壓輸入和高電流輸出(輸人電壓范圍為3~6 V,輸出電壓根據(jù)需要可以在0.9~3.3 V之間調(diào)節(jié),輸出電流為3 A)。圖4是3.3 V電源產(chǎn)生電路,1.4 V電源產(chǎn)生電路與此類似,只需根據(jù)TPS54310中的計算公式將相應(yīng)的電阻和電容值做相應(yīng)的修改就可以得到1.4 V電源。3.3V的電源不僅是DM642的0電源,同時也是系統(tǒng)上視頻解碼芯片、視頻編碼芯片、SDRAM芯片等的供給電源。
1.5 視頻輸入輸出模塊設(shè)計
1.5.1 視頻輸入模塊設(shè)計
視頻輸入模塊設(shè)計采用的視頻解碼芯片是TVP5150APBS,它是TI公司專門開發(fā)的一款可以方便攜帶的低功耗視頻解碼芯片,可以廣泛用于視頻系統(tǒng)的設(shè)計。TVP5150APBS的視頻輸入端可以輸入兩路復(fù)合視頻信號或者一路S端子信號。輸入信號(如PAL、NTSC等制式)通過增益控制單元、模數(shù)轉(zhuǎn)換器和Y/C分離及處理模塊后,最后可以轉(zhuǎn)化為8位ITU-R BT.656的數(shù)據(jù)格式,或者轉(zhuǎn)化為8位4:2:2的數(shù)據(jù)格式。TVP5150A-PBS的初始化操作是通過操作IIC總線來實現(xiàn)的。TVP5150APBS的IIC地址可以通過控制12CSEL引腳的高低電平來設(shè)置。當(dāng)該引腳是低電平時,IIC地址是0xB8h,當(dāng)該引腳是高電平時,IIC地址則為0xBAh.TVP5150APBS與TMS320DM642的連接示意如圖5所示。
從圖5可知,視頻信號可從TVP5150APBS的AIP1A或AIPIB輸入,數(shù)據(jù)輸出引腳YOUT[0:7]與DM642的VP0[2:9]引腳連接在一起。TVP5150-APBS的系統(tǒng)時鐘引腳SCLK與DM642的VPOCLK0引腳連接。因為在本系統(tǒng)的設(shè)計中采用的是ITU-R BT.656的視頻輸出格式,所以在系統(tǒng)中不需要分立的同步信號。因此,TVP5150APBS的HSYNC(行同步信號)、VSYNC(場同步信號)、AVID(行消隱指示信號)以及FIDFig.5 Colleetion bet-ween TVP5150APB5 and DM642(奇偶場指示信號)這幾個引腳并不需要與TMS320DM642連接, 只需要將TVP5150APBS的INTERQ引腳與TMS320DM-642的VPOCTL0引腳連接起來。
1.5.2 視頻輸出模塊設(shè)計
在系統(tǒng)設(shè)計中,視頻輸出模塊中的視頻編碼芯片選用的是Philips公司的SAA7105H,它同時具有SDTV(標(biāo)準(zhǔn)清晰度電視)和HDTV(高清晰度電視)信號編碼能力,可以廣泛用于視頻輸出的設(shè)計中。視頻輸出模塊的電路如圖6所示。
從圖6中可知,將DM642的VP2端口配置成視頻輸出端口。由于VP2端口的數(shù)據(jù)線與SAA710SH的數(shù)據(jù)線相互錯位,因此這會造成無法正常顯示視頻輸出。為了解決這個問題,在將VP2端口配置成ITU-R BT.656視頻輸出時,數(shù)據(jù)就會從VP2 A通道的VPD02-VP2D09輸出,VP2D00-VP2D 01則輸出無效,因此就需要將VP2D02-VP2D09這8根數(shù)據(jù)線連接到SAA7105H的PD0-PD7對應(yīng)的引腳。這樣VP2D10-VP2D19在視頻回放中就沒有使用。
SAA7105H將從DM642端傳送來的PC信號轉(zhuǎn)化為PAL制式(50 Hz)或者是NISC制式(60 Hz)送到外部TV端輸出。SAA7105H默認(rèn)為休眠狀態(tài),在休眠過程中HC總線仍然可以接受來自DM642的命令。當(dāng)SAA7105H的3個數(shù)模轉(zhuǎn)換器視頻輸出與外部TV相連接時,SAA7105H能夠自動檢測到數(shù)模轉(zhuǎn)換器接口的阻抗變化,然后通過芯片的TVD(電視信號檢測)引腳向TMS320DM642發(fā)出中斷請求,表明外部有播放要求。此時,DM642就會通過IIC總線來配置SAA7105H的內(nèi)部寄存器,激活還處于休眠狀態(tài)的SAA7105H,開始進行本地視頻的播放。
在視頻輸出模塊中,SAA7105H的HSVGC(水平同步輸出)、VSVGC(垂直同步輸出)、FSVGC(幀同步輸出)分別于TMS320DM642端口的VP2CTL0、VF2CTL1以及VP2CTL2這3個引腳相連。SAA7105H的輸出方式可以有RGB格式、CVBS(混合視頻)格式、S-Video格式以及VGA格式等幾種。其輸出方式的選擇通過SAA7105H的應(yīng)用子地址來控制。
1.6 以太網(wǎng)接口設(shè)計
以太網(wǎng)接口設(shè)計中的以太網(wǎng)處理芯片采用Intel公司的LXT97lA,它符合IEEE標(biāo)準(zhǔn),直接支持10 Mbps和100Mbps的雙絞線應(yīng)用,也可以支持100 Mbps的光纖接口。LXT971A與DM642的連接示意圖如圖7所示,在以太網(wǎng)模塊中還需要用到網(wǎng)絡(luò)變壓器和RJ-45以太網(wǎng)連接器。
1.7 報警電路設(shè)計
系統(tǒng)的報警電路結(jié)構(gòu)比較簡單,它由驅(qū)動電路與蜂鳴器構(gòu)成,驅(qū)動電路與DSP的一個GPIO引腳連在一起,電路如圖8所示。
從圖8中可以看出,當(dāng)GP10輸出高電平(通知報警)時,三極管的集電極和發(fā)射極之間將視為短接,從而驅(qū)動蜂鳴器發(fā)聲報警,系統(tǒng)設(shè)計中采用的是有源蜂鳴器來進行報警。
2 系統(tǒng)調(diào)試
2.1 Flash的調(diào)試
Flash調(diào)試的步驟如下:
1)配置寄存器,F(xiàn)lash的基地址是0x90000000,共有512個扇區(qū),每個扇區(qū)有4 K字節(jié),F(xiàn)lash的大小為2M字節(jié)。將Flash的空間映射到TMS320D-M642的存儲器空間內(nèi);
2)進行Flash的擦除操作;
3)判斷擦除操作是否結(jié)束。Flash的DQ6位和DQ7位都可以用來判斷擦除是否結(jié)束,這里采用的是DQ7位。在內(nèi)部擦除操作過程中,讀出的DQ7的值是"0",一旦內(nèi)部擦除操作完成,DQ7的值就會變化為"1";
4)開始Flash的寫操作和讀操作。
可以通過CCS的Memory窗口可以觀察Flash的寫入是否正確。讀出的數(shù)據(jù)和寫入的數(shù)據(jù)經(jīng)過對比后無誤,說明系統(tǒng)的Flash工作正常。
2.2 SDRAM的調(diào)試
兩塊SDRAM芯片MT48LC4M3282的片選信號是與TMS320DM642的引腳接在一起的,因此SDRAM的基地址是Ox800000000.在測試SDRAM時,從SDRAM的基地址開始,長度為32 M字節(jié)。在編程時向SDRAM中寫入數(shù)據(jù)。然后再讀出數(shù)據(jù),將讀出的數(shù)據(jù)與寫入的數(shù)據(jù)進行對比,測試后對比無誤,說明系統(tǒng)的SDRAM工作是正常的。
2.3 靜態(tài)圖像的采集
在圖像采集中用到的是TMS320DM642的VP0口,需要一個CCD攝像頭。采集到的靜態(tài)圖像通過CCS的View功能來顯示。
視頻解碼芯片TVP5150APBS的IIC地址設(shè)置為0xB8.另外,在程序中還需要對TVP5150APBS相關(guān)的寄存器進行必要的設(shè)置以滿足系統(tǒng)的要求。編寫圖像采集程序,TVP5150APBS能夠?qū)崟r采集圖像。程序在CCS中經(jīng)過編譯、運行后采集到的圖像如圖9所示。
2.4 視頻顯示的調(diào)試
視頻顯示模塊主要是在圖像采集的基礎(chǔ)上實現(xiàn)VGA制式視頻圖像的實時顯示。在調(diào)試過程中需要編寫視頻接口的顯示驅(qū)動程序以及整個視頻顯示通道的調(diào)試程序,還需要對視頻編碼芯片SAA7105H的寄存器進行設(shè)置。視頻輸出信號通過VGA接口連接到顯示器上,這里采用的是電腦顯示器。調(diào)試程序經(jīng)過編譯、運行后,會將TVP5150APBS采集到的圖像通過SAA7105H送到顯示器實時顯示出來,如圖10所示。
2.5 報警模塊的調(diào)試
在調(diào)試時通過編程將GP10引腳設(shè)置為"1",即給報警電路輸入一個報警信號,此時蜂鳴器將會發(fā)聲報警。
2.6 以太網(wǎng)模塊的調(diào)試
以太網(wǎng)模塊的調(diào)試主要是測試EMAC與MDIO的配置及使用,以及如何配置一個PHY設(shè)備和CSL庫中關(guān)于網(wǎng)絡(luò)接口部分程序的應(yīng)用。在調(diào)試過程中,是采用自閉環(huán)的方式來完成的。
將系統(tǒng)板上的RJ-45網(wǎng)絡(luò)接口用網(wǎng)線和局域網(wǎng)連在一起,在調(diào)試中需要用到TI推出的TCP/IP NDK(Network Developer's Kit)開發(fā)套件中提供的調(diào)試程序。程序運行后,系統(tǒng)板可以和局域網(wǎng)中的電腦正確地進行數(shù)據(jù)傳輸,說明系統(tǒng)的以太網(wǎng)模塊是可以正常工作的。
3 結(jié)束語
系統(tǒng)研究并實現(xiàn)了一個通用的基于DM642的視頻處理系統(tǒng)。該系統(tǒng)已經(jīng)調(diào)試成功,它可以完成視頻信號的輸入與輸出,可以應(yīng)用于視頻圖象采集和處理的各種場合中。系統(tǒng)還擴展了一個網(wǎng)口,可以方便地與外界通信。與傳統(tǒng)的視頻處理系統(tǒng)相比,該系統(tǒng)在視頻輸出方式上更趨多樣化,視頻輸出接口既可以接到電視機上,也可以與PC機的顯示器相連接,彌補了以往接口單一的缺陷。系統(tǒng)新增的報警功能增強了系統(tǒng)的實用性。下一步研究的方向是對該系統(tǒng)做進一步的完善,比如可以增加USB接口,擴展系統(tǒng)的應(yīng)用范圍,將蜂鳴器報警改為語音報警等。最后,在此系統(tǒng)上研究各種算法,比如視頻壓縮算法、圖像處理算法等,這樣它可以應(yīng)用于視頻會議、交通、監(jiān)控等諸多領(lǐng)域,具有廣泛的應(yīng)用前景。