DSP技术典型应用实例.ppt

上传人:wuy****n92 文档编号:53147078 上传时间:2022-10-25 格式:PPT 页数:46 大小:552.50KB
返回 下载 相关 举报
DSP技术典型应用实例.ppt_第1页
第1页 / 共46页
DSP技术典型应用实例.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《DSP技术典型应用实例.ppt》由会员分享,可在线阅读,更多相关《DSP技术典型应用实例.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 1第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 8.1DSP最小系统电路设计最小系统电路设计8.2正弦波信号发生器设计正弦波信号发生器设计8.3语音信号采集语音信号采集8.4步进电动机的步进电动机的DSP控制控制8.5Matlab语言在语言在DSP设计中的应用设计中的应用本章小结本章小结习习题题10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 28.1DSP最小系统电路设计

2、最小系统电路设计 C5490内部具有16K16bit的ROM和32K16bit的RAM。芯片内部RAM和ROM可根据PMST寄存器中的OVLY、DROM位灵活设置。数据区,00H5FH为存储器映射寄存器,60H70H为双寻址RAM(DARAM),80H1FFFH为DARAM,2000H7FFFH为单寻址RAM(SARAM)。当DROM=1时,内部的C000HFFFFH同时被映射在数据区。当OVLY=1时,内部的80H1FFFH和2000H7FFFH同时被映射为程序区。FF80H开始存储固有的中断矢量,当芯片工作在微计算机模式时,起始地址为C000H的16K16bit ROM也被映射到程序区。8

3、.1.1TMS320C5409芯片芯片 C5409具有一个可屏蔽存储器保护选项,用来保护片内存储器的内容。当选定此项时,所有外部产生的指令都不能访问片内存储器空间。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 3 JTAG仿真口连接需要和仿真器上给出的端子一致。8.1.2JTAG仿真口的连接仿真口的连接 如果DSP和仿真器之间的连接电缆超过6in,采用如图所示接法,在数据传输端加一驱动。在大多数情况下,只要板子和仿真器之间的连接电缆不超过6in,数据传输端可不加驱动。DSP的EMU0和EMU1端需要用电阻上拉,推荐阻值为

4、或10k。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 4 在TI公司的DSP系列中,C2xx系列、C54x采用单一5V电源供电;而C54xx采用和电源供电,其中I/O采用电源供电,芯片内核电压采用电源供电。而实际常用的只有5V电源,所以必须采用电源转换芯片。TPS73xx系列是TI公司为了配合DSP而设计的电源转换芯片,下面着重介绍TPS7301的应用,其硬件接线如图所示。8.1.3电源转换芯片电源转换芯片10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用

5、实例 5图8.4 晶振的接线图8.1.4时钟信号的接入时钟信号的接入 C54xx系列时钟端子为X1和X2/CLKIN,如果采用无源晶振,用这两个端子就可以了,接法如图8.4(a)所示。如果采用有源晶振,直接连接X2端子,接法如图8.4(b)所示。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 6 正弦波信号正弦波信号正弦波信号正弦波信号发发发发生器生器生器生器设计设计设计设计 正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦

6、波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。用用用用DSPDSP实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:(1)(1)查表法查表法查表法查表法 将某个频率的正弦将某个频率的正弦将某个频率的正弦将某个频率的正弦/余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,通过查表的方式来实现正弦波,主要用于对精度要求不

7、很高的通过查表的方式来实现正弦波,主要用于对精度要求不很高的通过查表的方式来实现正弦波,主要用于对精度要求不很高的通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。场合。场合。场合。(2)(2)泰勒级数展开法泰勒级数展开法泰勒级数展开法泰勒级数展开法 根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦

8、值,且只需要较小的存储空间。小的存储空间。小的存储空间。小的存储空间。(3)(3)迭代法迭代法迭代法迭代法 利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 7 产生正弦波的算法产生正弦

9、波的算法产生正弦波的算法产生正弦波的算法 取泰勒级数的前取泰勒级数的前取泰勒级数的前取泰勒级数的前5 5 5 5项,得近似计算式:项,得近似计算式:项,得近似计算式:项,得近似计算式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 8由式由式由式由式(3)(3)和由式和由式和由式和由式(4)(4)可推导出可推导出可推导出可推导出递推公

