dsp綜合實驗課件_第1頁
dsp綜合實驗課件_第2頁
dsp綜合實驗課件_第3頁
dsp綜合實驗課件_第4頁
dsp綜合實驗課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

現(xiàn)代電子學(xué)綜合實驗DSP實驗TMS320C5402核心版該板實現(xiàn)了一個最小系統(tǒng),可以單獨運行。板上主要資源包括:一個TMS320C5402型號的DSP芯片;一個LV64L1664KX16BITSRAM

;一個CPLD可編程芯片,本模塊主要負(fù)責(zé)實驗系統(tǒng)中的總線控制工作。DPS+CPLD開發(fā)板和EDA5.1底板構(gòu)成的完整DSP開發(fā)系統(tǒng)圖DSP_JTAG接口:DSP與仿真器的連接接口CPLD_JTAG接口:對CPLD進行配置和下載程序的接口J6、J7:通過該接口與EDA主板連接,從而可使用底板上的外設(shè).EPM240T100C561LV6416EPM240T100C5DSP_JTAGVC5402J7J6PLD_JTAGDSP_JTAG:DSP與仿真器的連接接口CPLD_JTAG:對CPLD進行配置和下載程序的接口通過跳線器J2切換MP/MC工作方式,當(dāng)跳線器連接時工作在微計算機方式,當(dāng)跳線器斷開時工作在MP方式J6J7:通過該接口與EDA主板連接,從而可使用底板上的外設(shè).如果MP/MC=0,程序從片內(nèi)ROM開始執(zhí)行,否則,從片外程序存儲器開始執(zhí)行。數(shù)碼管led液晶顯示電源開關(guān)5V電源輸入時鐘源51單片機VGA接口232接口4*4鍵盤TLC549實驗箱布局圖核心板模式顯示PS2USB電平開關(guān)核心板插口◎數(shù)字信號處理(Digitalsignalprocessing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)80年代以來,隨著計算機和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應(yīng)運而生并得到迅速發(fā)展,已經(jīng)在信號處理、通信、語音、圖像、雷達(dá)、生物醫(yī)學(xué)、工業(yè)控制、儀器儀表等許多領(lǐng)域得到廣泛應(yīng)用.◎

DSP既是DigitalSignalProcessing的縮寫,也是DigitalSjgnalProcessor的縮寫,二者的英文簡寫相同,但含義不同.◎

DigitalSjgnalProcessing廣指數(shù)字信號處理的理論和方法,即數(shù)字信號處理技術(shù)?!?/p>

DigitalSjgnalProcessor(DSP)——指用于進行數(shù)字信號處理的可編程微處理器,強調(diào)運算處理的實時性,因此除了具備普通微處理器所強調(diào)的高速運算和控制功能外,主要針對實時數(shù)字信號處理,在處理器結(jié)構(gòu)、指令系統(tǒng)和數(shù)據(jù)流程上做了較大的改動。DSP系統(tǒng)的構(gòu)成DSP系統(tǒng)具有數(shù)字處理的全部優(yōu)點:

(1)接口方便。(2)編程方便??墒乖O(shè)計人員在開發(fā)過程中靈活方便地對軟件進行修改和升級。(3)穩(wěn)定性好。受環(huán)境溫度及噪聲的影響較小,可靠性高。(4)精度高。(5)可重復(fù)性好。模擬系統(tǒng)的性能受元器件參數(shù)性能變化比較大,而數(shù)字系統(tǒng)基本不受影響,因此數(shù)字系統(tǒng)便于測試、調(diào)試和大規(guī)模生產(chǎn)。(6)集成方便。有高度的規(guī)范性,便于大規(guī)模集成。當(dāng)然,數(shù)字信號處理也存在一定的缺點。例如,對于簡單的信號處理任務(wù),若采用DSP則使成本增加。DSP系統(tǒng)中的高速時鐘可能帶來高頻干擾和電磁泄漏等問題,而且DSP系統(tǒng)消耗的功率也較大。此外,DSP技術(shù)更新的速度快,數(shù)學(xué)知識要求多,開發(fā)和調(diào)試工具還不盡完善。TMS320VC5402引腳圖:TMS320VC5402的引腳1返回首頁圖:TMS320VC5402的引腳2表:TMS320VC5402引腳說明1表:TMS320VC5402引腳說明3表:TMS320VC5402引腳說明4表:TMS320VC5402引腳說明5表:TMS320VC5402引腳說明7返回本節(jié)表:TMS320VC5402引腳說明815~76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSST圖3處理器方式狀態(tài)寄存器PMST的位結(jié)構(gòu)表3:時鐘方式寄存器CLKMD表4:軟件等待狀態(tài)寄存器SWWSR表5:分區(qū)轉(zhuǎn)換控制寄存器表7:定時器控制寄存器TCR定時器控制寄存器TCR功能DSP的USB仿真器(TDS510)驅(qū)動軟件安裝1.將DSP的USB仿真器(TDS510)連接到DSP模塊上的JTAG接口和PC機(連接無誤后才上電),桌面出現(xiàn)找到新的硬件界面:

