ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:2.26MB ,
资源ID:20693391      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20693391.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP能力培训课题报告Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP能力培训课题报告Word下载.docx

1、三、指导教师评语 四、成 绩 指导教师 (签章) 年 月 日 第一章 DSP概述1.1 DSP简介DSP通常指的是执行这些功能的芯片或处理器。广义来说,数字信号处理(Digital Signal Processing,简称DSP)技术是指数字信号处理理论的应用实现技术,它以数字信号处理理论、硬件技术、软件技术为基础和组成,研究数字信号处理算法及其实现方法。而DSP芯片即指能够实现数字信号处理技术的芯片。DSP的实现方法一般有以下几种:在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;在通用计算机系统中加上专用的加速处理机实现;用通用的单片机(如MCS-51、96系列等)实现,

2、这种方法可用于一些不太复杂的数字信号处理,如数字控制等;用通用的可编程DSP实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。在上述几种方法中,第1种方法的缺点是速度较慢,一般可用于DSP算法的模拟;第2种和第5种方法专用性强,应用受到很大的限制,第2种方法也不便于系统的独立运行;第3种方法只适用于实现简单的DSP算法;只有第4种

3、方法才使数字信号处理的应用打开了新的局面。1.2 DSP芯片的分类及应用DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:1 在一个指令周期内可完成一次乘法和一次加法;图1-1 CPU原理结构程序和数据空间分开,可以同时访问指令和数据;片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;具有低开销或无开销循环及跳转的硬件支持;快速的中断处理和硬件I/O支持;具有在单周期内操作的多个硬件地址产生器;可以并行执行多个操作;支持流

4、水线操作,使取指、译码和执行等操作可以重叠执行,等。与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。图1-2 DSP芯片实物图1-3 DSP芯片内部结构DSP芯片可以按照下列三种方式进行分类。1按基础特性分这是根据DSP芯片的工作时钟和指令类型来分类的。如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。例如,日本OKI 电气公司的DSP芯片、TI公司的TMS320C2XX系列芯片属于这一类。如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称为一致性D

5、SP芯片。例如,美国TI公司的TMS320C54X就属于这一类。2按数据格式分这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。不同浮点DSP芯片所采用

6、的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3X,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。3按用途分按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就属于专

7、用型DSP芯片目前,DSP芯片主要应用于信号处理、图像处理、仪器、声音语言、控制、军事、通讯、医疗、家用电器等领域。第二章 CCS软件的使用本次课题任务编程所需要的编程软件使用的是CCS4.0版本,DSP硬件仿真器为XDS100V2,TMS320F2812 CPU板。2.1工程创建第一步:菜单“FileNewCCS Project(中文版本:文件新建CCS项目)”如下图2-1所示。图2-1 工程创建第二步:在“ Project Name(项目名称) ”字段中,键入新项目的名称。若选中“Use default location(使用默认位置)”选项(默认启用),将会在工作区文件夹中创建项目。取消

8、选中该选项可以选择一个新位置(使用“Browse.(浏览. )”按钮)。将项目命名为“first ”。第三步:在“Target”菜单中选择要使用的芯片类型。第四步:在“Connetion”里选择调试器。第五步:单击“Finish(完成)”创建项目。如图2-2所示。图2-2 工程创建第六步:要为项目创建文件,请在“C/C+ Projects(C/C+ 项目)”(路径:工具栏WindowShowViewOther下的C/C+C/C+ Projects)视图中右键单击项目名称,并选择“NewSource File(新建源文件)”。在打开的文本框中,键入包含与源代码类型对应的有效扩展名(.c 、.C、

9、.cpp、.c+、.asm、.s64、.s55等)的文件名称。单击“Finish (完成)”。在创建了项目并且添加或创建了所有文件之后,需要生成项目。只需转到菜单“ProjectBuild Active Project(项目生成活动项目)”。注意需要添加头文件等必要操作。建立完成后的工程界面如图2-3所示。图2-3 工程界面2.2仿真操作建立一个TMS320F2812芯片和XDS100V2的配置文件,启动并连接上,然后将视图切换到“CCS Edit”下,将导入的工程的CMD文件从“2812.cmd(烧写所用CMD 文件)”替换成“2812_RAM_lnk.cmd(仿真所用CMD文件)”, 然后

