0引言
电源的信号测控部分由DDS信号发生和信号测量组成。DDS在电源设计中的应用早已存在。在早期的DDS设计中,硬件组成由计数器、触发器等多种多个分立逻辑元件组成;而在出现可编程逻辑器件CpLD、FpGA后,DDS的硬件构成简化了许多。电源的信号测量,分为频率、幅值及相位的测量。频率的测量采用脉冲填充法;幅值测量则随着A/D转换器的采样速度及处理器速度的提高,由原来的有较大延迟的真有效值转换发展为周期实时采样计算;相位测量则在幅值测量的基础上,由原来的间相脉冲填充法发展为乘法器矢量测量。
DSp的高速处理能力,使其可以实现DDS中的CpLD或FpGA及测量电路中的模拟数字混合乘法器的功能,从而使电源的信号发生及测量的硬件设计更简单。
1设计方法
方法设计如图1所示。DSp以等时间间隔快速、持续读取扩展程序存储器中的波形数据,送入并行高速D/A,并行高速D/A即可输出预设信号波形。
输出信号幅值的调整不如波形数据读取操作那么频繁,且对操作完成时间的长短、精度要求也不如波形数据读取高,所以选择串行多通道D/A.这样既可以降低成本,又可以简化部分硬件设计。以N个波形读取时间间隔为计时基础,DSp通过并行高速A/D对经信号处理后的被测信号进行持续采样,通过计算,可得出被测信号有效值及相位。
2DDS的DSp实现
2.1DDS原理
DDS是利用相位累加原理直接合成所需波形的一种频率合成技术,典型的DDS模型由W位相位累加器、移相加法器、波形存储器ROM查找表(LUT)、D/A转换器(DAC)以及低通滤波器(LpF)构成。其中相位累加器由W位加法器与W位累加寄存器级联构成。
DDS工作时,每来一个时钟脉冲p,加法器将相位步进值θ与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。
累加寄存器将加法器在上一个时钟脉冲用途后所出现的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的用途下继续与频率控制字相加。相位累加器输出的数据作为查表地址,从波形存储器(ROM)中提取对应的波形抽样值(二进制编码),送入D/A转换器C中。在相位累加器的数据输出范围0~2W–1,与波形存储器中一个完整周期波形的地址,按照特定的函数关系对应起来的前提下,相位累加器的每次溢出,DDS就相应的输出了一个周期的波形。因此,相位累加器的溢出频率就是DDS输出的信号频率。由此可推导出DDS输出的信号频率公式:fout=fclkθ/2W
式中fout为DDS输出频率;fclk为标准时钟脉冲,固定值;θ为相位步进值,无符号整数,无单位;W为相位累加器宽度。
从公式(1)可以看出,在相位累加器宽度W为定值、相位步进值θ为1时,可得出DDS的最小输出频率,即DDS的频率分辨率fr.因此,只要调整相位步进值θ,就可以使DDS的频率以fr的整数倍输出。
2.2DDS工作模式选择
根据公式(1)可以看出,在相位累加器宽度W为定值的前提下,DDS的输出频率,取决于θ和fclk.
θ取值为DDS的相位分辨率时,DDS输出信号的每个周期由固定点数组成,此时fout与fclk成比例关系,DDS为调频模式;fclk为定值时,DDS输出信号在单位时间内由固定点数组成,此时fout与θ成比例关系,DDS为调相模式。
调频模式,其关键点为采用锁相环技术对预置输出频率进行倍频[3-4].与调相模式相比,调频模式不仅要多出锁相环及相应倍频逻辑电路的设计,且在进行频率调整时,信号会有短时间的失锁,造成输出信号的振荡。因此,调相模式是本设计中DDS的最佳选择。
2.3DSp实现DDS的优势
无论是用分立逻辑器件还是CpLD或FpGA设计DDS,其目的都是为了将相位累加器的累加、输出、波形数据查表等这些运算处理通过硬件电路高速实现。唯一的差别就是应用CpLD或FpGA设计DDS,可以将诸多分立器件实现的逻辑电路,通过VHDL等编程语言编程固化在单一芯片上,从而达到简化硬件电路设计目的。而采用DSp设计DDS,则完全可以利用其高速运算能力,通过软件编程来完成相位累加器的累加、输出、波形数据查表等运算。因此,相比于采用CpLD或FpGA,采用DSp设计DDS更灵活高效。
2.4基于DSp的DDS的参数设计
2.4.1标准时钟脉冲fclk
的设计从公式(1)可以看出,在相位累加器宽度W为定值、相位步进值θ为1时,可得出DDS的最小输出频率,即DDS的频率分辨率fr.因此,只要调整相位步进值θ,就可以使DDS的频率以fr的整数倍输出。
p=2W÷θ
式中p为DDS输出信号的每个周期的组成点数。
将式(2)代入式(1),可得:
fclk=foutp
在p足够多且每点波形数据分辨率与p匹配的前提下,即可忽略DDS信号输出的高频谐波含量,从而省略硬件设计中的滤波器环节,防止了由滤波器出现的相位偏移。当p=10000时,完全可以满足要求。如设计最大输出频率65Hz,可得fclk=0.65MHz.
fclk可利用DSp计数器的中断出现。考虑到DSp的工作频率均为MHz的整数倍,所以fclk取值1MHz,更加便于中断的准确出现。
2.4.2相位累加器宽度W的选取
p=10000时,W取值27即可满足设计频率调节细度0.01Hz的要求。但相位累加值θ在DSp中含义为4字节的操作数,W取值27时,DSp需对相位累加值进行上限判断处理后再提取波形数据,从而出现细小的波形畸变并新增一定的运算量。考虑到可利用操作数的自然溢出来减少DSp的判断及运算操作,所以W取值32.
2.4.3周期波形点数p的选取
在不考虑四舍五入取值的前提下,相位累加器的输出值与波形数据表数组下标的函数关系如下:
A=pθ÷2W
式中A为波形数据数组下标;p为波形数据点数;θ为相位累加器输出值。
由于DSp中没有现成的除法指令,除法是靠被除数与除数之间的移位相减来实现的,采用该函数的算法将新增DSp的运算量。因此,可以通过事先将p÷2W作为系数,减少求数组下标运算步骤。但p÷2W可能为小数,假如取整计算,将使下标出现跳跃性变化,导致输出波形畸变增大。不取整计算时,如使用定点DSp,虽然价格便宜且运算速度较快,但会新增系统运算量。而使用浮点DSp,运算速度较慢且硬件费用会有相对提高。考虑到DSp要进行多线程的任务工作,要较快的运算速度,因此选用定点DSp,并对波形数据数组下标的算法进行进一步的改进。
将公式(4)中p的点数由相位调节细度要求的最低点数pmin调整至大于pmin的最小的2的X次幂。
将p代入公式(4),简化得:
A=θ/2W-X
在DSp中,所有的值都用二进制来表示。所以,在公式(5)里所有变量的取值均为无符号整数的前提下,A的获得就简化成了对θ进行(W–X)次的右移。