1.3 波形存储模块
方案1:采用非易失EEPROM对当前产生波形的数据值进行实时存储,掉电后上电从当前掉电时地址读取波形数据,这样即可实现波形的掉电存储。
方案2:在单片机的学习中,了解了掉电存储原理,因此可以为FPGA(ROM定义在FPGA中)外接一锂电电池,这样就可保证掉电后波形ROM中的数据不丢失。
在经过上述综合比较之后,第2种方案更加容易实现,因此决定采取第2种方案进行波形存储。
2. DDS电路工作原理
2.1 DDS的结构
DDS电路的实现是整个硬件系统设计的关键所在。DDS电路工作时首先需要对波形数据进行采样,将采样数值存入波形存储器ROM中作为查找表,然后在时钟脉冲的作用下,对频率控制字进行线性相位叠加,然后将相位累加值的一部分作为ROM查找表的地址码将数据读出来,再经过D/A转换器,低通滤波器LPF转换成符合要求的模拟信号[4,5]。DDS电路的基本结构一般包括:N位相位累加器、波形存储器ROM、数模转换器以及低通滤波器等,其电路结构框图如图2所示。
这里需要注意,fc为系统的参考时钟频率,N为相位累加器的累加位数,M为波形存储器的地址位数,D为波形存储器的数据位字长和D/A转换器位数。
图2 DDS电路结构框图
2.2 DDS的工作原理
DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的基本结构主要由相位累加器、相位调制器、正弦ROM查找表、DAC和低通滤波器构成,如图2所示。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又称为NCO(Numerically Controlled Oscillator)。
相位累加器是由加法器与相位寄存器组成,它是整个DDS的核心。N位加法器在时钟脉冲作用下,会把相位寄存器输出的累加相位数据和频率控制字相加,继而相加后的结果被反馈到加法器的输入端,以至于加法器在下一个时钟脉冲的作用下继续与频率控制字进行相加[6]。相位累加器在参考时钟作用下,对频率控制字不停地进行线性相位累加。当相位累加器达到最大值时,就会发生溢出,完成一个周期性动作。相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的波形数据(信号的相位)作为波形存储器的相位取样地址,这样存储在波形存储器内的波形抽样值经查找表就可被取出,完成相位到幅值转换[7-9]。波形存储器的输出进一步送到D/A转换器,D/A转换器将离散形式的波形幅值转换成模拟量形式信号。D/A转化器的输出近似阶梯波,还要通过低通滤波器滤除不需要的杂波,最后就可以得到频谱比较纯净的波形信号,将阶梯波转换成光滑的连续波形。根据DDS的工作原理可以得到波形产生过程,如图3所示。
a. 查找表中的信息 b. 查表后的输出
c. D/A转换后输出 d. 滤波后的波形
图3 波形产生过程
2.3 DDS的常用参量
(1) 输出频率fout。由DDS原理推导很容易得出DDS输出频率的计算公式:
fout fclk (1)
其中,BΔθ是频率输入字,即频率控制字,它与系统时钟频率呈正比;fclk是基准时钟的频率值;n是相位累加器的数据位宽,也是频率输入字的数据位宽。 基于FPGA的任意波形发生器设计+电路图+仿真图(3):http://www.751com.cn/tongxin/lunwen_508.html