基于DSP的三相基准正弦信号发生器设计
发布时间:2009-10-22 作者:朱卫华, 郑留平
0 引言
在各种测量和控制电路中,常需要单相或三相正 弦波信号作为基准信号。一个良好的正弦信号源,要 求其输出的基准正弦波信号幅值、频率高度稳定,波形 失真度小,带负载能力强,幅值、频率可调,对于三相正 弦信号还要求三相对称度好。传统方法可通过移相网 络直接对模拟信号进行移相,如阻容移相、变压器移相 等,但采用这些方式设计的移相器有许多不足之处。
本文利用DSP技术,通过数值迭代方法,即用DSP数 字振荡器的实现原理获得三相正弦波信号,并具有调 整方便灵活、分辨率高等特点。数值迭代方法能精确 计算角度的正弦值,只需较小的存储空间,选择正弦周 期中的样点数、改变样点间的延迟,能产生不同频率的 波形,可利用软件改变频率、波形幅度及相位。
1 正弦波及三相正弦相波发生器的DSP数字振荡器 实现原理
利用DSP通过运算,用迭代的方法产生正弦信 号,即数字振荡器。数字振荡器的单位冲击响应为sin ( nωT +θ) ·u ( n) ,即系统在δ( n)的激励下产生振荡, 输出相位为θ的正弦序列, 该系统的系统函数就是冲 击响应的Z变换,即:
H ( z) =
sinθ+ z- 1 sin (ωT -θ)
1 - 2z- 1 cosωT + z- 2
则该系统所对应的差分方程为:
y ( n) = 2cosωT·y ( n - 1) - y ( n - 2) + sinθx ( n) + sin (ωT -θ) x ( n - 1)
通过迭代可由差分方程求出系统的冲击响应。系 统的输入为x ( n) =δ( n) , 初始条件为零。则由差分方程可得:
y ( - 1) = y ( - 2) = 0; y (0) = sinθ;
y (1) = 2cosωT·y (0) + sin (ωT -θ) ;
y (2) = 2cosωT·y (1) - y (0) ;
当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)初值不同, 初始相位就不同。 在设计中,主程序通过键盘输入频率幅值等数据,在初 始化时依输出信号频率、采样速率及幅值等数据先计 算出3路正弦信号的初始值y1 ( 1) 、y1 ( 2) 、y1 ( 3)和 y2 (1) 、y2 (2) 、y2 ( 3) , 然后开放定时器中断。以后每 次进入定时器中断服务程序时,利用前面的y1 ( 1) 、y1 (2) 、y1 (3)和y2 ( 1) 、y2 ( 2) 、y2 ( 3) , 计算出新的y1 (0) 、y2 (0) 、y3 (0) 。虽然计算并输出y1 (0) 、y2 ( 0)和 y3 (0)之间有一定的延迟, 但由于DSP的高速流水线 运行及McBSP高速串行输出,所引起误差将很小。
2 系统硬件实现方案
基于TMS320VC5416 DSP的三相基准正弦波信号发生器的系统结构如图1所示。该系统的中央处理单 元采用美国TI(德州仪器)公司的高性能定点数字信 号处理芯片TMS320VC5416。TMS320VC5416是TI公 司专门针对便携式设备设计的一款低功耗、高性能定 点数字信号处理器,同C54系列其他处理器相比运行 速度达到160MP IS,片内RAM达到128K,程序可寻址 空间达到8M,为大量数据处理提供了丰富条件。特别 是VC5416提供了多种片内外设资源;软件可编程等 待状态产生器、可编程锁相环时钟产生器、1个16 位 计时器、6通道直接内存访问控制器(DMA) 、3个多通 道缓冲串口(McBSP) 、8位增强型HP I接口等。此外, TMS320VC5416支持C和汇编语言混合编程,高效的 流水线操作和灵活的寻址方式使其特别适合高速实时 信号处理。由于系统有3路正弦信号输出, 系统采用 3路信号分时传输方式。TLC320AD50C是TI公司出 品的一块将A /D和D /A转换功能集成在一起的模拟 接口芯片,采用Σ - △技术在低系统成本下实现了高 精度的A /D和D /A转换。该芯片由一对16bit同步 串行转换通道组成,在ADC之后有一个抽取滤波器, 在DAC之前有一个插值滤波器。
TLC320AD50C支持 主从2种工作方式,并且最多支持3个从设备。利用 该特点,系统将3片TLC320AD50C串联,使其中1个 为主设备另2个为从设备,通过TMS320VC5416的多通 道缓冲串口McBSP实现与3片TLC320AD50C间的串 行通信。TMS320VC5416控制3片TLC320AD50C以时 分复用方式将数据传送给3片TLC320AD50C进行D /A 转换输出。其中主AD50C的M /S接高电平, 2 片从 AD50C的M /S接低电平。TLC320AD50C被广泛应用 于音频数据采集处理中,它可以与TMS320C54xDSP的 McBSP无缝串行连接进行数据采集、存储和处理。 SCLK输出时钟,D IN 串行输入,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 控制器。控 制信息则是通过控制通道以时钟和帧同步信号的形式 传送。
3 系统软件设计及CCS仿真结果
系统软件主要由BootLoader下载程序、系统初始 化、键盘显示、定时中断处理等几个模块构成。系统开 始上电时首先执行BootLoader程序,将目标程序从外 部FLASH中调入片内RAM中执行。系统初始化程序 完成对TMS320VC5416各控制寄存器,McBSP串口控 制寄存器,定时器以及TLC320AD50C相应寄存器的 初始化设置。在中断服务程序中,利用乘法指令mpy 及乘累加指令mac计算3次差分方程,从而使3路输 出的正弦波数据得以更新。主程序及定时中断服务程 序流程图如图2所示。