- TMS320 F2812 DSP原理與應用實例
- 三恒星科技編著
- 2998字
- 2018-12-26 17:44:20
1.2 DSP系統的構成和設計方法
為了快速的實現數字信號處理運算,DSP芯片一般都采用特殊的軟硬件結構。本節主要以TMS320系列為例來介紹DSP芯片的基本構成和設計方法。
1.2.1 DSP應用系統的構成
TMS320系列DSP芯片的基本結構包括哈佛結構、流水線操作、專用的硬件乘法器及特殊的DSP指令。這些特點使得TMS320系列DSP芯片可以實現快速的DSP運算,并使大部分運算(例如乘法)能夠在一個指令周期內完成。由于TMS320系列DSP芯片是軟件可編程器件,因此具有通用微處理器具有的方便靈活的特點。
1.哈佛結構(Harvard architecture)
傳統的微處理器采用的馮·諾依曼(見圖1-3(a))結構,是將指令和數據存放在同一存儲空間中,統一編址。指令和數據通過同一總線訪問同一地址空間上的存儲器。而DSP芯片采用的哈佛結構(見圖1-3(b))則是不同于馮·諾依曼結構的一種并行體系結構,其主要特點是程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編制、獨立訪問。與之相對應的是系統中設置兩條總線,即程序總線和數據總線,從而使數據的吞吐率提高了一倍。

圖1-3(a)馮·諾依曼結構

圖1-3(b)哈佛結構
如圖1-3(b)所示,在哈佛結構中,由于程序存儲器和數據存儲器在兩個分開的空間里,因此取指和執行能夠完全重疊運行。為了進一步提高運行速度和靈活性,TMS320C3x DSP系列芯片在基本哈佛結構的基礎上作了改進,一是允許數據存放在程序存儲器中,并能被算術運算指令直接使用,增強芯片的靈活性;二是增加了高速緩沖器(Cache),Cache中的指令在執行時不用再從存儲器中讀取,節約了一個指令周期,在TMS320C3x系列芯片中有64個字的Cache。
2.流水線操作(pileline)
流水線與哈佛結構相關,DSP芯片廣泛采用流水線操作以減少指令執行的時間,從而增強了處理器的處理能力。處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段。圖1-4所示是一個三級流水線操作的例子。

圖1-4 三級流水線操作示意圖
3.專用的硬件乘法器
在通用微處理器中,乘法指令需要多個指令周期,如MCS-51的乘法指令需4個周期。相比較而言,DSP芯片的特征就是有一個專用的硬件乘法器,乘法可以在一個指令周期內完成,還可以與加法并行進行,完成一個乘法和一個加法只需一個指令周期??梢姡咚俚某朔ㄖ噶詈筒⑿胁僮鞔蟠筇岣吡薉SP處理器的性能。
在一般形式的FIR濾波器中,乘法是DSP的重要組成部分。對每個濾波器抽頭,必須做一次乘法和一次加法。乘法速度越快,DSP處理器的性能就越高。在TMS320系列中,由于具有專用的硬件乘法器,乘法可在一個指令周期內完成。從最早的TMS32010實現FIR的每個抽頭算法可以看出,濾波器每個抽頭需要一條乘法指令MPY:
LT;裝乘數到T寄存器
DMOV;在存儲器中移動數據以實現延遲
MPY;相乘
APAC;將乘法結果加到ACC中
其他三條指令用來將乘數裝入到乘法器電路(LT),移動數據(DMOV)以及將乘法結果(存在乘積寄存器P中)加到ACC中(APAC)。因此,若采用256抽頭的FIR濾波器,這四條指令必須重復執行256次,且256次乘法必須在一個抽樣間隔內完成。在典型的通用微處理器中,每個抽頭需要30~40個指令周期,而TMS32010 只需4條指令。如果采用特殊的DSP指令或采用TMS320C54x等新一代的DSP芯片,可進一步降低FIR抽頭的計算時間。
4.特殊的DSP指令
DSP芯片的另一個特點是采用特殊的指令,這些特殊指令進一步提高了DSP芯片的處理能力。DMOV就是一個特殊的DSP指令,它完成數據移位功能。在數字信號處理中,延遲操作非常重要,它就是通過DMOV來實現的。TMS32010中的另一個特殊指令是LTD,它在一個指令周期內完成LT、DMOV和APAC三條指令。LTD和MPY指令可以將FIR濾波器抽頭計算從4條指令降為2條指令。在第二代處理器中,如TMS320C25,增加了2條更特殊的指令,即RPT和MACD指令,采用這2條特殊指令,可以進一步將每個抽頭的運算指令數從2條降為1條:
RPTK 255;重復執行下條指令256次
MACD;LT,DMOV,MPY及APAC
1.2.2 DSP應用系統的設計方法
與其他系統的設計工作一樣,在進行DSP系統的設計之前,設計者首先要明確設目的和技術指標。進行具體的DSP系統設計時,一般的設計流程如圖1-5所示。

