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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

DigitalSjgnalProcessing廣指數字信號處理的理論和方法,即數字信號處理技術。◎

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

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

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

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

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

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

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

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

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

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

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

T=CLKOUT×(TDDR+1)×(PRD+1)CLKOUT為時鐘周期要對定時器正確配置和操作,可以通過以下步驟來實現:1)首先將TCR寄存器中的TSS位置’1’來停止定時。2)初始化定時器周期PRD。3)重新加載TCR寄存器(初始化定時器的預分頻器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");//設置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");//關定時器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中相應的地址放置跳轉指令,跳轉到相應的中斷服務子程序便可。*.cmd命令文件:(1)在命令文件中兩個十分有用的偽指令MEMORY和SECTIONS:指定實際應用中的存儲器結構和進行地址的映射。(2)Memory:用來指定目標存儲器結構,Memory下可以通過PAGE選項配置地址空間,鏈接器把每一頁都當作一個獨立的存儲空間。通常情況下,PAGE0代表程序存儲器用來存放程序,PAGE1代表數據存儲器,用來存放數據。(3)由編譯器生成的可重定位的代碼和數據塊叫做“SECTIONS”(段),SECTIONS用來控制段的構成與地址分配。對于不同的系統配置,“SECTION”的分配方式也不相同,鏈接器通過“SECTIONS”來控制地址的分配,所以“SECTIONS”的分配就成了配置.cmd文件的重要環節。72存儲器-TMS320VC5402尋址空間存儲器:DARAM(雙尋址數據存儲器),SARAM(單尋址數據存儲器),ROM(程序存儲器)

數據存儲器總是安排到數據存儲空間,但也可設置成程序存儲空間;程序存儲器總是安排到程序存儲空間,但也可設置成數據存儲空間;MP/MC=0,片內ROM配置到程序空間;

MP/MC=1,片內ROM不配置到程序空間;OVLY=1,片內RAM配置到程序和數據空間;OVLY=0,片內RAM只配置到數據空間;以下是對“SECTIONS”的定義及分配的詳細介(1).text包括所有的可執行代碼和常數,必須放在程序頁;(2).cinit包括初始化的變量和常量表,要求放在程序頁;.pinit它包括全局構造器(C++),可放在程序頁;(3).const它包括字符串、聲明、以及被明確初始化過的全局和靜態變量,要求放在低地址的數據頁;(4).switch它包括為轉換聲明設置的表格,可以放在程序頁也可以放在低地址的數據頁。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它為全局變量和靜態變量保留空間。在程序開始運行時,C導入路徑把數據從.cinit節復制出去然后存在.bss節中,要求放在低地址的數據頁;.stack為C系統堆棧保留空間,這部分存儲器為用來將聲明傳給函數及為局部變量留出空間,要求放在低地址的數據頁;.system動態存儲器分配保留空間。這個空間用于malloc函數,如果不使用malloc函數,這個段的大小就是0,要求放在低地址的數據頁;79JTAG口 JTAG是JointtestActionGroup的簡稱,又稱JTAG口,它是一符合IEEEStd1149.1邊界掃描邏輯標準的標準接口。它主要用于在硬件上對DSP進行實時在線仿真測試和DSP程序的下載,它提供對所連接設備的邊界掃描,同時也可以用來測試引腳到引腳的連續性,以及進行DSP芯片的外圍器件的操作測試。80JTAG口TCK:測試時鐘TDI:測試數據輸入TDO:測試數據輸出TMS:測試方式選擇TRST#:測試復位引腳EMU0:仿真中斷引腳0EMU1:仿真中斷引腳181JTAG口JTAG口實例DFT假設信號為x(0),x(1),……,x(N-1),那么其離散傅立葉變換(DFT)后的實部和虛部以及頻譜幅度分別為:頻譜幅度:實驗九

溫馨提示

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

評論

0/150

提交評論