【JESD204B】基于JESD204B协议的ADC、DAC数据传输

1、JESD204协议概述

ADC、DAC技术即模数、数模转换技术,在军用和民用领域广泛应用,如现在常用的有微信语音、网络电话、其典型数据处理流程:

语音输入->ADC采样->调制->基站->无线传输->基站->解调->DAC->语音输出

采样率在100MSPS以下的ADC芯片,通常采用LVCMOS电平的接口进行数据传输。而当采样时钟频率进一步提升到100MHz,数据有效间隔缩短,ADC芯片的多位并行数据线间的相对偏移变大,数据间的同步变得更加困难,所以在转换速率高于100MHz时,通常采用多个LVDS差分对,以SDR或DDR方式进行数据传输,但这种方式仍然是基于数据的并行传输,并要求多个LVDS差分对间严格等长,当ADC芯片的采样频率再进一步升高,也不可避免会出现并行数据间的偏移与同步问题。

面对这样的问题,JESD204应运而生,JESD204B协议基于CML电平,充分借鉴了SRIO、PCIE协议,采用串行数据链路,旨在减少高速数据转换器与FPGA等处理器之间的数据传输接口,采用JESD204协议的ADC电路如图所示:

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

相比以往的并行数据接口(如CMOS、LVDS等),采用JESD204的优点主要有:

  • 简化了系统设计。使用并行的CMOS、LVDS接口时,ADC的引脚数多,ADC与FPGA之间的布线非常密集,容易造成数据串扰,这一情况在多个ADC通道下更加糟糕。
  • 减少引脚数目。
  • 由于布线简单、引脚数目更小,因此使用JESD204将会使得封装更小、简单。
  • 采用CML电平后,高速的ADC、DAC器件的单位功耗更小。

2、JESD204协议分析

JESD204协议并没有严格规定协议的分层结构,根据惯例,通常将电气特性,如接口形式、偏置电压、匹配阻抗等,以及串行数据的发送器和接收器归为物理层,而与编码、校验等功能称为链路层。

2.1JESD204物理层分析

JESD204物理层采用CML电平,CML电平采用低压差分信号传输方式,典型的差分摆幅(peak-to-peak)为800mV,与LVDS电平相比,其因输出差分摆幅更大,所以传输速率更高,通信距离更远。

链路层处理流程如图所示,主要包含帧填充、8B/10B 编码/解码以及加/解扰码(scrambling)功能等功能,可由逻辑(软件)实现。

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

2.2帧填充

JESD协议规定,若ADC器件采样位宽不足16bit时,低位补随机数至16bit,完成组帧操作再进行8B/10B编码。若一个ADC的采样位宽为12bit,假设其采样的为word[11:0],则其高八位即word[11:4]组成一个字节,而其低四位即[3:0]与补的随机数tail_bit[3:0]组成另一个字节,经过8B/10B编码后,由并行8bit数据变为10bit数据,分别以SYSBOL_n[9:0]表示,SYSBOL_0[9:0]和SYSBOL_1[9:0]组成采样数据的第1帧,以FRAME0表示,SYSBOL_2[9:0]和SYSBOL_3[9:0]组成采样数据的第2帧,以FRAME1表示,依次类推。

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

2.3 8B/10B编/解码

8B/10B编码最初由IBM公司提出,并应用于ESCON项目。

该算法的基本思想是将一个8位字节划分成5位和3位两部分,对5位部分进行5B/6B编码,对3位部分进行3B/4B编码.相当于一次编码一个8比特,分为两部分进行编码在硬件上更易实现。通过两部分分别编码,最终8比特被编码为10比特。

编码后的10位中所有1或0的个数不会超过6个,并且连续的0或1的个数不会超过5个,即每5个连续的0或1后必须插入一位0或1,以保证DC平衡。

除了正常数据的8B/10B编码外,8B/10B编码中还利用一些特殊的字符(称为K码),用于串行数据的同步及查错。

