北郵DSP實(shí)驗(yàn)一_第1頁(yè)
北郵DSP實(shí)驗(yàn)一_第2頁(yè)
北郵DSP實(shí)驗(yàn)一_第3頁(yè)
北郵DSP實(shí)驗(yàn)一_第4頁(yè)
北郵DSP實(shí)驗(yàn)一_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2015-2016學(xué)年第二學(xué)期信號(hào)與信息處理綜合實(shí)驗(yàn)(DSP)實(shí)驗(yàn)一學(xué)院:信息與通信工程學(xué)院班級(jí): 學(xué)號(hào): 姓名: 班內(nèi)序號(hào): 一. 實(shí)驗(yàn)?zāi)康氖煜CS v5的開(kāi)發(fā)流程,了解各個(gè)菜單的功能。二. 實(shí)驗(yàn)環(huán)境Code Composer Studio v5,Windows XP,DSP開(kāi)發(fā)板三. 實(shí)驗(yàn)要求1. 在控制臺(tái)顯示 Hello World2. 控制 LED 燈閃爍FTP給出一個(gè)LED的程序模板,可以控制LED-0的閃爍?;谠撃0?,需要完成:1) 修改閃爍的頻率;2) 通過(guò)寫(xiě)8bit數(shù)值到CPLD寄存器來(lái)控制LED,使得4個(gè)LED以200ms的頻率同時(shí)打開(kāi)和關(guān)閉;3. 在驗(yàn)收時(shí)候依照助教的要

2、求改變 LED 燈的閃爍方式四. 實(shí)驗(yàn)原理4.1 總體介紹DSP芯片也稱(chēng)數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。本學(xué)期DSP實(shí)驗(yàn)所用芯片為T(mén)I公司生產(chǎn)的TMS320C6416T。TMS320C6416T為定點(diǎn)DSP,基于第二代高性能的VLIW架構(gòu),擁有超長(zhǎng)指令字,即一種非常長(zhǎng)的指令組合,它把許多條指令連在一起,增加了運(yùn)算的速度。4.2 處理器介紹該系列芯片的處理器由三部分組成:1) CPU內(nèi)核:有8個(gè)并行操作的功能單元,被分為類(lèi)似的兩套有兩組寄存器,每組包括16個(gè)32位寄存器;2) 存儲(chǔ)器:包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器片內(nèi)程

3、序存儲(chǔ)器總線(xiàn)寬度為256bit,每個(gè)周期可取8條32位指令;3) 外設(shè):直接存儲(chǔ)器訪(fǎng)問(wèn)DMA、外部存儲(chǔ)器接口EMIF、串口、擴(kuò)展總線(xiàn)、定時(shí)器等。4.3 相關(guān)函數(shù)介紹為了方便用戶(hù)對(duì)DSP系統(tǒng)進(jìn)行開(kāi)發(fā),TI公司的第三方提供一種簡(jiǎn)單的系統(tǒng)評(píng)估平臺(tái),即DSK開(kāi)發(fā)套件和評(píng)估板。DSK和EVM(評(píng)估板)除了提供基本的硬件平臺(tái)外,還提供完整的代碼生成工具和調(diào)試工具。用戶(hù)可以使用DSK或EVM完成需要設(shè)計(jì)系統(tǒng)的硬件性能、軟件算法的評(píng)估,為確定系統(tǒng)的軟/硬件方案提供可靠的依據(jù)。以下為DSK6416提供的DSP開(kāi)發(fā)相關(guān)函數(shù):void DSK6416_init();/* 初始化所有板子的初始函數(shù)*/uint8 DS

