如何用单个赛灵思FPGA数字化数百个信号

如何用单个赛灵思FPGA数字化数百个信号,第1张

  在新型赛灵思 FPGA 上使用低电压差分信号(LVDS),只需一个电阻和一个电容就能够数字化输入信号。由于目前这一代赛灵思器件上提供有数百个 LVDS 输入,理论上使用单个 FPGA 就能够数字化数百个模拟信号。

  我们团队近期探索了可能的设计领域的一隅,对中心频率为 3.75MHz 和精度为 5 位的有限带宽输入信号进行了数字化,同时还针对 128 元线性超声阵列换能器的输出信号研究了多种数字化方案。首先让我们详细介绍一下演示项目。

  2009 年赛灵思推出了 LogiCORE™ 软 IP 核。结合外置比较器、一个电阻和一个电容,就可实现一种能够数字化频率高达 1.205kHz[1] 输入信号的模数转换器ADC)。

  用 FPGA 的 LVDS 输入取代外置比较器,同时结合使用增量调制器 ADC 架构,仅使用一个电阻和一个电容就能数字化频率高得多的模拟输入信号。

  ADC 拓扑和实验平台

  使用赛灵思 FPGA 上的 LVDS 输入实现的单通道增量调制器 ADC[2]的方框图见图 1。这里模拟输入驱动 LVDS_33 缓冲器非反相输入,输入信号范围基本为 0-3.3V。以比模拟输入信号频率高得多的时钟频率对 LVDS_33 缓冲器输出进行采样并通过一个 LVCMOS33 输出简单而且所用元件数少,让这个方法颇具吸引力。而且由于 LVDS_33 输入缓冲器有相对较高的输入阻抗,在许多应用中传感器输出可以直接连接到 FPGA 输入,无需前置放大器或缓冲器。

  缓冲器和一个外置一阶 RC 滤波器反馈给 LVDS_33 缓冲器的反相输入。采用这一电路,只要选择合适的时钟频率 (F)、电阻 (R) 和电容 (C),反馈信号就会跟随输入模拟信号。

  作为实例,图 2 显示的是在 F=240MHz、R=2K 和 C=47pF 时的输入信号(黄色、通道 1)和反馈信号(蓝色、通道2)。所示的输入信号是用 Agilent 33250A 函数发生器使用其 200MHz、12 位任意输出函数功能生成的。输入信号的傅里叶转换由小组使用的Tektronix DPO 3054 示波器计算完成,显示为红色(通道 M)。在这些频率上,示波器探头的输入电容(以及接地问题)不会降低示波图所显示的反馈信号的质量,但图 2 的确体现了该电路的运行情况。

  通过对 1 Vpp 3.75MHz 正弦波运用布莱克曼–纳托尔 (Blackman-Nuttall) 窗口,我们定义了图 2 所示的有限带宽输入信号。虽然理论上窗口化信号的本底噪声基本比中心频率的幅度小 100dB,Agilent 33250A 函数发生器的采样频率和 12 位精度让演示信号质量远逊于理论水平。由于换能器的机械属性,众多超声换能器产生的中心频率接近 3.75MHz 的输出信号自然是有限带宽信号,因此对采用这种方法来说是理想的信号源。

如何用单个赛灵思FPGA数字化数百个信号,第2张

  图 1 - 使用一个外部电阻和一个外部电容的单通道增量调制器 ADC。
如何用单个赛灵思FPGA数字化数百个信号,第3张

  图 2 - 该示波图所示的是 F=240MHz、R=2K 和 C=47pF 时 Agilent 33250A 函数发生器产生的 3.75 MHz 输入信号(黄色,通道 1)和反馈信号(蓝色,通道 2)。由 Tektronix DPO 3054 示波器计算完成的输入信号傅里叶转换显示为红色(通道 M)。

  我们使用 Digilent Cmod S6 开发模块[3]配合安装在小型 PCB 上的赛灵思 Spartan®-6 XC6SLX4 FPGA,并使用 8 个RC 网络和输入连接器,让圆形系统来同时数字化多达 8 路信号,即得到图 2 所示的图。每个通道并联端接一个 50Ω 的接地电阻,以正确端接信号发生器的同轴电缆。需要注意的是为实现这样的性能,我们小组将 LVCMOS33 缓冲器的驱动强度设置为 24mA,压摆率设置为 FAST,如图 5 中的实例 VHDL 源代码中记录的情况。

  定制的原型电路板还支持使用 FTDI FT2232H USB 2.0 微型模块[4],用于把数据包化的串行比特流传输到主机 PC 上供分析。图 3 所示的是当馈给图 2 的模拟信号时,原型电路板产生的比特流的傅里叶转换幅度。与 240MHz 采样频率的分谐波有关的峰值清晰可见,另外还有与输入信号相关的 3.75MHz 频率下的峰值。

如何用单个赛灵思FPGA数字化数百个信号,第4张

  图 3 - 本图所示的是与图 2 相关的配置产生的比特流的傅里叶转换

  大量抽头

  通过给比特流施加带通有限脉冲响应 (FIR) 滤波器,就能够产生模拟输入信号的 N 位二进制表达:ADC 输出。但是由于数字比特流的频率远远高于模拟输入信号,用户需要使用带有大量抽头的 FIR 滤波器。不过由于被滤波的数据只有 0 和 1 两个数值,所以无需使用乘法器(只需要加法器将 FIR 滤波器系数相加即可)。