10、式:递推公式:递推公式:递推公式:(5)(5)(6)(6)sinsin(nxnx)=2cos=2cos(x x)sinsin(n n-1 1)x x-sinsin(n n-2 2)x x coscos(nxnx)=2cos=2cos(x x)sinsin(n n-1 1)x x-coscos(n n-2 2)x x 由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时,需要已知需要已知需要已知需要已知coscos(x x)、sinsin(n n-1 1)x x、sinsin(n n-2

11、2)x x和和和和coscos(n n-2 2)x x。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 9 计算一个角度计算一个角度计算一个角度计算一个角度x x的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采用子程序的调用方式来实现。用子程序的调用方式来实现。用子程序的调用方式来实现。用子程序的调用方式来实现。在调用前先在数据存储器在调用前先在数据存储器在调用前先在数据存储器在调用前先在数据存储器d_xsd_xs单元中存放单元

12、中存放单元中存放单元中存放x x的弧度值,计的弧度值,计的弧度值,计的弧度值,计算结果存放在算结果存放在算结果存放在算结果存放在d_sinxd_sinx单元中。单元中。单元中。单元中。1 1 1 1计算一个角度的正弦值计算一个角度的正弦值计算一个角度的正弦值计算一个角度的正弦值 程序中要用到一些存储单元存放数据和变量,程序中要用到一些存储单元存放数据和变量,程序中要用到一些存储单元存放数据和变量,程序中要用到一些存储单元存放数据和变量,存储单元存储单元存储单元存储单元的分配如下:的分配如下:的分配如下:的分配如下:d_xsd_xs:x x;d_squr_xsd_squr_xs:x x2 2 d

13、_temp_sd_temp_s:暂存;:暂存;:暂存;:暂存;d_sinxd_sinx:计算结果:计算结果:计算结果:计算结果sinsinx x c_1_sc_1_s:7FFFh(7FFFh(数值数值数值数值1)1);d_coef_sd_coef_s:泰勒系数:泰勒系数:泰勒系数:泰勒系数 8.2.2正弦波的正弦波的DSP实现实现10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 10图计算正弦值存储单元的分配图计算正弦值存储单元的分配图计算正弦值存储单元的分配图计算正弦值存储单元的分配程序清单程序清单程序清单程序清单sinx

14、sinxsinxsinx.asmasmasmasm:.title “sinx.asm”.title “sinx.asm”.title “sinx.asm”.title “sinx.asm”.mmregs .mmregs .mmregs .mmregs .def start .def start .def start .def start .ref sin_start .ref sin_start .ref sin_start .ref sin_start,d_xsd_xsd_xsd_xs,d_sinxd_sinxd_sinxd_sinxSTACKSTACKSTACKSTACK:.usect “

15、STACK”usect “STACK”usect “STACK”usect “STACK”,10101010 ;定义符号;定义符号;定义符号;定义符号 ;定义符号;定义符号;定义符号;定义符号 ;建立堆栈;建立堆栈;建立堆栈;建立堆栈 10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 11startstart:STM#STACK+10STM#STACK+10,SPSPLD#d_xsLD#d_xs,DPDPST#6487HST#6487H,d_xsd_xsCALLsin_startCALLsin_startendend:Ben

16、dBendsin_startsin_startsin_startsin_start:.def sin_start .def sin_start .def sin_start .def sin_start d_coef_s .usect d_coef_s .usect d_coef_s .usect d_coef_s .usect “coef_scoef_scoef_scoef_s”,4 4 4 4 .data .data .data .data table_s table_s table_s table_s:.word 01C7H .word 01C7H .word 01C7H .word 0

17、1C7H .word 030BH .word 030BH .word 030BH .word 030BH .word 0666H .word 0666H .word 0666H .word 0666H .word 1556H .word 1556H .word 1556H .word 1556H d_xs .usect d_xs .usect d_xs .usect d_xs .usect “sin_varssin_varssin_varssin_vars”,1 1 1 1 d_squr_xs .usect d_squr_xs .usect d_squr_xs .usect d_squr_xs

18、 .usect “sin_varssin_varssin_varssin_vars”,1 1 1 1 d_temp_s .usect d_temp_s .usect d_temp_s .usect d_temp_s .usect “sin_varssin_varssin_varssin_vars”,1 1 1 1 d_sinx .usect d_sinx .usect d_sinx .usect d_sinx .usect “sin_varssin_varssin_varssin_vars”,1 1 1 1 c_1_s .usect c_1_s .usect c_1_s .usect c_1_

