《DSP实验报告.docx》由会员分享,可在线阅读,更多相关《DSP实验报告.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DSP实验报告 试验0 试验设备安装才CCS调试环境 试验目的: 根据试验讲义操作步骤,打开CCS软件,熟识软件工作环境,了解整个工作环境内容,有助于提高以后试验的操作性和正确性。 试验步骤: 以演示试验一为例: 1 运用配送的并口电缆线连接好计算机并口与试验箱并口,打开试验箱电源; 2启动CCS,点击主菜单“Project-Open”在书目“C5000QuickStartsinewave”下打开工程文件sinewave.pjt,然后点击主菜单“Project-Build”编译,然后点击主菜单“File-Load Program”装载debug书目下的程序sinewave.out; 3 打开源
2、文件exer3.asm,在注释行“set breakpoint in CCS !”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4 点击主菜单“View-Graph-Time/Frequency”,屏幕会出现图形窗口设置对话框 5 双击Start Addre,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示; 6 点击主菜单“Windows-Tile Horizontally”,排列好窗口,便于视察 7 点击主菜单“Deb
3、ug-Animate”或按F12键动画运行程序,即可视察到试验结果: 心得体会: 通过对演示试验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、试验结果的视察有一个醒目的了解和熟识的操作方法。熟识了DSP试验箱基本模块。让我对DSP课程产生了深厚的学习爱好,课程学习和试验操作结合为一体的学习体系,使我更好的领悟到DSP课程的好用性和趣味性。 试验二 基本算数运算 2.1 试验目的和要求 加、减、乘、除是数字信号处理中最基本的算术运算。DSP 中供应了大量的指令来 实现这些功能。本试验学习运用定点DSP 实现16 位定点加、减、乘、除运算的基本方法 和编程技
4、巧。本试验的演示文件为exer1.out。 2.2 试验原理 1) 定点 DSP 中的数据表示方法 C54X 是16 位的定点DSP。一个16 位的二进制数既可以表示一个整数,也可以表 示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14) 表示214。 2) 实现 16 位定点加法 C54X 中供应了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。其中 ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加 法),而ADDM 专用于马上数的加法。 3) 实现 16 位定点减法 C54X 中供应了多条用于减法的
5、指令,如SUB,SUBB,SUBC 和SUBS。其中SUBS 用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法), 而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。 4) 实现 16 位定点整数乘法 在C54X 中供应了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器 中。乘数在C54X 的乘法指令很敏捷,可以是T 寄存器、马上数、存贮单元和A 或B 寄存器的高16 位。 5) 实现 16 位定点小数乘法 在 C54X 中,小数的乘法与整数乘法基本一样,只是由于两个有符号的小数相乘, 其结果的小数点的位置在次高的后面,所以必需左移一位,才
6、能得到正确的结果。C54X 中供应了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但留意 整数乘法时不能这样处理,所以上面的试验中一起先便将FRCT 清除。两个小数(16 位) 相乘后结果为32 位,假如精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可 得到16 位的结果。 6) 实现 16 位定点整数除法 在 C54X 中没有供应特地的除法指令,一般有两种方法来完成除法。一种是用乘法 来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于 除以常数特殊适用。另一种方法是运用SUBC 指令,重复16 次减法完成除法运算。 7) 实现 16
7、位定点小数除法 在 C54X 中实现16 位的小数除法与前面的整数除法基本一样,也是运用循环的 SUBC 指令来完成。但有两点须要留意:第一,小数除法的结果肯定是小数(小于1), 1 所以被除数肯定小于除数。 2.3 试验内容 本试验须要运用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存 贮器显示窗口视察结果。 1) 编写试验程序代码 2) 用 ccs simulator 调试运行并视察结 2.4 试验结果 1、加法结果 2、乘法结果 3、减法结果 4、除 4 2.5 思索题(0.5、0.25) 5 试验三 C54X的浮点数的算术运 一、试验目的 1) 练习 TMS320C
8、54X 汇编程序的编写与调试方法,重点练习C54X 程序流程限制的方法。 2) 学习并驾驭应用 TMS320C54X 来进行浮点数的各种算术运算的算法实现。 3) 练习并驾驭 TMS320C54X 的汇编语言的汇编指令系统的运用方法,重点练习具有C54X 特点的一些在功能上有所扩展的特别指令,并了解这些指令在进行算术运算或各种限制时所带来的便利。 4) 练习并驾驭用 CCS 调试程序的一些基本操作。 二试验原理 1) 浮点数的表示方法 在定点运算中,小数点是在一个特定的固定位置。例如,假如一个 32-bit 的数把小数点放在最高有效位(也就是符号位)之后,那么就只有分数(肯定值小于1)才能被显
9、示。在定点运算系统中,虽然在硬件上实现简洁,但是表示的操作数的动态范围要受到限制。 3) 浮点数运算的步骤 程序代码分成四个 ASM 文件输入,通过编译生成.obj 文件,连接生成.out 文件后就可以在DES320PPU 试验系统上调试运行(先要创建一个工程文件,然后加入四个工程文件,并且一起编译,连接。因为每个文件都对下一个文件作了引用)。步骤如下: a.首先启动 setup CCS C5000,在其中设置目前须要的CCS 的工作状态为C54xxsimulator,保存这一设置并退出。然后再启动CCS 试验系统软件CCS C5000。 b.在下拉菜单中选择“File”-“Load Prog
10、ram”以装入所要调试的程序fc.out,这时,在反汇编窗口中能看到程序的源代码。 c.在下拉菜单中选择“View”-“CPU Registers”-“CPU Register”,可以望见在CCS 界面下部份会出现CPU 中的相关寄存器;选择“View”-“Memory”,在弹出的“Memory Window Options”窗口中选择要视察的区域为数据区,地址起先为0x80h,然后就可以望见出现一个Data Memory 窗口,其中显示了从0x80h 起先的 .b 区。 d.在反汇编窗口中须要视察的地方设置断点:在这条指令处双击将其点为红色即可。比如在加法程序中有指令nop 的位置都可以加一
11、个断点。 e.在下拉菜单中选择“调试”“连续运行”(或干脆点击“运行程序”按钮)运行浮点数程序。假如编写程序时在计算完毕后遇到一个断点,那么程序到此会自动停止。 f.当示范程序在第一个断点处停下来时,此时就可以望见程序初始化后的状况:被加数12.0 以浮点数的格式放在内存区0x08a-0x08b 中,其值为4140h 和0000h。加数12.0 放在内存区0x08c-0x08d 中,其值也为4140h 和0000h。 6 g.再点击“运行程序”按钮,之后程序会在下一个断点处停下来,这时可以望见被加数被格式转换后的变量op1hm、op1lm 和op1se 的值在内存区0x084-0x086 中,
12、分别为00c0h、0000h 和0082h。同样加数被格式转换后的变量op2se、op2hm 和op2lm的值在内存区0x087-0x089 中,分别为0082h、00c0h 和0000h。 h.再点击“运行程序”按钮,程序停下来时就可以视察到在存储器窗口中表示结果的变量rlthm、rltlm、rltsign 和rltexp 的值在内存区0x080-0x083 中,其值分别为0040h、0000h、0180h 和0083h。 i.这时可以看到 A 寄存器中的值为AH=41c0h,AL=0000h 这就是最终的以浮点数的格式表示的结果值24(=12+12)。加法运算到此结束。 j.接着点击“运行
13、程序”按钮,当程序再次停下来时就可以望见在A 寄存器中显示的13.0 与12.0 进行减法运算的结果:AH=3f80h,AL=0000h。这是用浮点数格式表示的数1(=13-12)。减法运算的程序到此结束。 k.接着点击“运行程序”按钮,当程序再次停下来时就可以望见在A 寄存器中显示的12.0 与12.0 进行乘法运算的结果:AH=4310h,AL=0000h。这是用浮点数格式表示的数144(=12*12)。乘法运算的程序到此结束。 l.接着点击“运行程序”按钮,当程序再次停下来时就可以望见在A 寄存器中显示的12.0 与4.0 进行除法运算的结果:AH=4040h,AL=0000h。这是用浮
14、点数格式表示的数3(=12/4)。至此加、减、乘、除四种运算都运行完毕。 m.假如程序运行不正确,请检查源程序是否有误,必要时可以在源程序中多插入断点语句。程序在执行到断点语句时自动暂停,此时可以通过检查各个寄存器中的值以及内存单元中的值来推断程序执行是否正确。 三在 CCS 的C54xx simulator 上调试视察试验结果 浮点加法断点一: 7 浮点加法断点二: 浮点加法断点三: 8 浮点减法 浮点数乘法 9 浮点数除法 四 心得体会 通过学习C54X的浮点数的算术运算,以及试验结果的视察,使我了解了浮点数运算的原理,学习并驾驭用TMS320C54X来进行浮点数的各种算术运算的算法实现。
15、 试验四用定时器实现数字振荡器 10 试验四 用定时器实现数字振荡器 4.1 试验目的 在数字信号处理中,会常常运用到正弦/余弦信号。通常的方法是将某个频率的正弦/余弦值预先计算出来后制成一个表,DSP 工作时仅作查表运算即可。在本试验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。本试验除了学习数字振荡器的DSP 实现原理外,同时还学习C54X 定时器运用以及中断服务程序编写。另外,在本试验中我们将运用汇编语言和C 语言分别完成源程序的编写。 4.2 试验要求 本试验利用定时器产生一个 2kHz 的正弦信号。定时器被设置成每25uS 产生一次中断(等效于采样速
16、率为40K)。利用该中断,在中断服务程序中用叠代算法计算出一个SIN值,并利用CCS 的图形显示功能查看波形。 4.3 试验原理 1) 数字振荡器原理 设一个传递函数为正弦序列 sinkT,其z 变换为 H(z)= 其中,A=2cosT, B=-1, C=sinT。设初始条件为0,求出上式的反Z 变换得: yk=Ayk-1+Byk-2+Cxk-1 2) C54X 的定时器操作 C54X 的片内定时器利用CLKOUT 时钟计数,用户运用三个寄存器(TIM,PRD,TCR)来限制定时器,参见表4-1。在表4-2 中列出了定时器限制寄存器的各个比特位的详细定义。VC5402 的另一个定时器(定时器1
17、)的限制寄存器分别为:0x30(TIM1),0x31(PRD1),0x32(TCR1)。 3) C54X 中断的运用 在 C54X 中用户可以通过中断屏蔽寄存器IMR 来确定开放或关闭一个中断恳求。图4-1 给出了C5402 的IMR 寄存器的各个比特位的定义。 图 4-1 C5402 的IMR 寄存器 其中,HPINT 表示HPI 接口中断,INT3-INT0 为外部引脚产生的中断,TXINT 和TRINT 为TDM 串口的发送和接收中断,BXINT0 和BRINT0 为BSP 串口的发送和接收中断,TINT0 为定时器0 中断。在中断屏蔽寄存器IMR 中,1 表示允许CPU 响应对应的中断
18、,0 表示禁止。当然要CPU 响应中断,ST1 寄存器中的INTM 还应当为0(允许全部的中断)。 本试验的初始化程序读取中断向量表的启始地址,然后设置PMST 的高9 位,以便DSP 能正确响应中断,代码如下: ld #0,dp ;设置DP 页指针 bx intm ;关闭全部中断 11 ld #vector, a ;读出中断向(地址vector 在中断向量表程序中定义) and #0FF80h, a ;保留高9 位(IPTR) andm #007Fh, pmst ;保留PMST 的低7 位 or pmst, a ; stlm a, pmst ;设置PMST(其中包括IPTR) 4.4 试验内
19、容 本试验须要运用 C54X 汇编语言或C 语言实现数字振荡器,并通过CCS 供应的图形显示窗口视察出信号波形以及频谱。试验分下面几步完成: 1) 依据确定数字振荡器的频率,确定系数。 2) 启动 CCS,新建工程文件。 3) 选择 Project 菜单中的Options 选项,或运用鼠标右键单击工程文件名(如sinewave.pjt)并选择build options 项来修改或添加编译、连接中运用的参数。选择Linker 窗口,在“Output Filename”栏中写入输出OUT 文件的名字,如sine.out,你还可以设置生成的MAP 文件名。 4) 完成编译、连接,正确生成OUT 文件
20、。 5) 选 ViewGraphTime/Frequency打开图形显示设置窗口。 6) 在汇编源程序的中断服务程序(_tint)中的“nop”语句处设置断点。 7) 用右键单击图形显示窗口,并选择“Proporties”项以便修改显示属性。 12 8) 清除全部断点,关闭除波形显示窗口外的全部窗口,并关闭工程文件。 9) 完成编译、连接,正确生成OUT 文件。 10)打开 C 源程序(timer.c)窗口,在中断服务程序(函数tint())的“con_buf=0;”语句处增加一个断点。同样打开图形显示窗口,并将“Start Addre”改为buf;“Acquisition Buffer Si
21、ze”改为“Display Data Size”改为128,“DSP DataType”为“32-bit floating point” 11)选择 DebugAnimate,运行程序,视察输出波形。 DSP试验报告 DSP试验报告 2407dsp试验报告 dsp课程设计试验报告总结 DSP试验报告+心得体会 dsp试验报告心得体会 DSP第一次试验报告 试验报告(电路试验试验报告要求) DSP试验5 DSP试验教案 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第15页 共15页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页第 15 页 共 15 页