单片机与FPGA实现等精度频率测量和IDDS技术设计方案
O.引言
本系统利用单片机和FPGA有效的结合起来共同实现等精度频率测量和IDDS技术,发挥各自的优点,使设计变得更加容易和灵活,并具有频率测量范围宽、产生的波形频率分辨率高及精度大等特点。
系统方便灵活,测量精度和产生的波形分辨率高,能适应当代许多高精度测量和波形产生的要求,可以在各类测量系统和信号发生器中得到很好的利用,频率测量在电路实验、通讯设备、音频视频和科学研究中具有十分广泛的用途。等精度测量技术具有广阔的应用前景,由于其性能的优越性,在目前各个测量领域中都可以发挥着很好的作用,特别是在海洋勘探,太空探索以及各类实验中都得到了应用。
1.DDS信号发生器的实现
使用FPGA与单片机相结合的方式构成DDS信号发生器的核心部分,这是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。其中FPGA完成相位累加、波形地址查找及波形输出等功能,凌阳16位单片机实现频率控制字的输入和液晶显示部分。FPGA与单片机通过串行输入并行输出的方式进行通信。其总体设计框图如图1所示。
1.1 DDS产生原理
图2是一个基本的DDFS结构框图。DDFS 以数控振荡器的方式,产生频率可控制的正弦波、方波、三角波,电路包括了基准时钟源、相位累加器、相位调制器、波形ROM查找表、D/A转换器和低通滤波器等。频率控制字N和相位控制字M分别控制DDS所输出的波形的频率和正弦波的相位。
1.1.1 频率部分
一个N位字长的二进制加法器的一端和一个固定时钟脉冲取样的N位相位寄存器相连,另一个输入端是外部输入的控制字M。这样在每一个时钟到来的时候,前一次相位寄存器中的值和当前的M值相加,作为当前相位寄存器的输出。控制字M决定了相位增量,加法器不断的对相位增量进行线性累加。当产生一次溢出后,完成一个周期性动作,即DDFS合成信号的一个频率周期。
设基准时钟信号为fclk,分频值为N,累加器位数为M,相位累加器步进值为L,根据公式:
设最高频率为20KHz,步进为20Hz,因此累加器位数至少为10位(210=1024>20000/20)。为了保证在最高频率下的波形在一个周期内至少有32个点,因此累加器至少有lO+5=15位。
取晶振频率32.768MHz,可得
1.1.2 相位部分
相位寄存器的输出通过相位调制器与相位控制字K相加,使最终的输出产生一定的相位偏移θ,θ的值与相位控制字K与ROM中的数据有关。我们通过设置两路信号的K值,使两路信号有不同的相位偏移量,从而产生相位差△θ。设A路信号的控制字为K,B路信号的控制字为K’,考虑到FPGA的内部资源,取512个采样点,可得
通常我们只要改变控制字K就可以实现步进调整。
1.2 DDS产生的软件设计
1.2.1 FPGA软件设计
FPGA负责接收由单片机送过来的频率字与相位控制字,同时将波形在ROM中的数据送给DA转换器进行DA转换,输出正弦波、方波、三角波三种波形,通过调节DA转换器的基准电压可调节输出的正弦波、方波、三角波三种波形的幅度,利用按键可以设置一定范围内的频率值和步进值,并能实现波形间的任意切换,实现了频率、步进、幅度的任意调节。
1.2.2 单片机软件设计
单片机软件设计主要是负责接收键盘置入的频率、步进值、选择波形并将其在液晶显示屏中显示和把各种控制信号和数据送到FPGA中。可设置任意频率、任意步进、波形切换等多种输出方式,在此基础上可扩展为任意信号发生器,具体程序流程图如图3:
1.2.3 FPGA与单片机的通信
本系统设计中,FPGA与凌阳单片机采用串行输入并行输出的方式进行通信。使用VHDL语言在EP2C20器件中利用D触发器和移位寄存器接收凌阳单片机发送过来的频率控制字和相位控制字,然后送入相位累加器。在FPGA与凌阳单片机通信中,单片机实行串行输入,不断地向FPGA送频率控制字和相位控制字,送给FPGA实现相位累加。
2.等精度频率计的实现
为了减小误差,得到高的测量精度,我们采用多周期同步测量法,即等精度测量法,通过对被测信号与闸门时间之间实现同步化,从而从根本上消除了在闸门时间内对被测信号进行计数时的 l量化误差,使测量精度大大提高,是在测量领域用得比较多的的一种精度很高的测量方法。
2.1 频率测量总体设计与方案
本系统主要是以凌阳单片机和FPGA为核心,多周期同步等精度测量频率计的核心结构用VHDL硬件描述语言对FPGA进行编程,实现频率、周期、脉冲宽度和占空比的测量。而单片机则作为控制部分实现了频率计的控制、扫描和显示,系统级框图如下图4:
本设计频率测量方法的主要测量原理如图5所示,图中预置门控信号GATE是由单片机发出,GATE的时间宽度对测频精度影响较少,
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)