19、s .usect “sin_varssin_varssin_varssin_vars”,1 1 1 1;设置堆栈指针;设置堆栈指针;设置堆栈指针;设置堆栈指针;设置页指针;设置页指针;设置页指针;设置页指针;xd_xsxd_xs;调用子程序;调用子程序;调用子程序;调用子程序 ;子程序;子程序;子程序;子程序 ;定义符号;定义符号;定义符号;定义符号 ;定义数据空间存放系数;定义数据空间存放系数;定义数据空间存放系数;定义数据空间存放系数 ;定义程序空间存放系数;定义程序空间存放系数;定义程序空间存放系数;定义程序空间存放系数 ;c1=1/(8c1=1/(8 9)9);c2=1/(6c2=1/

20、(6 7)7);c3=1/(4c3=1/(4 5)5);c4=1/(2c4=1/(2 3)3);定义;定义;定义;定义1 1 1 1个数据空间存放个数据空间存放个数据空间存放个数据空间存放x x x x ;定义;定义;定义;定义1 1 1 1个数据空间存放个数据空间存放个数据空间存放个数据空间存放x x x x2 2 2 2 ;定义;定义;定义;定义1 1 1 1个暂存单元个暂存单元个暂存单元个暂存单元 ;定义数据空间存放结果;定义数据空间存放结果;定义数据空间存放结果;定义数据空间存放结果 ;定义数据空间存放数值;定义数据空间存放数值;定义数据空间存放数值;定义数据空间存放数值1 1 1 1

21、 10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 12 .text .text .text .text SSBX FRCT SSBX FRCT SSBX FRCT SSBX FRCT STM#d_coef_s STM#d_coef_s STM#d_coef_s STM#d_coef_s,AR4AR4AR4AR4 RPT#3 RPT#3 RPT#3 RPT#3 MVPD#table_s MVPD#table_s MVPD#table_s MVPD#table_s,*AR4+*AR4+*AR4+*AR4+STM#d_coef_

22、s STM#d_coef_s STM#d_coef_s STM#d_coef_s,AR2AR2AR2AR2 STM#d_xs STM#d_xs STM#d_xs STM#d_xs,AR3AR3AR3AR3 STM#c_1_s STM#c_1_s STM#c_1_s STM#c_1_s,AR5AR5AR5AR5 ST#7FFFH ST#7FFFH ST#7FFFH ST#7FFFH,c_1_sc_1_sc_1_sc_1_s SQUR *AR3+SQUR *AR3+SQUR *AR3+SQUR *AR3+,A A A A ST A ST A ST A ST A,*AR3*AR3*AR3*AR3|L

23、D *AR5|LD *AR5|LD *AR5|LD *AR5,B B B B MASR *AR3+MASR *AR3+MASR *AR3+MASR *AR3+,*AR2+*AR2+*AR2+*AR2+,B B B B,A A A A MPYA A MPYA A MPYA A MPYA A ;设置小数运算;设置小数运算;设置小数运算;设置小数运算 ;设置系数表首地址;设置系数表首地址;设置系数表首地址;设置系数表首地址 ;设置重复操作次数;设置重复操作次数;设置重复操作次数;设置重复操作次数 ;向系数表传送泰勒系数;向系数表传送泰勒系数;向系数表传送泰勒系数;向系数表传送泰勒系数 ;系数表首地址

24、送;系数表首地址送;系数表首地址送;系数表首地址送AR2AR2AR2AR2 ;x x x x单元地址送单元地址送单元地址送单元地址送AR3AR3AR3AR3 ;数值;数值;数值;数值1 1 1 1地址送地址送地址送地址送AR5AR5AR5AR5 ;将数值;将数值;将数值;将数值1 1 1 1送送送送c_l_sc_l_sc_l_sc_l_s单元单元单元单元 ;求;求;求;求x x x x的平方值的平方值的平方值的平方值 ;x x x x2 2 2 2值存入值存入值存入值存入d_squr_xsd_squr_xsd_squr_xsd_squr_xs单元单元单元单元 ;B=1B=1B=1B=1 ;A=

