《DSP原理及应用》
实 验 指 导 书
杨宣兵 编 写
适用专业:电子信息工程
_电子科学与技术 信息工程 通信工程
信息与通信工程学院
2013 年 5 月
前 言
《DSP原理与应用》是电子信息类专业信号与信息处理方向的一门专业必修课,同时也是其他电类专业的一门重要的选修课。课程以DSP芯片原理及基于DSP芯片的应用系统开发为主要内容,介绍了DSP芯片原理与开发工具及软硬件开发方法。
开设必要的课程实验,使学生加深对DSP原理与片上资源应用的掌握,掌握DSP项目开发流程、开发方法、开发平台CCS的基本使用、DSP对外设控制方法以及经典数字信号处理算法的DSP工程实现等。培养学生将数字信号处理理论应用到实际项目中的工程意识与工程开发能力。
通过本课程实验,提高学生分析问题、解决问题的能力和基于DSP的嵌入式系统开发的实际动手能力,为学生步入社会奠定工程开发基础。
对不同专业根据实验教学大纲进行实验项目选择。
实验项目设置与内容提要
序号 实验项目 实验学时 每组人数 实验类型 实验要求 内 容 提 要 1 基本算术运算的DSP 实现 4 1 验证 1、CCS基本操作; 2、DSP应用程序结构和开发流程; 必修 3、基于DSP开发环境(Simulator)完成16位定点加、减、乘、除运算。 1、CCS图形工具使用; 2、基于C语言和汇编语言混合必修 程序设计; 3、定时器等外设资源的应用; 4、简单算法(迭代)的实现。 1、McBSP串口操作; 必修 2、‘VC54XX片上ROM资源的使用; 选修 1、McBSP串口操作与串口中断服2 数字振荡器的设计与实现 4 1 设计 3 4
BSP串口通信实现 FIR数字滤波器设计4 4 2 2 综合 设计 I
与实现实现 务程序编写; 2、AD/DA操作; 3、FIR滤波器实现的特殊指令应用; 4、CCS高级调试工具使用。 1、编程完成对外设I/O端口的控制,实现流水灯功能; 2、完成从COFF文件到启动表的必修 转换; 3、完成程序的固化与脱离上位机控制的独立运行。 1、辅助寄存器使用,位倒序寻址方式应用等; 选修 2、FFT算法的编程实现; 3、CCS探针和图形工具使用。 1、熟悉外部中断使用与中断服务程序编写方法; 任选 2、掌握对外设端口的操作方法; 3、掌握外设的控制方法(包括键盘、LED、步进电机、LCD等); 1、 掌握DTMF信号的产生原理; 选修 2、 掌握DTMF信号产生的DSP实现方法; 3、 掌握DTMF信号的解码算法原理; 选修 4、 掌握DTMF信号解码算法的DSP实现方法; 5 TMS320VC5402的Bootloader设计与实现 4 5~10 设计 6 快速傅立叶变换实现 4 2 综合 7 外部设备控制实验 4 1 综合 8 双音多频信号编码器设计 2 2 设计 9 双音多频信号解码器设计 4 2 设计
II
目 录
实验一 基本算术运算的DSP实现?????????????1 实验二 数字振荡器的设计与实现……………………………………………………..9 实验三 BSP 串口通信实现……………………………………………………………………16 实验四 FIR 数字滤波器设计与实现???????????.25 实验五 TMS320VC5402 的Bootloader设计与实现……………………..34 实验六 快速傅立叶变换(FFT)的实现…………………………………………..45 实验七 外部中断、按键、LED控制实验………………………………………….67 实验八 双音多频DTMF信号产生……………………………………………………….70 实验九 双音多频DTMF信号解码………………………………………………………….76 附录一 DES5402PP-U性能介绍……………………………………………………………82 附录二CCS驱动程序的安装……………………………………………………………………83 附录三DES5402PP-U功能详细介绍………………………………………………………87 附录四 DES5402PP-U板上设置、状态显示、跳线一览表………………93
III
实验一: 基本算术运算的DSP实现
实验学时:4 实验类型:验证 实验要求:必修 一、实验目的
1、掌握CCS的配置与基本使用方法;
2、掌握C54X汇编语言程序结构,掌握基于CCS开发平台Simulator采用汇编指令完成16位定点加减乘除运算程序设计并对运算结果进行评价; 二、实验内容
本实验学习使用定点DSP实现16位定点加、减、乘、除运算的基本方法和编程技巧。
三、实验原理、方法和手段 1﹑定点DSP中数据表示方法
C54X是16位的定点DSP。一个16位的二进制数既可以表示一个整数,也可以表示一个小数。当它表示一个整数时,其最低位(D0)表示2,D1位表示2,次高位(D14)表示2。如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的负数-1(负数用2的补码方式显示)。当需要表示小数时,小数点的位置始终在最高位后,而最高位(D15)表示符号位。这样次高位(D14)表示2,然后是2,最低位(D0)表示2数2?3?2?15?1
0114。所以04000H表示小数0.5,01000H表示小
?0.125,而0001H表示16位定点DSP能表示的最小的小数(有符号)
2?15=0.000030517578125。在后面的实验中,除非有特别说明,我们指的都是有符
号数。在C54X中,将一个小数用16位定点格式来表示的方法是用2乘以该小数,然后取整。
从上面的分析可以看出,在DSP中一个16进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除
15 1