- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TMS320C54x DSP的函数发生器的设计
设计目的:
了解数字波形产生的原理;
学习用DSP产生各种波形的基本方法和步骤;
掌握DSP与D/A转换器接口的使用。
设计设备
计算机、DSP仿真器、ZYE1801B实验箱、20M示波器
设计原理
波形产生是DSP的重要应用之一。而正弦信号发生器的设计则是波形产生应用的一个重要方面,它在通信领域有着广泛的应用。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法
正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前5项,得近似计算式:
递推公式:
sin(nx) = 2cos(x)sin[(n-1)x]-sin[(n-2)x]
cos(nx) = 2cos(x)sin[(n-1)x]-cos[(n-2)x]
由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。
为了减少使用的存储器,可以采用正弦信号的对称性,复制90~180度的正弦值和180~360度的正弦值。
余弦信号的产生同样可以采用多种方法产生。一是采用公式计算得到,二是采用正弦信号变换得到。
方波信号产生可以通过轮流输出两个不同大小的数值通过A/D转换得到。
设计内容
本设计题目以TMS320C54x DSP为目标器件,设计并实现基于迭代法的“正弦序列生成”算法及其DSP程序。
设计步骤:
熟悉正弦信号发生器的算法以及在DSP系统的实现
熟悉A/D转换的原理及实验箱的链接
掌握A/D转换的程序的编写
编写DSP的正弦信号发生器的程序
编写定时程序产生100HZ、1KHZ、10KHZ的正弦、余弦以及100K、1M的方波信号,每种类型的波形单周期360个点。
编写按键程序,控制输出。用三个拨码开关对DSP进行输入,输入的0~7对应的8种不同的波形。
用示波器观察各个波形
分析波形失真的原因。
实验步骤
1. 熟悉本实验原理。
2. 阅读本实验样例程序。
3. 依次连接主板上的PC10、PC11、TP32到PC15、PC16、GND;依次连接主板上的PC13、PC14、M58到插板上的DJ0、DJ1、S12。
4. 将计算机与ZYE1801C实验箱通过并口P1相连。
5. 运行CCS软件客户软件\DSP程序\test19,通过插板上的JP1,JP2,JP3来选择不同的波形。
6. 用示波器观察DA0的输出波形。
六、设计的硬件结构框图
3位数字量输入 12位数字量输出
3位数字量输入 12位数字量输出 模拟量输出
DSP芯片
D/A转换器
实验代码
先计算0~45°(间隔为0.5°)的sin和cos值,在利用sin2a=2sina*cosa求出sin值(间隔为1°)。然后,通过复制,获得0~359°的正弦值。重复向PA口输出,便可得到正弦波。
.mmregs
.def start
.ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x: .usect sin_x,360
cos_x: .usect cos_x,360
fangbo: .usect fangbo,360
sanjiao: .usect sanjiao,360
STACK: .usect STACK,10H
k_theta .set 286;theta=Pi/360(0.5degree)
theta .set 182
TIM0 .set 0024H
PRD0 .set 0025H
TCR0 .set 0026H
PA0 .set 0100H;port A
PD0 .set 0120H
.text
start:
STM #0,SWWSR
STM #STACK+10H,SP
STM #3FA0H,PMST
STM #0010H,TCR0
ST #0,*(PD0)
set: STM k_
文档评论(0)