4、K6416_rget(int16 regnum); /* 讀取CPLD寄存器的8bit 值*/void DSK6416_rset(int16 regnum, uint8 regval); /* 寫(xiě)8 bit數(shù)值到CPLD寄存器*/void DSK6416_wait(uint32 delay); /* 插入dl次的迭代循環(huán)*/void DSK6416_waitusec(Uint32 delay); /* 插入dl 微秒的迭代循環(huán)*/利用以上函數(shù),實(shí)現(xiàn)DSP板子的初始化以及開(kāi)關(guān)狀態(tài)讀取和LED燈的亮滅控制。4.4 寄存器介紹CPLD寄存器定義如下:本實(shí)驗(yàn)所需配置的寄存器為USER_REG,該寄存器

5、用于讀取DIP開(kāi)關(guān)狀態(tài),并將LED燈開(kāi)關(guān)。其具體描述如下:由上表可以看出,USER_REG前四個(gè)比特用于DIP,讀該寄存器前四比特,若相應(yīng)比特位置一表示所對(duì)應(yīng)開(kāi)關(guān)斷開(kāi),相應(yīng)比特位置零表示所對(duì)應(yīng)開(kāi)關(guān)打開(kāi);后四個(gè)比特用于LED控制,向該寄存器寫(xiě)數(shù)據(jù),若相應(yīng)比特位置一表示點(diǎn)亮所對(duì)應(yīng)LED燈,置零則表示將所對(duì)應(yīng)LED熄滅。五. 功能描述1) 運(yùn)行程序后,在控制臺(tái)顯示Hello World;2) 通過(guò)寫(xiě)8bit數(shù)值到CPLD寄存器來(lái)實(shí)現(xiàn)按鍵控制四盞LED燈以一定頻率同時(shí)亮滅;3) 通過(guò)寫(xiě)8bit數(shù)值到CPLD寄存器來(lái)實(shí)現(xiàn)四盞LED燈作為跑馬燈順序亮滅;4) 通過(guò)寫(xiě)8bit數(shù)值到CPLD寄存器來(lái)實(shí)現(xiàn)四盞L

6、ED燈作為跑馬燈加速亮滅;六. 程序模塊描述6.1 Hello World模塊使用 printf 語(yǔ)句輸出 "Hello World!"。6.2 LED燈同時(shí)亮滅模塊首先初始化板子初始函數(shù)以及LED及DIP,然后設(shè)置while循環(huán),在循環(huán)之中讀取CPLD寄存器的八比特?cái)?shù)值。若檢測(cè)到數(shù)值為0XE0,即表示只有DIP0按下,則設(shè)置CPLD寄存器八比特?cái)?shù)值為0XEF,即表示四盞燈全亮,延遲一段時(shí)間之后,設(shè)置CPLD寄存器八比特?cái)?shù)值為0XE0,即表示四盞燈全滅,并延遲相同時(shí)間;否則設(shè)置CPLD寄存器八比特?cái)?shù)值為0XE0,即表示四盞燈全滅。3. 跑馬燈模塊首先初始化板子初始函數(shù)以及L

7、ED及DIP,然后設(shè)置while循環(huán),在循環(huán)之中讀取CPLD寄存器的八比特?cái)?shù)值。若檢測(cè)到數(shù)值為0XD0,即表示只有DIP1按下,則依次設(shè)置CPLD寄存器八比特?cái)?shù)值為0XE0、0XE1、0XE2、0XE4、0XE8,分別表示四盞燈全滅、只有第一盞燈亮、只有第二盞燈亮、只有第三盞燈亮、只有第四盞燈亮,在每次設(shè)置之后延遲相同的時(shí)間;否則設(shè)置CPLD寄存器八比特?cái)?shù)值為0XE0,即表示四盞燈全滅。4. 跑馬燈變速模塊若檢測(cè)到數(shù)值為0X90,即表示DIP1與DIP2同時(shí)按下,則通過(guò)改變延遲的時(shí)間來(lái)改變跑馬燈的速度。七. 程序流程八. 各種功能的測(cè)試記錄、結(jié)果及說(shuō)明8.1 功能分析本實(shí)驗(yàn)所設(shè)計(jì)的功能都順利實(shí)