2.點擊“從列表或指定位置安裝”,出現(xiàn)以下畫面,并在瀏覽中選擇驅(qū)動軟件目錄:3.然后點擊下一步,出現(xiàn):4.點擊完成,屏摹右下方出現(xiàn)“新硬件已安裝并可以使用了。”,表示dsp仿真器驅(qū)動軟件安裝完畢。CCS中的軟件或硬件仿真的設(shè)置1.點擊桌面的”setupccs”軟件,并在File菜單下選擇import;2.在出現(xiàn)的importconfiguration對話框中,選擇器件及軟件或硬件仿真設(shè)備,然后點擊”import”,在”mysystem”下出現(xiàn)相應(yīng)的軟件或硬件仿真設(shè)備.軟件仿真設(shè)備設(shè)置步驟:硬件仿真設(shè)備設(shè)置步驟:仿真設(shè)備設(shè)置完畢,啟動CCS:點擊”setupccs”中”file”菜單下的”exit”啟動ccs,出現(xiàn)如下界面:接著點擊open菜單,若選擇”c5402devicesimulator/cpu”即為軟件仿真,選擇”c5402dskviatds510usb2.0emulator/cpu”即為硬件仿真.CCS的使用一、新建工程文件啟動CCS,在主菜單中單擊“Project”,會有“new”和“open”選項,創(chuàng)建新工程使用“new”選項。程序會提問新建工程的名字以及保存位置,指定后單擊“確定”即可。新建工程窗口CCS提供了配置、建立、調(diào)試、跟蹤和分析程序的工具,它便于實時、嵌入式信號處理程序的編制和測試,能夠加速開發(fā)進程,提高工作效率。可使用兩種方式向工程添加源文件、CMD和庫文件。(1)添加源文件

·第一個方法:在主菜單中單擊“Project”,選擇“AddFilestoProject”命令,在彈出的添加文件對話框中找到文件,單擊“打開”按鈕即可。

·第二個方法:在工程名上單擊鼠標(biāo)右鍵,選擇“AddFiles”命令。在彈出的添加文件的對話框中,找到指定類型的文件。單擊“打開”按鈕。2.向工程添加各類型文件添加文件(2)添加必需的內(nèi)存定位文件“*.cmd”:使用上述任一方式,向工程里添加“hello.cmd”,注意在添加文件對話框的“文件類型”下拉列表中要選擇“LinkCommandFile(*.cmd)”,該文件定義了各代碼段和數(shù)據(jù)段在存儲器中的位置。3)添加庫文件:

若工程是基于C語言編寫的,還需添加運行時的支持庫文件(Run-Time-SupportLibrary).如果基于匯編的就不需要)。使用上述任何一種方式,向工程添加“rts.lib”文件,該文件存放在CCS的安裝目錄c5400\cgtools\lib”下。注意在添加文件對話框的“文件類型”下拉列表中要選擇“ObjectLibraryFiles(*.o*,*.l*)”。(5)添加gel文件在工程視圖中選中GELfiles文件夾,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇LoadGEL選項,載入gel文件.(4)添加頭文件在工程名“hello1.pjt”上單擊鼠標(biāo)右鍵,選擇“ScanAllDependencies”,這樣hello.c文件所包含的頭文件“hello.h”將出現(xiàn)在工程瀏覽窗中的“include”文件夾中。頭文件實際不用人工添加,在Build工程時,CCS本身就會自動完成掃描。二、建造和運行程序

