哈工大DSP課程報(bào)告(共17頁(yè))_第1頁(yè)
哈工大DSP課程報(bào)告(共17頁(yè))_第2頁(yè)
哈工大DSP課程報(bào)告(共17頁(yè))_第3頁(yè)
哈工大DSP課程報(bào)告(共17頁(yè))_第4頁(yè)
哈工大DSP課程報(bào)告(共17頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2015年秋季學(xué)期DSP原理及應(yīng)用課程課程設(shè)計(jì)報(bào)告院系: 航天工程與力學(xué)系 班號(hào): 1218201_ 學(xué)號(hào): 1122110326_ 姓名: 高小寧_ 2016年 1月 13日審閱教師: 考核成績(jī):_ 題目一:結(jié)合學(xué)習(xí)過(guò)的DSP基本知識(shí),試論述如果采用DSP為核心器件設(shè)計(jì)系統(tǒng),需要考慮哪些性能指標(biāo)、遵循哪些設(shè)計(jì)原則?1、 運(yùn)算速度:首先我們要確定數(shù)字信號(hào)處理的算法,算法確定以后其運(yùn)算量和完成時(shí)間也就大體確定了,根據(jù)運(yùn)算量及其時(shí)間要求就可以估算DSP芯片運(yùn)算速度的下限。在選擇DSP芯片時(shí),各個(gè)芯片運(yùn)算速度的衡量標(biāo)準(zhǔn)主要有:  1、MIPS(Millions of&#

2、160;Instructions Per Second),百萬(wàn)條指令/秒,一般DSP為20100MIPS,使用超長(zhǎng)指令字的TMS320B2XX為2400MIPS。必須指出的是這是定點(diǎn) DSP芯片運(yùn)算速度的衡量指標(biāo),應(yīng)注意的是,廠家提供的該指標(biāo)一般是指峰值指標(biāo),因此,系統(tǒng)設(shè)計(jì)時(shí)應(yīng)留有一定的裕量。  2、MOPS(Millions of Operations Per Second),每秒執(zhí)行百萬(wàn)操作。這個(gè)指標(biāo)的問(wèn)題是什么是一次操作,通常操作包括CPU操作外,還包括地址計(jì)算、DMA訪問(wèn)數(shù)據(jù)傳輸、I/O操作等。一

3、般說(shuō)MOPS越高意味著乘積-累加和運(yùn)算速度越快。MOPS可以對(duì)DSP芯片的性能進(jìn)行綜合描述。  3、MFLOPS(Million Floating Point Operations Per Second),百萬(wàn)次浮點(diǎn)操作/秒,這是衡量浮點(diǎn)DSP芯片的重要指標(biāo)。例如TMS320C31在主頻為40MHz時(shí),處理能力為40MFLOPS, TMS320C6701在指令周期為6ns時(shí),單精度運(yùn)算可達(dá)1GFLOPS。浮點(diǎn)操作包括浮點(diǎn)乘法、加法、減法、存儲(chǔ)等操作。應(yīng)注意的是,廠家提供的該指標(biāo)一般是指峰值指標(biāo),因此,系統(tǒng)設(shè)計(jì)時(shí)應(yīng)注

4、意留有一定的裕量。4、MBPS(Million Bit Per Second),它是對(duì)總線和I/O口數(shù)據(jù)吞吐率的度量,也就是某個(gè)總線或I/O的帶寬。例如對(duì)TMS320C6XXX、200MHz時(shí)鐘、32bit總線時(shí),總線數(shù)據(jù)吞吐率則為800Mbyte/s或6400MBPS。   5、指令周期,即執(zhí)行一條指令所需的時(shí)間,通常以ns(納秒)為單位,如TMS320LC549-80在主頻為80MHz是的指令周期為12.5ns。MAC時(shí)間,執(zhí)行一次乘法和加法運(yùn)算所花費(fèi)的時(shí)間:大多數(shù)DSP芯片可以在一個(gè)指令周期內(nèi)完成一次MAC運(yùn)算。  6

5、、FFT/FIR執(zhí)行時(shí)間,運(yùn)行一個(gè)N點(diǎn)FFT或N點(diǎn)FIR程序的運(yùn)算時(shí)間。由于FFT運(yùn)算/FIR運(yùn)算是數(shù)字信號(hào)處理的一個(gè)典型算法,因此,該指標(biāo)可以作為衡量芯片性能的綜合指標(biāo)。二、運(yùn)算精度:一般情況下,浮點(diǎn)DSP芯片的運(yùn)算精度要高于定點(diǎn)DSP芯片的運(yùn)算精度,但是功耗和價(jià)格也隨之上升。三、字長(zhǎng)的選擇:一般浮點(diǎn)DSP芯片都用32位的數(shù)據(jù)字,大多數(shù)定點(diǎn)DSP芯片是16位數(shù)據(jù)字。四、存儲(chǔ)器等片內(nèi)硬件資源安排:包括存儲(chǔ)器的大小,片內(nèi)存儲(chǔ)器的數(shù)量,總線尋址空間等。五、開(kāi)發(fā)調(diào)試工具:完善、方便的的開(kāi)發(fā)工具和相關(guān)支持軟件是開(kāi)發(fā)大型、復(fù)雜DSP系統(tǒng)的必備條件,對(duì)縮短產(chǎn)品的開(kāi)發(fā)周期有很重要的作用。六、功耗與電源管理:

6、一般來(lái)說(shuō)個(gè)人數(shù)字產(chǎn)品、便攜設(shè)備和戶外設(shè)備等對(duì)功耗有特殊要求,因此這也是一個(gè)該考慮的問(wèn)題。七、價(jià)格及廠家的售后服務(wù)因素:價(jià)格包括DSP芯片的價(jià)格和開(kāi)發(fā)工具的價(jià)格。八、其他因素:包括DSP芯片的封裝形式、環(huán)境要求、供貨周期、生命周期等。題目二:采用DSP處理器的CPU定時(shí)器進(jìn)行10000次計(jì)數(shù),寫(xiě)出定時(shí)器的設(shè)置程序代碼。void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;/定時(shí)器計(jì)數(shù)值 Timer->CPUFreqInMHz = Freq; Timer->Period

7、InUSec = Period; temp = (long) (Freq * Period);Timer->RegsAddr->PRD.all = temp; Timer->RegsAddr->TPR.all = 0; Timer->RegsAddr->TPRH.all = 0; Timer->RegsAddr->TCR.bit.POL = 0; Timer->RegsAddr->TCR.bit.TOG = 0; Timer->RegsAddr->TCR.bit.TSS = 1; Timer->RegsAddr-&g

8、t;TCR.bit.TRB = 1; Timer->RegsAddr->TCR.bit.FRCEN = 0; Timer->RegsAddr->TCR.bit.PWIDTH = 7; Timer->RegsAddr->TCR.bit.SOFT = 1; Timer->RegsAddr->TCR.bit.FREE = 1; Timer->RegsAddr->TCR.bit.TIE = 1; Timer->InterruptCount = 0;ConfigCpuTimer(&CpuTimer0,150,10000);題目三:

9、如果采用DSP處理器的GPIO端口點(diǎn)亮小燈,試畫(huà)出基本的電路原理圖。當(dāng)GPIO端為低電平時(shí),小燈被點(diǎn)亮。題目四:設(shè)計(jì)DSP處理器SCI串口同計(jì)算機(jī)通信,采用中斷方式收發(fā)數(shù)據(jù),間隔3秒發(fā)送一次字符"The TMS320F2812-UART is fine !";要求SCI配置為波特率19200,數(shù)據(jù)長(zhǎng)度8Bit,無(wú)極性,2位停止位;使用TX緩沖寄存器空觸發(fā)SCI-TX INT中斷,CPU定時(shí)器0中斷觸發(fā)第一次傳輸,試給出相關(guān)程序代碼。#include "DSP281x_Device.h"/ 使用的函數(shù)原型聲明void Gpio_select(void);v

10、oid InitSystem(void); void SCI_Init(void); interrupt void cpu_timer0_isr(void); interrupt void SCI_TX_isr(void); / 全局變量char message="The F2812-UART is fine !nr"int index =0;/ 字符串指針 void main(void) InitSystem();/ 初始化DSP內(nèi)核寄存器 Gpio_select();/ 配置GPIO復(fù)用功能寄存器 InitPieCtrl();/ 調(diào)用外設(shè)中斷擴(kuò)展初始化單元 PIE-un

11、it ( 代碼 : DSP281x_PieCtrl.c) InitPieVectTable(); / 初始化 PIE vector向量表 ( 代碼 : DSP281x_PieVect.c ) / 重新映射 PIE - Timer 0的中斷 EALLOW; / 解除寄存器保護(hù) PieVectTable.TINT0 = &cpu_timer0_isr; EDIS; / 使能寄存器保護(hù) InitCpuTimers();/ 配置 CPU-Timer 0 周期50 ms:/ 150MHz CPU 頻率, 50000 微秒中斷周期 ConfigCpuTimer(&CpuTimer0, 15

12、0, 50000); / 使能PIE內(nèi)的 TINT0 : Group 1 interrupt 7 PieCtrlRegs.PIEIER1.bit.INTx7 = 1; / 使能 CPU INT1 (連接到CPU-Timer 0中斷) IER = 1; EALLOW;/ 解除寄存器保護(hù) PieVectTable.TXAINT = &SCI_TX_isr; EDIS; / 使能寄存器保護(hù) / 使能PIE內(nèi)的 SCI_A_TX_INT中斷 PieCtrlRegs.PIEIER9.bit.INTx2 = 1; / 使能 CPU INT 9 IER |= 0x100; / 全局中斷使能和更高優(yōu)先

13、級(jí)的實(shí)時(shí)調(diào)試事件 EINT; / 全局中斷使能INTM ERTM; / 使能實(shí)時(shí)調(diào)試中斷DBGM CpuTimer0Regs.TCR.bit.TSS = 0; / 啟動(dòng)定時(shí)器0 SCI_Init(); while(1) while(CpuTimer0.InterruptCount < 60) / 等待50ms * 60 EALLOW; SysCtrlRegs.WDKEY = 0x55;SysCtrlRegs.WDKEY = 0xAA;/ 看門(mén)狗控制 EDIS; CpuTimer0.InterruptCount = 0; / 復(fù)位計(jì)數(shù)器 index = 0; SciaRegs.SCITXB

14、UF= messageindex+; void Gpio_select(void) EALLOW; GpioMuxRegs.GPAMUX.all = 0x0;/ 所有 GPIO 端口配置為I/O GpioMuxRegs.GPBMUX.all = 0x0; GpioMuxRegs.GPDMUX.all = 0x0; GpioMuxRegs.GPFMUX.all = 0x0; GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1; /配置 SCI-RX GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1; /配置 SCI-TX Gpio

15、MuxRegs.GPEMUX.all = 0x0; GpioMuxRegs.GPGMUX.all = 0x0; GpioMuxRegs.GPADIR.all = 0x0; / GPIO PORT 配置為輸入 GpioMuxRegs.GPBDIR.all = 0x0; GpioMuxRegs.GPDDIR.all = 0x0; GpioMuxRegs.GPEDIR.all = 0x0; GpioMuxRegs.GPFDIR.all = 0x00FF; GpioMuxRegs.GPGDIR.all = 0x0; GpioMuxRegs.GPAQUAL.all = 0x0; / 設(shè)置所有 GPIO

16、輸入的量化值等于0 GpioMuxRegs.GPBQUAL.all = 0x0; GpioMuxRegs.GPDQUAL.all = 0x0; GpioMuxRegs.GPEQUAL.all = 0x0; EDIS; void InitSystem(void) EALLOW; SysCtrlRegs.WDCR= 0x00AF;/ 配置看門(mén)狗 / 0x00E8 禁止看門(mén)狗,預(yù)定標(biāo)系數(shù)Prescaler = 1 / 0x00AF 不禁止看門(mén)狗, 預(yù)定標(biāo)系數(shù)Prescaler = 64 SysCtrlRegs.SCSR = 0; / 看門(mén)狗產(chǎn)生復(fù)位 SysCtrlRegs.PLLCR.bit.DIV

17、 = 10;/ 配置處理器鎖相環(huán),倍頻系數(shù)為5 SysCtrlRegs.HISPCP.all = 0x1; / 配置高速外設(shè)時(shí)鐘分頻系數(shù): 2 SysCtrlRegs.LOSPCP.all = 0x2; / 配置低速外設(shè)時(shí)鐘分頻系數(shù): 4 / 使用的外設(shè)時(shí)鐘時(shí)鐘設(shè)置: / 一般不使用的外設(shè)的時(shí)鐘禁止,降低系統(tǒng)功耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1; / 使能SCI模塊的時(shí)鐘 SysCtrlRegs.PCLKCR.bit.

18、SCIBENCLK=0; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0; SysCtrlRegs.PCLKCR.bit.SPIENCLK=0; SysCtrlRegs.PCLKCR.bit.ECANENCLK=0; SysCtrlRegs.PCLKCR.bit.ADCENCLK=0; EDIS;void SCI_Init(void)SciaRegs.SCICCR.all =0x13; / 2bit 停止位 無(wú)循環(huán)模式 / 無(wú)極性, 字符長(zhǎng)度:8 bits, / 異步模式, 空閑線協(xié)議SciaRegs.SCICTL1.all =0x0003; / 使能 TX, RX,

19、內(nèi)部 SCICLK, / 禁止 RX ERR, SLEEP, TXWAKESciaRegs.SCIHBAUD = 0; / 波特率:19200(LSPCLK = 37.5MHz) ; SciaRegs.SCILBAUD = 0xf3;SciaRegs.SCICTL2.bit.TXINTENA = 1;/ 使能SCI發(fā)送中斷 SciaRegs.SCICTL1.all =0x0023; / 使SCI退出復(fù)位 interrupt void cpu_timer0_isr(void) CpuTimer0.InterruptCount+; / 每個(gè)定時(shí)器中斷清除一次看門(mén)狗計(jì)數(shù)器 / 響應(yīng)中斷并允許系統(tǒng)接收

20、更多的中斷 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; /=/ SCI_A 發(fā)送中斷服務(wù)程序/ 發(fā)送字符串 message /=interrupt void SCI_TX_isr(void)if (index < 26) SciaRegs.SCITXBUF=messageindex+;/ 重新初始化PIE為下一次 SCI-A TX準(zhǔn)備接收下一次中斷 PieCtrlRegs.PIEACK.all = 0x0100; /響應(yīng)中斷題目五:采用查詢方式實(shí)現(xiàn)題目四中功能,SCI配置要求相同,使用發(fā)送移位寄存器空標(biāo)志位TXEMPTY觸發(fā)發(fā)送數(shù)據(jù),軟件延時(shí)方法控制間

21、隔時(shí)間3秒,試給出相關(guān)程序代碼。#include "DSP281x_Device.h"/ 使用的函數(shù)聲明void Gpio_select(void);void InitSystem(void); void SCI_Init(void);void main(void) char message="The F2812-UART is fine !nr" int index =0;/ 字符指針定義 long i; InitSystem();/ 初始化DSP內(nèi)核寄存器 Gpio_select();/ 配置GPIO復(fù)用功能寄存器 SCI_Init(); / SCI

22、接口初始化 while(1) SciaRegs.SCITXBUF=messageindex+; while ( SciaRegs.SCICTL2.bit.TXEMPTY = 0); /狀態(tài)檢測(cè)模式: /狀態(tài)檢測(cè),等待發(fā)送標(biāo)識(shí)為空:TXEMPTY = 0 EALLOW; SysCtrlRegs.WDKEY = 0x55;/ 看門(mén)狗控制 SysCtrlRegs.WDKEY = 0xAA; EDIS; if (index > 26) index =0; for(i=0;i<15000000;i+) / 軟件延時(shí),近似2秒. EALLOW; SysCtrlRegs.WDKEY = 0x55

23、;/ 看門(mén)狗控制 SysCtrlRegs.WDKEY = 0xAA; / 看門(mén)狗控制 EDIS; void Gpio_select(void) EALLOW; GpioMuxRegs.GPAMUX.all = 0x0;/ 所有 GPIO 端口配置為I/O GpioMuxRegs.GPBMUX.all = 0x0; GpioMuxRegs.GPDMUX.all = 0x0; GpioMuxRegs.GPFMUX.all = 0x0; GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1; /配置 SCI-RX GpioMuxRegs.GPFMUX.bit.SCITX

24、DA_GPIOF4 = 1; /配置 SCI-TX GpioMuxRegs.GPEMUX.all = 0x0; GpioMuxRegs.GPGMUX.all = 0x0; GpioMuxRegs.GPADIR.all = 0x0; / GPIO PORT 配置為輸入 GpioMuxRegs.GPBDIR.all = 0x0; GpioMuxRegs.GPDDIR.all = 0x0; GpioMuxRegs.GPEDIR.all = 0x0; GpioMuxRegs.GPFDIR.all = 0x0; GpioMuxRegs.GPGDIR.all = 0x0; GpioMuxRegs.GPAQ

25、UAL.all = 0x0; / 設(shè)置所有 GPIO 輸入的量化值等于0 GpioMuxRegs.GPBQUAL.all = 0x0; GpioMuxRegs.GPDQUAL.all = 0x0; GpioMuxRegs.GPEQUAL.all = 0x0; EDIS; void InitSystem(void) EALLOW; SysCtrlRegs.WDCR= 0x00AF;/ 配置看門(mén)狗 / 0x00E8 禁止看門(mén)狗,預(yù)定標(biāo)系數(shù)Prescaler = 1 / 0x00AF 不禁止看門(mén)狗, 預(yù)定標(biāo)系數(shù)Prescaler = 64 SysCtrlRegs.SCSR = 0; / 看門(mén)狗產(chǎn)生復(fù)

26、位 SysCtrlRegs.PLLCR.bit.DIV = 10;/ 配置處理器鎖相環(huán),倍頻系數(shù)為5 SysCtrlRegs.HISPCP.all = 0x1; / 配置高速外設(shè)時(shí)鐘分頻系數(shù): 2 SysCtrlRegs.LOSPCP.all = 0x2; / 配置低速外設(shè)時(shí)鐘分頻系數(shù): 4 / 使用的外設(shè)時(shí)鐘時(shí)鐘設(shè)置: / 一般不使用的外設(shè)的時(shí)鐘禁止,降低系統(tǒng)功耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1; / 使能SCI模塊

27、的時(shí)鐘 SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0; SysCtrlRegs.PCLKCR.bit.SPIENCLK=0; SysCtrlRegs.PCLKCR.bit.ECANENCLK=0; SysCtrlRegs.PCLKCR.bit.ADCENCLK=0; EDIS;void SCI_Init(void)SciaRegs.SCICCR.all =0x13; / 2bit 停止位 無(wú)循環(huán)模式 / 無(wú)極性, 字符長(zhǎng)度:8 bits, / 異步模式, 空閑線協(xié)議SciaRegs.SCICTL1

28、.all =0x0003; / 使能 TX, RX, 內(nèi)部 SCICLK, / 禁止 RX ERR, SLEEP, TXWAKESciaRegs.SCIHBAUD = 0; / 波特率:19200(LSPCLK = 37.5MHz) ; SciaRegs.SCILBAUD = 0xf3; SciaRegs.SCICTL1.all =0x0023;/ 使SCI退出復(fù)位 題目六:02134576應(yīng)用DSP處理器的SPI接口,以查詢方式實(shí)現(xiàn)低電平點(diǎn)亮LED循環(huán)顯示16進(jìn)制字符“0F”功能(LED定義如左圖所示),SPI配置為上升沿?zé)o延時(shí)發(fā)送,數(shù)據(jù)長(zhǎng)度為8位,波特率最小值,試設(shè)計(jì)給出相關(guān)程序代碼。#include "DSP28_Device.h"Uint16 table15=0xc000,0xf900,0xA400,0xB000,0x9900,0x9200,0x8200,0xF800,0x8000,0x9000,0x8800,0x8300,0xc600,0xa100,0x8600,0x8e00; void spi_intial() /

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論