25、1-xA=1-xA=1-xA=1-x2 2 2 2/72/72/72/72,T=xT=xT=xT=x2 2 2 2 ;A=TA=TA=TA=T A=A=A=A=x x x x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/72)/72)/72)/72)10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 13 STH A STH A STH A STH A,*AR3*AR3*AR3*AR3 MASR *AR3-MASR *AR3-MASR *AR3-MASR *AR3-,*AR2+*AR2+*AR2+*AR2+,B

26、 B B B,A A A A MPYA *AR3+MPYA *AR3+MPYA *AR3+MPYA *AR3+ST B ST B ST B ST B,*AR3*AR3*AR3*AR3|LD *AR5|LD *AR5|LD *AR5|LD *AR5,B B B B MASR *AR3-MASR *AR3-MASR *AR3-MASR *AR3-,*AR2*AR2*AR2*AR2,B B B B,A A A A MPYA *AR3+MPYA *AR3+MPYA *AR3+MPYA *AR3+ST B ST B ST B ST B,*AR3*AR3*AR3*AR3|LD *AR5|LD *AR5|L

27、D *AR5|LD *AR5,B B B B MASR *AR3-MASR *AR3-MASR *AR3-MASR *AR3-,*AR2*AR2*AR2*AR2,B B B B,A A A A MPYA d_xs MPYA d_xs MPYA d_xs MPYA d_xs STH B STH B STH B STH B,d_sinxd_sinxd_sinxd_sinx RET RET RET RET .end .end .end .end ;(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2

28、2/72)/72)/72)/72);A=1-xA=1-xA=1-xA=1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);T=xT=xT=xT=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/72)/72)/72)/72);B=xB=xB=xB=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x2