10、右击工程选择“Build Project”进行编译,编译没有错误后会在Workspace(工作区间)的工程文件夹下的Debug文件夹里产生一个.out文件),加载这个“.out”文件后即可进行仿真操作,详细操作见下图2-4所示。图2-4 仿真操作CMD文件更改过后,将视图切换到“CCS Debug”视图下进行工程的加载(步骤:点击“工具栏RunLoadLoad Program”),详见下图2-5所示。图2-5 仿真操作接着在出现的对话框里进行如下图2-6所示操作。图2-6 仿真操作加载完成后点击运行,即可观察到开发板上的现象。第三章 CPU和 EVA定时器的使用本章将描述如何采用CPU定时器和

11、EVA定时器控制LED灯的亮灭时间间隔,以及如何采用中断按键切换此两种模式。3.1 GPIO寄存器DSP2812 GPIO模块分为三类I/O口。对GPIO模块的设置主要通过三类寄存器来完成,分别是:控制寄存器、数据寄存器、中断寄存器。1. 控制寄存器GPxCTRL; / GPIO x Control Register (GPIO0 to 31)/设置采样窗周期T=2*GPXCTRL*Tsysclk;GPxQSEL1; / GPIO x Qualifier Select 1 Register (GPIO0 to 15)(32-47) GPxQSEL2; / GPIO x Qualifier Se

12、lect 2 Register (GPIO16 to 31)(48-63)/每两位控制/一个引脚,确定是3周期采样还是6周期采样或者不用采样GPxMUX1; / GPIO x Mux 1 Register (GPIO0 to 15)(32-47)(64-79)GPxMUX2; / GPIO x Mux 2 Register (GPIO16 to 31)(48-63)(80-95) /配置各个引脚的功能,0:I/O功能,1:外设功能。GPxDIR; / GPIO x Direction Register (GPIO0 to 31)(32-63)(64-95) /配置每个引脚是输入还是输出,0:数

13、字量输入;1:数字量输出。GPxPUD; / GPIO x Pull Up Disable Register (GPIO0 to 31)(32-63)(64-95) /使能或禁止内部上拉 0:开启上拉,1:禁止上拉2. 数据寄存器GPxDAT; / GPIO Data Register (GPIO0 to 31)(32-63)(64-95)GPxSET; / GPIO Data Set Register (GPIO0 to 31)(32-63)(64-95)置位GPxCLEAR; / GPIO Data Clear Register (GPIO0 to 31)(32-63)(64-95)GPx

14、TOGGLE; / GPIO Data Toggle Register (GPIO0 to 31)(32-63)(64-95) 反转3. 中断寄存器GPIOXINT1SEL; / XINT1 GPIO Input SelectionGPIOXINT2SEL; / XINT2 GPIO Input SelectionGPIOXNMISEL; / XNMI_Xint13 GPIO Input SelectionGPIOXINT3SEL; / XINT3 GPIO Input SelectionGPIOXINT4SEL; / XINT4 GPIO Input SelectionGPIOXINT5SE

15、L; / XINT5 GPIO Input SelectionGPIOXINT6SEL; / XINT6 GPIO Input SelectionGPIOXINT7SEL; / XINT7 GPIO Input SelectionGPIOLPMSEL; / Low power modes GP I/O input select具体的详细配置在TI官方的头文件DSP2812x_Gpio.h中。3.2 CPU定时器TMS320F2812的CPU Time有三个,分别为Timer0、Timer1和Timer2,其中Timer2是为操作系统DSP/BIOS保留的,当未移植操作系统时,可用来做普通的定时

