TMS320DM642的視頻實(shí)時(shí)處理和顯示系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了解決某些領(lǐng)域?qū)σ曨l實(shí)時(shí)處理系統(tǒng)工作溫度范圍要求較高的問題,設(shè)計(jì)了基于TMS320DM642和ADV7179的視頻實(shí)時(shí)處理和顯示系統(tǒng),包括系統(tǒng)硬件和基于DSP/BIOS的軟件系統(tǒng)的設(shè)計(jì)。同時(shí)還提出了一種采用TMS320DM642 GPIO接口接收MPEG-2傳輸流(TS)的方案。實(shí)驗(yàn)結(jié)果較好地驗(yàn)證了設(shè)計(jì)的合理性和正確性。
關(guān)鍵詞:TMS320DM642;ADV7179;視頻處理;視頻顯示
引言
隨著電子技術(shù)的發(fā)展,數(shù)字信號(hào)處理器的應(yīng)用越來(lái)越廣泛。涉及的應(yīng)用領(lǐng)域大到航空航天器材,如飛機(jī)、飛船等;小到日常電子產(chǎn)品,如手機(jī)、數(shù)碼相機(jī)、MP4、多媒體和通信設(shè)備等。TMS320DM642(以下簡(jiǎn)稱DM642)是TI公司推出的一款32位定點(diǎn)DSP芯片,主要面向數(shù)字媒體,特別適合于音視頻信號(hào)的處理。
然而目前國(guó)內(nèi)基于DM642的視頻顯示方案大多采用飛利浦公司的SAA71XX系列視頻編碼芯片,而這些芯片的工作溫度都不能滿足標(biāo)準(zhǔn)T業(yè)溫度范圍(-40~+85℃)。本文提出的方案采用的全部芯片的工作溫度范圍均能滿足工業(yè)溫度標(biāo)準(zhǔn),因此具有更廣泛的適用環(huán)境。
1 DM642結(jié)構(gòu)特點(diǎn)
DM642保留了C64x原有的內(nèi)核結(jié)構(gòu),工作頻率由內(nèi)部倍頻器設(shè)置,可以達(dá)到500 MHz、600 MHz和720MHz。相應(yīng)的時(shí)鐘周期為2 ns、1.67 ns和1.39 ns。每秒可執(zhí)行指令數(shù)為4 000 MIPS、4 800 MIPS和5 760 MIPS。DM642采用TI公司第二代增強(qiáng)型超長(zhǎng)指令集(VelociTI.2),它的EMIFA接口數(shù)據(jù)總線寬度為64位,最高數(shù)據(jù)存取頻率為133 MHz,可直接與大容量、低成本的SDRAM芯片無(wú)縫連接。DM642片上帶有3個(gè)雙通道數(shù)字視頻接口,可同時(shí)處理多路數(shù)字視頻流。
TMS320DM642的片上存儲(chǔ)空間分為L(zhǎng)1存儲(chǔ)區(qū)和L2存儲(chǔ)區(qū)兩部分。L1存儲(chǔ)區(qū)又分為程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間的容量均為16K×8位;L2存儲(chǔ)區(qū)為單一的RAM,其容量為256K×8位,L2存儲(chǔ)區(qū)管理外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器。
2 ADV7179硬件特性
ADV7179是ADI公司生產(chǎn)的一款數(shù)字視頻編碼芯片,它能將8位CCIR-601 4:2:2格式的數(shù)字視頻信號(hào)分量轉(zhuǎn)換為標(biāo)準(zhǔn)的模擬基帶電視信號(hào)。ADV7179是一款高性能、小尺寸的芯片,40引腳的LFCSP封裝大小僅為6 mm×6 mm,而且具有出色的APM(Advanced Power Management,高級(jí)電源管理)功能,特別適合應(yīng)用于手機(jī)、數(shù)碼相機(jī)及手持視頻設(shè)備上。ADV7179具有標(biāo)準(zhǔn)I2C總線接口,支持I2C總線快速通信模式,能通過主機(jī)對(duì)其進(jìn)行方便的配置。ADV7179具有3個(gè)可編程控制的高性能10位視頻DAC,可分別輸出CVBS、Y/C或RGB信號(hào),為了節(jié)省功率消耗,可關(guān)閉DAC中的一個(gè)或幾個(gè)。ADV7179的工作電壓可選2.8 V或3.3 V,在兩種工作電壓下的工作溫度分別可達(dá)-20~+85℃和-40~+85℃,因此ADV7179可應(yīng)用在溫度要求較高的場(chǎng)合。
3 硬件設(shè)計(jì)
本設(shè)計(jì)的系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。其中虛線框部分為本系統(tǒng)所需外接的硬件資源。DM642的GPIO模塊接收從外部SPI接口輸入的視頻TS流,并將其存儲(chǔ)在外部SDRAM中以待處理。DSP按幀讀取SDRAM中的TS流數(shù)據(jù),進(jìn)行解復(fù)用和解壓縮,輸出BT656格式的視頻數(shù)據(jù)到ADV717 9。ADV7179將接收到的視頻數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換編碼,輸出PAL/NTSC制的模擬視頻信號(hào)到顯示器。
3.1 時(shí)鐘模塊
本系統(tǒng)時(shí)鐘源選擇了50 MHz的高精度有源晶振,晶振輸出的時(shí)鐘信號(hào)經(jīng)時(shí)鐘緩沖器芯片ICS551后為DM642提供時(shí)鐘。設(shè)計(jì)中DM642的CLKMODE1和CLKMODE0引腳分別接高電平和低電平,因此DSP倍頻因子設(shè)置成12,即DM642的工作主頻為50 MHz×12=600 MHz。另一方面,為了給EMIF接口擴(kuò)展SDRAM提供備用時(shí)鐘方案,設(shè)計(jì)了備用時(shí)鐘電路。25 MHz高精度無(wú)源晶振輸出的時(shí)鐘信號(hào)輸入鐘乘法器ICS512,通過對(duì)ICS512的S1、S0引腳高低電平的不同設(shè)置,可以得到125MHz、133.33 MHz、150 MHz等不同頻率的時(shí)鐘信號(hào),作為EMIF接口的備用同步時(shí)鐘選擇。本設(shè)計(jì)采用1/4×CPU時(shí)鐘作為EMIF接口的同步時(shí)鐘。[!--empirenews.page--]
3.2 GPIO接收模塊
DM642共有16個(gè)GPIO引腳,引腳的輸入/輸出方向(輸入/輸出/高阻)可以通過編程設(shè)置。GPIO接口部分輸入/輸出引腳與其他接口引腳復(fù)用,可通過設(shè)置相關(guān)寄存器的值確定各GPIO引腳的工作方式。本設(shè)計(jì)采用DSP 16個(gè)GPIO引腳中的11個(gè)接收外部SPI接口傳來(lái)的TS流數(shù)據(jù)。
SPI接口是MPEG-2視頻碼流傳輸接口標(biāo)準(zhǔn)之一,共11位并行信號(hào),處理簡(jiǎn)單且擴(kuò)展性強(qiáng),目前一般的MPEG-2視頻編碼器的輸出和視頻解碼器的輸入都是標(biāo)準(zhǔn)的SPI接口信號(hào)。并行傳輸系統(tǒng)SPI包括1位時(shí)鐘信號(hào)、8位數(shù)據(jù)信號(hào)、1位幀同步信號(hào)和1位數(shù)據(jù)有效信號(hào)。幀同步信號(hào)對(duì)應(yīng)TS包的同步字節(jié)為047H,數(shù)據(jù)有效信號(hào)用來(lái)區(qū)分TS包的長(zhǎng)度為188個(gè)字節(jié)或204個(gè)字節(jié)。當(dāng)TS包長(zhǎng)188字節(jié)時(shí),數(shù)據(jù)有效信號(hào)一直為高電平,同時(shí)所有信號(hào)都與時(shí)鐘信號(hào)保持同步。
3.3 外部存儲(chǔ)器模塊
外部存儲(chǔ)器包括2片128 Mb的SDRAM和一片4 MB的Flash芯片,這3片存儲(chǔ)芯片都連接在DM642的64位外部存儲(chǔ)接口(EMIF)上。
SDRAM選用的是Micron公司的MT48LC4M3282,這種內(nèi)存顆粒的架構(gòu)為1M×32位×4,即每片芯片有4個(gè)bank,每bank行地址數(shù)為12(A0~A11),列地址數(shù)為8(A0~A7)。2片32位的SDRAM擴(kuò)展成64位,且映射在EMIF的CE0空間。SDRAM的時(shí)鐘由EMIF接口的AECLOUT1引腳提供,本設(shè)計(jì)中CPU主頻采用600MHz,AECLOUT1輸出配置為4分頻的DSP主頻時(shí)鐘,即150MHz。
DM642片內(nèi)無(wú)集成Flash或EEPROM,系統(tǒng)掉電后其內(nèi)部存儲(chǔ)器和外部SDRAM中的程序和數(shù)據(jù)將會(huì)全部丟失,因此DM642外部需要擴(kuò)展Flash存儲(chǔ)器,用來(lái)存儲(chǔ)程序和重要的數(shù)據(jù)。本設(shè)計(jì)中Flash芯片選用的是AMD公司的32 Mb(4M×8位)異步存儲(chǔ)器AM29LV033C。由于DM642的EMIF接口支持異步存儲(chǔ)器,因此可直接與Flash相連。AM29LV033C內(nèi)部的存儲(chǔ)空間是分頁(yè)的,共劃分為64個(gè)大小為64 KB的扇區(qū),通過地址線選擇不同的扇區(qū)。AM29LV033C芯片有A[0:21]共22條地址線,但是DM642總共只有20條地址線(AEA[3:22]),由于二者地址線數(shù)量不同,DM642不能遍歷Flash的所有地址單元。為了解決這個(gè)問題,在系統(tǒng)中采用CPLD對(duì)Flash進(jìn)行頁(yè)選控制。CPLD利用從DM642輸入的空間片選信號(hào)ACE1、高位地址信號(hào)EA22、讀寫控制信號(hào)和輸出使能控制信號(hào),經(jīng)邏輯運(yùn)算輸出頁(yè)選控制信號(hào)FLASH_EXT[19:21],F(xiàn)LASH_EXT[19:21]接Flash的最高3位地址線,此3路信號(hào)把Flash存儲(chǔ)器劃分為8個(gè)頁(yè),每頁(yè)存儲(chǔ)器包含8個(gè)扇區(qū)。
3.4 I2C總線接口
DM642集成有I2C總線接口,用于與I2C總線外設(shè)通信。本設(shè)計(jì)中DM642就是通過I2C總線模塊對(duì)ADV7179進(jìn)行配置的。TMS320DM642的I2C總線接口包括13個(gè)寄存器,分別為I2C總線時(shí)鐘分頻寄存器I2CCLKH及I2CCLKL、數(shù)據(jù)計(jì)數(shù)寄存器I2CCNT、數(shù)據(jù)接收寄存器I2CDRR、數(shù)據(jù)發(fā)送寄存器I2CDXR、中斷使能寄存器I2CIER、中斷源寄存器I2CISR、模式寄存器I2CMDR、主地址寄存器I2COAR、設(shè)備ID寄存器I2CPID、預(yù)分頻寄存器I2CPSC、從地址寄存器I2CSAR和狀態(tài)寄存器I2CSTR。通過對(duì)這些寄存器進(jìn)行相應(yīng)的讀寫操作即可完成和ADV7179的通信。DM642和ADV7179的接口如圖2所示。由DM642產(chǎn)生與I2C總線外設(shè)通信所需的時(shí)鐘信號(hào)。
3.5 視頻顯示模塊
TMS320DM642處理器集成了3個(gè)功能豐富的視頻口VP0~VP2,每個(gè)視頻口包括20位數(shù)據(jù)信號(hào)VPxD[19:0],2路時(shí)鐘信號(hào)VPxCLK[1:0]以及3路控制信號(hào)VPxCTL[2:0]。時(shí)鐘信號(hào)VPxCLK[1:0]作為視頻口和外部編碼、解碼電路的同步時(shí)鐘,控制信號(hào)VPxCTL[2:0]用于視頻同步(如行同步、幀同步、場(chǎng)同步)和視頻口使能控制。每個(gè)視頻口劃分為A、B兩個(gè)通道,每個(gè)通道既可以配置為視頻輸入口,也可以配置為視頻輸出口,但是A、B兩個(gè)通道在使用過程中必須沒置為相同類型的輸入或輸出,不能一個(gè)通道配置為視頻輸入,另一個(gè)通道配置為視頻輸出。本設(shè)計(jì)中僅用到了視頻口的輸出功能,視頻編碼芯片ADV7179與DM642的視頻口1相連接,具體信號(hào)線連接方式如圖2所示。
[!--empirenews.page--]
4 軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)汁和調(diào)試是在TI公司的集成開發(fā)環(huán)境CCS3.3(Code Composer Studio 3.3)下完成的,系統(tǒng)軟件流程如圖3所示。整個(gè)系統(tǒng)軟件是在BIOS下基于RF-5(參考設(shè)計(jì)框架)設(shè)計(jì)的,設(shè)計(jì)得到了簡(jiǎn)化。
在進(jìn)行DSP/BIOS任務(wù)調(diào)度前,程序進(jìn)行了以下幾個(gè)部分的初始化:
①初始化系統(tǒng)和處理器。
◆初始化BIOS和CSL(Chip Support Library);
◆設(shè)置使用64 KB的二級(jí)高速緩存,并將其映射到EMIF的CE0和CE1空間;
◆設(shè)置DMA的優(yōu)先級(jí)序列長(zhǎng)度;
◆將二級(jí)高速緩存的請(qǐng)求優(yōu)先級(jí)設(shè)為最高。
②初始化RF-5模塊。
◆系統(tǒng)初始化RF-5通道模塊;
◆系統(tǒng)初始化RF-5框架中用于內(nèi)部單元間通信和傳遞消息的ICC和SCOM模塊;
◆各通道在內(nèi)部的、擴(kuò)展的和臨時(shí)的堆上完成建立。
③建立輸入和顯示通道。
◆建立和啟動(dòng)一個(gè)輸入通道的實(shí)例;
◆建立和啟動(dòng)一個(gè)顯示通道的實(shí)例。
④建立算法實(shí)例。
◆在通道中建立和注冊(cè)TS流解復(fù)用單元;
◆在通道中建立和注冊(cè)PES(打包基本碼流)解包單元;
◆在通道中建立和注冊(cè)MPEG-2解碼單元;
◆打開通道,建立TS流解復(fù)用、PES解包和MPEG-2解碼單元的實(shí)例。
以上初始化工作全部完成后,系統(tǒng)則進(jìn)入DSP/BIOS淵度程序管理以下的4個(gè)任務(wù)系統(tǒng)。4個(gè)任務(wù)通過RF-5的SCOM模塊相互發(fā)送消息,任務(wù)調(diào)度示意圖如圖4所示。
[!--empirenews.page--]
4個(gè)任務(wù)各自實(shí)現(xiàn)的功能如下:
①TS流采集任務(wù)。TS流采集任務(wù)完成數(shù)據(jù)的采集和存儲(chǔ)。在該任務(wù)中,DSP從外部SPI接口獲得一幀最新的視頻圖像TS流,并將其存儲(chǔ)在外部SDRAM中。TS流采集任務(wù)接著發(fā)送消息到TS流解復(fù)用、解包任務(wù),消息中包含TS流數(shù)據(jù)指針,然后等待輸出任務(wù)發(fā)送來(lái)的消息以便接收下一幀TS流數(shù)據(jù)。
②TS流解復(fù)用及解包任務(wù)。TS流解復(fù)用、解包任務(wù)通過RF-5通道實(shí)現(xiàn)TS流的解復(fù)用和PES包解包。該任務(wù)當(dāng)接收到TS流采集任務(wù)發(fā)送來(lái)的消息時(shí)被激活開始運(yùn)行,TS流解復(fù)用單元將TS流數(shù)據(jù)小包解復(fù)用,生成PES包,PES解包單元再將PES包解包成基本碼流(ES)。這一系列過程完成后,任務(wù)發(fā)送消息到MPEG-2解碼任務(wù),消息中包含解包后ES數(shù)據(jù)指針,然后等待TS流采集任務(wù)發(fā)送新的消息。
③MPEG-2解碼任務(wù)。解碼任務(wù)通過RF-5通道實(shí)現(xiàn)基本碼流ES的解碼。該任務(wù)接收到TS流解復(fù)用、解包任務(wù)發(fā)送來(lái)的消息后立刻被激活開始運(yùn)行。MFEG-2解碼單元將ES解碼,生成圖像數(shù)據(jù),接著發(fā)送消息到輸出任務(wù),消息中包含圖像數(shù)據(jù)的指針。解碼任務(wù)接下來(lái)等待接收TS流解復(fù)用、解包任務(wù)發(fā)送來(lái)的新消息,用來(lái)進(jìn)行下一幀圖像ES的解碼任務(wù)。
④輸出任務(wù)。輸出任務(wù)接收到MPEG-2解碼任務(wù)發(fā)送來(lái)的消息后開始啟動(dòng)運(yùn)行,利用輸出驅(qū)動(dòng)程序?qū)D像數(shù)據(jù)輸出到視頻編碼器ADV7179。一幀圖像數(shù)據(jù)搬運(yùn)完成后,發(fā)送消息給TS流采集任務(wù),接著等待解碼任務(wù)發(fā)送來(lái)的新消息。
5 實(shí)驗(yàn)結(jié)果
將編譯好的程序文件通過FlashBurn燒寫到Flash存儲(chǔ)器中,連接好TS流輸入接口和顯示設(shè)備,去掉仿真器,復(fù)位DSP目標(biāo)板,使程序自動(dòng)加載運(yùn)行。實(shí)驗(yàn)得到的顯示效果如圖5所示。視頻顯示清晰無(wú)抖動(dòng),達(dá)到了項(xiàng)目設(shè)計(jì)要求。
結(jié)語(yǔ)
本文設(shè)計(jì)了基于TMS320DM642和ADV7179的符合工業(yè)工作溫度標(biāo)準(zhǔn)的視頻實(shí)時(shí)處理和顯示系統(tǒng)。在硬件方面對(duì)各主要模塊分別進(jìn)行了詳細(xì)的設(shè)計(jì)描述,在軟件方面重點(diǎn)介紹了DSP/BIOS下各處理任務(wù)的實(shí)現(xiàn)方式及其調(diào)度策略。最后通過實(shí)驗(yàn)驗(yàn)證了系統(tǒng)能夠正常工作,并且能夠得到較好的顯示效果。
DM642出色的圖像處理能力可以使該系統(tǒng)實(shí)現(xiàn)邊緣檢測(cè)、圖像增強(qiáng)、圖像二值化和濾波等任務(wù)。由于本系統(tǒng)工作溫度范圍較通常的視頻處理設(shè)備大,因而具有更廣闊的應(yīng)用空間。