崔耿豪 喬嬌嬌 曹瑛嬋
摘要:數(shù)字現(xiàn)代化是當(dāng)今社會(huì)的潮流,是電子產(chǎn)品現(xiàn)代化的象征。數(shù)字信號(hào)處理器可以準(zhǔn)確高效處理計(jì)算機(jī)的各種信號(hào),這些都是模擬信號(hào)無(wú)法做到的。DSP芯片作為數(shù)字處理使用,在軍事、醫(yī)學(xué)等領(lǐng)域有著不可替代的作用,因此DSP技術(shù)作為各種電子產(chǎn)品的核心是當(dāng)今大學(xué)生以及科研人員應(yīng)該掌握的一門功課。
本文主要講述采用C語(yǔ)言進(jìn)行C55x軟件開發(fā)的基礎(chǔ)知識(shí),參照TI公司系列資料以及其它有關(guān)教材與文獻(xiàn)著作,結(jié)合本人三個(gè)月來(lái)的對(duì)開發(fā)DPS系統(tǒng)的學(xué)習(xí)體會(huì),進(jìn)行充實(shí)、提高和編撰而成。
關(guān)鍵詞:C語(yǔ)言;DSP芯片;C55x
1?背景
1.1課題背景和基礎(chǔ)研究的重要意義
當(dāng)前,我國(guó)移動(dòng)數(shù)字電話已擁有數(shù)億多的用戶,其中數(shù)字電視等各類數(shù)字產(chǎn)品已經(jīng)進(jìn)入千家萬(wàn)戶,這些產(chǎn)品均充分采用了先進(jìn)的數(shù)字信號(hào)處理(DSP)技術(shù)對(duì)信號(hào)進(jìn)行快速處理。因此,研究本課題對(duì)于數(shù)字現(xiàn)代化發(fā)展和物聯(lián)網(wǎng)等技術(shù)的進(jìn)步有著深刻的意義,能大大推動(dòng)智能現(xiàn)代化的趁勢(shì)。所以做為研究生的我們必須熟練掌握DSP這門課程。
1.2?DSP芯片的主要發(fā)展過(guò)程簡(jiǎn)介
DSP芯片起源于20世紀(jì)70年代末,20世紀(jì)80年代后期和90年代初期DSP在硬件結(jié)構(gòu)上更適合數(shù)字信號(hào)處理的要求,擁有了硬件乘法和單指令濾波處理兩種功能。
現(xiàn)在,DSP的制造封裝工藝普遍采用貼片式封裝,甚至采用BGA封裝。主頻也普遍達(dá)到1GHz,指令周期普遍縮短到10ns以下。其儲(chǔ)存容量也越來(lái)越大?,F(xiàn)在的DSP芯片內(nèi)部一般都采用多級(jí)流水線結(jié)構(gòu),使DSP數(shù)據(jù)處理等功能有了很大的提高。DSP的字長(zhǎng)也由以前的8位逐漸增長(zhǎng)到現(xiàn)在的64位。較完善的開發(fā)工具也給開發(fā)者開發(fā)應(yīng)用程序帶來(lái)了很大的方便。
2?集成開發(fā)環(huán)境
2.1集成開發(fā)環(huán)境CCS概述和軟件安裝
CCS5.4是基于Eclipse開放源軟件架構(gòu)的TI嵌入式處理器集成開發(fā)環(huán)境。E-clipse軟件架構(gòu)是作為一種建立開發(fā)工具的開放架構(gòu)發(fā)展起來(lái)的,目前已廣泛應(yīng)用于建立軟件開發(fā)環(huán)境,成為一種被很多嵌入式軟件開發(fā)商采用的標(biāo)準(zhǔn)架構(gòu)。
系統(tǒng)配置要求:windows2000/XP/Win7操作系統(tǒng)下,1GB以上RAM,4GB以上的剩余硬盤空間。
CCS5.4的安裝過(guò)程十分簡(jiǎn)單。雙擊安裝程序,按照提示操作就行了。安裝完畢,把CCS5.4軟件許可證文件拷貝到ccs\ccsv\ccs_base\debugServer路徑下。安裝成功后,桌面上自動(dòng)會(huì)出現(xiàn)CCS5.4圖標(biāo)。
2.2?C語(yǔ)言工程的創(chuàng)建
(1)選擇菜單“File”中“New……”菜單選項(xiàng)“CCS?Project”項(xiàng)。彈出“New?CCS?Project”對(duì)話框。
(2)在Project?name欄中,輸入“Ex3_2.pjt”。
(3)在Output?type欄中,選擇“Executable”。
(4)在Use?default?location欄中選“√”。Location欄中將出現(xiàn)啟動(dòng)CCS時(shí)設(shè)置的Workspace路徑。
(5)在Device-Family下拉選單中,選擇“C55xx”。對(duì)于Device-Connection下拉選單中,選擇空白。對(duì)于Advanced?settings的各欄,均選擇缺省項(xiàng)。
(6)在Project?templates?and?example中選擇“Empty?Project”。單擊“Finish”按鈕,完成Ex3_2工程的建立。
2.3?C語(yǔ)言工程的創(chuàng)建與調(diào)試
建立配置文件。選擇菜單“File→New→New?Target?Configuration”項(xiàng),彈出“New?Target?Configuration”對(duì)話框,填入配置的文件名字,單擊Finish按鈕。在彈出的對(duì)話框中的“Connection”欄中選擇:Texas?Instrument?Simulator,在“Board?or?Device”欄中選擇:C55xx?Rex2.x?CPU?Cycle?Accurate?Simulator,單擊“Save”按鈕退出,即可完成配置文件的建立。
進(jìn)入Debug模式,出現(xiàn)Debug窗口。對(duì)于C語(yǔ)言工程來(lái)講,程序入口地址為main()函數(shù)入口處。
C語(yǔ)言工程中單步運(yùn)行、連續(xù)運(yùn)行、斷點(diǎn)的設(shè)置與取消等程序運(yùn)行控制的方法與匯編語(yǔ)言工程基本相同。單擊窗口上面“run”菜單進(jìn)行操作。
2.4寄存器、存儲(chǔ)器的觀察和修改
通過(guò)執(zhí)行菜單命令“View-Registers”或“View-Memory?Browser”,可以打開寄存器窗口或儲(chǔ)存器觀察窗口,查看或修改C55x?CPU寄存器的數(shù)值或存儲(chǔ)單元的數(shù)值。如果想要修改某存儲(chǔ)器單元的值,可以選中相應(yīng)的存儲(chǔ)單元,之后輸入新的值,單擊鼠標(biāo)左鍵或鍵盤回車鍵即可。
2.5表達(dá)式窗口和變量窗口的使用
CCS5.4還提供了表達(dá)式(Expressions)窗口和變量(Variables)窗口,用于實(shí)時(shí)地觀察和修改變局變量和局部變量的值。通過(guò)執(zhí)行菜單命令“View-Expressions”和“View-Variables”可以打開相應(yīng)的窗口。
2.6圖形顯示工具
執(zhí)行菜單中的命令“Tools-Graph-XX”,可以打開相應(yīng)的圖形信息顯示窗口。例如,執(zhí)行菜單命令“Tools-Graph-Single?Time”可以打開相應(yīng)的圖形性質(zhì)(Graph?Properties)窗口。這里要顯示的是向量x的圖形,其長(zhǎng)度為200,數(shù)據(jù)類型為16位浮點(diǎn)(float型)。將相應(yīng)參數(shù)填入圖形性質(zhì)(Graph?Properties)窗口,單擊OK按鈕確認(rèn),即可直接得到如圖所示的向量x的一個(gè)時(shí)域圖形。
3?TMS320C55指令系統(tǒng)
3.1尋址方式
C55x可以用直接、間接、絕對(duì)三種類型的尋址方式來(lái)訪問(wèn)數(shù)據(jù)空間、存儲(chǔ)器映射寄存器、寄存器位和I/O空間。
3.2指令系統(tǒng)
4??C語(yǔ)言程序設(shè)計(jì)
4.?1??C55x?C語(yǔ)言的編程理論基礎(chǔ)
在程序設(shè)計(jì)中,匯編語(yǔ)言較依賴于計(jì)算機(jī)的硬件,程序沒(méi)有好的可移植性。其它的高級(jí)語(yǔ)言可以解決這一狀況,但是匯編語(yǔ)言的一些功能難以在這些高級(jí)語(yǔ)言上實(shí)現(xiàn)。因此,我們通常選用C語(yǔ)言作為開發(fā)DSP的常用語(yǔ)言,并且這樣還能直接對(duì)硬件進(jìn)行操作,解決匯編語(yǔ)言上某些方面上的問(wèn)題。
數(shù)據(jù)類型有字符型、帶符號(hào)字符型、無(wú)符號(hào)字符型、浮點(diǎn)、雙精度等類型,每種類型的長(zhǎng)度、內(nèi)容、最大值和最小值各有不同,使用時(shí)根據(jù)需要選擇合適的類型[4]。
4.1.2.2?關(guān)鍵字
(1)const:當(dāng)定義任意變量和數(shù)組時(shí),這個(gè)關(guān)鍵詞可以用來(lái)確保它們的值保持不變。
(2)ioport:編輯器對(duì)原始的C語(yǔ)言進(jìn)行了擴(kuò)展,增加了ioport這個(gè)詞來(lái)支持I/O尋址模式。
Interrupt、onchip、volatile等其它關(guān)鍵詞不再列舉。
4.1.3?asm指令和Pragma指令
(1)asm指令:提供了C不能提供的對(duì)硬件的訪問(wèn)功能。
(2)pragma指令:告訴了編譯器的預(yù)處理器如何運(yùn)行函數(shù)。
4.2應(yīng)用程序的設(shè)計(jì)
4.2.1基礎(chǔ)算數(shù)運(yùn)算
DSP程序也有像計(jì)算機(jī)語(yǔ)言程序一樣的各種加減乘除算法,從而實(shí)現(xiàn)各種邏輯功能。此處不再一一列舉。
數(shù)字濾波器是DPS的基本應(yīng)用,分為有限沖擊響應(yīng)濾波器和無(wú)限沖擊濾波器兩大類。在對(duì)相位要求不高的情況下,可選用IIR濾波器,在需要線性相位的情況下,則選擇用FIR濾波器[5]。
采用C語(yǔ)言也可以很容易地實(shí)現(xiàn)直接型FIR濾波器。例如:
float?fir(float?x_in,float?*x,float?*b,int?L)
{
float?y_out;int?I;
for(i=L-1;i>0;i--)
{
x[i]=x[i-1];
}
x[0]=x_in;y_out=0.0;
for(i=0;i<L;i++)
{
y_out=y_out+b[i]*x[i];
}
Return?y_out;
}
直接型FIR濾波器的實(shí)現(xiàn)有兩個(gè)基本操作,一個(gè)是輸入信號(hào)向量與濾波器系數(shù)向量的內(nèi)積計(jì)算,另一個(gè)是輸入信號(hào)的更新處理。每個(gè)采樣周期信號(hào)緩沖器都要更新一次,最開始的采樣x(n-L+1)被拋棄,而其它信號(hào)則向緩沖器的右方移動(dòng)一個(gè)單元,一個(gè)新的采樣被插入存儲(chǔ)單元,并被標(biāo)記x(n)。
實(shí)例程序[6]
6,?11
XE?"6"?:
Temp=xin;
for(k=0;k<N_IIR;k++)
{
w[0][k]=temp-a[1][k]*w[1][k]-a[2][k]*w[2][k];
temp=b[0][k]*w[0][k]+b[1][k]*w[1][k]+b[2][k]*w[2][k];
w[2][k]=w[1][k];
w[1][k]=w[0][k];
}
Xoutput=temp;
(1)DSPLLB是TI公司提供的一個(gè)優(yōu)化的DSP函數(shù)庫(kù),它包括50多個(gè)在C程序中調(diào)用的匯編優(yōu)化的通用信號(hào)處理程序。
(2)DSPLLB新定義了Q.15(DATA)、Q.31(LDATA)、Q.3.12三個(gè)數(shù)據(jù)類型。
Q.15(DATA):一個(gè)Q.15操作數(shù)表達(dá)為short數(shù)據(jù)類型(16bit),在dsplibh頭文件中預(yù)定義為DATA。
Q.31(LDATA):一個(gè)Q.31操作數(shù)表達(dá)long數(shù)據(jù)類型(32bit),在dsplib.h頭文件中預(yù)定義為L(zhǎng)DATA。
Q.3.12:含有3個(gè)整數(shù)位和12個(gè)小數(shù)位。
(3)DSPLLB庫(kù)函數(shù)采用的操作數(shù)通常為向量形式。威脅函數(shù)也可用于處理標(biāo)量,標(biāo)量可是為維數(shù)為1的向量。
(4)DSPLIB可以分為8類:FFT函數(shù)、濾波和卷積、自適應(yīng)濾波、相關(guān)、數(shù)學(xué)、三角、矩陣、其它。
快速傅里葉變換是離散傅里葉變換的一種快速算法。雖然DFT的應(yīng)用十分廣泛,但是計(jì)算量太大,因此FFT算法就是為了實(shí)時(shí)應(yīng)用而提出的。通過(guò)FFT算法,可以使DFT的計(jì)算量大大減少,運(yùn)算時(shí)間縮短1到2個(gè)數(shù)量級(jí)。
參考文獻(xiàn):
[1]?黃鶴松,趙洪亮TMS320C55x?DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].?北京:北京航空航天大學(xué)出版社,2014,3:31-36.
[2]趙中偉.DSP應(yīng)用設(shè)計(jì)綜合實(shí)驗(yàn)[M].杭州:浙江工商大學(xué)出版社,2013,1:51-53.
[3]楊勇.DSP控制技術(shù)與應(yīng)用[M].北京:中國(guó)電力出版社,2015,5:79-80.
[4]蘇濤.DSP接口電路設(shè)計(jì)與編程[M].西安:西安電子科技大學(xué)出版,2003,11:59-61.
[5]楊鳳開.DSP原理及應(yīng)用[M]湖北:華中科技大學(xué)出版社,?2012,2:45-46.
[6]鄭紅,劉振強(qiáng).嵌入式DSP應(yīng)用系統(tǒng)設(shè)計(jì)及實(shí)例剖析—基于TMS320C/DM64x平臺(tái)[M].北京:北京航空航天大學(xué)出版社,2012,1:105-10