基于JESD204B 的1 GS/s、16-bit 数据采集系统研究
2021-04-24李海涛李斌康阮林波张雁霞
李海涛 ,李斌康 ,田 耕 ,阮林波 ,张雁霞
(1.西北核技术研究所,陕西 西安 710024;2.强脉冲辐射环境模拟与效应国家重点实验室,陕西 西安 710024)
0 引言
随着微电子技术、半导体制造工艺的飞速发展,越来越多的数据采集系统基于“ADC+FPGA”的架构,实现定制化的性能参数。一般情况下,模拟信号输入ADC 进行模拟数字转换,ADC 输出采样数据至FPGA;当ADC输出的采样数据率高于FPGA 内部逻辑资源的处理速率时,FPGA 不能直接接收数据进入其内部逻辑资源,需要对输入数据进行接收转换、延时调整和降速处理等操作之后,才能进入FPGA 内部处理;再通过外部总线协议读取FPGA 内部的缓存数据,做在线数据分析或离线数据分析。
国内对数据采集系统的研究正在蓬勃开展,取得了很大的进步和成果:2012 年,中国科学技术大学唐绍春基于时间交替并行采样技术研制了10 GS/s、8-bit 的数据采集系统[1];2013 年,中国科学院高能物理研究所邹剑雄研制了4 GS/s、12-bit 数据采集系统[2];2019 年,中国科学技术大学梁昊研制双通道5 GS/s、10-bit 数据采集系统[3];2019 年,成都电子科技大学周楠研制了5 GS/s、12-bit 数据采集系统[4];2019 年,成都电子科技大学蒋俊、杨扩军基于时间交替并行采样技术研制了20 GS/s、8-bit 数据采集系统[5];2019 年,中国工程物理研究院二所吴军研制了6.4 GS/s、12-bit 前置数据采集系统,应用于脉冲辐射场诊断。
国内外公司也推出很多的示波器产品等,包括中国的公司如普源精电科技(RIGOL)基于自研的凤凰座(Phoenix)示波器ASIC 芯片组,研制的DS8000 示波器性能达到10 GS/s、8-bit。美国Tektronix 公司研制的高分辨率示波器如MSO58LP,性能达到3.125 GS/s、12-bit;美国Teledyne 公司研制的高分辨率示波器如HDO8108A,性能达到2.5 GS/s、12-bit,还有一款数据采集卡ADQ7,性能达到10 GS/s、14-bit;美国Gage 公司的Razormax 数据采集卡对应指标为1 GS/s、16-bit,TB3-EON数据采集卡指标为6 GS/s、12-bit;美国Spectrum 公司的M4x.2234-x4数据采集卡指标为5 GS/s、8-bit;美国Pico Technology 公司的Pico-Scope6407 数据采集卡性能为5 GS/s、8-bit;瑞士PSI 研发的SIS3305 数据采集卡性能为5 GS/s、10-bit 等。
图1 1 GS/s、16-bit 数据采集系统硬件原理
可以看到,对数据采集系统的性能参数更多关注在采样率上,以提高数据采集系统的时间测量精度为目的,针对超快前沿的信号波形,用高采样率获取足够精细的时间信息。本文主要研究了高分辨率的数据采集系统,针对超大动态范围的信号波形,用高分辨率获取足够精细的幅度信息。总体来说,前述的数据采集系统的垂直分辨率多为8-bit、12-bit,对应的动态范围有限,约100 倍、700 倍,有效位低于10-bit,在幅度归一化的情况下,最低可分辨1/700 的满量程电压幅值。有些探测器输出信号的动态范围大于1 000倍,为了既获取整体波形,又获取波形细节,12-bit 的分辨率就不能满足要求。这种情况下,一般通过信号分路、信道量程搭接等操作,实现对信号的精细测量;为保证信号测量的精度,相邻测量信道量程必须有较大的重叠部分,这会降低信道有限的动态范围;此外,各信道的幅值误差不同、时间误差不同,量程搭接时会导致测量精度降低[6]。本文研制了一款采样率为1 GS/s、分辨率为16-bit 的数据采集系统,采用一个信道对应一个探测器,既消除了分路、量程搭接引入的误差影响,又节约了测量信道,实现了对大动态范围信号的高精度测量。
1 数据采集系统研制
采用“ADC+FPGA”的架构,研制定制化的性能参数的高速高精度数据采集系统[7-10],硬件原理如图1 所示。目前,采样率1 GS/s 以上、分辨率达到16-bit 的商业化的ADC 芯片大多没有商用,选择一款现有的商业ADC芯片,该芯片内部包含4 个250 MS/s、16-bit 的Pipeline 架构的ADC 通道[11],采用片上时间交替(Time Interleaved)采样技术实现1 GS/s、16-bit 的性能参数,通过SPI 接口配置ADC 输出采样数据率为5 Gbps/lane×8-lane。ADC芯片的有效位典型值约为11.5-bit(fin=10 MHz),理论上可以实现2 800 倍的动态范围。不同于传统的采样数据输出接口协议采用的CMOS 驱动器、LVDS 驱动器等,ADC 输出采样数据接口采用了新的JESD204B 接口协议,JESD204B 协议采用CML 驱动器,具有数据传输率高、使用引脚少等优点,针对多路通道(lane)高速串行数据的同步,JESD204B 给出了确定性延迟的解决方案。
FPGA 芯片选择Xilinx 公司28 nm 制造工艺的Kintex-7 系列,型号为XC7K325T-2FFG900I,芯片内部具有集成16 通道GTX 收发专用硬核,单通道GTX 可实现12.5 Gb/s 的数据率,通过配置JESD204B 链路上的Tx、Rx 和时钟等的各项连接参数[12],建立具有确定性延迟的JESD204B 链路,采用8 通道接收ADC 输出的高达40 Gb/s 的采样数据。FPGA 还实现了通过SPI 接口配置ADC 和LMK04828B 芯片工作状态、通过IP 配置光纤接口和网络接口同外部通信等功能。
JESD204B 高速串行接口协议的时钟数据同步方式为自同步(Self-Synchronous)[13],自同步方式将时钟包含在数据流中进行编码传输。这种方式使得时钟和数据的延时路径相同,能最优的保证时序收敛。选择TI 公司的JESD204B 协议专用时钟芯片,LMK04828B 芯片为系统提供器件时钟、参考时钟等,如图1 所示,整个数据采集系统的时钟同源,所有时钟间的相位差保持稳定,这有利于JESD204B 链路的建立。研制的硬件实物图如图2所示。
图2 1 GS/s、16-bit 数据采集系统实物图
2 JESD204B 协议及实现
JESD204B 协议主要用于模数/数模转换器(ADC/DAC)和逻辑器件之间(FPGA/DSP/ASIC)的高速率数据传输,最大支持12.5 Gb/s 的双向传输数据率,分为3 个子类,分别是子类0、子类1、子类2,不同的子类区别主要是对传输通道间同步和链路上确定性延迟(Deterministic Latency,DL) 的测量和校正,JESD204B 的子类1 实用性强,使用也最为广泛,子类1 使用器件时钟(device clock,dclk)、系统参考时钟(system reference clock,sysref)支持确定性延迟[14]。
典型的JESD204B 子类1 的连接如图3 所示,和开放系统互连(OSI)给出的标准网络七层协议相比,JESD204B协议只使用了其中的4 层,分别是应用层、传输层、数据链路层、物理层,各层需要完成特定的功能[11]。对发送端Tx 来说,应用层支持链路参数配置和数据映射,以便正确传输和解读数据;传输层通过添加控制位或者结束位等方式实现转换样本与成帧byte 之间的映射,将数据包装成帧,并根据需要完成加扰操作;在数据链路层,实现8b/10b 编码,监测字符,建立同步的JESD204B 链路,监测和维护通道对齐;物理层完成数据串行、数据收发操作等。接收端Rx 的JESD204B 分层协议则进行反向操作过程;文中所述的JESD204B 链路建立连接,未经特殊说明,都是在数据链路层建立稳定连接。
一般来说,提到JESD204B 链路建立,讲的都是JESD-204B 在数据链路层建立连接的过程,如图4 所示[12],具体分为三个过程:(1)Tx、Rx 收到外部提供的sysref 信号之后,确保内部器件时钟dclk、帧时钟(Frame Clock,FC)、本地多帧时钟(Local Multi-Frame Clock,LMFC)等时钟相位对齐。Tx 检测到Rx 输出的sync 信号拉低,在下一个多帧时钟周期上升沿开始代码组同步(Code Group Sync,CGS)过程,CGS 过程一般为一个LMFC 周期。(2)CGS 过程完成之后的下一个LMFC 周期开始初始化通道同步(Initial Lane Alignment,ILA)过程,一般情况下,完成ILA过程需要四个LMFC 周期。(3)之后开始数据传输过程(Data Transmission),数据传输时,按照规则对特定数据进行字节替换,保证帧对齐和多帧对齐,实现确定性延迟。由于JESD204B 采用了8b/10b 的编码方式,因此即使在数据传输阶段,获得了全带宽传输,其数据传输效率也仅为80%。有5 个常用8b/10b 编码的控制字符,功能是对数据流实时监测,保持JESD204B 链路的确定性延迟,它们分别是:/K/:/K28.5/,CGS 同步专用字符;/F/:/K28.7/,串行数据流中的帧对齐字符;/A/:/K28.3/,串行数据流中的多帧对齐字符;/R/:/K28.0/,ILA 中多帧对齐字符;/Q/:/K28.4/,ILA 中第二个多帧中第二个字节专用,配置字符。
图3 典型的JESD204B 协议连接
图4 JESD204B 在数据链路层建立连接的过程
JESD204B 链路不仅要建立稳定连接,还要保证链路的确定性延迟[15]。确定性延迟定义为从发送端Tx 的并行帧数据输入至接收端Rx 解帧并行数据输出所需的时间,该时间通常以帧时钟周期、多帧时钟周期或器件时钟周期为单位进行测量。JESD204B 链路的确定性延迟具有三层含义:(1)对单个通道而言,延时具有可重复性,不随多次上电或再同步事件而改变,即是确定性延迟不确定度(DLU)为0 个dclk;(2)对单个器件而言,链路上多个通道的延时具有可重复性,不随多次上电或再同步事件而改变;(3)对多个器件而言,如果采用同一个时钟源产生器件时钟dclk、参考时钟sysref 等,那么多个器件之间的所有通道延时具有可重复性,不随多次上电或再同步事件而改变。为保证JESD204B 链路上多通道数据的同步传输,要求DL 在链路上电建立过程和链路重新建立过程中都是确定可测且可校准。DL 包括固定延迟和可变延迟共2 个部分,其中固定延迟主要由传输链路的物理层特性以及传输层中对帧参数的设置所决定,类似于latency 的概念;可变延迟则是由于传输过程中多个传输层的时钟相位不对齐所产生,其本质是链路建立过程中代码组同步(CGS)阶段到初始通道对齐阶段(ILA)的时间不确定性,在链路上电建立和链路重新建立过程中会变化;可变延迟可以准确测量,且在Rx 端的弹性缓冲器中可以校正。
为了保证Tx 端、Rx 端对确定性延迟的测量精度[16],需要严格控制dclk、FC、LMFC 之间的相位差,sysref 可以实现JESD204B 链路上的时钟初始相位对齐,保证对DL的精确测量。sysref 有三种工作模式:脉冲模式(pulsed sysref)、周期模式(periodic sysref)、间歇周期模式(gapped periodic sysref)。理论上,使用三种sysref 工作模式均可建立稳定的、具有确定性延迟的JESD204B 链路连接。根据文献[10]结论,一般推荐使用脉冲sysref 建立具有确定性延迟的JESD204B 链路,图5 给出了使用脉冲sysref 模式下的JESD204B 连接建立监测波形,图中信号①为8-脉冲sysref 信号,频率为3.906 25 MHz,信号②为sync波形监测,可见sysref 后,首先对齐dclk、FC、LMFC 等时钟的相位,之后Rx 把sync 拉高并被Tx 监测到,开始CGS 过程,最终建立稳定的、具有确定性延迟的JESD204B 链路连接。
图5 脉冲sysref 模式下的JESD204B 连接建立监测波形
在PCB 设计时,需要注意JESD204B 专用时钟引脚及走线,这对建立JESD204B 链路的确定性延迟具有重要作用。对ADC 而言,其sysref、dclk 差分引脚固定,直接输入即可;对LMK04828B 而言,其sysref、dclk 差分引脚固定,直接选择一对输出即可;对Kintex-7 而言,其GTX IP 核需要外部提供refclk、glblclk 和sysref 3 个时钟信号,输入较前两者复杂。refclk 是JESD204B 收发的参考时钟;glblclk 是IP 核的核心时钟(core clock),glblclk 频率必须为通道数据传输率的1/40,作用包括抓取sysref的上升沿(充当dclk 的角色)和将syncb 置为低电平(Rx端,开始CGS 过程)等;refclk 频率值等于glblclk 频率值时,可以替代glblclk 作为核心时钟,这样可以节省1 对差分时钟引脚,降低走线难度。图6 所示为Kintex-7 GTX典型的时钟输入方式,refclk 需要从GTX 的专用时钟引脚进入,之后经专用原语IBUFDS_GT 进入IP 核内部;glblclk 则是从FPGA 的专用时钟引脚进入,经FPGA 内部原语IBUFDS 和BUFG 后进入IP 核内部;sysref 是从FPGA 的专用时钟引脚进入,经FPGA 内部原语IBUFDS后进入IP 核内部。本文还测试了以下几种非典型时钟输入方式:(1)如果glblclk 从GTX 的专用时钟引脚进入的情况,可以使用专用原语IBUFDS_GT 和FPGA 原语BUFG 进入IP 核内部,因为IBUFDS_GT 和IBUFDS 延时不同,虽然实际测试中没有发现时序不收敛的情况,但是不推荐使用;(2)如果glbdk 没有从GTX 的专用时钟引脚进入,而是从FPGA 的专用时钟引脚接入,也可以使用IBUFDS 原语之后进入到IP 核内部,同样也不推荐使用;(3)如果glblclk 或者refclk 的差分引脚反接,这种情况,可以在时钟信号的输出端进行反向设置,也可以在GTX IP 核内部更改差分引脚极性实现反向,反向操作引入的延时不可预知,同样不推荐使用。以上几种非典型时钟输入方式,虽然在周期sysref 模式下均可实现JESD204B 的确定性延迟,但不推荐使用。
图6 GTX IP 核时钟典型输入方式
参考文献[15]指出,在周期sysref 模式下,sysref 频率会对ADC 的采样数据造成频谱污染,因此不推荐使用周期sysref 模式建立JESD204B 链路连接。本文专门对此进行研究验证,结果如图7 所示。在输入端50 Ω 接地的情况下,分析得到ADC 的采样数据,给出了脉冲sysref 模式和周期sysref 模式下的频率谱密度分析,频带宽度DC~20 MHz,可以看到,3.906 25 MHz 的基频及其谐波处并未见到明显干扰,脉冲sysref 模式平均噪底(-115.5 dB)和周期sysref 模式的平均噪底(-115.8 dB)基本相同。综上,考虑到JESD204B 链路的稳定建立和确定性延迟等因素,结合PCB 设计时的典型时钟输入方式和非典型输入方式,推荐采用周期sysref 模式建立JESD204B 链路连接。
图7 脉冲sysref 模式和周期sysref 模式下ADC 采样数据频谱分析
3 采样数据分析
时间交替采样技术可以在PCB 板上实现,也可以在芯片内部实现,目前很多的高采样率、高分辨率ADC 芯片自身就是采用片上时间交替采样技术实现的,大多数的芯片技术手册上都有详细描述,例如ADC 芯片手册,明确给出其采用了4 个250 MS/s、16-bit 的Pipeline ADC 通道,使用时间交替采样技术达到1 GS/s、16-bit 的性能。分析对比了两种ADC 芯片,一款为TI 公司的ADS5400 芯片,指标为1 GS/s、12-bit;另一款为本文使用的ADC,采样数据分析结果如图8 所示,给出了在输入端50 Ω 接地的情况下,ADS5400 和ADC 的频率谱密度,ADS5400 的平均噪底约-109.5 dB,ADC 的平均噪底约-121.7 dB,这个噪底对应了两款芯片的分辨率,根据有效位的计算公式,看到两者相差12.2 dB,有效位相差约2-bit,符合手册中给出的有效位典型值。ADC 的噪声频谱在250 MHz 频率点有一个凸起,对应的就是250 MHz的ADC 单通道采样频率;与之对比的ADS5400 芯片,在200 MHz、400 MHz 频率点有凸起,可以推断,ADS5400 芯片采用5 片200 MS/s、12-bit 的Pipeline ADC 使用时间交替采样技术达到1 GS/s、12-bit 的性能,虽然ADS5400手册中没有明确给出其采用的技术路线,通过分析频率谱密度结果可以有效支持该结论。
图8 50 Ω 空载信号的频率谱密度
对研制的1 GS/s、16-bit 的高精度数据采集系统进行测试,使用Agilent 33250A 作为信号源,输出10 MHz正弦波进入到ADC 模拟输入端,测量得到的时域波形和频域图形如图9(a)、图9(b)所示。图9(b)中,250 MHz 对应的毛刺为时间交替采样ADC 通道工作频率,230 MHz、240 MHz 对应的是二阶互调失真(IMD2)。可以看到,由于各种原因(主要是输入正弦波频率和ADC 采样频率的选择),数据采集没有满足相干采样的要求,因此频域的频谱泄露比较大,形成了比较大的喇叭口。
4 结论
本文研制了1 GS/s、16-bit 高速高精度数据采集系统,建立了具有确定性延迟的JESD204B 链路,确保FPGA对ADC 输出采样数据的准确接收和解析。分析了周期sysref 和脉冲sysref 两种模式对ADC 输出采样数据的影响,推荐采用周期sysref 建立稳定的、具有确定性延时的JESD204B 连接。通过分析采样数据的频率谱密度,验证了ADC 芯片内部包含4 个片上ADC 通道的结论。
图9 ADC 采集的正常的10 MHz 正弦波波形