《DSP实验课 程 教 案标准版.doc》由会员分享,可在线阅读,更多相关《DSP实验课 程 教 案标准版.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课 程 教 案课程名称: DSP技术实验 任课教师: 成利香 所属院部: 电气与信息工程学院 教学班级: 电子1103, 通信1101 教学时间: 20132014 学年第 2 学期湖 南 工 学 院课程基本信息课程名称DSP技术实验课程代码总计: 16 学时讲课: 学时实验: 16 学时上机: 学时课程设计: 周学 分类别必修课() 选修课( ) 理论课( ) 实验课()任课教师成利香职称讲师授课对象专业班级:电子1103,通信1101 共2个班课程简介(不超过1000字) “DSP技术实验”是电子信息专业本科生的一门必修的实验课,通过本课程的学习,让学生深入了解tms320vc54X组成、
2、工作原理及应用技术。实验平台选用tms320vc5416做为主处理器,介绍了DSP的通用开发环境CCS5000,让学生通过调试简单的示例程序来学习DSP的开发,并通过外围的I/O扩展以及定时器和中断系统让学生对硬件做一些基本的了解。要求学生在学完本课程以后,具有阅读各类DSP技术资料的自学能力和进行DSP应用系统设计的开发能力,并为其它后续课程奠定数字信号处理基础。1. 实验一:熟悉CCS开发环境。掌握CCS5000的安装、设置以及启动。掌握打开、创建和管理一个工程;掌握工程的编辑、装载和编辑环境的设置;了解工程文件系统的组成。2. 实验五:DSP时钟和定时器。掌握54X系列DSP内部时钟和定
3、时器的工作原理和应用。3.DSP中断系统掌握54X系列DSP中断系统的工作原理和应用。 4.发光二极管实验 了解 I/O 访问方式。熟练掌握 DSP 的各种指令。编写调试发光二管流水灯程序。5. 液晶显示实验 进一步掌握 I/O 读写方式。掌握DSP控制图形LCD显示方法6.直流电机控制实验要求学生掌握采用 DSP 的 PWM 输出;进一步熟悉 DSP 的特征引脚功能;掌握 DSP 对直流电机的控制原理;7. 快速傅立叶变换实验。掌握计算 FFT 的计算机实现方法.分析时域离散信号、系统和系统响应8. FIIR滤波器实验掌握 FIR 滤波器的基本原理和实现方法熟悉 DSP 编程技巧该课程以考查
4、方式对学生的实验成绩进行考核。基本教材和主要参考资料教材: TMS320C54XDSP原理及应用(第二版)乔瑞萍等编著参考书 1 电子工业出版社 赵红怡 编著 2003年6月第一版2TMS320C54x DSP应用程序设计与开发 刘益成 编著 北京航空航天大学出版社 2002年5月出一 基础实验:CCS 的使用与简单应用程序的调试1.1 实验目的1. 熟悉 CCS 集成开发环境,掌握工程的生成方法;2. 熟悉 SEED-DEC5416 实验环境;3. 掌握 CCS 集成开发环境的调试方法;1.2 实验内容1. DSP源文件的建立;2. DSP程序工程文件的建立;3. 学习使用CCS集成开发工具
5、的调试工具;1.3 实验知识背景1.3.1 CCS 简介1.CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS 支持如下所示的开发周期的所有阶段。2.CCS窗口介绍1.3.2 CCS 常用文件介绍 使用CCS时,经常遇见下述扩展名文件: 1. project.mak: CCS使用的工程文件 2. program.c: C程序源文件 3. program.asm: 汇编程序源文件 4. filename.h: C程序的头文件,包含DSP/BIOS
6、 API模块的头文件 5. filename.lib: 库文件 6. project.cmd: 连接命令文件 7. program.obj: 由源文件编译或汇编而得的目标文件 8. program.out: (经完整的编译、汇编以及连接的)可执行文件 9. project.wks: 存储环境设置信息的工作区文件 保存配置文件时将产生下列文件: 1. programcfg.cmd: 连接器命令文件2. programcfg.h54: 汇编头文件 3. programcfg.s54: 汇编源文件1.3.3 CCS 常用指令简介 1设置断点。 将光标放置在需要设置断点的程序行前,选择 DebugBr
7、eakpoints, 即完成可一个断点的设置。 2CCS 提供 3 种方法复位目标板 1) Reset DSP: Debug Reset D,初始化所有的寄存器内容并暂停运行中的程序。使用此命令后,要重新装载.out 文 件后,在执行程序。 2) Restart: Debug Restart ,将 PC 值恢复到当前载入程序的入口地址。 3) Go main: Debug Go main ,将程序运行到主程序的入口处暂停。 3CCS 提供 4 种执行操作 1) 执行执行: Debug Run ,程序运行直到遇到断点为止。 2) 暂停执行: Debug Halt ,程序停止运行。 3) 动画执行
8、: Debug Animate,用户反复运行程序,直到遇到断点为止。 4) 自由执行: Debug Run Free ,禁止所有断点运行程序。 4CCS 提供 4 种单步执行操作 1) 单步进入:Debug step into ,快捷键 F8,当调试语句不是 基本的汇编指令时,此操作进入语句内部。 2) 单步执行:Debug step Over ,此命令将函数或子函数当作 一条语句执行,不进入内部调试。 3) 单步跳出:Debug step Out ,此命令作用为从子程序中跳出 4) 执行到光标处: Debug Run to Cursor,快捷键 crtl+F10,此命令作用为将程序运行到光标
9、处。5内存、寄存器与变量的操作 1) 查看变量 使用 view Watch Window 命令 2) 查看寄存器 使用 view Registers CPU Registers 命令3) 查看内存 使用 view memory 命令6Graph 的设置即图形显示 1) 选择View Graph Time/Frequency。2) 在弹出的Graph Property Dialog对话窗中, 将 Graph Title,StartAddress,Acquisition Buffer Size,Display Data Size,DSP Data Type等的属性可改变为如下图所示(也可根据具体需
10、要设置属性)。向下滚动右侧的滚动条或调整 dialog 框的大小可看到所有的属性。1.4 实验步骤1). 将 DSP 仿真器与计算机连接好;2). 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3). 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察SEED-DTK-IO1 单元的5V,3.3V,15V,15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。4). 双击图标进入 CCS 环境。下面按照原文件、工程文件以及编译条件的设置来分别
11、介绍一下 CCS 的使用。1) 创建源文件2 )创建工程文件.3 )设置编译与连接选项4 )工程编译与调试1.5完成简单应用程序的调试1.6记录实验结果1.7完成实验报告:实验后记:二. 发光二极管显示实验2.1实验目的1.熟悉SZ-D SPF开发教学平台的使用;2.掌握D SP对I/O I I的访问方式;3.熟悉C语言程序设。2.2实验设备计算机; DsP硬件仿真器; S Z-D SPF开发教学平台。2.3实验硬件设置 在做实验之前,需要接通该实验所需的硬件电路,本实验为:先将实验箱上的电源开关“MS2,MS3 和MS4”按下,再将机箱右侧的船型开关往I”方向打开电源;SZ-5416主控模块
12、上的J7, J9, J4, J16短接;在“设置模块”中将“A和C”设置为“1。然后开始做实验,注意在做D SP实验时一开始按了SZ-5416主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于D SP复位而失败。2.4实验原理 DSP处理器TMS320VC5416的64K字I/O空间必须通过外加缓冲或锁存电路,配合外部I/O读写控制时一序构成片外外设的控制电路。所以木实验中采用CPLD (CEPM7128)和锁存器(在XC95216中已设计好)给D SP扩展了一个I/O 口,来完成D SP对I/O口的访问。本实验程序主要是实现将数据往一个I/O端口送,从而显示一种状态,来验证D
13、 SP对I/O口的访问,实验中是由DSP直接编程,往发光二极管的I/O口端地址C002h送数,通过观察发光二极管的变化,来验证其正确性。硬件原理图请参考“SZ-LK板”的说明,逻辑关系请参考第二章逻辑分析5416部分,数据流程请参考第五章中的发光二极管。2.4程序设计及步骤: 1.程序设计流图如下:2.完成源程序和连接命令文件的编写3.编译连接生成可执行文件4.下载并记录实验结果2.5实验思考 1、如何设置DP, SP值,以及DP, SP在程序中所起的作用是什么? 2、如何理解、设置I/O等待寄存器?实验后记:三. 设计实验 按键中断显示实验3.1实验目的 1了解D SP外部中断的使用,中断服
14、务程序的设计方法;2掌握DSP中断向量表的划分。3.2实验设备计算机; DSP硬件仿真器; SZ-DSPF开发教学平台。3.3实验硬件设置 做实验之前,需要接通该实验所需的硬件电路,木实验为:先将实验箱上的电源开关“MS2,MS3 和MS4”按下,再将机箱右侧的船型开关往I”方向打开电源;SZ-5416的主控模块上的J7, J9, J4,J16短接;在“设置模块”中将“A和C”设置为“1。然后开始做实验,注意在做D SP实验时一开始按了SZ-5416的主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由十D SP复位而失败。3.4实验原理及说明 本实验采用键盘中断,当有键按下时一给
15、DSP一个中断信号(INT2 ) DSP通过此I/O端口地址COOlh读键值,在读取键值后由数码管显T出来。硬件原理图请参考“SZ-LK板”的说明,逻辑关系请参考第二章逻辑分析5416部分,数据流程请参考第五章中的数码管和按键。中断标志寄存器(IFR,中断屏蔽寄存器(IMR)。3.5实验步骤及结果 本实验是一个测试键盘的实验,运行程序依次按键1-8,数码管依次显T 7-0,中间键一一对应,任意按一键,其对应的数码管显不相应的数字。 步骤:1启动CCS编写实验程序代码(可参考随机光盘中的例程alldsp4h2keptest,进行编译并加载到DSP中。 2采用单步运行或执行到光标处,或全速运行。观
16、察其结果。(具体请参考实验一)3.6实验程序框图 3.7完成实验报告及实验思考 1. 分析下例指令的特点POPD, POPM, PSHD PUSHM? 2. 分析中断管理流程及中断向量表的特点。实验后记:四、定时器实验4.1 实验目的1. 了解 DSP 汇编程序的构成;2. 了解 DSP 程序各段的含义;3. 熟悉在汇编条件下如何编写中断服务程序;4. 了解串行通讯的过程5. 掌握长时间间隔的定时器的处理。6. 掌握片内外设的设置方法。4.2 实验内容1. DSP 的初始设置;2. DSP 中断向量表的建立;3. 定时中断的编写;4. 查询方式异步串口程序的编写。4.3 实验要求能够掌据汇编语
17、言的程序结构。正确进行异步串口的通讯与定时器的设置。能够与系统正确通讯。通过 LCD 与键盘可以控制定时器的运行。4.4 实验程序功能与结构说明4.5. 实验步骤首先将光盘下 03. Examples of Program 04. SEED_DTK-DBD 调试实验程序目录下的 CCS-Timer 的文件夹拷贝到 D:盘根目录下。1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察SEED-DTK-IO1 单元的5V,3.3V,15V,
18、15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。4. 打开 CCS,进入 CCS 的操作环境。5. 装入 timer.pjt 工程文件,添加 dtk-boot.gel 文件。6. 装载程序 timer.out,进行调试。7. 在程序的第 101 行“i=i+1;”处设置断点。8. 运行程序,程序会停在断点处,表明已进入定时器中断。继续运行程序,程序每次都会停在断点处。实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。 4.6 思考题理解 DSP 程序的编写过程,如何编写中断程序?实
19、验后记:五、液晶显示实验5.1实验目的了解工作原理,熟悉DSP和外围器件的链接和操作。学习DSP控制液晶显示汉子和图像的程序设计5.2实验设备 计算机,仿真器,DSP开发平台5.3实验硬件设置做实验之前,需要接通该实验所需的硬件电路,实验操作:先将实验箱上的电源开关“MS2”、“MS3”和“MS4”按下,再将机箱右侧的船型开关往“I”的方向打开电源,SZ5416主控模块上的J7,J9,J4,J16短接,在“设置模块”中将“A”和“C”设置为“1”,然后开始做实验,注意在做DSP实验时按过了复位键后,程序运行时不要再按复位键,以免实验由于DSP复位而失败。5.4实验原理本液晶显示屏是一种图形点阵
20、液晶显示器,它主要由行驱动器/列驱动器及128X64全点阵液晶显示器组成,可完成图形显示,也可以显示8X4个(16X16点阵)汉字。对于液晶显示屏的控制可以分为几种状态来控制,具体详细资料请参阅随机光盘资料中的液晶显示屏资料。 根据液晶显示原理,我们可以用DSP的I/O方式对液晶显示屏进行控制,CPLD(EPM7128)利用DSP的控制线IOSTRB和地址线经逻辑组合扩展I/O口,并给出液晶显示需要的几种状态来控制,这样DSP就只要采用I/O访问方式就能对液晶显示屏读写控制和寄存器控制等来完成显示的功能,具体详细资料请参阅随机光盘资料中的“SZLK板”的说明,逻辑关系参考第二章逻辑分析5416
21、部分,数据流程请参考第五章中的LCD。5.5实验步骤实验本实验是一个液晶的测试实验,运行程序即可在液晶屏中看到一个小熊猫。步骤:1、 启动CCS,编写实验程序代码(可参考随机光盘中的例程),进行编译并加载到DSP中。2、 采用单步运行或执行到光标处,或全速运行。观察其结果。(具体方法请参考实验一)5.6 实验思考1.尝试调入其他数据,显示不同的图像和文字2.思考如何显示一段连续的动态图像实验后记:六、直流电机实验6.1实验目的:了解直流电机及电开关的工作原理。学习DSP用I/o方式对直流电机控制及测速的编程方式6.2实验设备计算机,仿真器,DSP开发平台6.3实验原理通常直流电机由一串脉冲控制
22、,通过调节脉冲的电平方向及脉冲宽度可以使得电机正转、反转、加速、减速和停转。直流电机转动的基本原理:转动的方向由电压控制,电压是正时则电机就正转,电压我负时则电机就反转,如下图所示:本实验是通过DSP的I/O方式来控制电机的运转,这里采用CPLD(EMP7128)给DSP扩展了一个I/O口,来完成对步进电机的控制。在DSP的I/O方式下,将DSP的数据经过电平转换的低两位数据线D1、D0送往直流电机模块的锁存器,信号再经过隔离和驱动后对直流电机控制。DSP对步进电控制的I/O访问一址是C004H,其硬件的原理图请参考“2.11电机模块”的说明,逻辑关系请参考第二章逻辑分析5416部分,数据应和
23、请参考第五章中的电机部分。6.4实验步骤:本实验是一个闭环直流电机测速的实验,可在液晶屏上看速度值。实验按键功能:按键1是停止,指示灯熄灭;按键2是正转,右边指示灯亮;按键3是反转,左边指示灯亮;按SZ5416EVM板上复位键要也可停止电机运转。做实验时,先让电机转起来,记住其显示速度值,然后用手轻轻的接触转盘边沿,观察速度变化。(注意:不要加太大的负载,用时不要太久)步骤:1、 启动CCS,编写实验程序代码(可参考随机光盘中的例程H4motor),进行编译并加载到DSP中。2、 采用单步运行或执行到光标处,或全速云雾。观察其结果。6.5实验程序框图6.6实验思考编写程序:用键盘预先设置要求的
24、转速,再使电机旋转,其转速是否基本与设置的值相同?实验后记:七、快速傅立叶变换(FFT)7.1 实验目的(1) 了解 FFT 的原理;(2) 了解使用 Matlab 语言实现 FFT 的方法;(3) 了解在 DSP 中 FFT 的设计及编程方法;(4) 熟悉对 FFT 的调试方法;7.2 实验内容本试验要求使用 FFT 变换求一个时域信号的频域特性,并从这个频域特性求出该信号的频率值。使用 Matlab 语言实现对 FFT 算法的仿真,然后使用 DSP 汇编语言实现对 FFT 的 DSP 编程。7.3 实验原理参照教科书N点 DFT 所需要的乘法次数,而乘数 2 代表必须完成两个 DFT。上述
25、处理方法可以反复使用,即(N/2)点的 DFT 计算也可以化成两个(N/4)点 DFT(假定 N/2 为偶数),从而又少作一半乘法。使用这种方法,在组合输入和拆散输出的操作中,FFT 的运算量减半。这样,利用实数 FFT 算法来计算实输入序列的 DFT 的速度几乎是一般复 FFT 算法的两倍。7.4 FFT 的 DSP 编程从上面FFT实现的过程可以看出,其实现步骤主要有以下四步:(1) 将输入序列压缩和位倒序。(2) N 点的复数 FFT。(3) 奇数号部分和偶数号部分分离。(4) 产生最后的输出数据程序可以参考指导书7.5 CCS 使用步骤1打开 CCS,新建立一工程文件 FFT.pjt。
26、2将汇编源文件fft.asm、中断向量表vectors.asm和链接命令文件 fft.cmd添加到 fft.pjt 中。3在 project 菜单下选择 build options 选项,选取 Linker 选项, 调整为-q -c -m.Debugfft.map -o.Debugfft.out -w x。点击编译,链接图标,通过后生成 fft.out 文件和 fft.map 文件,其余选项可默认。4在 file 菜单下,选择 load program 选项,将生成的 fft.out 文件装载到 DSP 中。5运行程序,在 view 菜单下选择 watch window 选项来观测变量值。6可
27、以在 view 菜单下选择 graph/time frequence,弹出如下对话框。按照要求,设置好相应的参数,来观测信号输入和经 FFT 变换后输出数据的波形。7具体调试执行程序时,可使用断点,单步执行等方式。7.6 实验结果1. 程序运行起始地址为 3000H,输入的数据在数据空间地址为 1400H,长度为 400H,输出的功率谱在数据空间地址 1800H,长度为 400H。2. 描述程序运行前的输入数据的时域图和频域图7.7 思考题分析输入、输出信号的频率成分,说明这一结果的原因实验后记:八. 综合性实验 FIR滤波器的设计8.1实验目的 1. 了解F工R滤波器的原理及使用方法; 2.
28、 了解使用Matlab语言设计F工RR滤波器的方法;3. 了解DSP对F工R滤波器的设计及编程方法;4熟悉对F工R滤波器的调试方法;8.2实验内容本试验要求设计滤波器采样频率为1000hz,截n频率300hz的低通滤波器。设计F工R滤波器实现上面要求。 输入信号频率合成信号,目的是通过我们设计的滤波器将高频信号滤掉,余下低频的信号成分,达到滤波的效果。8. 3实验原理一个线性位移不变系统的输出序列Y(和输入序列X(之间的关系,应满足常系数线性差分方程:FIR滤波器的单位冲激响应h(n)为有限长序列。若h(n)为实数,且满足偶对称或奇对称的条件,则FIR滤波器具有线性相位特性。N偶数在数字滤波器
29、中,FIR滤波器具有如下几个主要特点:FIR滤波器无反馈回路,是一种无条件稳定系统;FIR滤波器可以设计成具有线性相位特性。本实验程序设计的就是一种偶对称的线性相位滤波器。程序算法实现采用循环缓冲区法。算法原理:在数据存储器中开辟一个N个单元的缓冲区(滑窗),用来存放最新的N个输入样本;从最新样本开始取数;读完最老样本后,输入最新样本来代替最老样本,而其他数据位置不变;用BK寄存器对缓冲区进行间接寻址,使缓冲区地址首尾相邻。8.4程序设计1.滤波器的Matlab编写matlab程序,语言设计生成F工R滤波器系数后,附到DSP汇编语言程序中。主程序如f=0 0.6 0.6 1;m=1 1 0 0
30、b=firls (36, f, m)freqz (b, 1, 512)b二b*2 152. 输入信号程序,文件名为firinput. 3. DSP汇编语言程序设计。汇编源文件fir. asm,中断向量表vectoes. asm和链接命令文件fir. cmd组成。8. 5实验步骤 1.打开ccs,新建立一上程文件fir. Pjt. 2.将汇编源文件fir. asm、中断向量表vectors. asm和链接命令文件fir. cmd添加到fir. pjt中。3.在project菜单下选择build options选项,选取Linker选项,调整为-q -c m,. Debugf ir. Map, -
31、o,. Debugf ir. out“-w一x。点击编译,链接图标,通过后生成fir. out文件和f irr. map文件,其余选项.丁默认。4.在file菜单下,选择load program选项,将生成的fir. out文件装载到DSP中。 5.运行程序,在view菜单下选择watch window选项来观测变量值。依次输入input和output来观测输入输出变量值,这两个变量分别为滤波前的输入数据和滤波后输出数据的首地址。 6.在view菜单下选择graph/time frequence,弹出如下对话框。按照要求,设置好相应的参数,来观测输入和输出数据的波形。7.具体调试执行程序时,使用断点,单步执行等方式。 v r.xm -or nmsuwr,rv;yxirxn8.6记录实验结果8.7完成实验报告及思考题1.为什么要对matlab程序生成的系数进行调整,即将浮点数转换成整数?2.试改变输入的信号(保证一个频率在通带范围内,一个在通带范围外),进行相应的数据调整,然后在CCS底下观测看输入数据波形。3.进行滤波器系数的调整再进行相应滤波,然后在CCS底下看输出数据波形情况有何变化。实验后记:
限制150内