29、2 2 2(1-x(1-x(1-x(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);B=1B=1B=1B=1 ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);B=xB=xB=xB=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/

30、42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);(d_temp_s)=B=(d_temp_s)=B=(d_temp_s)=B=(d_temp_s)=B=;B=1B=1B=1B=1 ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/6(1-x/6(1-x/6(1-x/6(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);B=x(1-xB=x(1-xB=x(1-xB=x(1-x2 2 2 2/6(1-x/6(1-x/6(1

31、-x/6(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72);计算;计算;计算;计算sinxsinxsinxsinx结果存入结果存入结果存入结果存入d_sinxd_sinxd_sinxd_sinx单元单元单元单元 ;子程序返回;子程序返回;子程序返回;子程序返回10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 14计算一个角度计算一个角度计算一个角度计算一个角度x x的余弦值,可利用泰

32、勒级数的展开式的余弦值,可利用泰勒级数的展开式的余弦值,可利用泰勒级数的展开式的余弦值,可利用泰勒级数的展开式(8.4)(8.4),并采用子程序的调用方式来实现。,并采用子程序的调用方式来实现。,并采用子程序的调用方式来实现。,并采用子程序的调用方式来实现。计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。存储单元分配图:存储单元分配图:存储单元分配图:存储单元分配图:2 2 2 2计算一个角度的余弦值计算一个角度的余弦值计算一个角度的余弦值计算一个角度的余弦值 数据存储器数据存储器d_xcxd_squr_xcx2 2d_temp_

33、cd_cosxcosxc_1_c7FFFH7FFFHd_coef_cc1=0249Hc1=0249Hc2=0444Hc2=0444Hc3=0AABHc3=0AABHc4=4000hHc4=4000hH程序存储器程序存储器table_cc1=1/(7 8)c2=1/(5 6)c3=1/(3 4)c4=1/210/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 15实现步骤如下:实现步骤如下:实现步骤如下:实现步骤如下:3 3 3 3正弦波的实现正弦波的实现正弦波的实现正弦波的实现(1)(1)(1)(1)利用利用利用利用sin_st

34、artsin_startsin_startsin_start和和和和cos_startcos_startcos_startcos_start子程序,计算子程序,计算子程序,计算子程序,计算0 0 0 0 45454545 (间隔间隔间隔间隔为为为为0 0 0 0.5 5 5 5 )的正弦和余弦值;的正弦和余弦值;的正弦和余弦值;的正弦和余弦值;(2)(2)利用利用利用利用sinsinsinsin(2 2 2 2x x x x)=2sin=2sin=2sin=2sin(x x x x)coscoscoscos(x x x x)公式公式公式公式,计算计算计算计算0 0 0 0 90909090 的

35、正弦的正弦的正弦的正弦值值值值(间隔为间隔为间隔为间隔为1 1 1 1 ););););(3)(3)通过复制,获得通过复制,获得通过复制,获得通过复制,获得0 0 0 0 359359359359 的正弦值;的正弦值;的正弦值;的正弦值;(4)(4)将将将将0 0 0 0 359359359359 的正弦值重复从的正弦值重复从的正弦值重复从的正弦值重复从PAPAPAPA口输出,便可得到正弦波。口输出,便可得到正弦波。口输出,便可得到正弦波。口输出,便可得到正弦波。10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 16正弦波源

36、程序清单正弦波源程序清单正弦波源程序清单正弦波源程序清单sinsinsinsin.asm asm asm asm .title .title .title .title “sinx.asmsinx.asmsinx.asmsinx.asm”.mmregs .mmregs .mmregs .mmregs .def start .def start .def start .def start .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx .ref d_xs,sinx,d_sinx,d_xc,

37、cosx,d_cosx .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx sin_x sin_x sin_x sin_x:.usect .usect .usect .usect “sin_xsin_xsin_xsin_x”,360360360360 STACK STACK STACK STACK:.usect .usect .usect .usect “STACKSTACKSTACKSTACK”,10101010 k_theta .set 286 k_theta .set 286 k_theta .set 286 k_theta .set 286 ;theta=pi

38、/360(0.5deg)theta=pi/360(0.5deg)theta=pi/360(0.5deg)theta=pi/360(0.5deg)PA0 .set 0 PA0 .set 0 PA0 .set 0 PA0 .set 0 10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 17 start start start start:.text .text .text .text STM#STACK+10 STM#STACK+10 STM#STACK+10 STM#STACK+10,SPSPSPSP STM#0 STM#0

39、STM#0 STM#0,AR0AR0AR0AR0 STM k_theta STM k_theta STM k_theta STM k_theta,AR1AR1AR1AR1 STM#sin_x STM#sin_x STM#sin_x STM#sin_x,AR7AR7AR7AR7 STM#90 STM#90 STM#90 STM#90,BRCBRCBRCBRC RPTB loop1-1 RPTB loop1-1 RPTB loop1-1 RPTB loop1-1 LDM AR0 LDM AR0 LDM AR0 LDM AR0,A A A A LD#d_xs LD#d_xs LD#d_xs LD#d

40、_xs,DPDPDPDP STL A STL A STL A STL A,d_xsd_xsd_xsd_xs STL A STL A STL A STL A,d_xcd_xcd_xcd_xc ;主程序;主程序;主程序;主程序 ;设置堆栈;设置堆栈;设置堆栈;设置堆栈 ;AR0=x=0AR0=x=0AR0=x=0AR0=x=0 ;设置增量;设置增量;设置增量;设置增量 ;AR7AR7AR7AR7指向指向指向指向sin_xsin_xsin_xsin_x ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin0sin0sin0sin0至至至至sin90sin90sin9

41、0sin90 ;取;取;取;取x x x x值值值值 ;设置页指针;设置页指针;设置页指针;设置页指针 ;将;将;将;将x x x x值送入值送入值送入值送入d_xsd_xsd_xsd_xs单元单元单元单元 ;将;将;将;将x x x x值送入值送入值送入值送入d_xcd_xcd_xcd_xc单元单元单元单元10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 18 CALL sin_start CALL sin_start CALL sin_start CALL sin_start CALL cos_start CALL co

42、s_start CALL cos_start CALL cos_start LD#d_sinx LD#d_sinx LD#d_sinx LD#d_sinx,DPDPDPDP LD d_sinx LD d_sinx LD d_sinx LD d_sinx,16161616,A A A A MPYA d_cosx MPYA d_cosx MPYA d_cosx MPYA d_cosx STH B STH B STH B STH B,1 1 1 1,*AR7+*AR7+*AR7+*AR7+MAR *AR0+0 MAR *AR0+0 MAR *AR0+0 MAR *AR0+0 ;调用;调用;调用;调用

43、sinxsinxsinxsinx子程序,计算子程序,计算子程序,计算子程序,计算x x x x的正弦值的正弦值的正弦值的正弦值 ;调用;调用;调用;调用coscoscoscos子程序,计算子程序,计算子程序,计算子程序,计算x x x x的余弦值的余弦值的余弦值的余弦值 ;切换到正弦指数据区;切换到正弦指数据区;切换到正弦指数据区;切换到正弦指数据区 ;求得正弦值;求得正弦值;求得正弦值;求得正弦值sin(x)sin(x)sin(x)sin(x)加载累加器加载累加器加载累加器加载累加器A A A A ;完成;完成;完成;完成sin(x)sin(x)sin(x)sin(x)cos(x)cos(x

44、)cos(x)cos(x)运算,将结果存入运算,将结果存入运算,将结果存入运算,将结果存入B B B B ;完成;完成;完成;完成2 2 2 2 sin(x)sin(x)sin(x)sin(x)cos(x)cos(x)cos(x)cos(x)运算,运算,运算,运算,;结果存入;结果存入;结果存入;结果存入AR7AR7AR7AR7指定单元指定单元指定单元指定单元 ;修改;修改;修改;修改AR0AR0AR0AR010/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 19 loop1:STM#sin_x+89loop1:STM#sin

45、_x+89loop1:STM#sin_x+89loop1:STM#sin_x+89,AR6AR6AR6AR6 STM#88 STM#88 STM#88 STM#88,BRC BRC BRC BRC RPTB loop2-1 RPTB loop2-1 RPTB loop2-1 RPTB loop2-1 LD *AR6-LD *AR6-LD *AR6-LD *AR6-,A A A A STL A STL A STL A STL A,*AR7+*AR7+*AR7+*AR7+loop2 loop2 loop2 loop2:STM#179 STM#179 STM#179 STM#179,BRC BRC

46、BRC BRC STM#sin_x STM#sin_x STM#sin_x STM#sin_x,AR6AR6AR6AR6 RPTB loop3-1 RPTB loop3-1 RPTB loop3-1 RPTB loop3-1 LD *AR6+LD *AR6+LD *AR6+LD *AR6+,A A A A NEG A NEG A NEG A NEG A STL A STL A STL A STL A,*AR7+*AR7+*AR7+*AR7+loop3:STM#sin_xloop3:STM#sin_x,AR7AR7STM#1STM#1,AR1AR1STM#360STM#360,BKBKloop4

47、loop4:PORTW*AR7+0%PORTW*AR7+0%,PA0PA0Bloop4Bloop4.end.end ;AR6AR6AR6AR6指向指向指向指向sin_x+89sin_x+89sin_x+89sin_x+89单元单元单元单元 ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin91sin91sin91sin91至至至至sin179sin179sin179sin179 ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin180sin180sin180sin180至至至至sin359sin359sin359sin35

48、9 ;AR6AR6AR6AR6指向指向指向指向sin_xsin_xsin_xsin_x单元单元单元单元;AR7AR7指向指向指向指向sin_xsin_x单元单元单元单元;设置缓冲区长度;设置缓冲区长度;设置缓冲区长度;设置缓冲区长度;输出正弦值;输出正弦值;输出正弦值;输出正弦值;循环输出,产生正弦波;循环输出,产生正弦波;循环输出,产生正弦波;循环输出,产生正弦波10/25/2022第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 20产生正弦波链接命令文件产生正弦波链接命令文件产生正弦波链接命令文件产生正弦波链接命令文件sinsinsins

49、in.cmdcmdcmdcmd vectors.objvectors.objvectors.objvectors.obj sin.obj sin.obj sin.obj sin.obj-o sin.out-o sin.out-o sin.out-o sin.out-m sin.map-m sin.map-m sin.map-m sin.map-e start-e start-e start-e start MEMORY MEMORY MEMORY MEMORY PAGE0 PAGE0 PAGE0 PAGE0:EPROMEPROMEPROMEPROM:org=0E000H org=0E000H

50、org=0E000H org=0E000H,len=1000Hlen=1000Hlen=1000Hlen=1000H VECS VECS VECS VECS:org=0FF80H org=0FF80H org=0FF80H org=0FF80H,len=0080Hlen=0080Hlen=0080Hlen=0080H PAGE1 PAGE1 PAGE1 PAGE1:SPRAMSPRAMSPRAMSPRAM:org=0060H org=0060H org=0060H org=0060H,len=0020H len=0020H len=0020H len=0020H DARAM1 DARAM1 D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