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

article/2025/10/2 4:09:54

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电路如图所示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

相比以往的并行数据接口(如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)功能等功能,可由逻辑(软件)实现。

9203e1c875a846ec300d3e4d99526420.png

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表示,依次类推。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

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极性选择编码输出。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_16,color_FFFFFF,t_70,g_se,x_16

 

 

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采样数据的边界再定位,防止因时钟抖动或累积的偏差造成的数据边界确认错误。

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_19,color_FFFFFF,t_70,g_se,x_16

 

 

JESD204B协议字对齐流程:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 


http://chatgpt.dhexx.cn/article/ZrXAHiHB.shtml

相关文章

理解JESD204B链路参数 Understanding JESD204B Link Parameters

想要彻底理解参数意义要先看JESD协议标准原文,再看看这文章。这是我花了很久才意识到的道理,不过这篇文章对理解也有一定意义。 这个文章是我看的一篇英文文章的大体翻译,并不是逐行的。文章名《Understanding JESD204B Link Parameters》 L…

FPGA之JESD204B接口——总体概要 首片

1. 简介 JESD204是一种连接数据转换器(ADC和DAC)和逻辑器件的高速串行接口,该标准的 B 修订版支持高达 12.5 Gbps串行数据速率(目前C修订版已经发布,即JESD204C),并可确保 JESD204 链路具有可重…

JESD204B 参数理解

M和N M表示单片芯片上转换器的个数。 N表示转换器的分辨率。 比如一个4通道14位的ADC器件,M为4,N为14. N’ N’ 定位为word 长度。N’的计算为首先把N打散成一个个的nibble,每个nibble为4bit.对于14bit和16bit的分辨率,都是4个nibble,12…

Atmel ATSHA204应用总结

1 ACES软件安装 Atmel Crypto Evaluation Studio (ACES) https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/Atmel%20Crypto%20%20Studio%20(ACES) 2 基本概念 ACES CE:Atmel Crypto Evalution Studio Configuration Environment(基于加…

加密芯片ATSHA204之使用

目录 看手册Command PacketsConfiguration ZoneLock CommandNonce CommandGenDig CommandWrite CommandRead CommandMAC CommandDeriveKey Command相关参考 本文旨在记录 ATSHA204 的使用过程。ATSHA204 是一个安全认证和验证设备,可防止设备被抄袭,应该…

ATSHA204芯片手册阅读笔记

使用心得: (1)配置好IIC,访问芯片之前先唤醒。 (2)按个人需求配置好Config区域,配置好之后锁住Config。只有锁住了Config,才能去操作Data区。 (3)开始写数据区&#xff0…

JESD204标准概述

此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言。 PS:本着知识共享的原则,此篇博客可以随意转载,但请标明出处! 目录 JESD204协议标准的分类和区别: JESD204A JESD20…

【JESD204系列】二、JESD204概述

在JESD204B 版本中,引入了确定性延时这一关键同步机制,并根据确定性延迟的不同实现方式划分了三个子类。通过实现确定性延迟,系统在两次上电之间,或者重新建立链路的时候,有了一个可以重复的延迟,为系统在处…

JESD204B学习之关键点问答

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u014586651/article/details/86744263 JESD204B学习之关键点问答 1.概述 本文是用于记录JESD20…

jesd204B

调试ADI_JESD204B: 问题描述 卡在CGS阶段。 rx_204B 收到了连续的K码bcbcbcbc,但是SYNC一直不能拉高。 sdk的串口打印报错。initial frame synchronization:NO ? 原因分析: 可能收发的配置问题? sysref频率有问题? 复…

JESD204B 使用说明

JESD204B IP核作为接收端时,单独使用,作为发送端时,可以单独使用,也可以配合JESD204b phy使用。 JESD204B通常配合AD或DA使用,替代LVDS,提供更高的通讯速率,抗干扰能力更强,布线数量更少。 本…

http中的204和205

基本概念 http协议的200,301,302,304,404,503这些常用的状态码就不再介绍了。这里主要说一下不常见的204和205吧。 204代表响应报文中包含若干首部和一个状态行,但是没有实体的主体内容。主要用于在浏览器…

火狐firefox快速切换代理插件:Proxy Switcher

简介 l利用Firefox下的Proxy Switcher插件可以实现快速切换代理 安装 两种方式进入拓展和主题页面 方式一 寻找更多扩展的搜索栏输入Proxy Switcher 选择添加到Firefox 方式二 语言设置为中文的火狐浏览器直接打开地址:https://addons.mozilla.org/zh-CN/f…

关于proxy代理

之前一直有个问题,就是它到底是只代理那部分带有/api的,还是全都代理掉 答案是,只会代理api那部分,也就是你配置了代理的部分 发请求的时候,包括axios发完后,vue会检测你的所有请求,把符合你代理的那部分正则匹配到,然后代理,再发请求 这个地方是我搞错了,其实这个proxy好像…

AnyProxy代理

背景:当一个公司测试团队有多个人的时候,只需搭建一个AnyProxy服务,其它小伙伴浏览器上打开AnyProxy页面,手机上设置代理就能抓到http、https请求了。解决了部分人电脑不正经的小伙伴fiddler死活抓不到https请求的问题&#xff0c…

代理器Proxy

基本概念 一.代理器Proxy 1.用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。 2.Proxy可以理解为,在目标对象之前架设一层“拦截”,外界对该对象的访问&#xff…

代理(Proxy)

-代理模式(Proxy Pattern),23个经典模式中的一个,又称之为委托模式,就是为目标对象提供了一个代理,这个代理可以控制对目标对象的访问。代理对象可以添加审查和监控功能。 在java中的代理有静态代理以及动态…

Proxy-Server

一、摘录 二、背景 由于某些原因,在我们国内无法访问google、facebook等外国网站,如果你想使用外网来学习,聊天,那么就可以使用一些翻墙代理。 三、原理 1.要想翻墙,首先得知道墙是什么东西?墙是看不见摸…

Proxy(代理)服务器

代理服务器:---代理服务器必须有DNS地址。如果开启转发需要在客户端设置DNS地址 NAT:是直接与目标服务器通信的。也就是直接访问的baidu服务器,目标地址是baidu服务器的地址,所以必须要有DNS来解析主机名。 如果是通过代理客户端是…

代理服务器(Proxy)

目录 1.什么是代理服务器 2.代理服务器的作用 3.代理服务器的工作流程 4.安装代理服务器软件及配置文件解析(squid) 5.正向代理 6.修改数据存放位置 7.设置磁盘使用阈值 "代理"两字顾名思义就是以代理人的身份去帮助其他人取得所需要的…