8B/10B编码可以分为字符映射和编码两部分。

字符映射:

将8位二进制数据映射为Dxx.y或Kxx.y。若待编码字符为正常数据,则命名为Dxx.y(D=Data);若待编码字符为专用控制字符,则命名为Kxx.y(K= Control Character),K和D为字符类型。8位待编码字符分为两段,低5位和高3位,低5位数据以十进制表示并编码为xx,xx的取值范围为[0:31],高3位以十进制表示并编码y,取值范围为[0:7],即Dxx.y或Kxx.y中xx.y的由来,如8位二进制数据0b00001010,经字符映射后,变为D10.0,二进制数据0b00101111,经字符映射后,变为D15.1。

编码:

由5B/6B编码和3B/4B编码组成,5B/6B、3B/4B编码通过查找表(Look Up Table,LUT)实现。在LUT中,除了原始8位输入数据,编码后的10位输出数据,还有一个编码极性(Running Disparity, RD)。

如表所示,Dx为经字符映射后的十进制数据,对应的二进制相应位由“EDCBA”表示,根据RD的初始值及当前数据的RD极性选择编码输出。

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

下图为编码中的特殊控制字符:

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

8B/10B编码在多种常见的总线中都有广泛应用,如Fibre Channel、PCIE、SRIO、SATA、Aurora等。

由于8B/10B编码将8bit数据编码为10bit数据,带来了2bit的位宽开销,导致带宽利用率只有原来的80%。

2.4 加/解扰码(Scrambling/De-Scrambling)

在无线通信中,通常存在一个加扰码处理环节,其原理是将需要发送的信息与一个线性反馈循环移位寄存器的值进行异或运算,再发送出去。接收方再进行同样的运算,得到原来的数据。扰码的产生通常是通过循环移位寄存器实现的,循环移位寄存器的结构由扰码生成多项式决定。

加扰操作,实质是将原始比特数据随机化,其优点有二:其一,根据FFT (Fast FourierTransformation)变换的原理,时域的周期信号对应于频域的离散信号,如单载波正弦信号,对应频域的一个频点,即频谐上的一根离散线,而这种频谱上过于突出离散线谱易造成对其他信号的干扰,即码间干扰,而通过加扰处理,可以将短周期信号变成长周期信号,甚至为前后独立的伪随机信号,信号频谱扩散并保持相对稳定,减少或避免了离线线谱的发生几率,增加了信号传输的稳定性:其二,突出的离散线谱易被监测侦听,不利于通信系统的保密性,而通过加扰措施,信号完全随机,再通过扩频编码,数据信息完全淹没在噪声之中,提高了通信链路的可靠性。

将扰码的思想引用到高速串行总线通信中,于是有了各种总线的加扰码的生成多项式,如JESD204加扰码的生成多项式为1+x^14+x^15。

2.5 JESD204协议接收状态机分析

JESD204协议实现分为发送端和接收端,针对ADC器件,其发送端由ADC器件厂家完成,用户只需要对JESD204协议接收端的解析;针对DAC器件,用户则需要完成JESD204协议发送端的解析,其接收端由DAC器件厂家完成。

对于ADC器件,为在串行的数据流恢复出ADC采样时的并行数据,必须在接收端实现符合JESD204协议的接受状态机,接受状态机包含初始化同步状态机以及连续同步状态机。

初始化同步状态机完成对串行传输的ADC采样数据的帧边界提取,确定采样原始帧数据。

连续同步状态机,用于接收端连续的对串行传输的ADC采样数据的边界再定位,防止因时钟抖动或累积的偏差造成的数据边界确认错误。

下图为初始化同步状态机的跳转状态,以及连续同步状态机:

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

JESD204B协议字对齐流程:

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

 

 

上一篇:验证 哥德巴赫猜想


下一篇:题解 UVA10311 【Goldbach and Euler】