建造(Building)指編譯、匯編、鏈接三個獨立步驟按順序聯(lián)合運行。

(1)建造:在主菜單中單擊“Project”,選擇“RebuildAll”,或者單擊工具條圖標(biāo),CCS將重新對工程中所有文件進行編譯、匯編、鏈接,并同步在底部窗口中顯示編譯連接信息。連接完畢,CCS生成一個“.out”文件,默認(rèn)存放在目錄“hello2”下的“debug”目錄中。

(2)建造完畢后,再裝載程序:在主菜單中單擊“File”,選擇“LoadProgram”,在彈出對話框中,找到目錄“hello2”下的“debug”目錄,選擇“hello.out”,并打開。CCS裝載完畢該文件到目標(biāo)DSP以后,會自動彈出“Dissassembly”窗口,顯示構(gòu)成源代碼的反匯編指令。同時,CCS還會在底部彈出“stdout”欄,用于顯示程序在運行時的輸出信息。

(3)點擊工具欄按鈕或選擇Debug→Run。單步和全速運行:在主菜單中單擊“Debug”,選擇“GoMain”,讓程序從主函數(shù)開始運行。程序會停在main()處,并會有一個黃色的箭頭標(biāo)記當(dāng)前要執(zhí)行的C語言代碼,若單步執(zhí)行,用F10,若全速執(zhí)行,用F5(RUN)

。斷點運行1.斷點設(shè)置:將光標(biāo)移到欲設(shè)斷點位置處,按F9;斷點取消也是F9.2.按F5.如果同時看到C語言代碼和對應(yīng)編譯生成的匯編代碼,在主菜單中單擊“View”,選擇“MixedSource/ASM”,此時會有一個綠色箭頭標(biāo)記當(dāng)前要執(zhí)行的匯編代碼多種觀察窗口幫助調(diào)試:(1)查看寄存器:選擇View菜單中的CPURegisters命令。(2)查看數(shù)據(jù):選擇View菜單中的Memory…命令,彈出設(shè)置窗口,按實際需要指定其中的參數(shù),如起始地址等,就可以觀察到數(shù)據(jù)單元中的值,該值可以以多種格式表示。(3)查看程序中變量的當(dāng)前值:可以在程序中用光標(biāo)選中變量名,在鼠標(biāo)右鍵菜單中選擇AddtoWatchWindow命令就可以把該變量添加到Watch窗口。隨著程序的運行,可以在Watch窗口看到該變量的值的變化。選擇View→Graph→Time/Frequency。在彈出的GraphPropertyDialog對話窗中,將GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType,Autoscale和MaximumY-value的屬性改變?yōu)樾枰膶傩浴?4)顯示圖形:如果要觀察的變量太多,例如要觀察一個數(shù)組的值,那么可以用一種更直觀的方法,就是把數(shù)據(jù)用圖形的方式表現(xiàn)出來。在TMS320VC5402中,定時器通過控制定時器相關(guān)寄存器,該定時器可以被停止、重新啟動、復(fù)位或禁止。與該定時器有關(guān)的寄存器有定時計數(shù)寄存器(TIM)、定時周期寄存器(PRD)以及定時器控制寄存器(TCR)。定時計數(shù)寄存器TIM:該寄存器是一個存儲器映射的寄存器。該寄存器中保存了定時器當(dāng)前的計數(shù)值,并且該寄存器的值會在預(yù)分頻器中的計數(shù)器遞減至0的時候遞減1。當(dāng)TIM寄存器中的至遞減至0的時候,定時器復(fù)位,TIM重新加載PRD寄存器中的值,開始下一輪計數(shù),與此同時,當(dāng)該寄存器中的值遞減至0的時候,產(chǎn)生定時器中斷。定時周期寄存器PRD:該寄存器是一個存儲器映射的寄存器。該寄存器用于控制定時器的周期。定時器控制寄存器TCR:該寄存器是一個存儲器映射的寄存器。該寄存器主要用于控制定時器的啟動、停止、復(fù)位以及初始化定時器的預(yù)分頻器等操作。該寄存器的具體內(nèi)容如下表所示。TDDR:定時器的4位預(yù)分頻器,TDDR的值為0~15。TSS:定時器啟動/停止位?!?’可停止定時器計數(shù);‘0’可啟動定時器。TRB:向該位寫入‘1’可復(fù)位定時器。PSC:預(yù)分頻器的遞減計數(shù)器。該計數(shù)器會在CLKOUT的作用下遞減,當(dāng)遞減至0的時候,TIM的值便會遞減1,同時PSC會重新加載TDDR的預(yù)分頻值。Free:該位用來配置定時器是否工作在Soft制定的工作方式。當(dāng)該位為‘0’時,選定Soft位所指定的工作模式;當(dāng)該位為‘1’時,定時器將會正常運行,而不會采取Soft位所指定的工作模式。Soft:該位用來配置定時器在遇到程序中斷時的工作方式。當(dāng)該位為‘0’時,遇到中斷定時器會立即停止運行;當(dāng)該位為‘1’時,定時器將會正常運行,遇到中斷定時器會在遞減到0后停止運行。根據(jù)以上講述,可以得到DSP中定時器的定時中斷周期為:

