TMS320C542在脫機(jī)視頻編/解碼系統(tǒng)中的應(yīng)用
視頻圖象編/解碼的目的一方面要將模擬視頻信號轉(zhuǎn)化為數(shù)字信號來傳輸,另一方面,由于單純的視頻模數(shù)轉(zhuǎn)換所得到的圖像數(shù)據(jù)量非常龐大,必須應(yīng)用圖象壓縮技術(shù)減少數(shù)據(jù)量。在圖象編/解碼領(lǐng)域有兩種實現(xiàn)方式,一種是基于微機(jī)平臺的實現(xiàn)方式,圖象數(shù)據(jù)通過微機(jī)軟件或者是利用基于微機(jī)總線的圖象處理卡進(jìn)行壓縮編碼,并且可以通過PC網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。另一種方式拋開了微機(jī)平臺,應(yīng)用DSP為主的微處理器算法對圖象進(jìn)行壓縮/解壓縮的編/解碼處理。后一種方式構(gòu)成的系統(tǒng)被稱為脫機(jī)圖象系統(tǒng)。脫機(jī)圖象系統(tǒng)由于設(shè)備體積小,應(yīng)用靈活簡便,受到廣泛的關(guān)注。隨著微處理技術(shù)的發(fā)展,專用的圖象壓縮/解壓縮ASIC芯片涌現(xiàn),圖象處理算法已經(jīng)集成于ASIC中,這就簡化了脫機(jī)圖象系統(tǒng)的設(shè)計實現(xiàn)。
雖然專用圖象壓縮/解壓縮芯片已經(jīng)集成了編/解碼的算法,但是圖象壓縮效果的實時調(diào)節(jié)、數(shù)據(jù)速率的控制和圖象數(shù)據(jù)的傳輸仍然需要高速微處理器加以控制實現(xiàn)。本文主要從硬件設(shè)計角度,介紹在一個脫機(jī)視頻圖象編/解碼系統(tǒng)中,高速DSP芯片TMS320C542的設(shè)計應(yīng)用。
1 TMS320C542的外圍接口功能
TMS320C542是美國TI公司C54x系列DSP中的一款。它是16位定點運算的高速微處理芯片,運算速度為40MIPS,工作電壓為5V,片內(nèi)RAM有10K字,是該系列中片內(nèi)RAM較大的。C542主要的外圍硬件接口功能如下:
·并行IO接口,包括16位地址線和16位數(shù)據(jù)線。地址線是單向的輸出引腳,數(shù)據(jù)線為雙向引腳。協(xié)該接口工作的還有數(shù)據(jù)區(qū)選通信號DS、程序區(qū)選通信號PS、IO端口選通信號IS、存儲訪問的數(shù)據(jù)鎖存信號MSTRB、IO端口訪問的數(shù)據(jù)鎖存信號IOSTRB和讀寫信號R/W。
·5條外部中斷信號線,其中有一個是不可屏蔽中斷,其余的4個是可屏蔽中斷。
·1條程序條件跳轉(zhuǎn)控制輸入線和1條外部標(biāo)志信號輸出線XF。
·兩個串行通信號,其中一個是具有數(shù)據(jù)緩沖區(qū)的高速串口BSP,另一個是時分復(fù)接TDM串行通信口。數(shù)據(jù)緩沖串口BSP由全雙工的串行接口和最大可以達(dá)到2K字長的數(shù)據(jù)緩沖區(qū)構(gòu)成,當(dāng)采用緩沖發(fā)送/接收模式時,緩沖區(qū)中的數(shù)據(jù)的發(fā)送/接收過程不影響DSP運行其它程序代碼。
·主控接口HPI,用于外部處理器或者微機(jī)總線與DSP之間的數(shù)據(jù)訪問控制。外部處理器或微機(jī)可以利用這個接口訪問DSP內(nèi)部的指定內(nèi)存空間,進(jìn)行數(shù)據(jù)的讀出或?qū)懭?而不妨礙DSP內(nèi)部程序正常的運行處理。即使外部處理器的處理速度很慢,HPI接口也不會減慢或停止DSP的運算。如果外部處理器有必要申請DSP的服務(wù),也可以利用此端口引發(fā)DSP的相應(yīng)中斷。
作為脫機(jī)視頻編/解碼系統(tǒng)核心的DSP既要具有高速的計算能力,又希望能夠提供良好的外圍接口和通信接口,C542的性能符合本系統(tǒng)的需要。
2 DSP的外圍關(guān)系
本系統(tǒng)中DSP的外圍器件比較多,而且各自都具有特殊的功能和用法,所以理順?biāo)鼈兊碾姎怅P(guān)系,是系統(tǒng)設(shè)計的首要問題。
2.1 DSP的程序載入所需要的外圍
C542的運行程序除了廠家直接燒制到片內(nèi)ROM的情況外,需要外加器件幫助DSP存儲程序。在系統(tǒng)上電復(fù)位后,首先要將程序代碼由片加載到DSP的片內(nèi)RAM中再執(zhí)行。C54x提供了多種程序加載的方法:HPI接口程序加載方法、8位I/O接口程序加載方法、16位I/O接口程序加載方法、8位并行EPROM程序加載方法、16位并行EPROM程序加載方法和串口程序加載方法。本系統(tǒng)選擇用一片32K×8bit的EPROM采用8位并行ERTPM的程序加載方法給DSP加載程序。[!--empirenews.page--]
DSP在上電打電報位后首先讀取IO端口地址為OFFFFh的數(shù)據(jù)SRC。這個16位數(shù)據(jù)SRC的最低兩位bit1-0決定用戶所選擇的程序下載方法。當(dāng)這兩位是01時,即可選擇8位并行EPROM程序加載方法。然后,SRC的bit7-2位數(shù)據(jù)乘以2 10后的結(jié)果將作為DSP訪問EPROM的起始地址。此后,DSP將把程序代碼從這個起始地址開始的數(shù)據(jù)區(qū)載入到程序區(qū)里去執(zhí)行。
本系統(tǒng)將一片32K×8bit的EPROM作為起始地址為8000h的數(shù)據(jù)空間存儲加載程序。此時,SRC的bit7~0應(yīng)設(shè)置為10000001。本系統(tǒng)依據(jù)CMOS電路規(guī)范,采用4.7kΩ的電阻將DSP數(shù)據(jù)線的第0、7位上拉為高電平,同時數(shù)據(jù)線的1~6位用4.7kΩ電阻下拉接地。電阻的使用使得一方面當(dāng)有器件驅(qū)動數(shù)據(jù)總線時不會影響數(shù)據(jù)線上的正確邏輯,另一方面當(dāng)DSP訪問0FFFFh的IO端口時,只要其它芯片釋放數(shù)據(jù)總線,DSP就可以讀取到正確的SRC數(shù)據(jù)。
2.2 專用視頻圖象編/解碼ASIC
專用視頻圖象編/解碼ASIC可以提供16位的數(shù)據(jù)接口,通過4根地址線來選擇訪問ASIC的內(nèi)部不同寄存器的數(shù)據(jù)。通過這個接口,DSP可以設(shè)置視頻圖象編/解碼的工作狀態(tài),圖象壓縮效果。通過這個接口,DSP也可以讀取到圖象的相關(guān)統(tǒng)計數(shù)據(jù),比如圖象的總亮度,像素的最大亮度和最小亮度等信息,以便為DSP調(diào)整壓縮效果提供依據(jù)。通過這個接口,還可以讀出壓縮圖象數(shù)據(jù)或者寫入壓縮圖象數(shù)據(jù),此時,該接口等效為一個FIFO接口,這個專用視頻編/解碼ASIC能夠主動發(fā)出服務(wù)請求中斷,向DSP申請數(shù)據(jù)訪問和控制處理。
根據(jù)這個專用視頻編/解碼ASIC的接口特點,本系統(tǒng)利用DSP的IO端口來訪問處理該外設(shè)器件。
2.3 低速控制單片機(jī)
DSP作為高速的運算處理器不適合低速的控制應(yīng)用。本系統(tǒng)中,對圖象亮度、色度和對比度的調(diào)節(jié),對攝像云臺的控制,對用戶控制器信號的接收以及對系統(tǒng)工作狀態(tài)指示燈的顯示,都是一些低速的控制。本系統(tǒng)選用單片機(jī)來完成這些工作,這樣同時也就需要DSP和單片機(jī)交換控制命令。
C542的HPI接口提供了一個很好的DSP和單片機(jī)之間通信的解決方法。雖然HPI接口的8條數(shù)據(jù)線和5條訪問控制線要占用單片機(jī)的13個IO引腳,但是本系統(tǒng)所有單片機(jī)IO資源是足夠的。有了HPI接口,單片機(jī)可以將用戶命令發(fā)送給DSP,并通過引發(fā)DSP中斷申請DSP處理。DSP也可以將命令通過HPI接口要求單片機(jī)執(zhí)行相應(yīng)操作。利用HPI接口的特點,兩個微處理器之間的通信不必匹配數(shù)據(jù)輸速率,也不會影響各自程序的執(zhí)行速度。
2.4 圖象數(shù)據(jù)存儲SRAM
為了實現(xiàn)數(shù)據(jù)傳輸?shù)牧魉倏刂?需要存儲器緩沖數(shù)據(jù)。同時,要實現(xiàn)圖象凍結(jié)和其它一些處理功能,也同樣需要足夠的存儲空間。本系統(tǒng)選擇了128K×16bit的高速SRAM來擴(kuò)展C542有限的存儲空間。C542的內(nèi)部RAM占據(jù)了地址從0000~27FFh的數(shù)據(jù)區(qū),8000~0FFFFh的的數(shù)據(jù)區(qū)已經(jīng)分配給了EPROM放置程序代碼,最后只有2800~7FFFh的地址可以給SRAM使用。有一種擴(kuò)展SRAM訪問地址線的方案是采用兩次尋址方法。第一次先給出部分地址并緩存下來,此時不訪問數(shù)據(jù);在第二次訪問時,給出余下的地址數(shù)據(jù),然后利用拼接的總地址來訪問數(shù)據(jù)。
由于圖象數(shù)據(jù)是數(shù)據(jù)流,它在SRAM中的存放和讀取都是地址順序遞增的。依據(jù)這一特點,本系統(tǒng)設(shè)計了一種新的SRAM地址線擴(kuò)展方法。該方法將每32個16位字圖象數(shù)據(jù)劃分為一次數(shù)據(jù)操作的最小單元組。這32個字?jǐn)?shù)據(jù)在SRAM中存放地址的高12位是一樣的,這高12位地址用DSP的低12位地址線選擇。而SRAM的低5位地址用一個5位二進(jìn)制計數(shù)器自動遞增生成,即每訪問一次高12位地址,低位地址自動增1.這樣,實際只用了DSP的12根地址線,就可以高效地訪問SRAM的所有存儲空間。最后,DSP地址線的高四位A15~12應(yīng)該在0011~0111之間選擇兩個值,一個用來片選SRAM,一個用來復(fù)位計數(shù)器。[!--empirenews.page--]
2.5 數(shù)據(jù)通信高速串口
本系統(tǒng)直接利用C542的緩沖串口BSP作為系統(tǒng)開放給用戶的通信接口。該接口的數(shù)據(jù)速率最高可以達(dá)到40Mbps,數(shù)據(jù)包的長度可以在8位、10位、12位和16位之中選擇。BSP串口的接收部分BSPR操作在被動方式下,伴隨接收數(shù)據(jù)的時鐘和幀同步信號應(yīng)該由外部提供。BSP串口的發(fā)送部分BSPX既可以工作在主動模式下,其數(shù)據(jù)時鐘和幀同步由DSP內(nèi)部提供。BSPX也可以工作在被動模式,數(shù)據(jù)時鐘和幀同步時鐘由外部輸入。BSP的緩沖區(qū)數(shù)據(jù)自動發(fā)送和接收功能,也簡化了DSP的處理工作。本系統(tǒng)在DSP的BSP串口基礎(chǔ)上增加了接口驅(qū)動,構(gòu)成了系統(tǒng)的通信接口。
3 DSP部分的系統(tǒng)設(shè)計
圖1是本脫機(jī)視頻編/解碼系統(tǒng)的核心DSP部分的構(gòu)成原理圖,其中DSP的緩沖串口DSP單獨構(gòu)成了用戶通信串口,DSP的HPI接口實現(xiàn)了DSP和低速控制單片機(jī)之間的通信。剩下與DSP的IO接口相連接的外圍是上電復(fù)位SRC數(shù)據(jù)邏輯、程序加載EPROM、視頻圖象編/解碼ASIC和圖象數(shù)據(jù)存儲SRAM。EPROM和SRAM作為DSP擴(kuò)展的數(shù)據(jù)存儲區(qū)來處理,SRC數(shù)據(jù)邏輯和視頻編/解碼ASIC作為DSP的IO端口來訪問。從程序指令角度講,數(shù)據(jù)存儲區(qū)的訪問操作應(yīng)該使用DSP的數(shù)據(jù)訪問指令,例如LD、ST、MVDD等等,而IO端口的訪問要使用DSP的IO端口訪問指令PORTR和PORTW。
DSP的IO接口的16位數(shù)據(jù)線和16位地址線構(gòu)成外圍器件的數(shù)據(jù)總線和地址總線。小規(guī)模的MACH可編程邏輯器件被用于設(shè)計IO外圍器件的訪問控制邏輯。MACH產(chǎn)生的每個器件的片選和讀寫信號由它與DSP的關(guān)系、它的尋址范圍以及管腳信號特性決定。例如程序下載EPROM是DSP擴(kuò)展的數(shù)據(jù)區(qū),尋址范圍8000~0FFFFh,如果它的片選信號是高電平有效,EPROM片選邏輯為:
CS-EPROM=(!DS)&A15
當(dāng)DSP訪問數(shù)據(jù)區(qū)時,DS有效,為低電平,并且當(dāng)?shù)刂肪€的最高位A15為1時,CS_EPROM信號有效,EPROM被選通。此外,用于SRAM訪問地址自動遞增的二進(jìn)制五位計數(shù)器也由MACH可編程邏輯器件實現(xiàn),構(gòu)造出了附加的5條地址線。
通過利用DSP芯片TMS320C542所具有的DSP和HPI接口功能,并結(jié)合MACH可編程邏輯芯片擴(kuò)展DSP的IO接口功能,從而實現(xiàn)了脫機(jī)視頻芯片擴(kuò)展DSP的IO接口功能,從而實現(xiàn)了脫機(jī)邏輯芯片擴(kuò)展DSP的IO接口功能,從而實現(xiàn)了脫機(jī)視頻圖象編/解碼系統(tǒng)的控制核心的設(shè)計。通過實際的調(diào)試,DSP能夠在上電復(fù)位時正確地從EPROM下載程序代碼并運行,DSP可以正確地訪問視頻編/解碼ASIC和數(shù)據(jù)存儲SRAM,DSP與單片機(jī)的命令數(shù)據(jù)交換和串口數(shù)據(jù)的傳輸都能正常實現(xiàn)。這個結(jié)構(gòu)合理、布局緊湊的硬件設(shè)計為進(jìn)一步的軟件開發(fā)提供了方便。DSP對外圍數(shù)據(jù)訪問的指令代碼,特別是對SRAM的訪問操作,簡單高效,這為DSP程序軟件中其它圖象實時控制算法節(jié)省了寶貴的指令周期資源。