哈工大DSP课程报告_第1页
哈工大DSP课程报告_第2页
哈工大DSP课程报告_第3页
哈工大DSP课程报告_第4页
哈工大DSP课程报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2015年秋季学期《DSP原理及应用》课程课程设计报告院系:航天工程与力学系班号:1218201_____学号:1122110326___姓名:高小宁______2016年1月13日

审阅教师:考核成绩:________________题目一:结合学习过的DSP基本知识,试论述如果采用DSP为核心器件设计系统,需要考虑哪些性能指标、遵循哪些设计原则?运算速度:首先我们要确定数字信号处理的算法,算法确定以后其运算量和完成时间也就大体确定了,根据运算量及其时间要求就可以估算DSP芯片运算速度的下限。在选择DSP芯片时,各个芯片运算速度的衡量标准主要有:

1、MIPS(Millions

of

Instructions

Per

Second),百万条指令/秒,一般DSP为20~100MIPS,使用超长指令字的TMS320B2XX为2400MIPS。必须指出的是这是定点

DSP芯片运算速度的衡量指标,应注意的是,厂家提供的该指标一般是指峰值指标,因此,系统设计时应留有一定的裕量。

2、MOPS(Millions

of

Operations

Per

Second),每秒执行百万操作。这个指标的问题是什么是一次操作,通常操作包括CPU操作外,还包括地址计算、DMA访问数据传输、I/O操作等。一般说MOPS越高意味着乘积-累加和运算速度越快。MOPS可以对DSP芯片的性能进行综合描述。

3、MFLOPS(Million

Floating

Point

Operations

Per

Second),百万次浮点操作/秒,这是衡量浮点DSP芯片的重要指标。例如TMS320C31在主频为40MHz时,处理能力为40MFLOPS,