如何用单个赛灵思FPGA数字化数百个信号,第5张

  图 4 - 使用中心频率为 3.75MHz 的 801 抽头带通滤波器产生的 ADC 输出。

  图 4 所示的 ADC 输出是在主机 PC 上使用我们用免费在线 FIR 滤波器设计工具 TFilter[5]设计的中心频率为3.75MHz 的 801 抽头带通滤波器产生的。该滤波器在 2.5MHz - 5MHz 通带外的衰减率为 36dB 甚至更高,3MHz - 4.5MHz 之间的纹波为 0.58dB。

  图 4 所示的 ADC 输出信号的精度大约为 5 位。这是最终的过采样率的函数,用户可以使用针对较低输入频率优化的设计来获得更高精度。

  图 4 所示的 ADC 输出信号在 240MHz 上也被严重地过采样,可以大幅度缩小 ADC 输出带宽。在带通滤波器和抽取模块的硬件实现中,在通过抽取将有效采样率降至 1/16 到 15MHz 时(比有限带宽输入信号的最高频率快 3 倍),可以只计算第 16 个滤波器输出值,从而降低硬件需求。

  图 5 所示的是与 Digilent Cmod S6 开发模块结合使用,产生图 2 所示的反馈信号以及与图 3 的傅里叶转换有关的比特流数据的 VHDL 源代码。一个 LVDS_33 输入缓冲器直接实例化

  并分别连接到模拟输入和反馈信号 sigin_p 和 sigin_n。内部信号 sig 由 LVDS_33 缓冲器的输出驱动,并由内置的触发器采样,以产生 sigout。信号 sigout 是经滤波用于产生N位ADC输出的串行比特流。我们使用免费的赛灵思 ISE® Webpack 工具实现该项目[6]。

  VHDL 源代码

  LIBRARY IEEE ;

  USE IEEE.STD_LOGIC_1164.ALL ; LIBRARY UNISIM ;

  USE UNISIM.VCOMPONENTS.ALL ;

  ENTITY deltasigma IS

  PORT (clk :IN STD_LOGIC ;

  sigin_p :IN STD_LOGIC ;

  sigin_n :IN STD_LOGIC ;

  sigout :OUT STD_LOGIC) ; END deltasigma ;

  ARCHITECTURE XCellExample OF deltasigma IS SIGNAL sig :STD_LOGIC ;

  BEGIN

  myibufds:IBUFDS

  GENERIC MAP (DIFF_TERM =》FALSE,

  IBUF_LOW_PWR =》FALSE, IOSTANDARD =》 “DEFAULT”)

  PORT MAP (O =》 sig,

  I =》 sigin_p, IB =》 sigin_n);

  mydeltasigma:PROCESS(clk) BEGIN

  IF (clk = ‘1’ AND clk’EVENT) THEN

  sigout 《= sig ; END IF ;

  END PROCESS mydeltasigma ; END XCellExample ;

  UCF文件

  NET “clk” LOC = J1 |IOSTANDARD = LVCMOS33; NET “sigin_p” LOC = N12|IOSTANDARD = LVDS_33; NET “sigin_n” LOC = P12|IOSTANDARD = LVDS_33;

  NET “sigout” LOC = P7 |IOSTANDARD = LVCMOS33| SLEW = FAST|DRIVE = 24;

  图 5 所示的是 VHDL 代码和与图 1 的电路相关的 UCF 文件部分。

  减少元件数量

  本文描述的 ADC 架构已经被近期发表的几篇文章不准确地引用为德尔塔-西格玛(ΔΣ)型架构[7]。虽然真正的ΔΣ型 ADC 有优势,这种方法的简便性和元件数少使之对部分应用有吸引力。而且由于 LVDS_33 输入缓冲器有相对较高的输入阻抗,在许多应用中传感器输出能够直接连接到 FPGA 输入,无需使用前置放大器或缓冲器。这在许多系统中都能体现出明显的优势。

  本文方法的另一个优势是通过叠加能够“混合”多个串行比特流,使用单个滤波器就能恢复输出信号。例如在基于阵列的超声系统中,串行比特流可以延迟时间来实现聚焦算法,然后以向量方式相加,这样使用一个滤波器就能恢复数字化且聚焦的超声波向量。

  使用 FIR 滤波器生成 ADC 输出是一种简单直观的暴力方法,这里主要用于演示目的。在大多数设计中,ADC 输出将使用传统的积分器/低通滤波器解调器拓扑[2]生成。

  参考资料

  1. XPS 西格玛-德尔塔(ΔΣ)型模数转换器(ADC) V1.01A,DS587,2009 年 12 月 2 日

  2. R. Steele, 增量调制系统, Pentech Press (伦敦), 1975 年

  3. Digilent Cmod S6 参考手册,Digilent Inc 公司, 2014 年 9 月 4 日

  4. FT2232H 微型模块产品说明书,V1.7,Future Technology Devices InternaTIonal Ltd.公司,2012 年

  5. TFilter,免费在线 FIR 滤波器设计工具,http://t-filter.engineerjs.com/

  6. USE 深度辅导,UG695 (V13.1),赛灵思公司,2011 年。

  7. M.Bolatkale 和 L.J。Breems,高速和大带宽西格玛-德尔塔(ΔΣ)型 ADC

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2536343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存