T=CLKOUT×(TDDR+1)×(PRD+1)CLKOUT為時鐘周期要對定時器正確配置和操作,可以通過以下步驟來實現(xiàn):1)首先將TCR寄存器中的TSS位置’1’來停止定時。2)初始化定時器周期PRD。3)重新加載TCR寄存器(初始化定時器的預(yù)分頻器TDDR,TSS=0;TRB=1),啟動定時器。4)將IFR寄存器中的TINT位置’1’,清楚尚未處理完的定時器中斷,5)將IMR寄存器中的TINT位置’1‘,開定時器中斷。6)將ST1寄存器中的INTM清零,全局中斷使能。asm("STM#0000h,CLKMD");while(*CLKMD&0x01);asm("STM#40C7h,CLKMD");//設(shè)置CPU運行頻率=100M/*40C7h:5*clkin=100M30c7h:4*clkin=80M20c7h:3*clkin=60M10C7h:2*clkin=40M*/asm("stm#4240h,SWWSR");//2waitexceptforon-chipprogram1asm("stm#00a0h,PMST");//MP/MC=0,IPTR=001,ovly=0

asm("stm#0802h,BSCR");asm("STM#0h,IMR");asm("STM#0010h,TCR");//關(guān)定時器asm("STM#0186ah,PRD");//1msasm("STM#0C2fh,TCR");//TCR=最后四位asm("STM#0008h,IFR");asm("ORM#0008h,*(IMR)");/*開時間中斷*/asm("ORM#0100h,*(IMR)");/*開INT3中斷*/asm("SSBXXF");asm("RSBXINTM");/*開中斷*/vectors.asm中存放的是中斷入口地址,如果程序中涉及到中斷,就需要在vectors.asm中相應(yīng)的地址放置跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)的中斷服務(wù)子程序便可。*.cmd命令文件:(1)在命令文件中兩個十分有用的偽指令MEMORY和SECTIONS:指定實際應(yīng)用中的存儲器結(jié)構(gòu)和進行地址的映射。(2)Memory:用來指定目標(biāo)存儲器結(jié)構(gòu),Memory下可以通過PAGE選項配置地址空間,鏈接器把每一頁都當(dāng)作一個獨立的存儲空間。通常情況下,PAGE0代表程序存儲器用來存放程序,PAGE1代表數(shù)據(jù)存儲器,用來存放數(shù)據(jù)。(3)由編譯器生成的可重定位的代碼和數(shù)據(jù)塊叫做“SECTIONS”(段),SECTIONS用來控制段的構(gòu)成與地址分配。對于不同的系統(tǒng)配置,“SECTION”的分配方式也不相同,鏈接器通過“SECTIONS”來控制地址的分配,所以“SECTIONS”的分配就成了配置.cmd文件的重要環(huán)節(jié)。72存儲器-TMS320VC5402尋址空間存儲器:DARAM(雙尋址數(shù)據(jù)存儲器),SARAM(單尋址數(shù)據(jù)存儲器),ROM(程序存儲器)

