基于FPGA实现的高速等效采集系统
扫描二维码
随时随地手机看文章
摘 要: 基于FPGA设计一个高速等效采集系统, 采样速率高达1 GHz。通过对被测信号的周期进行测量,动态配置锁相环,使采样时钟的周期刚好比被测信号的周期大1 ns,从而完成对被测信号的等效采样。系统采用Quartus II软件进行系统模块设计,使用NIOS IDE II软件完成软件代码的实现。该系统在以Cyclone III FPGA芯片为核心的DE0开发板上实现,达到了设计要求。
关键词: 高速等效采样; FPGA; 可重配置锁相环
在现代电子测量、通信系统、雷达等领域,经常涉及对高频模拟信号进行数据采集和存储,以便进一步进行数据处理。根据奈奎斯特采样定理,对高速模拟信号进行不失真采集,采样频率必须为信号最高频率分量的两倍以上,当信号频率较高时,对器件速度的要求很高。高速模数转换器的关键技术被国外所掌握,市场售价相当昂贵。当采集的模拟信号是周期性信号时,利用信号的周期性,采用等效时间采样原理就可以用较低速的ADC实现高速的数据采集,从而减小系统的实现难度,简化周期性宽带模拟信号的高速数据采集问题[1]。等效采样是一种欠采样技术,它利用信号的周期性,以增加采集时间为代价,降低对高速采样电路的压力,通过重组恢复原始信号,可以实现周期信号或者重复信号的数字化。
1 等效采样的原理
根据奈奎斯特定律,采样频率在信号最高频率分量的两倍以上就可恢复原波形。而如果使用等效采样,在信号的每个周期或相隔几个周期取一个样,而每个取样点分别取自每个输入信号波形不同的位置上,若干个取样点成为一个周期, 可以组成类似于原信号的一个周期的波形[2]。相对于实时采样,等效采样技术在采样重复信号时可以实现很高的数字化转换速率。
等效时间采样的基本原理是利用取样技术把高频的、快速的重复信号转换成低频的、慢速的信号。等效采样分为两种方式:随机采样和顺序采样。随机采样,是从若干连续的信号周期中采集到多组采样点来构成波形,每一组新的触发点都是由一个新的触发事件来启动采集的,一个触发事件到来以后,就采集信号波形的一部分,经过若干周期以后存储器内存贮了足够的采样点,就可以在屏幕上重建一个完整的波形[3]。顺序等效采样在每个触发捕获一个样值,而不依赖于时间/格的设置和扫描速度,每发现一个触发经过一个虽然很短却明确的延迟, 就获得采样值。当发生下一次触发时, 延迟增加一段小的增量Δt。这个增量就是等效采样的周期。该过程重复多次延时不断增加到前一个捕获量中, 直到时间窗口填满[2]。如图1所示[4]。
2 设计思路
在高速等效采样中,普遍存在难以确定触发点的问题。本系统采用Cyclone III的可重配置PLL产生与被测信号周期相差1 ns的时钟作为ADC的采样时钟对信号进行等效采样,有效地解决高速等效采样中触发点位置难以确定的难点。系统的工作流程图如图2所示。系统初始化后,首先计算输入信号的周期,根据差频公式(f=1/t=1/(k×T+Δt),其中f为采样频率,k为常数,T为信号周期,Δt为等效采样周期1 ns)计算出系统的采样频率,然后利用穷举法找出PLL输出的时钟最接近这个采样频率的相关参数值。把参数值赋给ALTPLL_RECONFIG模块,PLL经过重配置后输出的时钟即为ADC采样时钟。ADC采样输出的数据保存到片内RAM中,最后通过串口输出到计算机显示。
系统框图如图3所示。外围电路主要有分频器和ADC。分频器的主要作用是把输入的模拟信号变成脉冲信号,同时把高频信号分频为较低频的信号,便于计算被测信号的周期(相对于输入信号),ADC则负责采样。其他部分功能由FPGA实现。采用NIOS II处理核和Avalon总线控制系统搭配各个模块,这与使用MCU方案相比,系统更加小型化,集成度更高,运行速度更快,同时还减少了物理连接。这样不仅降低了功耗,还增强了系统的稳定性。
3 系统设计
本系统主要功能模块包括频率计算模块、采样频率生成模块、数据存储模块和串口通信模块等。
3.1 频率计算模块
首先把被测信号通过分频器进行分频,通过对分频后脉冲信号计数可得信号周期T。根据自定义的差频公式f=1/t=1/(k×T+Δt)(t为实时采样周期,k为可变整数,T为信号周期,Δt为等效采样周期),可计算出实时采样频率。
3.2 采样频率生成模块
利用ALTPLL_RECONFIG宏功能和ALTPLL宏功能产生采样频率,此频率可根据被测信号实时改变。根据前面计算出的实时采样周期,使用穷举法得到PLL的M、N和G1、G2参数的最佳值。根据这些参数重新配置PLL,PLL生成的采样频率即可满足要求。重配置PLL的仿真图如图4所示。当write_param有效时,改变其中一个寄存器的值,修改寄存器值其间,busy为高电平,此时write_param无效。当busy为低电平时,可以继续修改下一个寄存器的值。当需要改变的寄存器修改完以后,使reconfig为高电平,ALTPLL_RECONFIG模块开始对PLL进行重配置,以产生采样所需要的时钟。重配置完成后过一段时间,PLL重新锁定,输出采样时钟c0。