TMS320C6701在指令周期为6ns时,单精度运算可达1GFLOPS。浮点操作包括浮点乘法、加法、减法、存储等操作。应注意的是,厂家提供的该指标一般是指峰值指标,因此,系统设计时应注意留有一定的裕量。InitSystem(); //初始化DSP内核寄存器Gpio_select(); //配置GPIO复用功能寄存器InitPieCtrl(); //调用外设中断扩展初始化单元PIE-unit(代码:DSP281x_PieCtrl.c) InitPieVectTable();//初始化PIEvector向量表(代码:DSP281x_PieVect.c) //重新映射PIE-Timer0的中断EALLOW;//解除寄存器保护PieVectTable.TINT0=&cpu_timer0_isr;EDIS;//使能寄存器保护 InitCpuTimers(); //配置CPU-Timer0周期50ms: //150MHzCPU频率,50000微秒中断周期ConfigCpuTimer(&CpuTimer0,150,50000);//使能PIE内的TINT0:Group1interrupt7PieCtrlRegs.PIEIER1.bit.INTx7=1; //使能CPUINT1(连接到CPU-Timer0中断)IER=1;EALLOW; //解除寄存器保护PieVectTable.TXAINT=&SCI_TX_isr;EDIS;//使能寄存器保护//使能PIE内的SCI_A_TX_INT中断PieCtrlRegs.PIEIER9.bit.INTx2=1;//使能CPUINT9IER|=0x100; //全局中断使能和更高优先级的实时调试事件EINT;//全局中断使能INTMERTM;//使能实时调试中断DBGM CpuTimer0Regs.TCR.bit.TSS=0;//启动定时器0 SCI_Init();while(1) { while(CpuTimer0.InterruptCount<60)//等待50ms*60 { EALLOW; SysCtrlRegs.WDKEY=0x55; SysCtrlRegs.WDKEY=0xAA; //看门狗控制 EDIS; } CpuTimer0.InterruptCount=0;//复位计数器 index=0; SciaRegs.SCITXBUF=message[index++]; }} voidGpio_select(void){EALLOW;GpioMuxRegs.GPAMUX.all=0x0; //所有GPIO端口配置为I/OGpioMuxRegs.GPBMUX.all=0x0;GpioMuxRegs.GPDMUX.all=0x0;GpioMuxRegs.GPFMUX.all=0x0; GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5=1;//配置SCI-RXGpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;//配置SCI-TXGpioMuxRegs.GPEMUX.all=0x0;GpioMuxRegs.GPGMUX.all=0x0; GpioMuxRegs.GPADIR.all=0x0; //GPIOPORT配置为输入GpioMuxRegs.GPBDIR.all=0x0;GpioMuxRegs.GPDDIR.all=0x0; GpioMuxRegs.GPEDIR.all=0x0; GpioMuxRegs.GPFDIR.all=0x00FF; GpioMuxRegs.GPGDIR.all=0x0; GpioMuxRegs.GPAQUAL.all=0x0; //设置所有GPIO输入的量化值等于0GpioMuxRegs.GPBQUAL.all=0x0;GpioMuxRegs.GPDQUAL.all=0x0;GpioMuxRegs.GPEQUAL.all=0x0;EDIS;}voidInitSystem(void){ EALLOW; SysCtrlRegs.WDCR=0x00AF; //配置看门狗 //0x00E8禁止看门狗,预定标系数Prescaler=1 //0x00AF不禁止看门狗,预定标系数Prescaler=64 SysCtrlRegs.SCSR=0; //看门狗产生复位 SysCtrlRegs.PLLCR.bit.DIV=10; //配置处理器锁相环,倍频系数为5 SysCtrlRegs.HISPCP.all=0x1;//配置高速外设时钟分频系数:2 SysCtrlRegs.LOSPCP.all=0x2;//配置低速外设时钟分频系数:4 //使用的外设时钟时钟设置: //一般不使用的外设的时钟禁止,降低系统功耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;//使能SCI模块的时钟 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;}voidSCI_Init(void){ SciaRegs.SCICCR.all=0x13; //2bit停止位无循环模式 //无极性,字符长度:8bits, //异步模式,空闲线协议 SciaRegs.SCICTL1.all=0x0003; //使能TX,RX,内部SCICLK, //禁止RXERR,SLEEP,TXWAKE SciaRegs.SCIHBAUD=0;//波特率:19200(LSPCLK=37.5MHz); SciaRegs.SCILBAUD=0xf3; SciaRegs.SCICTL2.bit.TXINTENA=1; //使能SCI发送中断 SciaRegs.SCICTL1.all=0x0023; //使SCI退出复位}interruptvoidcpu_timer0_isr(void){CpuTimer0.InterruptCount++; //每个定时器中断清除一次看门狗计数器 //响应中断并允许系统接收更多的中断PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;}//===========================================================================//SCI_A发送中断服务程序//发送字符串message[]//===========================================================================interruptvoidSCI_TX_isr(void){ if(index<26)SciaRegs.SCITXBUF=message[index++]; //重新初始化PIE为下一次SCI-ATX准备接收下一次中断PieCtrlRegs.PIEACK.all=0x0100;//响应中断}题目五:采用查询方式实现题目四中功能,SCI配置要求相同,使用发送移位寄存器空标志位TXEMPTY触发发送数据,软件延时方法控制间隔时间3秒,试给出相关程序代码。#include"DSP281x_Device.h"//使用的函数声明voidGpio_select(void);voidInitSystem(void);voidSCI_Init(void);voidmain(void){charmessage[]={"TheF2812-UARTisfine!\n\r"};intindex=0; //字符指针定义longi;InitSystem(); //初始化DSP内核寄存器Gpio_select(); //配置GPIO复用功能寄存器SCI_Init();//SCI接口初始化while(1){SciaRegs.SCITXBUF=message[index++];while(SciaRegs.SCICTL2.bit.TXEMPTY==0); //状态检测模式: //状态检测,等待发送标识为空:TXEMPTY=0EALLOW;SysCtrlRegs.WDKEY=0x55; //看门狗控制SysCtrlRegs.WDKEY=0xAA;EDIS;if(index>26){ index=0; for(i=0;i<15000000;i++)//软件延时,近似2秒. { EALLOW; SysCtrlRegs.WDKEY=0x55; //看门狗控制 SysCtrlRegs.WDKEY=0xAA;//看门狗控制 EDIS; }}}} voidGpio_select(void){EALLOW;GpioMuxRegs.GPAMUX.all=0x0; //所有GPIO端口配置为I/OGpioMuxRegs.GPBMUX.all=0x0;GpioMuxRegs.GPDMUX.all=0x0;GpioMuxRegs.GPFMUX.all=0x0; GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5=1;//配置SCI-RXGpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;//配置SCI-TXGpioMuxRegs.GPEMUX.all=0x0;GpioMuxRegs.GPGMUX.all=0x0; GpioMuxRegs.GPADIR.all=0x0; //GPIOPORT配置为输入GpioMuxRegs.GPBDIR.all=0x0;GpioMuxRegs.GPDDIR.all=0x0; GpioMuxRegs.GPEDIR.all=0x0; GpioMuxRegs.GPFDIR.all=0x0; GpioMuxRegs.GPGDIR.all=0x0; GpioMuxRegs.GPAQUAL.all=0x0; //设置所有GPIO输入的量化值等于0GpioMuxRegs.GPBQUAL.all=0x0;GpioMuxRegs.GPDQUAL.all=0x0;GpioMuxRegs.GPEQUAL.all=0x0;EDIS;}voidInitSystem(void){ EALLOW; SysCtrlRegs.WDCR=0x00AF; //配置看门狗 //0x00E8禁止看门狗,预定标系数Prescaler=1 //0x00AF不禁止看门狗,预定标系数Prescaler=64 SysCtrlRegs.SCSR=0; //看门狗产生复位 SysCtrlRegs.PLLCR.bit.DIV=10; //配置处理器锁相环,倍频系数为5 SysCtrlRegs.HISPCP.all=0x1;//配置高速外设时钟分频系数:2 SysCtrlRegs.LOSPCP.all=0x2;//配置低速外设时钟分频系数:4 //使用的外设时钟时钟设置: //一般不使用的外设的时钟禁止,降低系统功耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;//使能SCI模块的时钟 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;}voidSCI_Init(void){ SciaRegs.SCICCR.all=0x13; //2bit停止位无循环模式 //无极性,字符长度:8bits, //异步模式,空闲线协议 SciaRegs.SCICTL1.all=0x0003; //使能TX,RX,内部SCICLK, //禁止RXERR,SLEEP,TXWAKE SciaRegs.SCIHBAUD=0;//波特率:19200(LSPCLK=37.5MHz); SciaRegs.SCILBAUD=0xf3; SciaRegs.SCICTL1.all=0x0023; //使SCI退出复位}题目六:02134502134576#include"DSP28_Device.h"Uint16table[15]={0xc000,0xf900,0xA400,0xB000,0x9900,0x9200,0x8200,0xF800,0x8000,0x9000,0x8800,0x8300,0xc600,0xa100,0x8600,0x8e00};voidspi_intial()//SPI初始化子程序{ EALLOW; SpiaRegs.SPICCR.all=0x0047;//使SPI处于复位模式,下降沿,8位数据 SpiaRegs.SPICTL.all=0x0006;//主控模式,一般时钟模式,使能talk,关闭SPI中断 SpiaRegs.SPIBRR=0x007F;//配置波特率 SpiaRegs.SPICCR.all=SpiaRegs.SPICCR.all|0x00C7;//退出复位状态 EALLOW; GpioMuxRegs.GPFMUX.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论