数字信号处理器(DSP)实验指导书(电子工程实验室编)江苏科技大学前言“数字信号处理器”课程实验是在学习“数字信号处理器”课程中加强理解基本的DSP的设计的方法、思路和流程而开设的实践性课程。通过本实验课程的学习,使学生进一步掌握定点运算DSP的基本知识,包括TMS320C54x的基本硬件资源:总线结构、存储器、中央处理单元、片内外设,以及DSP软件设计的方法和软件工具CCS的使用,同时通过实验接受了DSP开发的基本步骤训练,为以后从事深入的专业开发打下基础。本课程实验包含四个必修实验。实验一《CCS入门实验》,可使学生掌握CodeComposerStudio2.0软件的操作环境和基本功能,掌握TMS320C5xxx软件开发过程。实验二《编制链接控制文件》,可学习到命令文件控制代码的编制,学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。实验三《数据存取实验》,可使学生掌握操作TMS320C5xxx内存空间的指令。实验四《定点数除法实验》,可进一步理解用减法和移位指令实现除法运算。本实验课程适用于电子信息工程专业《数字信号处理器及应用》课程,电子信息科学与技术专业《数字信号处理器》课程,自动化专业、电气工程与自动化专业和测控技术专业的《DSP技术及应用》课程。目录实验一:CCS入门实验........................................................................................................4实验二:编制链接控制文件............................................................................................11实验三:数据存取实验.......................................................................................................15实验四:定点数除法实验..................................................................................................20实验一:CCS入门实验实验类型:验证实验学时:2学时实验要求:必修一.实验目的1.掌握CodeComposerStudio2.0的安装和配置。2.了解DSP开发系统和计算机与目标系统的连接方法。3.了解CodeComposerStudio2.0软件的操作环境和基本功能,了解TMS320C5xxx软件开发过程。(1)学习创建工程和管理工程的方法。(2)了解基本的编译和调试功能。(3)学习使用观察窗口。(4)了解图形功能的使用。二.实验内容1.完成CCS软件的配置和启动;2.创建工程文件,创建源文件并添加到工程文件中,完成编译;3.下载和运行输出文件,描述F10、F9、F8、F5等按键的作用;4.使用观察窗口查看str变量和num变量的值;5.掌握文件输入/输出的功能,在程序行read_signals(int*input)上设置Probe断点,执行File→FileI/O,打开对话框,加载数据sine2.dat到目标机上,并进行关联设置,最后用图形窗口观察inp_buffer的图形。三.实验原理开发TMS320C5xxx应用系统一般需要以下几个调试工具来完成:(1)软件集成开发环境(CodeComposerStudio2.0):完成系统的软件开发,进行软件和硬件仿真调试。它也是硬件调试的辅助手段。(2)开发系统(ICETEK5100USB或ICETEK5100PP):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。(3)评估模块(ICETEKVC5416-A或ICETEKVC5416-C等):提供软件运行和调试的平台和用户系统开发的参照。*CodeComposerStudio2.0主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。*用户系统的软件部分可以由CodeComposerStudio建立的工程文件进行管理,工程文件一般包含以下几种文件:-源程序文件:C语言或汇编语言文件(*.ASM或*.C)-头文件(*.H)-命令文件(*.CMD)-库文件(*.LIB,*.OBJ)CCS软件安装的操作一般包括几个步骤:CCS软件的安装、配置和启动,工程文件的创建、编译和调试。调试手段有很多,要掌握常用按键F10、F8等的基本使用,掌握观察窗口的使用,掌握使用文件输入/输出功能,并利用图形窗口观察其波形。四.实验组织运行要求1.学生在进行实验前必须进行充分的预习,熟悉实验内容;2.学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;3.教师在学生实验过程中予以必要的辅导,独立完成实验;4.教师审查、分析学生实验结果;5.学生完成实验后,经教师认可,方可在运行记录上签字。五.实验条件1.PC一台:操作系统为Windows2000(或WindowsNT、WindowsXP),Windows的内核如果是NT的,应安装相应的补丁程序(如:Windows2000为ServicePack3,WindowsXP为ServicePack1)。2.DSP实验箱一台,USB连接电缆一条。六.实验步骤1.设置CodeComposerStudio在软件仿真(Simulator)方式下运行:(1)双击桌面上“SetupCCS2(‘C5000)”,启动“CodeComposerStudioSetup”。(2)在“ImportConfiguration”对话框中单击“Clear”按钮,在接下来的对话框中选择“是”,清除原先的系统设置;观察窗口“CodeComposerStudioSetup”中左侧“SystemConfiguration”栏中“MySystem”项被清空。(3)在“AvailableConfigurations”列表中,单击选择“C5416DeviceSimulator”驱动,并单击“Import”按钮;观察窗口“CodeComposerStudioSetup”中左侧“SystemConfiguration”栏中“MySystem”项中被加入“C54xSimulator”项。(4)单击“Close”按钮,退出“ImportConfiguration”对话框。(5)选择“CodeComposerStudioSetup”窗口“File”菜单中“Exit”项退出,并在接下来显示的对话框中选择“是”,保存设置;再选择“否”,不启动CCS。2.启动CodeComposerStudio2.0双击桌面上“CCS2(‘C5000)”,启动CodeComposerStudio2.0;可以看到显示出的C54XCodeComposerStudio窗口;3.创建工程(1)创建新的工程文件选择菜单“Project”的“New…”项;在“ProjectCreation”对话框中,在“Project”项,输入volume;单击“Location”项末尾的浏览按钮,改变目录到F:\,单击“OK”;单击“完成”;这时建立的是一个空的工程文件;展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其中各项均为空。(2)在工程文件中添加程序文件:分别新建volume.H、volume.C、volume.cmd,保存到F:\volume。选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中选择文件目录为F:\volume,改变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加volume.cmd文件到volum工程中;添加C:\ti\C5400\cgtools\lib\rts.lib。(3)编译连接工程:选择菜单“Project”的“RebuildAll”项;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。4.编辑修改工程中的文件(1)查看工程文件展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含“volume.h”、“rts.lib”、“volume.c”和“volume.cmd”文件,其中第一个为程序在编译时根据程序中的“include”语句自动加入的。(2)查看源文件双击工程管理窗中的“volume.c”文件,可以查看程序内容。双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。“volume.cmd”文件定义程序所放置的位置,此例中描述了5416的存储器资源,指定了程序和数据在内存中的位置。(3)编辑修改源文件打开“volume.c”,找到“main()”主函数,将语句“input=&inp_buffer[0];”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保存。(4)修改工程文件的设置选择“Project”菜单中的“BuildOptions…”项,打开“BuildOptionsforvolume.pjt”对话框,选择“Linker”卡片,在“StackSize”项后输入1024;单击“确定”完成设置;通过此设置,重新编译后,程序中的堆栈的尺寸被设置成1024个字。5.基本调试功能(1)执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的F:\volume\volume.out文件。(2)在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,右击鼠标选择ToggleBreakpoint或按F9设置断点。(3)选择Debug→Run或按F5运行程序,程序会自动停在main()函数头上。①按F10执行到write_buffer()函数上。②再按F8,程序将转到write_buffer函数中运行。③此时,为了返回主函数,按shift-F7完成write_buffer函数的执行。④再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。注意::在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用Debug→Gomain命令,上述实验中的使用的是较为繁琐的一种方法。6.使用观察窗口(1)执行View→WatchWindow打开观察窗口。(2)在volume.c中,选中任意一个变量,右击鼠标,选择“QuickWatch”,CCS将打开QuickWatch窗口并显示选中的变量。(3)在volume.c中,选中任意一个变量,右击鼠标,选择“AddtoWatchWindow”,CCS将把变量添加到观察窗口并显示选中的变量值。(4)在观察窗口中双击变量,则弹出修改变量窗口。此时,可以在这个窗口中改变变量的值。(5)把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。(6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num函数超出了作用范围,可以利用CallStack窗口察看在不同作用范围的变量:①执行View→CallStack打开堆栈窗口。②双击堆栈窗口的main()选项,此时可以察看num变量的值。7.文件输入/输出介绍如何从PC机上加载数据到目标机上。