圖1-5 DSP系統設計流程圖
設計過程大致分為如下幾個階段:
1.算法研究及優化
該階段主要是根據設計任務確定系統設計的技術指標。首先應該根據系統需求進行算法的仿真和高級語言模擬實現,通過仿真來驗證算法的正確性以及效率、精度等,以確定一種最佳的算法,并初步確定相應的參數。
其次核算算法所需的DSP處理能力,一方面這是選擇DSP的重要因素,另一方面也影響目標板的DSP結構,如采用單DSP還是多DSP,串行結構還是并行結構。
最后還要對算法反復進行優化,一方面提高算法的效率,另一方面使算法更加適合DSP的體系結構。
一般來說,為了實現系統的最終目標,需要對輸入的信號進行適當的處理,而處理方法的不同會導致不同的系統性能。要得到最佳的系統性能,就必須在這一步確定最佳的處理方法,即數字信號處理的算法(Algorithm),因此這一步也稱算法模擬階段。例如,語音壓縮編碼算法就是要在確定的壓縮比條件下,獲得最佳的合成語音。算法模擬所用的輸入數據是實際信號經采集而獲得的,通常以計算機文件的形式存儲為數據文件。如語音壓縮編碼算法模擬時所用的語音信號就是實際采集而獲得并存儲為計算機文件形式的語音數據文件。有些算法模擬時所用的輸入數據并不一定要是實際采集的信號數據,輸入數據只要能驗證算法的可行性即可。
2.DSP芯片的選擇
根據算法的運算速度、運算精度、存儲要求、系統成本和體積、功耗等參數來選擇DSP芯片及其外圍芯片。不同的DSP芯片都有其各自適合處理的領域。例如:TMS320C24xx系列主要適用于家電產品領域,不論對算法的支持、存儲器配置還是外設的支持,都能充分保證應用的效率。
3.軟件、硬件設計
軟硬件設計階段一般分為下列幾個步驟:
(1)根據選定的算法和DSP芯片對系統的各項功能是通過軟件實現還是硬件實現來進行初步分工,例如FFT、數字上/下變頻器、RAKE分集接收是否需要專門的芯片或者FPGA芯片實現,譯碼判決算法是用硬件判決還是軟件判決等。
(2)根據系統設計的技術指標要求進行硬件設計,完成DSP芯片外圍電路和其他電路的轉換、控制、存儲等的設計。
(3)根據系統設計指標和要求編寫DSP匯編程序,完成軟件的設計。軟件設計也可以采用高級語言進行。由于現有的高級語言編譯器的效率比較低,還沒有手工編寫的效率高,因此實際應用中常常采用高級語言和匯編語言混合的方法進行編程,即在算法運算量大的地方采用手工編寫匯編語言,在運算量相對較小的地方采用高級語言。采用這種方法的優點是縮短了軟件開發的周期,提高了程序的可讀性和可移植性,滿足了系統實時運算的要求。
4.軟件和硬件調試
DSP硬件和軟件設計完成后,就需要進行硬件和軟件的調試。軟件的調試一般都需要借助于DSP開發工具,如軟件模擬器、DSP開發系統或仿真器等。在調試DSP算法時,一般采用比較實時結果與模擬結果的方法,如果實時程序和模擬程序的輸入相同,則兩者的輸出應該一致。應用系統的其他軟件可以根據實際情況進行調試。硬件調試一般采用硬件仿真器進行調試,如果沒有相應的硬件仿真器,且硬件系統不是十分復雜,也可以借助于一般的工具進行調試。
5.系統集成及測試
系統的軟件和硬件分別測試完畢以后,就可以將軟件脫離開發系統而直接在應用系統上運行。當然,DSP系統的開發,特別是軟件開發是一個需要反復進行的過程,雖然通過算法模擬基本上可以知道現實系統的性能,但實際上仿真環境不可能做到與現實系統環境完全一致,而且在將仿真算法移植到現實系統時,必須考慮算法是否能夠運行的問題。如果算法運算量太大而不能在硬件上實際運行,則必須重新修改或簡化算法。