0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使DSP数字振荡器产生移相正弦波

电子设计 来源:郭婷 作者:电子设计 2019-01-09 09:18 次阅读

引 言

产生数字式移相信号的方法有很多。传统的直接数字频率合成(DDS)移相原理是先将正弦波信号数字化,并形成一张数据表存入两片ROM芯片中,此后可通过两片。D/A转换芯片在计数器的控制下连续地循环输出该数据表,就可获得两路正弦波信号。当两片D/A转换芯片所获得的数据序列完全相同时,则转换所得到的两路正弦波信号无相位差。当两片D/A转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。数据的偏差可以通过外部微处理器来获得相应的数字量输入,这个数值对应着正弦信号的移相角度。直接频率合成方法具有频率转换时间短、相位噪声性能好、精度高,产生的信号频率范围宽等优点,但由于需要采用地址、相位计算、访问存储器操作等环节,导致直接频率合成器结构复杂、成本高、移相分辨率低。本文利用DSP技术,通过数值迭代方法,即用DSP数字振荡器的实现原理获得两路正弦波信号。通过仿真硬件实现,能得到设定参数的两路正弦波输出,达到了设计目的,并具有调整方便灵活、分辨率高等特点。数值迭代方法能精确计算角度的正弦值,只需较小的存储空间,选择正弦周期中的样点数、改变样点间的延迟,能产生不同频率的波形,可利用软件改变波形幅度及相位。

1 波形及移相波形发生器的DSP实现原理

利用DSP通过运算,用叠代的方法产生正弦信号,即数字振荡器。数字振荡器的单位冲击响应为sin(nωT+θ)·u(n)即系统在δ(n)的激励下,产生振荡,输出相位为θ的正弦序列,该系统的系统函数就是冲击响应的Z变换,即

如何使DSP数字振荡器产生移相正弦波

当n≥3时有:y(n)=2cosωT·y(n-1)-y(n-2)。在n≥3以后,y(n)能用y(n-1)和y(n-2)算出,这是一个递归的差分方程。因此得到如下结论:只要已知系统输出正弦信号角频率ω和采样周期T就可以得到系统差分方程,系统只需每隔T秒时间计算一次差分方程,就可得到当前正弦采样序列y(n)的值。设定的y(1)、y(2)初值不同,初始相位就不同。在设计中,主程序通过键盘输入频率及相位差等数据,在初始化时依输出信号频率、采样速率及相位差等数据先计算出两路正弦信号的初始值y1(1)、y1(2)和y2(1)y2(2),然后开放定时器中断。以后每次进入定时器中断服务程序时,利用前面的y1(1)、y1(2)和y2(1)y2(2),计算出新的y1(0)和y2(0)。虽然两次计算并输出y1(0)和y2(0)有一定的延迟,但由于DSP的高速流水线运行及McBSP高速串行输出,所引起误差将很小。

2 系统硬件实现方案

