DSP实验指导书v12I.docx
《DSP实验指导书v12I.docx》由会员分享,可在线阅读,更多相关《DSP实验指导书v12I.docx(56页珍藏版)》请在冰豆网上搜索。
DSP实验指导书v12I
《DSP芯片技术及应用》
实验指导书
(TMS320VC5416版)
宁波大学信息科学与工程学院
2012年2月
CodeComposerStudio环境设置
1、让CCS工作在软件仿真环境(Simulator)
CCS可以工作在纯软件仿真环境中,就是由CCS在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。
但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试算法和进行效率分析等。
在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。
以下讲解如何将CCS配置为软件仿真环境:
(1)单击桌面上“SetupCCStudiov3.3”图标,进入CCS设置窗口。
(2)在出现的窗口中,按标号顺序进行如下设置:
图1删除原有的驱动设置
(3)在出现的窗口中,按标号顺序进行如下设置:
图2选择软件仿真C5416芯片驱动
此时CCS已经被设置成Simulator方式(软件仿真TMS320C5416器件的方式),如果以后一直使用这一方式就不需要重新进行以上设置操作了。
2、让CCS工作在硬件仿真环境(Emulator)
这种仿真环境是通过USB仿真器链接DSP开发板硬件进行调试和开发。
(1)单击桌面上“SetupCCStudiov3.3”图标,进入CCS设置窗口。
(2)在出现的窗口中,按标号顺序进行如下设置:
图3删除原有的驱动设置
(3)在出现的窗口中,按标号顺序进行如下设置:
图4选择硬件仿真VC54xx芯片驱动
(4)在下面窗口中按标号顺序进行如下选择:
图5设置GEL文件
(5)在下面窗口中按标号顺序进行如下选择:
图6添加GEL文件
(6)在下面窗口中按标号顺序进行如下选择:
图7完成CCS设置
(7)在下面窗口中按标号顺序进行如下选择:
图8保存设置
以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB仿真器连接ICETEK–VC5416-A评估板。
如果以后一直使用这一方式就不需要重新进行以上设置操作了。
3、如何启动CCS
1.启动Simulator方式
设置好软仿真驱动后,双击桌面上“CCStudiov3.3”图标:
2.启动Emulator方式
(1)首先将实验箱电源关闭。
连接实验箱的外接电源线。
(2)检查ICETEK-5100USB仿真器的黑色JTAG插头是否正确连接到ICETEK–VC5416-A评估板的P5插头上。
注:
仿真器的插头中有一个孔加入了封针,与P5插头上的缺针位置应重合,保证不会插错。
(3)检查其他连线是否符合实验要求。
检查实验箱上三个拨动开关位置是否符合实验要求。
(4)打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。
ICETEK–VC5416-A评估板上指示灯VCC点亮。
如果打开了ICETEK-CTR的电源开关,ICETEK-CTR板上指示灯POWER点亮。
如果打开了信号源电源开关,相应开关边的指示灯点亮。
(5)用实验箱附带的USB信号线连接ICETEK-5100USB仿真器和PC机后面的USB插座。
注意ICETEK-5100USB仿真器上指示灯Power和Run灯点亮。
(6)双击桌面上“emurst”仿真器初始化图标。
如果出现下面提示窗口,表示初始化成功,按一下空格键进入下一步操作。
如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第
(2)步重试。
如果窗口中出现“Theadapterreturnedanerror.”,并提示“按任意键继续…”,表示初始化失败,请关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第
(2)步重试。
(7)双击桌面上的“CCStudiov3.3”图标,启动CCS。
图9启动后CCS状态
(8)此时要按照如下图所示操作,才能把CCS软件和F2812芯片连接在一起,然后才能对VC5416芯片进行控制。
图10连接VC5416芯片
(9)确认CCS和VC5416连接是否成功
图11连接成功的状态
DSP实验箱配置
1、DSP实验箱组成
实验箱由4部分组成:
(1)实验箱部分
?
一个独立的数字信号源,可提供四种波形、三路输出;信号的波形、频率、幅度可调。
?
多种直流电源输出。
+5V(5A),+12V(1A),+9V(0.5A),地。
?
底板提供插座,可使用插座完成DSP评估板上的A/D信号输入和D/A输出。
?
测试模块:
提供18个测试点,可测量PWM输出、AD输入和DA输出波形。
?
双信号发生器设计。
(2)硬件仿真器
?
USB2.0接口开发系统,支持C2000/VC33/C5000/C6000的开发应用。
?
支持CCS。
?
仿真器和DSP控制板分离,有利于将来DSP的升级。
同时,也可以脱离实验箱单独从事科研开发使用。
(3)通用控制模块部分
?
显示输出:
-液晶显示(LCD):
128×64点阵图形显示屏,可调整显示对比度。
-发光二极管。
?
音频输出:
可由DSPI/O脚控制的蜂鸣器;D/A输出提供音频插座,可直接接插耳机。
?
键盘:
8键数字键盘。
?
拨动开关(DIP):
4路,可实现复位和设置DSP应用板参数。
(4)DSP主处理板
ICETEK-VC5416-A板
仿真器一端通过JTAG接口与DSP评估板相连,另一端通过USB接口与电脑相连。
2、数字信号源使用说明
1.性能指标:
驱动电压:
5V(4.8V~5.2V)。
波形输出
输出端口:
3路。
输出波形种类:
方波,三角波,正弦波,白噪声。
频率范围:
10Hz~30KHz。
幅度范围:
0~3.3V。
语音录入
采样率:
6.4KHz。
典型带宽:
2.6KHz。
电压最大幅度:
2V。
两路压差:
<100mV。
录音时间:
10s。
扬声器
电压范围:
-0.3V~5.3V。
最大功耗:
200mW。
带宽:
100Hz~20KHz。
2.结构图
上部有一个红色的电源指示灯,当信号源上电后,该指示灯应处于点亮状态。
上部和中部有波形输出A和波形输出B两端口,可输出10~30KHz的方波,三角波,正弦波以及白噪声四种波形。
在两个波型输出端口左侧有一排共16个状态指示灯。
其中红灯表示输出波形种类,绿灯表示输出波形频率。
上面8个灯表示波形输出A的状态,下面8个灯表示波形输出B的状态。
当波形输出A处于任一状态时,上面8个灯中均会有一个红灯和一个绿灯点亮(输出白噪声时绿灯状态无意义)。
波形输出B同理。
在顶部中间部分有一个混叠波输出端口,它始终输出波形输出A和波形输出B的等比例混叠波型。
左侧中间部分有录音,放音,循环三个按钮,一个录音指示灯(红色)和一个麦克风。
麦克风可在录音时作为语音信号的输入端。
当信号源处于录音状态时,录音指示灯应点亮。
按放音钮时,可以从扬声器或耳机中听到录在信号源中的语音信号。
按住循环钮不放,可以循环播放录下的语音信号。
当按下录音按钮后,信号源正面的红色录音指示灯应处于点亮状态。
此时,若录音输入端口没有接入音频线,信号源会将从麦克风输入的语音信号录下。
若录音输入端口有接入音频线,信号源就会录下从音频线输入的语信号。
使用音频信号线录音时,需要注意信号与电源的共地问题,最好使用与信号源配套的DSP评估板作为音源,不然可能会产生噪音。
底部两侧有两个扬声器。
两扬声器之间有耳机输入和扬声器输出两端口。
通过音频线将一个音源的输出接入到扬声器输出端口可以从扬声器中直接听到该音源的输出。
在放音或循环放音时,将耳机输入线插入到耳机输入端口可以从耳机中听到信号源的输出。
信号源右侧如下图所示:
在信号源右侧从上到下共有4个旋钮,上面两个控制波形输出A,下面两个控制波形输出B。
最上面的旋钮控制波形输出A的输出波形种类和输出频率。
令其上下滑动,可以调节输出信号的频率。
频率共分4档,分别10~100Hz,100~1KHz,1K10KHz,10K~30KHz。
当输出信号的频率落入哪一档的范围时,在信号源正面,与该档位相对应的绿色指示灯会点亮。
将该旋钮向内侧压可以调节输出信号的波形种类。
共有方波,三角波,正弦波和白噪声4种波形可选,当输出为某一特定波形时,信号源正面相应的红色指示灯会点亮。
从上面数第2个旋钮是波形输出A的幅度调节旋钮。
将其向上滑动,可令输出信号的幅度变小,向下滑动则幅度变大。
幅度变化范围是0~3.3V。
下面两个旋钮依次为波型输出B的频率/波型选择旋钮和幅度调整旋钮。
使用方法同上。
3.与DSP评估板的连接
3、实验箱使用注意事项
1.拆卸各模块时请务必将实验箱总电源关闭;
2.不使用显示/控制模块时将相关电源开关关闭;
3.220V交流电源线连接须牢靠,勿使发生虚接或接触不良,并保证良好地连接地线;
4.实验箱底板上标称值不同的直流电源不能直接跨接;
5.实验箱底板上直流电源不能直接跨接地线;
6.不要直接连接电源和信号插座;
7.显示/控制模块上的两个电源插座不要连接错误,上边插座为+12V,下面的为+5V;
8.连接不同类型的插座时,请再三确认无误后进行;
9.不要带电拔插各模块;
10.不要带电拔插仿真器和DSP评估板上JTAG插头的连接电缆;
11.如无特殊情况,请勿打开实验箱底板;
12.不要带电拔插键盘插头;
13.如遇实验箱冒烟等异常现象请立即关闭总电源,并查找原因。
实验一CodeComposerStudio应用实验
一、实验目的
1.了解DSP开发系统、计算机及目标系统的连接方法。
2.了解CodeComposerStudio3.3软件的操作环境和基本功能。
3.掌握TMS320F2812软件开发过程。
二、实验设备
PC兼容机一台;操作系统为WindowsXP。
三、实验原理
1.开发DSP应用系统一般需要以下几个调试工具来完成:
¦软件集成开发环境(CodeComposerStudio3.3):
完成系统的软件开发,进行软件和硬件仿真调试。
它也是硬件调试的辅助手段。
¦开发系统(ICETEK5100USB):
实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。
¦评估模块(ICETEKVC5416-A等):
提供软件运行和调试的平台和用户系统开发的参照。
2.CodeComposerStudio3.3主要完成系统的软件开发和调试。
它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。
3.用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:
¦源程序文件:
C语言或汇编语言文件(*.ASM或*.C)
¦头文件(*.H)
¦命令文件(*.CMD)
¦库文件(*.LIB,*.OBJ)
四、实验步骤
1.实验准备
由于本实验采用软仿真模式,不需要打开实验箱电源。
2.设置CodeComposerStudio3.3在软仿真(Simulator)方式下运行。
3.启动CodeComposerStudio3.3
刚打开的CCS界面包含如下图的基本元素:
图1CCS界面
4.创建工程
(1)创建新的工程文件,选择菜单“Project”的“New…”项。
图2创建工程文件
按编号顺序操作建立volume.pjt工程文件
图3新建工程
展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其各项均为空。
(2)在工程文件中添加程序文件
选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中选择文件目录为C:
\5416\Lab01-UseCC,改变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volume.c”;重复上述各步骤,添加C:
\5416\Lab01-UseCC\volume.cmd文件到volume工程中;添加C:
\CCStudio_v3.3\C5400\cgtools\lib\rts.lib。
(3)编译连接工程
选择菜单“Project”的“RebuildAll”项,或单击工具条中的按钮;注意编译过程中CCS主窗口下部“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。
5、主程序介绍
这个程序是一个音频信号采集、处理输出的程序。
程序的主循环中调用自定义的函数read_signals来获得音频数据并存入输入缓存inp_buffer数组;再调用自定义函数write_buffer来处理音频数据并存入输出缓存;output_signals将输出缓冲区的数据送输出设备;最后调用标准C的显示信息的函数printf显示进度提示信息。
整个系统可以完成将输入的音频数据扩大volume倍后再输出的功能。
read_signal子程序中首先应有从外接AD设备获得音频数据的程序设计,但此例中由于未采用实际AD设备,就未写相应控制程序。
此例打算用读文件的方式获得数据,模拟代替实际的AD输入信号数据。
write_buffer子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,然后放入输出缓冲区。
output_signals函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设备,所以函数中未写具体操作语句。
6、基本调式功能
(1)下载程序:
执行FileÆLoadProgram,在随后打开的对话框中选择刚刚建立的C:
\5416\Lab01-UseCC\Debug\volume.out文件。
(2)设置软件调试断点:
在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,单击鼠标右键选择ToggleSoftwareBreakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。
(3)利用断点调试程序:
选Debug/Run或按F5运行程序,程序会自动停在main()函数上。
?
按F10执行到write_buffer()函数。
?
再按F11,程序将转到write_buffer函数中运行。
?
此时,为了返回主函数,按shift-F11完成write_buffer函数的执行。
?
再次执行到write_buffer一行,按F10执行程序,对比与F11执行的不同。
提示:
在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用Debug/Gomain命令。
7、文件输入/输出
下面介绍如何从PC机上加载数据到DSP上。
用于利用已知的数据流测试算法。
在完成下面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。
Probe断点可以设置在程序的任何位置,.当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。
在这一节里,Probe断点触发的事件是:
从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。
注意:
在CCS3.3以上版本中Probe断点已被合并到break断点中了。
在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在这里,代替A/D模块完成这个工作的是Probe断点。
当执行到函数read_signals时,Probe断点完成这个工作。
?
在程序行read_signals(input);上单击鼠标右键选择“Togglesoftwarebreakpoint”,设置软件断点。
?
再在同一行上单击鼠标右键,选择“softwarebreakpoint”,“edit”来设置断点,此时将打开一个新的Probe断点设置窗口。
图4Probe断点设置
8、图形工具的使用
使用CCS图形功能验证上一节的结果。
首先对图形工具进行下面设置:
图5图形工具设置
五、实验要求
(1)把下表填写完整
当程序第一次执行到右侧代码时
output=out_buffer;
intread_signals(int*input)
output[i]=input[i]*volume;
num
count
(2)记录输入与输出波形
(3)修改源程序,重新编译链接,记录输出为输入幅值5倍的波形。
实验二样例程序的调试与分析
一.实验目的
1.学习用汇编语言编制程序;了解汇编语言程序与C语言程序的区别和在设置上的不同;
2.学习编制命令文件控制代码的链接;
3.学会建立和改变map文件,以及使用它观察内存使用情况的方法;
4.熟悉使用软件仿真方式调试程序。
二.实验设备
PC,操作系统WindowsXP,安装CodeComposerStudio3.3软件。
三.实验要求
1.按下列要求修改cmd文件:
⑴.将代码段定义在程序存储器起始地址为100H,长度为1000h的空间范围内。
⑵.将未初始化数据段定义在数据存储器起始地址为2000h,长度为1000h的空间范围内。
2.根据下面给出的程序框图,编写相应的程序代码:
四.实验原理
1.汇编语言程序
汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C语言编制的程序也稍有不同。
其区别为:
①汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C语言程序在执行时,先要调用C标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行;为了支持C初始化代码的连接,C程序在编译时要包含C语言库和与之相配的头文件,这需要用户将库添加到工程中。
②由于CodeComposerStudio的代码链接器默认支持C语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。
2.命令文件的作用
命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。
通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。
命令文件也为链接程序提供了DSP外扩存储器的描述。
3.内存映射(map)文件的作用
一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。
为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。
五.实验步骤
1.打开工程文件
⑴.双击桌面上“CCS2(‘C5000)”,启动CodeComposerStudio2.0。
⑵.打开菜单“Project”的“New…”项;在“Project”项中输入UseCMD,在“Location”
中选择C:
\ICETEK-VC5416-USB\Lab2-UseCMD目录,单击“完成”建立UseCMD.pjt。
2.设置工程文件
⑴.打开设置窗口:
选择菜单“Project”的“BuildOptions…”项。
⑵.选择链接设置:
单击“Linker”属性页。
⑶.观察汇编语言程序的特殊设置:
.“AutoinitModel”项设置成“NoAutoinitialization”
.“CodeEntryPoint”项中输入“start”。
⑷.退出设置窗口:
单击“确定”按钮。
3.根据给出的程序框图,在相应的位置编写程序,完成z=x+y
4.编译链接源文件,下载可执行程序
⑴.单击菜单“Project”、“RebuildAll”;
⑵.执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的UseCMD.out
文件。
完成后,系统自动打开源程序文件UseCMD.asm。
5.打开观察窗口
⑴.开启CPU寄存器观察窗口:
单击菜单“View”、“CPURegisters”、“CPU
Registers”。
⑵.在内存观察窗口中观察变量的值:
选择“View”菜单中“Memory…”项,在“MemroyWindowOptions”窗口
中的“Adress”项中输入x,单击“OK”完成设置;在随后显示的“Memory”窗口中单击鼠标右键,选择“FloatInMainWindow”项。
6.观察程序运行结果
这时,代表程序运行位置的黄色光标条停在start标号下面语句上,程序将从此开始执行。
⑴.单步执行程序(按F10键)2次,可观察到CPU寄存器窗口中DP和ST0的值有变化。
⑵.单步运行2次,在变量窗口中观察到变量x、y被赋值。
⑶.单步执行到xh标号后面的语句,观察A寄存器和变量z值的变化。
7.生成内存映像文件
⑴.单击菜单“Project”、“Options…”,启动“BuildOptions”工程设置对话框。
⑵.单击“Linker”属性页,在“MapFilename”项中输入需要生成的map文件名,比如可以输入UseCMD.map
⑶.单击“确定”,完成设置。
⑷.选择菜单“Project”、“RebuildAll”,重新编译工程,生成新设置的map文件。
8.对照观察map文件和cmd文件的内容
⑴.选择菜单“File”、“Open…”,将找到C:
\ICETEK-VC5416-USB\Lab2-UseCMD目录,将文件类型改为“MemoryMapFiles”,选择刚刚生成的UseCMD.map文件、打开。
⑵.展开工程管理窗中的UseCMD.pjt,双击其中的UseCMD.cmd文件。
⑶.将UseCMD.map和UseCMD.cmd这两个文件进行比较,理解map文件的内容。
⑷.内存的占用情况:
通过观察map文件中的“MEMORYCONFIGURATION”段可以了解内存的使用情况,可以看到,程序所占用的长度为十六进制b,即11个字长,而数据区因开设了3个变量,所以占用了3个字的地址空间。
六.实验结果
(1)记录根据实验要求修改后完整的cmd文件。
(2)记录自己编写的.asm源文件程序。
(3)程序运行结束后,通过memory菜单查看数据存储器中各变量的值及其所对应的地址,以及程序存储器中程序代码所对应的机器码及其地址。
(4)思考题:
修改源程序,完成0f000h+0e000h的计算。
请考虑有符号数和无符号数两种情况下A的内容。
注意:
(1)实验程序中计算变量的取值之和,由于取值较小,所以结果仍为16位数,程序中仅考虑保存A的低16位作为结果。
但如果计算中有进位等问题就需要考虑保存A