模数转换器的实现
一个简单的模数转换器可以通过添加一个简单的RC电路至FPGA或CPLD的LVDS输入来实现。RC网络在LVDS输入的一端,模拟输入则在另一端。LVDS输入将作为一个简单的模拟比较器,如果模拟输入电压高于RC网络的电压,将输出数字“1”。通过改变RC电路的输入电压(来自FPGA/CPLD的通用输出),LVDS比较器可用于分析模拟输入电压,以创建一个准确的数字表示。
模拟至数字控制模块可以用多种方式实现,取决于模拟输入的频率、所需的分辨率和可用的逻辑资源。用简单的逐次逼近寄存器可以处理低频信号。一旦构建了数字信号,就可以对数字输出进行可选的过滤,以去除任何由于系统噪音或反馈抖动所引入的不必要的高频分量。在可选数字滤波模块后面,可选的存储器缓冲区可用于调试/测试目的。通过存储缓冲器对数字输出采样,然后通过JTAG端口扫描输出,到达运行信号分析软件的个人计算机。
低频/最小逻辑ADC实现
在低频/最小逻辑实现情况中,采样控制模块控制逐次逼近寄存器,相关的输出信号随时加到RC电路。因此RC电路的电压上升或下降,以响应相关的输出状态,输出状态是变化的。LVDS输入比较模拟输入与RC电路电压的变化。因此,RC电路的电压是用来“发现”模拟输入电压。
第一次测量需要8个时钟,下一次需要4个时钟,等等类似。最初,通过在相关输出上加逻辑“1”,RC电路被设置为模拟输入的整个电压摆幅的一半。一旦电压达到这个点的一半,LVDS输入的输出将指示模拟输入值是否高于或低于RC电路电压。
如果模拟电压较高,数字输出的最高有效位是逻辑“1”。如果模拟电压较低,则数字输出为逻辑“0”。SAR移到下一位,采样时间减半(为整个电压摆幅的四分之一)。这个过程不断重复,直到A/D转换器达到所需的精度。
低频设计可以用来监测几个模拟电压的电平,这些电平表示各种电源电压和环境传感器的输出。CPLD实现可以监控PCB的电源电压(3.3V,2.5V和1.8V),以及温度和湿度传感器和开放式机箱的报警。为测量多个模拟输入,可针对每个模拟电压连同附加的RC电路采用一个LVDS输入。由于模拟电压是缓慢改变的,LVDS输出可多路复用,这样在每个输入之间就可以共享数字逻辑功能。
低频/最小逻辑ADC的测试结果
无需可选数字滤波电路的低频/最小逻辑电路已经用一块*估板在莱迪思的MachXOCPLD上实现,并使用电压范围为0V至3.3V的0.8Hz输入信号。该设计采用可选的存储器缓冲区及莱迪思ispLEVER设计软件的RevealLogicAnalyzer功能。该功能将缓冲存储器添加至目标设计,并加入控制数字信号采集、数据缓冲和通过JTAG电缆输出数据到计算机所需的逻辑。在测试过程中,使用Linear公司的PScope软件在捕获的数据上运行FFT。该电路对0.8Hz模拟输入的响应显示在图3的上半部分。
接收到的数字信号显示在PScope屏的顶部窗口中。纵轴用来测量代码步长(0到255),横轴用来测量采样(在这个例子中有1024个样本)。在边栏的右上角报告频率,如f1(基本)频率。FFT的结果显示在窗口的下面,根据它们的dB水平通过纵轴显示谐波频率。从FFT产生的关键参数显示在右下侧栏,其中包括有效位数(ENOB)和信噪比(SNR)。这些结果表明,输入信号已成功转换为具有好的分辨率和信噪比的数字信号。
实现更高频率的ADC
过采样触发器捕获LVDS输入的比较结果。通过驱动RC电路的通用LVCMOS输出反馈这个信号。如果比较器输出为逻辑“1”,这意味着模拟输入高于RC电路的电压。逻辑“1”通过触发器采样,并反馈到RC电路,使RC电路的电压上升。如果比较器输出为逻辑“0”,反馈信号将为逻辑“0”,这将会使得RC电压更低。通过这个简单的反馈机制,数字值“跟踪”模拟输入频率。
使用级联积分梳状(CIC)滤波器,PCM输入数据可转换成反映模拟输入流频率的输出流。CIC的功能基本集成(增加或减少)单个位PCM信号,以生成所需比特数的连续输出信号。
由于反馈环路的“跟踪”过程,RC电路电压可能围绕模拟输入电平摆动。当过采样触发器在“1”和“0”之间变化时,RC电路的电压会从稍高于模拟输入电平下降至稍低于模拟输入电平。这个过程一直持续到模拟输入电平发生变化。这种高频率噪音可以通过使用可选的数字滤波器来消除。