基于TMS320VC5416 DSP的两路输出移相正弦波的系统结构如图1所示。该系统的中央处理单元采用美国TI(德州仪器)公司的高性能定点数字信号处理芯片TMS320VC5416,TMS 320 VC54.16是TI公司专门针对便携式设备设计的一款低功耗、高性能定点数字信号处理器,同C54系列其它处理器相比运行速度达到160MPIS,片内RAM达到128K,程序可寻址空间达到8M,为大量数据处理提供了丰富条件。特别是VC5416提供了多种片内外设资源;软件可编程等待状态产生器、可编程锁相环时钟产生器、1个16位计时器、6通道直接内存访问控制器(DMA)、3个多通道缓冲串口(McBSP)、8位增强型HPI接口等。此外,TMS320VC5416支持C和汇编语言混合编程,高效的流水线操作和灵活的寻址方式使其特别适合高速实时信号处理。由于系统有两路正弦信号输出,系统采用两路信号分时传输方式。TLC320AD50C是TI公司出品的一块将A/D和D/A转换功能集成在一起的模拟接口芯片,采用∑-△技术在低系统成本下实现了高精度的A/D和D/A转换。该芯片由一对16 b同步串行转换通道组成,在ADC之后有一个抽取滤波器,在DAC之前有一个插值滤波器。TLC320AD50C支持主从两种工作方式,并且最多支持三个从设备。利用该特点,系统将两片TLC320AD50C串联,使其中一个为主设备另一个为从设备,通过TMS320VC5416的多通道缓冲串口McBSP实现与两片TLC320AD50C间的串行通信。TMS320VC54.16控制两片TLC320AD50C以时分复用方式将数据传送给两片TLC320AD50C进行D/A转换输出。其中AD50C1的M/S接高电平,AD50C2的M/S接低电平,并且利用VC5416的XF引脚为AD50C提供主、次通信选择信号。TLC320AD50被广泛应用于音频数据采集处理中,它可以与TMS320C54xDSP的McBSP无缝串行连接进行数据采集、存储和处理。SCLK输出时钟,DIN串行输入,DOUT串行输出,FS帧同步信号输出,对应DSP的各相应引脚。MCBSP具有特点:①串口的接收,发送时钟既可由外部设备提供,又可由内部时钟发生器提供;②帧同步信号和数据时钟信号的极性可编程,内部时钟和帧信号发生器也可由软件编程控制;③串口的信号发送和接收部分既可单独运行,又可以在一起配合工作;④CPU的中断信号和DMA的同步信号使得McBSP串口可由CPU控制运行,还可脱离CPU通过DMA直接存取内存单独运行;⑤多通道选择部分使得串口具备了多通道信号的通信能力,他的多通道接收和发送能力可达128个信道;⑥数据宽度可在8b、12b、16b、20b、24b、32b中任意选择,并可对数据进行A律和U律压缩和扩展。McBSP串口包括一个数据通道和一个控制通道,数据通道完成数据的发送和接收。McBSP通过DX引脚发送数据、DR引脚接收数据。控制通道完成的任务包括内部时钟的产生、帧同步信号的产生、对这些信号的控制以及多通路的选择等。控制通道还负责产生中断信号送往CPU,产生同步事件信号通知DMA控制器。控制信息则是通过控制通道以时钟和帧同步信号的形式传送。

如何使DSP数字振荡器产生移相正弦波

3 系统软件设计及CCS仿真结果

系统软件主要由BootLoader下载程序、系统初始化、键盘显示、定时中断处理等几个模块构成。系统开始上电时首先执行BootLoader程序,将目标程序从外部FLASH中调入片内RAM中执行。

系统初始化程序完成对TMS320VC5416各控制寄存器,McBSP串口控制寄存器,定时器以及TLC320AD50C相应寄存器的初始化设置。主程序及定时中断服务程序流程图如图2所示。

如何使DSP数字振荡器产生移相正弦波

设定正弦波频率为2 kHz,采样频率40 kHz,移相60度的CCS仿真波形如3所示。

如何使DSP数字振荡器产生移相正弦波

4 结束语

本文提出了一种基于DSP数字振荡器产生移相正弦波的设计方法。实验结果表明系统产生的波形稳定,抗干扰能力强,频率、相位和幅度调节方便,精度高,输出频率范围为20 Hz~20 kHz,相移0~360°,移相分辨率可高达0.001度。另外系统若连接高速DA转换芯片,可大大提高输出频率范围。该设计方案简单可行、新颖实用,有推广应用价值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7681

    浏览量

    344332
  • 芯片
    +关注

    关注

    447

    文章

    47769

    浏览量

    409071
  • 振荡器
    +关注

    关注

    28

    文章

    3517

    浏览量

    137635
