赛灵思 FPGA 芯片对模拟输入信号的数字化介绍

电子发烧友网工程师 发表于 2018-01-11 01:06:07 收藏 已收藏
赞(0) •  评论(0

评论

当前没有评论,快来抢沙发
打开电子发烧友,查看全部评论

赛灵思 FPGA 芯片对模拟输入信号的数字化介绍

电子发烧友网工程师 发表于 2018-01-11 01:06:07 收藏 已收藏

现如今,赛灵思 FPGA 上采用低电压差分信令 (LVDS) 输入,仅需一个电阻器和一个电容器就能实现模拟输入信号的数字化。由于数百组 LVDS 输入驻留在生成电流的赛灵思器件上,因此理论上可通过单个 FPGA 芯片实现数百模拟信号地数字化。

我们的团队近期在为数字化 128 元件线性超声波阵列换能器信号研究选项时,发现了一个极具潜力的设计领域——可用 3.75MHz 中央频率配合 5 位分辨率对限带输入信号进行数字化。下面我们来看看该演示项目的详细情况。

2009 年,赛灵思推出了一款 LogiCORE 软 IP 核,其外加一个外部比较器、一个电阻器和一个电容器即可实现能对频率高达 1.205 kHz 的输入进行数字化的模数转换器 (ADC)。若让 FPGA 的 LVDS 输入(而不是外部比较器)结合增量调制器 ADC 架构,仅需一个电阻器和一个电容器,就能对频率高得多的模拟输入信号进行数字化。

1、ADC 拓扑与试验平台

图 1 是采用 LVDS 输入且在赛灵思 FPGA 上实现的单通道增量调制器 ADC 的框图。在这里,模拟输入驱动非反相 LVDS_33 缓冲器输入,而输入信号范围则基本为 0 至 3.3 伏特。LDVS_33 缓冲器的输出在远远高于输入模拟信号频率的时钟频率下采样,并通过 LVCMOS33 输出缓冲器和外部一阶 RC 滤波器反馈给反相 LVDS_33 缓冲器输入。就适当选择的时钟频率 (F)、电阻 (R) 和电容 (C) 而言,只需采用该电路,反馈信号就可跟踪输入模拟信号。

如何用单个 Xilinx FPGA 芯片数字化数百个信号?

例如,图 2 在 F = 240MHz、R = 2K、C = 47 pF 时分别以黄色和蓝色显示了输入信号(通道 1)和反馈信号(通道 2)。所显示的输入信号由 Agilent 33250A 函数信号生成器采用其 200MHz 12 位任意输出函数信号功能生成。我们用 Tektronix DPO 3054 示波器计算得出的输入信号的傅立叶转换则显示为红色(通道 M)。在这些频率下,示波器探针的输入电容(以及接地问题)确实会弱化示波器中显示的反馈信号,但图 2 同时也展示了该电路的工作情况。

如何用单个 Xilinx FPGA 芯片数字化数百个信号?

我们通过对 1Vpp3.75MHz 正弦波应用 Blackman-Nuttall 窗,定义了图 2 所示的带限输入信号。虽然与理论视窗信号相关的噪声底限几乎比与中央频率相关的量级低 100 dB,但 Agilent 33250A 函数信号生成器的 200MHz 采样频率及 12 位分辨率会导致远远低于理想水平的演示信号。许多中央频率接近 3.75MHz 的超声波换能器产生的输出信号自然会受到频带限制,这是因为换能器机械属性的缘故,因此该输出信号是使用这种方法的理想信号源。

我们使用 DigilentCmod S6 开发模块得到了图 2 所示的图形,该开发模块在支持 8 个 R/C 网络和各种输入接插件的小型定制化印刷电路板上安装了赛灵思 Spartan-6XC6SLX4 FPGA,允许原型系统同时对多达 8 个信号进行数字化。

每个通道都以 50 欧姆接地电阻并行端接,从而可使同轴线缆与信号生成器正确端接。必须注意的是,为了实现这一性能,我们将 LVCMOS33 缓冲器的驱动电流值设置为 24 mA,将压摆率设置为 FAST,如图 5 示例 VHDL 源代码中所述。

此外,该定制化原型电路板还支持使用 FTDIFT2232H USB 2.0 迷你模块,我们用其将封包的串行比特流传输给主机 PC 进行分析。图 3 是输入图 2 模拟信号后原型电路板所生成的比特流的傅立叶转换强度。与 240MHz 采样频率的次谐波相关的峰值清晰可见,与输入信号相关的峰值频率为 3.75MHz。

如何用单个 Xilinx FPGA 芯片数字化数百个信号?

2、大量的抽头

为比特流应用带通有限脉冲响应 (FIR) 滤波器,可生成模拟输入信号(ADC 输出)的 N 位二进制表示法。但由于数字比特流的频率远远高于模拟输入信号,因此您需要使用有大量抽头的 FIR 滤波器。但是,被过滤的数据只有 0 和 1 两个值,因此无需乘法器,只需加法器将 FIR 滤波器系数相加。

图 4 所示的 ADC 输出在主机 PC 上采用有 801 个抽头的带通滤波器生成,其中央频率为 3.75MHz,是我们使用免费在线 TFilter FIR 滤波器设计工具设计而成的。该滤波器除了 2.5MHz 至 5MHz 带通之外,还有 36dB 或更大衰减,在 3 和 4.5MHz 之间有 0.58dB 的波纹。

如何用单个 Xilinx FPGA 芯片数字化数百个信号?

图 4 所示的 ADC 输出信号分辨率约为 5 位,这基本上由过采样速率决定,您可使用针对较低输入频率优化的设计实现更高的分辨率。

此外,图 4 所示的 ADC 输出信号在 240MHz 频率下不仅严重过采样,而且还大幅减少了,能进一步减少 ADC 输出带宽。在带通滤波器和抽取块的硬件实现过程中,如果按 16 分之一抽取,每 16 个滤波器输出值就只需计算一次,其可让有效采样率降至 15MHz(比带限输入信号的最高频率快 3 倍),进而可降低硬件要求。

图 5 是 DigilentCmod S6 开发模块用于生成如图 2 所示反馈信号的 VHDL 源代码以及与图 3 傅立叶转换相关的比特流数据。LVDS_33 输入缓冲器可直接实例化,然后分别连接至模拟输入信号和反馈信号 sigin_p 和 sigin_n。内部信号 sig 由 LVDS_33 缓冲器的输出驱动,并由隐含的触发器采样以生成 sigout。信号 sigout 是串行比特流,其经过过滤,可生成 N 位 ADC 输出。我们使用免费的赛灵思 ISE Webpack 工具实现了该项目。图 5 是 VHDL 代码以及一部分与图 1 电路系统有关的 UCF 文件。

如何用单个 Xilinx FPGA 芯片数字化数百个信号?

3、组件数量少

近期一些文章将我们描述的 ADC 架构误称为 ∆∑ 架构。尽管真正的 ∆∑ ADC 极富优势,但这种方法简单,而且组件数量少,对某些应用极具诱惑力。LVDS_33 输入缓冲器具有较高的输入阻抗,因此在许多应用中,传感器输出可直接连接至 FPGA 输入,无需前置放大器或缓冲器。这在许多系统中都很有优势。

我们的方法还有一个优势,那就是通过叠加来实现“混合”多个串行比特流以及应用单个滤波器来恢复输出信号的应用。例如,在基于阵列的超声波系统中,串行比特流可延时实现聚焦算法,随后以矢量的方式添加,而单个滤波器则用于恢复数字化聚焦的超声波矢量。

采用 FIR 滤波器生成 ADC 输出是一个简单笨拙的方法,这里使用这种方法主要是为了说明起见。在大多数实现方案中,ADC 输出将用传统积分/低通滤波器解调器拓扑生成。

参考文档

XPS Delta-Sigma Analog to Digital Converter (ADC) V1.01A, DS587, Dec. 2, 2009

R. Steele, Delta Modulation Systems,Pentech Press (London), 1975

DigilentCmod S6 Reference Manual, DigilentInc., Sept. 4, 2014

FT2232H Mini-Module Datasheet, V1.7,Future Technology Devices InternationalLtd., 2012

TFilter, the Free Online FIR Filter Design Tool

ISE In-Depth Tutorial UG695 (V13.1), Xilinx, Inc., 2011

M. Bolatkale and L.J. Breems, High-Speed and Wide-Bandwidth Delta-SigmaADCs, Springer, May 2014 Edition

热门推荐

分享到

QQ空间 QQ好友 微博
取消