1、目 录一、设计的目的和意义3页二、CCS软件概述 3页2.1 CCS软件安装3页2.2 CCS软件设置3页2.3 CCS软件启动5页2.4 CCS软件退出6页2.5 CCS软件应用6页三、基于DSP原理及应用的课程设计题目选择 7页3.1基于DSP的定时器的系统设计7页3.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计 7页3.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计7页3.4基于DSP5000的电机控制方案设计7页四、设计原理概述 7页4.1基本原理概述7页4.2基于DSP的定时器的系统设计原理7页4.3基于DSP5000系列的有限冲击响应滤波器(F
2、IR)的系统设计原理8页4.4基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计原理8页4.5基于DSP5000的电机控制方案设计原理 8页五、程序设计流程图9页5.1基于DSP的定时器的系统设计流程图10页5.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计流程图11页5.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计流程图12页5.4基于DSP5000的电机控制方案设计流程图13页六、主要工程文件程序代码 14页6.1基于DSP的定时器的系统设计主要工程文件代码15页6.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计主要工程文
3、件代码16页6.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计主要工程文件代码17页6.4基于DSP5000的电机控制方案设计主要工程文件代码 19页七、设计结果分析18页7.1基于DSP的定时器的系统设计结果分析19页7.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计结果分析20页7.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计结果分析21页7.4基于DSP5000的电机控制方案结果分析22页八、参考资料及实验设备 22页九、课程设计心得 23页一、课程设计的目的一、课程设计的目的:(1)掌握如何使用DSP仿真平台;掌握DSP内部结构和
4、工作原理;熟悉DSP的指令系统;熟悉用DSP实现各种基本算法。(2)熟悉VC5509A 的定时器;掌握VC5509A 定时器的控制方法;掌握VC5509A 的中断结构和对中断的处理流程;学会C 语言中断程序设计,以及运用中断程序控制程序流程。(3)掌握用窗函数法设计FIR 数字滤波器的原理和方法;熟悉线性相位FIR 数字滤波器特性;了解各种窗函数对滤波器特性的影响。(4)了解ICETEK-VC5509-A 板上语音codec 芯片TLV320AIC23 的设计和程序控制原理;了解数字回声产生原理、编程及其参数选择、控制;熟悉VC5509DSP 扩展存储器的编程使用方法。 二、CCS软件概述2.
5、1. CCS 软件安装 1CCS 软件安装在硬盘上建立一个临时目录,如:c:install。将实验箱附带的教学光盘插入计算机光盘驱动器。打开教学光盘的“CCS 开发软件”目录,用鼠标右键单击文件ccs5000.exe 打开第步建立的临时文件夹,双击其中的“Setup.exe”,进入安装程序。选择“Code Composer Studio”,按照安装提示进行安装,并重新启动计算机。安装完毕,桌面上出现两个新的图标.清空在第步建立的临时文件夹。按照第步的方法,安装“CCS 开发软件”目录中的压缩文件2安装DSP 通用仿真器:仿真器的Windows 驱动程序;仿真器在CCS 环境中的驱动程序。3.安
6、装实验程序:将教学光盘上的“软件测试程序”目录中的“ICETEK-VC5509-EDULab”子目录复制到C:上,并将目录中所有文件(包含子目录中的文件)的只读属性去除。4安装初始化仿真器程序 将“C:ICETEK-VC5509-EDULab”目录下的“ICETEKEMUReset.bat”复制到“c:ticcbin”目录。将“C:ICETEK-VC5509-EDULab”目录下的“icetek.cfg”复制到“c:ticcbinBrdDat”目录。用鼠标右键单击“C:ICETEK-VC5509-EDULab”目录下的“初始化ICETEK-5100 USB2.0仿真器”文件名,选择“发送到”-
7、“桌面快捷方式”。2.2. CCS 软件设置1设置CCS 工作在软件仿真环境,CCS 可以工作在纯软件仿真环境中,就是由软件在PC 机内存中构造一个虚拟的DSP 环境,可以调试、运行程序。但一般软件无法构造DSP 中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件2.双击桌面上图标:进入CCS 设置窗口。3.在出现的窗口中按标号顺序进行如下设置:接着在下面出现的窗口中选择“否(N)”。此时CCS 已经被设置成Simulator 方式(软件仿真TMS320VC5509 器件的方式),如果一直使用这一方式就不需要重新进行以上设置操作
8、了。4设置CCS 通过ICETEK-5100USB 仿真器连接ICETEK-VC5509-A 硬件环境进行软件调试和开发:双击桌面上图标:进入CCS 设置窗口。在出现的窗口中按标号顺序进行如下设置:接着在下面的窗口中按标号顺序进行如下选择:在出现的窗口中按标号顺序进行如下设置:在出现的窗口中按标号顺序进行如下设置:以上设置完成后,CCS 已经被设置成Emulator 的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB 仿真器连接ICETEK-VC5509-A 评估板。如果您需要一直使用这一方式就不需要重新进行以上设置操作了。2.3. CCS 软件启动1启动Simul
9、ator 方式:双击桌面上图标:2启动Emulator 方式: 首先将实验箱电源关闭。连接实验箱的外接电源线。 检查ICETEK-5100USB 仿真器的黑色JTAG 插头是否正确连接到ICETEK-VC5509-A 板的J1 插头上。注:仿真器的插头中有一个孔加入了封针,与J1 插头上的缺针位置应重合,保证不会插错。 检查是否已经用电源连接线连接了ICETEK-VC5509-A 板上的POW1 插座和实验箱底板上+5V 电源插座。 检查其他连线是否符合实验要求。检查实验箱上三个拨动开关位置是否符合实验要求。 打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。ICETE
10、K-VC5509-A 板上指示灯D5 和D6 点亮。如果打开了ICETEK-CTR 的电源开关,ICETEK-CTR 板上指示灯L1、L2 和L3 点亮。如果打开了信号源电源开关,相应开关边的指示灯点亮。 用实验箱附带的USB 信号线连接ICETEK-5100USB 仿真器和PC 机后面的USB 插座,注意ICETEK-5100USB 仿真器上指示灯Power 和Run 灯点亮。 双击桌面上仿真器初始化图标如果出现下面提示窗口,表示初始化成功,按一下空格键进入下一步操作。如果窗口中没有出现“按任意键继续”,请关闭窗口,关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第步重试。如果窗口中出现“
11、The adapter returned an error.”,并提示“按任意键继续”,表示初始化失败。 双击桌面上图标:启动CCS2.21。如果进入CCS 提示错误,先选“Abort”,然后用“初始化ICETEK-5100 USB2.0 仿真器”初始化仿真器,如提示出错,可多做几次。如仍然出错,拔掉仿真器上USB 接头(白色方形),按一下ICETEK-VC5509-A 板上S1 复位按钮,连接USB 接头,再做“初始化ICETEK-5100USB2.0 仿真器”。2.4. CCS 软件退出2.5. CCS 软件应用1可创建工程:通过Code Composer Studio 2.21创建工程,
12、完成系统的软件开发和调试。2可编辑修改工程中的文件:可查看工程文件,查看源文件,编辑修改源文件,修改工程文件的设置。3可实现基本调试功能:设置软件调试断点,利用断点调试程序。4可使用观察窗口:在观察窗口中双击变量,则可以在这个窗口中改变变量的5可使用文件输入/输出:从PC 机上加载数据到DSP 上,用于利用已知的数据流测试算法。6可使用图形功能:使用CCS 的图形功能检验结果三、基于DSP原理及应用的课程设计题目3.1基于DSP的定时器的系统设计3.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计3.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计3.4基于DS
13、P5000的电机控制方案设计四、设计原理概述4.1基本原理概述一、数字信号处理的基本理论,包括信号处理系统的概念、离散时间信号处理系统的基本分析方法、连续时间系统的离散化处理等。二、利用科学计算软件MATLAB来帮助求解数字信号理论的内容。三、DSP器件的基本理论,包括器件的结构(总线、CPU、寄存器、存储器等)和工作原理,器件中片内外部设备(定时器、计数器、串行I/O接口等)的工作原理,器件的代数指令系统等。四、DSP仿真开发技术基本理论。4.2基于DSP的定时器的系统设计原理1通用定时器介绍及其控制方法(详见spru595b.pdf): TMS320VC5509A 内部有两个20 位通用定
14、时器(GP): *每个通用定时器包括: -1个16 位的减计数的计数器TIM; -1个16 位的定时器周期寄存器PRD; -1个16 位的定时器控制寄存器TCR; -1个16 位的定时器预定标寄存器PSCR;PSCR 寄存器说明:PSC:4 位的预定标值,与TIM 共同组成20 位的定时计数器;TDDR:预定标周期寄存器(在需要时重装入PSC 的值);TCR 寄存器说明(详见spru595b.pdf);2中断响应过程(详见spru595b.pdf):外设事件要引起CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被使能。在软件中,当设置好相应中断标志后,开中断,进入等待中断
15、发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1 会引起TINT中断),程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。3中断程序设计:-程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD和IPVH 的值确定向量表的实际地址。-注意观察程序中INTR_init()函数的定义部分,其中IPVD 和IPVH 的值都为0x0d0;同时观察配置文件ICETEK-VC5509-A.cmd 中的VECT 段描述中o=0x0d000。-向量表中每项为8 个字,存放一个跳转指令,跳转指令中的地址为相应服务
16、程序入口地址。第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口。-服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务。4.3基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计原理1有限冲激响应数字滤波器的基础理论。2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3数字滤波器系数的确定方法。4根据要求设计低通FIR 滤波器。要求:通带边缘频率10kHz,阻带边缘频率22kHz,阻带衰减75dB,采样频率50kHz。设计: -过渡带宽度=阻带边缘频率-通带边缘频率=22-10=12kHz -采样频率:f1=通带边
17、缘频率+(过渡带宽度)/2=10000+12000/2=16kHz;1=2f1/fs=0.64 -理想低通滤波器响应:h1n=sin(n1)/n/=sin(0.64n)/n/ -根据要求,选择布莱克曼窗,窗函数长度为:N=5.98fs/过渡带宽度=5.98*50/12=24.9 -选择N=25,窗函数为:wn=0.42+0.5cos(2n/24)+0.8cos(4n/24) -滤波脉冲响应为:hn=h1nwn |n|12;hn=0 |n|12 -根据上面计算,各式计算出hn,然后将脉冲响应值移位为因果序列。 -完成的滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002
18、xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19-0.002xn-20-0.002xn-21+0.001xn-22 4.4基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计原理1无限冲激响应数字滤波器的基础理论。2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器)。3数字滤波器系数的确定方法。4根据要求设计低通II
19、R 滤波器:要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB,12kHz处的阻带衰减为30dB,采样频率25kHz。设计:利用MATLAB输入函数【B,A】=BUTTER(28,0.54,LOW)得到系统函数的系数,由此可知道系统函数方程4.5基于DSP5000的电机控制方案设计原理第 对PWM控制直流电机的原理及构成的分析,设计一个采用数字信号处理器DSP5000系列结合L298N直流电机驱动器实现对电机的控制器。控制系统的功能为:根据键盘设定的电机转速和方向,自动控制电机的转速和正反转,实现电机转速的跟踪,显示,实现电机的手动控制,点动控制,正反转控制。 五、程序设计流程图
20、 5.1基于DSP的定时器的系统设计流程图5.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计流程图5.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计流程图5.4基于DSP5000的电机控制方案设计流程图DSP数字信号处理器LM298直流电机驱动器PWM方向键盘与显示信号调理电路反馈控制器直流电机测速传感器给定n系统功能模块化分初始化模块PWM模块键盘模块控制模块显示模块文档归类联合测试结束六、主要工程文件程序代码6.1基于DSP的定时器的系统设计主要工程文件代码1、clk_init.c文件内容#includemyapp.hvoid CLK_init()iop
21、ort unsigned int *clkmd; clkmd=(unsigned int *)0x1c00; *clkmd =0x21f3;/ 0x2033;/0x2413;/ 144MHz=0x2613void SetDSPPLL(unsigned int uPLL)ioport unsigned int *clkmd; clkmd=(unsigned int *)0x1c00; *clkmd =uPLL;void TMCR_reset( void ) ioport unsigned int *TMCR_MGS3=(unsigned int *)0x07FE; ioport unsigned
22、 int *TMCR_MM =(unsigned int *)0x07FF; *TMCR_MGS3 =0x510; *TMCR_MM =0x000;2、main.c文件内容#include myapp.h/ 定义指示灯寄存器地址和寄存器类型#define LBDS (*(unsigned int *)0x400001)void INTR_init( void );void TIMER_init(void);int nCount;main()nCount=0;CLK_init();SDRAM_init();LBDS=0;INTR_init();TIMER_init();while ( 1 )vo
23、id interrupt Timer()nCount+; nCount%=16;if ( nCount=0 )LBDS=1;void INTR_init( void )IVPD=0xd0;IVPH=0xd0;IER0=0x10;DBIER0 =0x10;IFR0=0xffff;asm( BCLR INTM);void TIMER_init(void)ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; tim0 = (unsigne
24、d int *)0x1000;prd0 = (unsigned int *)0x1001;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003; *tcr0 = 0x0B964; *tim0 = 0; *prd0 = 0x0ffff; *prsc0 = 2; *tcr0 = 0x00e0;3、ICETEK-VC5509-A.cmd工程文件内容-w-stack 500-sysstack 500-l rts55x.libMEMORY DARAM:o=0x100,l=0x07f00 VECT : o=0x0d000,l=0x100
25、DARAM2: o=0x0d100,l=0x1f00 SARAM: o=0x10000,l=0x30000 SDRAM:o=0x40000,l=0x3e0000SECTIONS.text: DARAM .vectors: VECT .trcinit: DARAM .gblinit: DARAM frt: DARAM .cinit: DARAM .pinit: DARAM .sysinit: DARAM .bss: DARAM2 .far: DARAM2 .const: DARAM .switch: DARAM .sysmem: DARAM .cio: DARAM .MEM$obj: DARAM
26、 .sysheap: DARAM .sysstack DARAM .stack: DARAM 6.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计主要工程文件代码1、fir.c工程文件内容 6.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计主要工程文件代码 6.4基于DSP5000的电机控制方案设计主要工程文件代码#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#define GPIODIR (*GPIODIR)#define GPIODATA (*GPIODATA)Define T
27、imer 0 s Registers -/ ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; ioport unsigned int GPIODIR=(unsigned int *)0x3400; ioport unsigned int GPIODATA=(unsigned int *)0x3401; / :- End of Define -/void InitMcBSP();unsigned int uN,nCount,nCo
28、unt1;unsigned char GetKey1()unsigned char dbReturn;dbReturn=GPIODATA; return dbReturn; main()unsigned char dbScanCode,dbOld; GPIODIR = 0x0010; dbScanCode=dbOld=0; nCount=nCount1=0; CLK_init();SDRAM_init();InitCTR();InitMcBSP(); uN=60; CTRGR=1; InitInterrupt();TIME_init(); while ( 1 ) dbScanCode=GetK
29、ey1(); dbScanCode&=0x000f;if ( dbScanCode=0x000e ) PCR1=0X2A08;/起始时从正转开始 Delay(20); else if ( dbScanCode=0x000d ) PCR1=0X2A02; /反转开始 Delay(20); else if ( dbScanCode=0x000b ) uN+=10; uN%=100; Delay(20); else if ( dbScanCode=0x0007 ) PCR1=0x000A; Delay(20); exit(0);void InitInterrupt(void)/ 设置中断控制寄存器I
30、VPD=0x80;IVPH=0x80;IER0=0x10;DBIER0 =0x10;IFR0=0xffff;asm( BCLR INTM);void interrupt Timer()/中断响应函数nCount+; nCount%=100;if ( nCountuN )PCR2|=4;elsePCR2&=0x0fffb;nCount1+; nCount1%=5120;void InitMcBSP()/ IOPin: McBSP2.FSR S22 /SPCR1.RRST_=0,PCR.RIOEN=1,PCR.FSRM=1,PCR.FSRP=0/1SPCR1_2&=0x0fffe;PCR2|=0x
31、1400;/ IOPin: McBSP1.CLKX S14 /SPCR2.XRST_=0,PCR.XIOEN=1,PCR.CLKXM=1,PCR.CLKXP=0/1SPCR2_1&=0x0fffe;PCR1|=0x2A00;/ IOPin: McBSP2.FSX S15,S22/SPCR2.XRST_=0,PCR.XIOEN=1,PCR.FSXM=1,PCR.FSXP=0/1/SPCR2_1&=0x0fffe;/PCR2|=0x3c00;void TIME_init(void)tim0 = (unsigned int *)0x1000;prd0 = (unsigned int *)0x1001
32、;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003; *tcr0 = 0x04f0; *tim0 = 0; *prd0 = 0x0100; *prsc0 = 2; *tcr0 = 0x00e0;七、设计结果分析7.1基于DSP的定时器的系统设计结果分析一设计程序分析:由于控制指示灯闪烁的延时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。实验程序的工程中包含了两种源代码,主程序采用C 语言编制利于控制,中断向量表在vector.asm 汇编语言文件中,利于直观地控制存储区
33、分配。在工程中只需将它们添加进来即可,编译系统会自动识别分别处理完成整合工作。实验程序的C 语言主程序中包含了内嵌汇编语句,提供一种在需要更直接控制DSP 状态时的方法,同样的方法也能提高C 语言部分程序的计算效率。二设计结果1指示灯在定时器的定时中断中按照设计定时2.7s闪烁。2.使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP 定时启动A/D 转换,日常生活中的计时器计数、空调的定时启动和关闭等。3在调试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵活的闪烁方式可表达多种状态信息7.2基于DSP5000系列的有限冲击响应滤波器(FIR)的系统设计
34、结果分析一设计结果输入波形为一个低频率的正弦波与一个高频的正弦波叠加而成。通过观察频域和时域图,得知:输入波形中的低频波形通过了滤波器,而高频部分则大部分被滤除。二、输出图形结果如图所示: 7.3基于DSP5000系列的无限冲击响应滤波器(IIR)的系统设计结果分析一设计结果输入波形为一个低频率的正弦波与一个高频的余弦波叠加而成。如图: 7.4基于DSP5000的电机控制方案结果分析一设计结果 八、参考资料及实验设备一、参考资料1. ICETEK评估板硬件使用指导书2. DSP原理与应用邹彦等 北京:电子工业出版社3. DSP技术的发展与应用彭启琮 北京:高教出版社4. MATLAB7.0在数
35、字信号处理中的应用罗军辉 北京:电子工业出版社5. MATLAB在电子信息类课程中应用唐向宏等 北京:电子工业出版社6. 数字信号处理的硬件实现戴明桢主编 航空工业出版社7. TMS320C54XDSP结构、原理及应用 戴明桢 北京航空航天大学出版社8. DSP基本理论与应用技术 李哲英主编 机械出版社 9. TMS320C54x DSP应用程序设计与开发 刘益成编 机械工业出版社10. DSP集成开发与应用实例 张伟雄陈亮徐光辉 北京电子工业出版社 二、实验设备1PC 兼容机一台,操作系统为Windows20002Code Composer Studio 2.21 软件,CCS软件集成开发环
36、境。3DSP实验箱及配套装置。5计算机(windowsXP环境)一台。九、课程设计心得每次课程设计总会让我们学到很多知识,让我们将课本上学到的知识在实践操作中,让我们加深对课本理论知识的理解和掌握,也提高了我们得实践操作能力。我觉得做课程设计是十分有意义的,这不仅是锻炼培养独立分析与解决问题的能力,也是一次团队合作开发过程。 通过这次用DSP来实现正弦函数的课程设计,我更熟悉了CCS的开发环境以及正弦波的设计、运行和调试整个过程。在用CCS软件仿真的过程中,由于程序文件在书写过程中出现了格式的错误,有些字母漏掉或者输入错误,导致我在仿真的过程中,编译出现了很多的错误,影响了仿真的效率。不过,在
37、我一遍遍的查找课本、同学的帮助下我终于更正了错误最终得到正确的仿真波形图,这使我意识到在进行实验的过程中哪怕一个细节的错误也会导致实验的失败,也警示我在以后的工作和生活中要养成细心的习惯。在我们的生活和学习中总会遇到这样那样的问题解决问题需要有一个好的学习态度。DSP的实训让我知道,生活中我不仅有书本,更是有同学、朋友的遇到问题不要一个人只看课本,还要和同学沟通互相学习。毕竟三人行必有我师焉,遇到问题我们要向身边的人学习。通过对课程设计任务的完成,我理解了课题教学的理论内容,并且能够掌握和熟悉DSP的开发流程和基本的编程方法,熟悉DSP5000系列芯片,并利用CCS5000系列的开发环境进行程序设计,完成相应功能。同时,由于设计中涉及到各种器件的使用,起到综合运用各种技术和知识的作用。使我自己的实验技能、动手能力、分析问题、解决问题的能力得到培养和锻炼,为进一步进行工程实践奠定良好的基础。22