16、器。这三个定时器的中断信号分别为TINT0、TINT1和TINT2,分别对应于中断向量INT1、INT13和INT14。图3-1为定时器0的结构图,图中TIMH:TIM为计数寄存器,PRDH:PRD为周期寄存器,形如AH格式:A的形式表示一个32位的寄存器,是由两个16位的寄存器构成,AH是高16位,A是低16位。图3-1 定时器0结构CPU定时器的计数复位时,计数寄存器TIMH:TIM加载周期寄存器PRDH:PRD所设定的值,经历一个计数器时钟后,TIMH:TIM内的值就减1,一直减到0,这时产生定时器周期中断事件,并重新装载PRDH:PRD所设定的值,重新开始计数。至于每隔多少时间,计数寄

17、存器TIMH:TIM的值才会减1则由预分频寄存器TPRH:TPR来决定。TPRH和TPR这两个寄存器由两部分组成,高8位为定时器预分频计数器PSC,低8位是定时器分频TDDR。也即是说:TPRH是由PSCH和TDDRH构成,而TDDR由PSC和TDDR构成。且其工作的原理与51系列单片机定时器计数器类似,复位时,PSCH:PSC加载TDDRH:TDDR所设定的值,然后经过一个CPU时钟,PSCH:PSC的值减1,当PSCH:PSC的值减到0时,会再次装载TDDRH:TDDR所设定的值,并且产生一个计数器时钟,TIMH:TIM减1。TI官方库中提供的定时器配置函数如下(头文件为DSP2833x_

18、CpuTimers.h):void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;/ 定时器周期参数初始化:Timer-CPUFreqInMHz = Freq; /频率PeriodInUSec = Period; /周期temp = (long) (Freq * Period);RegsAddr-PRD.all = temp; /周期寄存器设定值为timer/ 预分频寄存器初始化为1 (SYSCLKOUT):TPR.all = 0;TPRH.all = 0;/ 定时器控制寄存器初

19、始化:TCR.bit.TSS = 1; / 1 = 停止定时器, 0 = 启动/重启定时器TCR.bit.TRB = 1; / 1 = 重载计时器TCR.bit.SOFT = 1; / 定时器自由运行TCR.bit.FREE = 1;TCR.bit.TIE = 1; / 0 = 禁止/ 1 = 定时器中断使能/ 复位中断计数器:InterruptCount = 0;上述函数ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)中的形参Timer为第几位定时器,Freq为定时频率,Period为计时周期。假若Fr

20、eq为15,Period为1000000,则时间t = 1*15*1000000/150M = 0.1s (系统时钟频率为150M)。不过这个算式的成立是有条件的,这个条件就是以下两条语句:如果要利用定时器产生一定周期的时间中断,在主函数中设置响应的中断向量即可。3.3 EV事件管理器事件管理器为用户提供了强大的控制功能,特别是在运动控制和电机控制领域。TMS320F2812提供两个具有相同结构和功能的事件管理器模块EVB和EVA,可用于多电机控制。每个事件管理器模块包含通用定时器、全比较/PWM单元、捕获单元及正交编码脉冲电路等部分,可以通过一个三相逆变桥来满足功率互补控制,同时还可以提供两

21、个非互补的PWM信号。每个事件管理器模块都有两个通用定时器、3个比较单元、3个捕获单元以及1个正交编码电路。EVA包含通用定时器1和2,EVB包含通用定时器3和4。这些定时器模块可以根据需要单独使用,如在控制系统中采样周期,为捕获单元、正交编码电路、比较单元和PWM产生电路提供时基等。通用定时器是用来计时的,而且每个定时器还能产生1路独立的PWM波形。比较单元主要功能就是用来生成PWM波形的,EVA具有3个比较单元,每个单元可以生成一对(两路)互补的PWM波形,生成的6路PWM波形正好可以驱动一个三相桥电路。捕获单元的功能是捕捉外部输入脉冲波形的上升沿或者下降沿,可以统计脉冲的间隔,也可以统计

22、脉冲的个数。正交编码电路可以对输入的正交脉冲进行编码和计数,它和光电编码器相连可以获得旋转机械部件的位置和速率等信息。图3-2 EV事件管理器时钟模块3.4 外设中断扩展模块PIETMS320F2812的CPU能够支持一个不可屏蔽中断NMI和16个可屏蔽的中断INT1-INT14、RTOSINT和DLOGINT,2812的CPU为了能够及时有效的处理好各个外设的中断请求,设计了一个专门处理外设中断的扩展模块(the Peripheral Interrupt Expansion block),叫做外设中断控制器PIE,它能够对各种中断请求源(例如来自于外设或者其他外部引脚的请求)做出判断以及相应