8、現(xiàn):1) 在運(yùn)行程序之后,控制臺(tái)顯示 "Hello World!";2) 當(dāng)DIP0沒(méi)有按下時(shí),四盞LED全滅;3) 當(dāng)只按下DIP0時(shí),四盞LED燈閃爍,頻率為200Hz;4) 當(dāng)只按下DIP1時(shí),四盞LED燈依次點(diǎn)亮然后熄滅,頻率為200Hz;5) 當(dāng)DIP1及DIP2同時(shí)按下時(shí),四盞LED燈依次點(diǎn)亮然后熄滅,頻率為400Hz。8.2 截圖分析1) 控制臺(tái)顯示 "Hello World!"如圖所示,在運(yùn)行程序之后,控制臺(tái)顯示 "Hello World!"。2) LED燈同時(shí)亮滅只按下DIP0并如上圖所示設(shè)置斷點(diǎn),單步運(yùn)行后查看寄存

9、器的值,低八位的值為EF,與所賦的值相同,此時(shí)四盞燈全亮,如下圖所示:3) 跑馬燈順序亮滅只按下DIP1并如上圖所示設(shè)置斷點(diǎn),單步運(yùn)行后查看寄存器的值,低八位的值為D1,與所賦的值相同,此時(shí)第一盞燈亮,如下圖所示:4) 跑馬燈加速亮滅同時(shí)按下DIP1及DIP2并如上圖所示設(shè)置斷點(diǎn),單步運(yùn)行后查看寄存器的值,低八位的值為90,與所賦的值相同,此時(shí)四盞燈全滅,如下圖所示:九. 調(diào)試過(guò)程中的主要問(wèn)題及難點(diǎn)第一次實(shí)驗(yàn)的重點(diǎn)在于認(rèn)識(shí)DSP芯片的基本架構(gòu),根據(jù)課件的步驟,能熟練的操作使用Code Composer Studio v5工作環(huán)境,在編寫(xiě)簡(jiǎn)單的程序代碼之后,完成編譯、調(diào)試等步驟。過(guò)程中遇到的一個(gè)

10、問(wèn)題是硬件驅(qū)動(dòng)的安裝,在剛開(kāi)始做實(shí)驗(yàn)時(shí)我沒(méi)有注意到這個(gè)問(wèn)題,一直到調(diào)試過(guò)程中報(bào)錯(cuò)時(shí)才發(fā)現(xiàn)驅(qū)動(dòng)安裝有問(wèn)題,后來(lái)向同學(xué)詢(xún)問(wèn)了手動(dòng)導(dǎo)入安裝驅(qū)動(dòng)的方法,才順利完成了實(shí)驗(yàn)。程序部分的一個(gè)難點(diǎn)在于DSK6416_RSET()和DSK6416_RGET()函數(shù)的使用,在基本功能實(shí)現(xiàn)以后,我們想要實(shí)現(xiàn)不同DIP開(kāi)關(guān)對(duì)應(yīng)不同的狀態(tài),所以又回顧了課件中CPLD寄存器方面的內(nèi)容,了解了CPLD寄存器不同狀態(tài)對(duì)應(yīng)的8bit數(shù)值的含義。十. 心得體會(huì)總體來(lái)說(shuō)第一次DSP實(shí)驗(yàn)比較簡(jiǎn)單,主要是學(xué)習(xí)DSP芯片的基本知識(shí),熟悉DSK開(kāi)發(fā)板以及Code Composer Studio v5集成開(kāi)發(fā)環(huán)境,掌握利用CPLD的USER

