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