數(shù)據(jù)存儲器總是安排到數(shù)據(jù)存儲空間,但也可設(shè)置成程序存儲空間;程序存儲器總是安排到程序存儲空間,但也可設(shè)置成數(shù)據(jù)存儲空間;MP/MC=0,片內(nèi)ROM配置到程序空間;

MP/MC=1,片內(nèi)ROM不配置到程序空間;OVLY=1,片內(nèi)RAM配置到程序和數(shù)據(jù)空間;OVLY=0,片內(nèi)RAM只配置到數(shù)據(jù)空間;以下是對“SECTIONS”的定義及分配的詳細(xì)介(1).text包括所有的可執(zhí)行代碼和常數(shù),必須放在程序頁;(2).cinit包括初始化的變量和常量表,要求放在程序頁;.pinit它包括全局構(gòu)造器(C++),可放在程序頁;(3).const它包括字符串、聲明、以及被明確初始化過的全局和靜態(tài)變量,要求放在低地址的數(shù)據(jù)頁;(4).switch它包括為轉(zhuǎn)換聲明設(shè)置的表格,可以放在程序頁也可以放在低地址的數(shù)據(jù)頁。MEMORY{PAGE0:EPROG:origin=0x1400,len=0x7c00VECT:origin=0xff80,len=0x80PAGE1:USERREGS:origin=0x60,len=0x1cBIOSREGS:origin=0x7c,len=0x4IDATA:origin=0x80,len=0x1380EDATA:origin=0x1400,len=0x8000EDATA1:origin=0x9400,len=0x4c00}SECTIONS{.vectors:{}>VECTPAGE0.sysregs:{}>BIOSREGSPAGE1.trcinit:{}>EPROGPAGE0.gblinit:{}>EPROGPAGE0frt:{}>EPROGPAGE0.text:{}>EPROGPAGE0.cinit:{}>EPROGPAGE0.pinit:{}>EPROGPAGE0.sysinit:{}>EPROGPAGE0.bss:{}>IDATAPAGE1.far:{}>IDATAPAGE1.const:{}>IDATAPAGE1.switch:{}>IDATAPAGE1.sysmem:{}>IDATAPAGE1.stack:{}>IDATAPAGE1}.bss它為全局變量和靜態(tài)變量保留空間。在程序開始運行時,C導(dǎo)入路徑把數(shù)據(jù)從.cinit節(jié)復(fù)制出去然后存在.bss節(jié)中,要求放在低地址的數(shù)據(jù)頁;.stack為C系統(tǒng)堆棧保留空間,這部分存儲器為用來將聲明傳給函數(shù)及為局部變量留出空間,要求放在低地址的數(shù)據(jù)頁;.system動態(tài)存儲器分配保留空間。這個空間用于malloc函數(shù),如果不使用malloc函數(shù),這個段的大小就是0,要求放在低地址的數(shù)據(jù)頁;79JTAG口 JTAG是JointtestActionGroup的簡稱,又稱JTAG口,它是一符合IEEEStd1149.1邊界掃描邏輯標(biāo)準(zhǔn)的標(biāo)準(zhǔn)接口。它主要用于在硬件上對DSP進行實時在線仿真測試和DSP程序的下載,它提供對所連接設(shè)備的邊界掃描,同時也可以用來測試引腳到引腳的連續(xù)性,以及進行DSP芯片的外圍器件的操作測試。80JTAG口TCK:測試時鐘TDI:測試數(shù)據(jù)輸入TDO:測試數(shù)據(jù)輸出TMS:測試方式選擇TRST#:測試復(fù)位引腳EMU0:仿真中斷引腳0EMU1:仿真中斷引腳181JTAG口JTAG口實例DFT假設(shè)信號為x(0),x(1),……,x(N-1),那么其離散傅立葉變換(DFT)后的實部和虛部以及頻譜幅度分別為:頻譜幅度:實驗九

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論