收藏 人收藏

    评论

    相关推荐

    振荡电路为什么能产生正弦波正弦波振荡电路的振荡条件

    振荡电路产生正弦波是因为在LC回路中,波形的计算公式通过建立常微分方程得到,其中含有正弦格式。
    的头像 发表于 04-04 15:34 595次阅读
    <b class='flag-5'>振荡</b>电路为什么能<b class='flag-5'>产生</b><b class='flag-5'>正弦波</b>?<b class='flag-5'>正弦波</b><b class='flag-5'>振荡</b>电路的<b class='flag-5'>振荡</b>条件

    rc振荡电路为什么产生正弦波

    RC振荡电路是一种产生正弦波的电路,它由一个电容和一个电阻组成。当电容和电阻按照一定的电路连接方式接在一起时,电路中的电压会以振荡的方式变化,产生
    的头像 发表于 03-01 13:43 495次阅读

    产生正弦波振荡的必要条件有哪些

    产生正弦波振荡的必要条件主要包括以下几个方面: 振荡系统:一个振荡系统是产生
    的头像 发表于 03-01 11:26 550次阅读

    正弦波振荡器组成及平衡条件

    正弦波振荡器组成方框图,从图中可以看出,它主要由放大器及稳幅电路、正反馈电路和选频电路组成。
    的头像 发表于 02-09 05:27 2186次阅读
    <b class='flag-5'>正弦波</b><b class='flag-5'>振荡器</b>组成及平衡条件

    判断电路能否产生正弦波振荡的方法

    正弦波振荡器的平衡条件是指在振荡状态下,系统的输入和输出之间达到平衡。平衡条件要求振荡器的放大倍数等于或大于1,并且相位关系保持稳定。只有当平衡条件满足时,
    的头像 发表于 02-09 05:17 2374次阅读
    判断电路能否<b class='flag-5'>产生</b><b class='flag-5'>正弦波</b><b class='flag-5'>振荡</b>的方法

    正弦波振荡器产生自激振荡的条件是什么

    自激振荡要求振荡器具有正反馈回路。正反馈意味着一部分输出信号被回馈到输入端,增强原始信号,从而使输出信号持续增长。在正弦波振荡器中,正反馈回路必须提供足够的增益,使
    的头像 发表于 02-09 05:11 2196次阅读

    正弦波振荡器由什么组成 正弦波振荡器起振条件

    正弦波振荡器的关键是要有足够的正反馈,即从输出到输入的信号增益必须大于等于1。这样,输出信号在经过放大器放大后,经过反馈回路又被回馈到放大器的输入端,形成自持振荡
    的头像 发表于 02-09 05:01 2174次阅读

    AD2S1210 EXC,EXC输出噪声很大,这个正弦波振荡器DAC输出是多少位?

    1.AD2S1210评估板,EXC,EXC输出噪声很大,这个正弦波振荡器DAC输出是多少位,里面有滤波吗,3db点频率是多少。 2.数据手册中16位精度最大有正负16个lsb,等效下来精度不是才10位吗,这能说明ADC的精度
    发表于 12-12 06:55

    RC正弦波振荡器测量、调试

    从结构上看,正弦波振荡器是没有输入信号的、带选频网络的正反馈放大器。若用R、C元件组成选频网络,就称为RC 振荡器, 一般用来产生1Hz~1MHz的低频信号。
    的头像 发表于 10-11 15:58 3343次阅读
    RC<b class='flag-5'>正弦波</b><b class='flag-5'>振荡器</b>测量、调试

    直流无刷电机简易正弦波控制介绍

    直流无刷电机的正弦波控制即通过对电机绕组施加一定的电压,使电机绕组中产生正弦电流,通过控制正弦电流的幅值及相位达到控制电机转矩的目的。与传统
    发表于 09-28 06:46

    STM32产生双极性正弦波

    项目需要产生100mv双极性正弦波,STM32的DAC只能输出正电压单极性,有没有不使用双电源运放的方案?
    发表于 09-19 17:53

    正弦波振荡器测试和仿真教程

    正弦波振荡器是一种利用自身电路, 在不需要外部信号激励的情况下,自动将直流电能转换为特定频率和振幅的交流信号装置。
    的头像 发表于 09-07 11:41 5286次阅读
    <b class='flag-5'>正弦波</b><b class='flag-5'>振荡器</b>测试和仿真教程

    什么是多谐振荡器?关于“非稳态/张弛”振荡器的形象类比

    与前文所述的LC振荡器不同,多谐振荡器(Multivibrator)产生振荡波形不限于正弦波,还能是方波、锯齿波、三角波、脉冲波等等波形
    的头像 发表于 09-06 17:29 1546次阅读
    什么是多谐<b class='flag-5'>振荡器</b>?关于“非稳态/张弛”<b class='flag-5'>振荡器</b>的形象类比

    multisim文氏电桥正弦波振荡电路为什么仿真不出正弦波

    multisim文氏电桥正弦波振荡电路为什么仿真不出正弦波?还有那个滑动变阻器接进去有什么用吗?或者这个,就是完全一条直线啊啊啊。。。
    发表于 05-05 11:18

    在RC文氏电桥RC正弦波振荡器中波形不正常是怎么回事?

    在RC文氏电桥RC正弦波振荡器中波形不正常是怎么回事?这算是失真吗?我才开始学模拟电路我也不太懂,但是老师觉得波形不太规范是怎么回事?求各位大神指教!
    发表于 05-05 11:12