23、的决策。PIE可以支持96个不同的中断,这些中断分成了12个组,每个组有8个中断,而且每个组都被反馈到CPU内核的12 条中断线中的某一条上(INT1-INT12)。PIE 目前只使用了96 个终端中的45 个,其他的等待将来的功能扩展。图3-3 PIE内部中断分布图PIE内部的中断8列12行,总共有96个中断,黄色部分表示已经使用的中断,例如:查看事件管理器EVA中定时器T1的周期中断T1PINT-T1PINT在行号为INT2,列号为INTx.4的位置,也就是说T1IPNT对应于INT2,是INT2中的第四个中断。图3-4 3级中断机制3.5 控制程序本程序既是实现分别采用CPU定时器和EV

24、A定时器控制LED灯的亮灭时间间隔,并采用中断按键切换此两种模式的功能。程序如下:#include DSP28_Device.hDSP28_Globalprototypes.hinterrupt void ISRTimer2(void);interrupt void ExtIntISR(void);interrupt void eva_timer1_isr(void);void init_eva_timer1(void);Uint16 EVAcount=0;Uint16 LedCount=0;Uint16 Flag=0; /记录按键所按次数Uint16 flag_change=0; /定时器模

25、式切换标志位/ * *主函数*/void main(void)InitSysCtrl(); /初始化系统 DINT; /关中断 IER = 0x0000; IFR = 0x0000; InitPieCtrl(); /初始化PIE InitPieVectTable(); /初始化PIE中断矢量表 InitCpuTimers(); /初始化定时器寄存器的地址指针 init_eva_timer1(); /初始化EV-A定时器1 InitGpio(); /初始化IO口 InitXIntrupt(); /初始化外部中断 EALLOW; /*将相应的向量指向中断服务程序,中断发生时,自动跳转*/ PieV

26、ectTable.T1PINT = &eva_timer1_isr; /EV_A定时器中断服务程序 PieVectTable.TINT2 = &ISRTimer2; /定时器2中断服务程序 PieVectTable.XINT1 = &ExtIntISR; /外部中断服务程序 EDIS; ConfigCpuTimer(&CpuTimer2, 50, 100000); /设置CPU定时器方式、频率、装载初值 StartCpuTimer2(); /起动CPU定时器2 /*开中断*/ IER |= M_INT1; IER |= M_INT2 ; IER |= M_INT14; PieCtrl.PIEI

27、ER1.bit.INTx7=1; PieCtrl.PIEIER1.bit.INTx4=1;PieCtrl.PIEIER2.all = M_INT4; /使能PIE中断INT2.4(T1PINT中断) EINT; /开总中断 ERTM; /开定时器中断 GpioDataRegs.GPFDAT.bit.GPIOF14 = 1; for(;); * EVA定时器1初始化函数void init_eva_timer1(void) EvaRegs.GPTCONA.all = 0; EvaRegs.T1PR = 0x1200; / Period-周期值 EvaRegs.T1CMPR = 0x0000; /

28、Compare Reg-比较值 EvaRegs.EVAIMRA.bit.T1PINT = 1; /清除周期EV-A定时器1中断位 EvaRegs.EVAIFRA.bit.T1PINT = 1; EvaRegs.T1CNT = 0x0000; /计数器初值 EvaRegs.T1CON.all = 0x1042; /递增模式,x/1分频,内部时钟,使能比较,使用自己的周期,立即启动定时器计数 * CPU定时器2中断服务函数interrupt void ISRTimer2(void)LedCount+; if(flag_change=1) /按键次数为偶数时为CPU定时器中断控制 if (LedCount2) GpioDataRegs.GPFDAT.bit.GPIOF14 = 1; /LED灯灭 else if (LedCount4)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1