现场可编程门阵列(fpga)与模数转换器(adc)输出的接口是一项常见的工程设计挑战。本文简要介绍各种接口协议和标准,并提供有关在高速数据转换器实现方案中使用lvds的应用诀窍和技巧。
接口方式和标准
现场可编程门阵列(fpga)与模数转换器(adc)数字数据输出的接口是一项常见的工程设计挑战。此外,adc使用多种多样的数字数据样式和标准,使这项挑战更加复杂。对于通常在200 mhz以下的低速数据接口,单倍数据速率(sdr) cmos非常普遍:发送器在一个时钟沿传送数据,接收器在另一个时钟沿接收数据。这种方式可确保数据有充足的时间完成建立,然后由接收器采样。在双倍数据速率(ddr) cmos中,发送器在每一个时钟沿都会传送数据。
因此,在相同的时间内,它传输的数据量是sdr的两倍。然而,接收器正确采样的时序更加复杂。 并行低压差分信号(lvds)是高速数据转换器的常见标准。它采用差分信号,每一位均有p线和n线;在最新的fpga中,其速度可达ddr 1.6 gbps或800 mhz。并行lvds的功耗低于cmos,但所需的线数则是cmos的两倍,因而布线可能比较困难。
lvds常常用在具有“源同步”时钟系统的数据转换器中,不过这并不是lvds标准的一部分。在这种设置中,时钟与数据同相,并且与数据一同发送。这样,接收器就能使用该时钟更轻松地捕捉数据,因为它现在知道数据传输何时发生。 fpga逻辑的速度一般跟不上高速转换器的总线速度,因此大多数fpga具有串行器/解串器(serdes)模块,用以将转换器端的快速、窄带串行接口转换为fpga端的慢速、宽带并行接口。针对总线中的每个数据位,此模块输出2、4或8位,但以½、¼或1/8的时钟速率输出,从而有效地将数据解串。
数据由fpga内部的宽总线处理,其速度远低于连接到转换器的窄总线。 lvds信号标准也用于串行链路,大部分是用在高速adc上。当引脚数量比接口速度更重要时,通常使用串行lvds。常常使用两个时钟:数据速率时钟和帧时钟。并行lvds部分提到的所有考虑同样适用于串行lvds。并行lvds不过是由多条串行lvds线组成。 i2c使用两条线:时钟和数据。它支持总线上的大量器件,而无需额外的引脚。i2c相对较慢,考虑协议开销,速度为400 khz至1 mhz。它通常用在慢速、小尺寸器件上。i2c也常常用作控制接口或数据接口。
spi使用3到4条线:
时钟
数据输入和数据输出(4线),或者双向数据输入/数据输出(3线)
片选(每个非主机器件使用一条线)
可用片选线有多少,spi就能支持多少器件。它的速度可达约100 mhz,通常用作控制接口和数据接口。 串行port (sport)是一种基于cmos的双向接口,每个方向使用一个或两个数据引脚。对于非%8分辨率,其可调字长能够提高效率。sport支持时域复用(tdm),通常用在音频/媒体转换器和高通道数转换器上。它提供每引脚约100 mhz的性能。 blackn处理器支持sport,fpga上可直接实现sport。sport一般仅用于数据传输,但也可以插入控制字符。 jesd204是一种jedec标准,用于单一主机(如fpga或asic等)与一个或多个数据转换器之间的高速串行链路。最新规格提供每通道或每差分对最高3.125 gbps的速度。未来的版本可能提供6.25 gbps及更高的速度。通道采用8b/10b编码,因而通道的有效带宽降为理论值的80%。时钟嵌入在数据流中,因此没有额外的时钟信号。多个通道可以结合在一起以提高吞吐量,数据链路层协议确保数据完整性。在fpga/asic中,为实现数据帧传输,jesd204需要的资源远远多于简单的lvds或cmos。它显著降低了接线要求,不过要求使用更昂贵的fpga,pcb布线也更加复杂。
图1 fpga接口中的serdes模块和转换器的高速串行接口
一般建议
进行adc与fpga的接口设计时,下列一般建议会有所帮助。
使用接收器、fpga或asic的外部电阻终端,而不要使用fpga内部终端,以免不匹配引起反射,致使超出时序预算。
如果系统使用多个adc,请勿使用某个adc的某个dco。
布设连接到接收器的数字走线时,请勿采用大量“转接”(tromboning)来使所有走线保持等长。
利用cmos输出端的串联终端降低边沿速率并限制开关噪声。确认所用的数据格式(二进制补码或偏移二进制)正确。
采用单端cmos数字信号时,逻辑电平以大约1 v/ns的速度移动,典型输出负载为10 pf(最大值),典型充电电流为10 ma/位。应采用尽可能小的容性负载,使充电电流最小。这可以利用尽可能短的走线仅驱动一个门来实现,最好没有任何过孔。在数字输出端和输入端使用阻尼电阻,也可以使充电电流最小。 阻尼电阻和容性负载的时间常数应为采样速率周期的大约10%。如果时钟速率为100 mhz,负载为10 pf,则该时间常数应为10 ns的10%,即1 ns。这种情况下,r应为100 ω。为获得最佳信噪比(snr)性能,1.8 v drvdd优于3.3 vdrvdd。然而,当驱动大容性负载时,snr性能会下降。cmos输出支持最高约200 mhz的采样时钟速率。如果驱动两个输出负载,或者走线长度大于1或2英寸,建议使用缓冲器。
图2 典型cmos数字输出驱动器 adc数字输出应小心对待,因为瞬态电流可能会耦合回模拟输入端,导致adc的噪声和失真提高。 图2所示的典型cmos驱动器能够产生很大的瞬态电流,尤其是驱动容性负载时。对于cmos数据输出adc,必须采取特别措施以使这些电流最小,不致于在adc中产生额外的噪声和失真。
典型示例
图3 利用串联电阻使cmos数字输出的充电电流最小 图3显示了一个16位并行cmos输出adc的情况。每路输出有一个10pf负载,用以模拟一个门负载加上pcb寄生电容;当驱动10 pf负载时,各驱动器产生10 ma的充电电流。因此,该16位adc的总瞬态电流可能高达16 × 10 ma = 160 ma。在各数据输出端增加一个小串联电阻r,可以抑制这些瞬态电流。应适当选择该电阻的值,使rc时间常数小于总采样周期的10%。如果fs = 100 msps,则rc应小于1 ns。c = 10 pf,因此最佳的r值约为100 ω。选择更大的r值可能会降低输出数据建立时间性能,并干扰正常的数据捕捉。cmos adc输出端的容性负载应以单个门负载为限,通常是一个外部数据捕捉寄存器。任何情况下都不得将数据输出端直接连到高噪声数据总线,必须使用一个中间缓冲寄存器,使adc输出端的直接负载最小。
图4 典型lvds驱动器设计 图4显示了cmos中的一个标准lvds驱动器。标称电流为3.5 ma,共模电压为1.2 v。因此,当驱动一个100 ω差分终端电阻时,接收器各输入的摆幅为350 mv p-p,这相当于700 mv p-p的差分摆幅。这些数值来源于lvds规范。
图5 ansi和ieee lvds标准 lvds标准有两个:一个由ansi制定,另一个由ieee制定。虽然这两个标准类似且大致兼容,但并不完全相同。图5比较了这两个标准的眼图和抖动直方图。ieee标准lvds的摆幅为200 mv p-p,低于ansi标准的320 mv p-p,这有助于节省数字输出的功耗。因此,如果ieee标准支持目标应用及与接收器的连接,建议使用ieee标准。
图6 ansi和ieee lvds标准:走线超过12英寸 图6比较了走线长度超过12英寸或30厘米情况下的ansi和ieee lvds标准。两幅图中,驱动电流均采用ansi版标准。右图中,输出电流加倍,这可以净化眼图并改善抖动直方图。
图7 fr4通道损耗的影响 图7显示了长走线对fr4材料的影响。左图显示了发送器端的理想眼图。在距离40英寸的接收器端,眼图几乎闭合,接收器难以恢复数据。
故障排除技巧
adc丢失第14位
图8 ad9268 adc丢失第14位 图8中,数据位的visualanalog数字显示表明,第14位从未跳变。这可能说明器件、pcb或接收器有问题,或者无符号数据不够大,无法使最高有效位跳变。 adc丢失第14位时的频域曲线
图9 ad9268 adc丢失第14位时的频域曲线 图9显示了上述数字数据(其中第14位未跳变)的频域视图。该图说明,第14位有意义,系统中的某个地方发生错误。 adc丢失第14位时的时域曲线
图10 ad9268 adc丢失第14位时的时域曲线 图10为相同数据的时域曲线。它不是一个平滑的正弦波,数据发生偏移,波形中多个点处有明显的尖峰。 adc的第9位和第10位短接在一起
图11 ad9268 adc的第9位和第10位短接在一起 图11所示不再是丢失一位的情况,而是两位短接在一起,因此对于这两个引脚,接收器始终接收到相同的数据。 adc第9位和第10位短接在一起时的频域曲线
图12 ad9268 adc的第9位和第10位短接在一起时的频域曲线 图12显示了两位短接在一起时的频域视图。虽然基频音非常清楚,但噪底显著低于预期。噪底失真的程度取决于短接哪两位。 adc第9位和第10位短接在一起时的时域曲线
图13 ad9268 adc的第9位和第10位短接在一起时的时域曲线 在图13所示的时域图中,问题相对不明显。虽然在波峰和波谷处损失了一些平滑度,但当采样速率接近波形频率时,这是常见现象。 数据和时钟时序无效时的时域曲线
图14 ad9268数据和时钟时序无效时的时域曲线 图14显示了一个因建立/保持问题而导致时序无效的转换器的情况。上述错误一般会在数据的每个周期中出现,而时序错误则不然,通常并不是持续存在。不太严重的时序错误可能是间歇性的。这些图显示了不符合时序要求的数据捕捉的时域和频域曲线。注意,各周期的时域错误并不一致。还应注意fft/频域的噪底有所提高,这通常表示有一位丢失,原因可能是时序对齐错误。 数据和时钟时序无效时的放大时域曲线
图15 ad9268数据和时钟时序无效时的放大时域曲线 图15是图14所示时域时序误差的放大图。同样应注意,各周期的错误并不一致,但某些错误会重复。例如,该图中有多个周期的谷底上出现负尖峰。 声明: 本文转载自网络,如涉及作品内容、版权和其它问题,请与工作人员微信(in0723mango)联系,我们将在第一时间和您对接删除处理! 投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207
fpga开发流程:详解每一环节的物理含义和实现目标
萨拉快递费卡萨量很大的
如何使用Verowire进行PCB原型制作
人工智能对于电影行业会有什么帮助吗
终端产品发生变化,面板厂商获得新机遇
人工智能是科技革命和产业变革的重要驱动力量
FPGA与ADC数字输出的各种接口协议和标准
连续三年荣获华勤技术“优秀供应商”荣誉,艾为用口碑书写实力
光电效应的应用有哪些 光电效应的基本原理是什么
微波对射探测器的组成以及工作原理的介绍
优傲机器人具有里程碑意义的2020年
浅析卷积的本质及物理意义
开发人员为Windows 10创建Thy Phone应用程序
智能驾驶背后的力量:汽车常用芯片一览
小米6Plus什么时候上市最新消息:什么小米6,小米6Plus才是真旗舰!
全球50个军事国家中有40个使用了AI监控技术
realme X50配置已公布,搭载骁龙765G+全系120Hz畅速屏
微软SurfaceGo拆解 做工究竟怎么样
瑞萨电子建立下一代电动汽车创新中心 恩智浦与福特汽车公司合作
NI推出下一代LabVIEW
三大刊的学术画像深趴了其牛文的独特性质,揭开CNS的神秘面纱