2.1 单片机与FPGA间的通信
ATmega16的同步串行接口允许在芯片和外设之间,或几个AVR单片机之间,以与标准SPI接口协议兼容的方式进行高速的同步数据传输。本系统中,ATmega16只负责发送数据,不需要接收数据,故设置为主机工作模式。
2.2 数控移相信号发生器设计
DDS的主要思想是从相位的概念出发合成所需的波形,。他采用了相位累加振荡方法的直接数字合成系统,把正弦波在相位上的精度定为N位,得分辨率为1/2N。用时钟频率fclk一次读取数字相位圆周上各点作为地址,对出相应ROM中的正弦波的幅度值,然后经DAC重构正弦波。相位累计器的作用是读取数字相位圆周上各点时可以每隔M个点读一个数值,从而得到输出正弦波频率fsin为:
基于DDS的数字移相信号发生器是整个系统的设计核心部分,其电路模型图如图4所示。这部分完全是由VHDL语言设计,并在FPGA Cyclone器件上实现的。电路要求能输出2路正弦信号,由2路10位D/A实现波形输出。信号频率能通过输入的8位频率控制字同步控制;其中一路作为参考信号,另一路是可移相的信号,可通过输入的8位相位控制字控制。其中“FWORD”是8位频率控制字,控制输出波形信号的频移量;“PWORD”是8位相移控制字,控制输出波形的相移量;ADDER32B及AD-DER10B分别为32位和10位加法器;SIN_ROM是存放波形数据的ROM,10位数据线,10位地址线(数据和地址线最大可以到32位),其中正弦波数据文件是后缀为mif的文件,可由C程序直接生成。REG32B和REG10B分别是32位和10位寄存器;POUT和FOUT为8位输出,可以分别与两个高速D/A连接,输出参考信号和可移相波形信号。
2.3 嵌入式锁相环的设计
当输出波形频率较高时,由于采样一个完整周期的波形数据点数减少,势必引起波形失真,要消除波形失真,一是可以增加采样波形数据的点数,二是提高系统的主工作时钟频率。若不增加外配ROM的情况下,可以使用后一种方法。本系统设计时在充分利用FPGA的存储空间的情况下,为了提高波形的输出频率(在不失真的条件下),还使用了Cyclone器件中的嵌入式锁相环,提高系统的主工作时钟频率,在实际工作时的主时钟频率达120 MHz。
3 实验结论
通过设计和实验,得出以下结论:
(1)本设计通过键盘控制波形输出的频率和相位,波形频率可调范围为:10 Hz~15 MHz,相位可调范围为:0°~360°,频率最小步进值为1.795 15 Hz。
(2)波形失真度与储存波形ROM的位数及主工作时钟频率有关。
(3)使用FPGA中的嵌入式锁相环或者增加采样波形数据的点数(此时需要外配置ROM),可以大大提高主工作时钟的频率,消除波形失真。采用哪种方法或同时采用两种方法,取决于实际应用的需要。采用VHDL语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。