11、_REG寄存器配置LED和DIP開(kāi)關(guān)的方法,了解程序優(yōu)化的原理和基本操作。感覺(jué)編程能力方面要求不高,在原來(lái)的編程基礎(chǔ)上需要掌握DSK6416相關(guān)函數(shù)、LED相關(guān)函數(shù)和4DIP開(kāi)關(guān)相關(guān)函數(shù)的使用就可以。除了在熟悉軟件和開(kāi)發(fā)板上遇到了一些問(wèn)題以外,實(shí)驗(yàn)的其他方面進(jìn)行得非常順利,在基本功能實(shí)現(xiàn)后我們很快就完成了其他擴(kuò)展功能,比如實(shí)現(xiàn)了LED全亮全滅,跑馬燈及變速等功能。另外根據(jù)實(shí)驗(yàn)課件教程,我們進(jìn)行了多次的斷點(diǎn)調(diào)試,使用軟件更加熟練,為之后的實(shí)驗(yàn)做充足的準(zhǔn)備。本次實(shí)驗(yàn)給我的感覺(jué)是十分有趣,能夠鍛煉提升實(shí)際操作能力和分析解決問(wèn)題的能力。實(shí)驗(yàn)開(kāi)始時(shí)助教學(xué)長(zhǎng)跟我們介紹了如何做好實(shí)驗(yàn)前的準(zhǔn)備工作,開(kāi)發(fā)板的養(yǎng)

12、護(hù),以及實(shí)驗(yàn)過(guò)程中一旦遇到問(wèn)題時(shí)怎么迅速有效地解決。感覺(jué)學(xué)長(zhǎng)們也很認(rèn)真負(fù)責(zé),熱心地給同學(xué)們答疑解惑,極大地增加了我對(duì)DSP實(shí)驗(yàn)的熱情和信心,相信接下來(lái)的實(shí)驗(yàn),我一定會(huì)更愿意去做,并能給我?guī)?lái)更大的收獲。十一. 程序源代碼#include <stdio.h>#include "dsk6416.h"#include "dsk6416_led.h"#include "dsk6416_dip.h"#define delay 100000#define delay1 50000void main() DSK6416_init();/

13、初始化所有板子初始函數(shù) DSK6416_LED_init();/初始化LED DSK6416_DIP_init();/初始化DIP printf("Hello World!n"); while(1) if(DSK6416_rget(DSK6416_USER_REG)=0XE0)/只有DIP0按下 DSK6416_rset(DSK6416_USER_REG,0XEF); DSK6416_waitusec(delay); DSK6416_rset(DSK6416_USER_REG,0XE0); DSK6416_waitusec(delay); else DSK6416_rset

14、(DSK6416_USER_REG,0XE0); if(DSK6416_rget(DSK6416_USER_REG)=0XD0)/只有DIP1按下 DSK6416_rset(DSK6416_USER_REG,0XE0);/寫(xiě)8bit數(shù)值到CPLD寄存器 DSK6416_waitusec(delay); DSK6416_rset(DSK6416_USER_REG,0XE1); DSK6416_waitusec(delay); DSK6416_rset(DSK6416_USER_REG,0XE2); DSK6416_waitusec(delay); DSK6416_rset(DSK6416_USE

15、R_REG,0XE4); DSK6416_waitusec(delay); DSK6416_rset(DSK6416_USER_REG,0XE8); DSK6416_waitusec(delay); else DSK6416_rset(DSK6416_USER_REG,0XE0); if(DSK6416_rget(DSK6416_USER_REG)=0X90)/DIP1、2按下 DSK6416_rset(DSK6416_USER_REG,0XE0); DSK6416_waitusec(delay1); DSK6416_rset(DSK6416_USER_REG,0XE1); DSK6416_w

16、aitusec(delay1); DSK6416_rset(DSK6416_USER_REG,0XE2); DSK6416_waitusec(delay1); DSK6416_rset(DSK6416_USER_REG,0XE4); DSK6416_waitusec(delay1); DSK6416_rset(DSK6416_USER_REG,0XE8); DSK6416_waitusec(delay1); else DSK6416_rset(DSK6416_USER_REG,0XE0); 注:1)如果想要改變燈的亮滅,只需要改變delay的數(shù)值;2)寄存器高四位代表著按鍵的狀態(tài),其中 "0"

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論