资源描述:
《DSP实验指导书(杨宣兵)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一基本算术运算的DSP实现1实验二数字振荡器的设计与实现9实验五TMS320VC5402的Bootloader设计与实现34附录一DES5402PP-U性能介绍82附录二CCS驱动程序的安装83附录三DES5402PP-U功能详细介绍8793附录四DES5402PP-U板上设置、状态显示、跳线一览表实验基本算术运算的DSP实现实验学时:3实验类型:验证实验要求:必修一、实验目的1、掌握CCS的配置与基本使用方法;2、掌握C54X汇编语言程序结构,掌握基于CCS开发平台Simulator采用汇编指令完成16位定点加减乘除运算程序设计并对运算结果进行评价;二、实
2、验内容本实验学习使用定点DSP实现16位定点加、减、乘、除运算的基本方法和编程技巧。三、实验原理、方法和手段1、定点DSP中数据表示方法C54X是16位的定点DSPo一个16位的二进制数既可以表示一个整数,也可以表示一个小数。当它表示一个整数时,其最低位(DO)表示2°,D1位表示丁,次高位(D14)表示2”。如果表示一个有符号数吋,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的负数・1(负数用2的补码方式显示)。当需要表示小数时,小数点的位置始终在最高位后,而最高位(D15)表示
3、符号位。这样次高位(D14)表示2",然后是才?,最低位(DO)表示2_,5o所以04000H表示小数0.5,01000H表示小数2一3=0.125,而0001H表示16位定点DSP能表示的最小的小数(有符号)2_,5=0.000030517578125c在后面的实验中,除非有特别说明,我们指的都是冇符号数。在C54X中,将一个小数用16位定点格式来表示的方法是用2"乘以该小数,然后取整。从上面的分析可以看出,在DSP屮一个16进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才
4、是有所区别的,而在加减运算时,系统都当成整数來处理。2、实现16定点加法C54X中提供了多条用于加法的指令,女IIADD,ADDC,ADDM和ADDS。其屮ADDS用于无符号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM代码來说明加法运算:专用于立即数的加法。在木实验中,我们可以使用卜•列Idtempi,aaddtemp2,astla,add_result;将变量tempi装入寄存器A;将变量temp2与寄存器A相加,结果放入A中;将结果(低16位)存入变量add_result中。注意,这里完成计算temp3=temp1+temp
5、2,我们没有特意考虑tempi和temp2是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。3、实现16位定点减法C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。其屮SUBS用于无符号数的减法运第SUBB用于带进位的减法运算(如32位扩展精度的减法),而SUBC为移位减,DSP中的除法就是用该指令来实现的。SUB指令与ADD指令一样,有许多的寻址方式,其详细使用说明请查阅TI文档。在木实验屮,我们可以使用下列代码来说明减法运算:stm#temp1,ar3stm#temp3,ar2;将变暈tempi的地址装入如3寄
6、存器;将变量temp3的地址装入ar3寄存器sub*ar2+,*ar3,b;将变量temp3左移16位同时变量tempi也左移;16位,然后相减,结果放入寄存器B(高16位)中,;同吋ar2加1。sthb?sub_result4、实现16定点整数乘法;将相减的结果(高16位)存入变msubresultc在C54X中提供了大量的乘法运算指令,其结杲都是32位,放在A或B寄存器中。乘数在C54X的乘法指令很灵活,可以是T寄存器、立即数、存贮单元和A或B寄存器的高16位。在C54X屮,一般对数据的处理都当做有符号数,如果是无符号数乘时,请使用MPYU指令。这是一条专用
7、于无符号数乘法运算的指令,而其它指令都是有符号数的乘法。在木实验中,我们使用卜•列代码來说明整数乘法运算:rsbxFRCT;清FRCT标志,准备整数乘Idtempi,T;将变量tempi装入T寄存器mpytemp2,a;完成temp2*templ,结果放入A寄存器(32位)例如,当templ=1234H(十进制的4660),temp2=9876H(十进制的-26506),乘法的结果在A寄存器中为0F8A343F8H(十进制的-123517960)。这是一个32位的结果,需要两个内存单元来存放结果:stha,mpy_I_h;将结果(高16位)存入变量mpy_I_h
8、stla,mpy_I_l