文章目录
JESD204B 协议的优点如下,
确定性延迟的意义在于,当电路重新上电,或是重新进行同步时,这之间的延迟是确定的。
JESD204B 的子类说明如下,
| 子类 | 说明 |
|---|---|
| 子类 0 | 不支持确定性延时,向后兼容 JESD204A |
| 子类 1 | 使用 SYSREF参考时钟支持确定性延时 |
| 子类 2 | 使用 SYNC~时钟支持确定性延时 |
![]() | |
![]() |

在使用时,需要针对特定应用场景所需的链路数、通道数、通道速率以及各时钟信号的频率,对链路参数进行配置。

NP->ADC number of bits per sample
Understanding JESD204B Link Parameters
The N’ parameter is found by multiplying the number of nibbles by four. It can be advantageous to both the transmitter and receiver to set N’ to 16 for converters with resolutions ranging from eight bits to 16 bits. This allows for the same transmitter and receiver to be used for multiple converters, easing overall system design. A non-complete nibble has room for either control bits (CS ) or tail bits (T ) as defined by the JESD204B standard. The equation N’ = N + CS + T must be satisfied.For example, a 14-bit converter with N’ = 16 would have two bits left that could be used for control bits and/or tail bits. The figure below gives a visual representation of the how the converter data is mapped into a JESD204B word for a 14-bit converter with N’ = 16. If there are no tail bits or control bits, the JESD204B word is the same as the sample data. This would occur in this case if the resolution of the converter were equal to 16 bits instead of 14 bits. It is important to note that the left most bit is the most significant bit of the converter sample. Samples are transmitted across the link MSB first and LSB last. Control bits, if any, are appended after the LSB to each conversion sample.
The S parameter is the number of transmitted samples per converter per frame. Typically, the S parameter is set to one. This parameter must always be an integer to minimize cross talk between the JESD204B circuitry and the analog circuitry of the converter. The JESD204B specification allows for this parameter to be greater than one, but it is simpler to set S to one such that the frame clock (FC ) and sample clock of the converter can be equal. For a 500MSPS converter and S = 1, the frame clock rate is 500MHz.
The next parameter to set is the number of lanes, L . In order to determine the number of lanes required, the maximum lane rate must be known. The maximum lane rate is determined by two main factors: the output driver capability of the transmitter and the input capability of the receiver. To calculate the lane line rate and determine the number of lanes, Equation 1 is used:
Lane Rate = (M x S x N’ x 10/8 x FC)/L
Using the example information above with a quad-channel, 500MSPS 14-bit converter with N’ = 16 and S = 1, we can set the L parameter to different values and find the resultant lane rate to make sure it falls within system limitations. In this case, let’s assume the maximum lane rate that can be supported by the transmitter and receiver is equal to the maximum lane rate defined for the JESD204B specification, which is 12.5Gbit/s. If L = 2, the resultant lane rate is (4 x 1 x 16 x 10/8 x 500MHz)/2 = 20Gbit/s. This exceeds the accepted maximum. Clearly, L must be set to 4 in order to reduce the lane rate below the accepted maximum. With L = 4, the lane rate is 10Gbit/s, which complies with the maximum rate of 12.5Gbit/s.
After using the number of converters, the number of samples per frame, the JESD204B word size, and the maximum lane rate to calculate the number of lanes, we can determine the number of octets transmitted per frame, F . In order to determine this parameter, Equation 2 can be used:
F = (M x S x N’)/(8 x L)
Continuing with the information from the previous examples, F can be calculated. Substituting the values, we have F = (4 x 1 x 16)/(8 x 4) = 2. So for a quad-channel, 500MSPS 14-bit converter with four JESD204B lanes, there are two octets needed to transmit one sample of data per frame, which results in a lane rate of 10Gbit/s.
假设一个4通道的AD芯片,分辨率是14位,则M=4,N=14。在JESD204B的标准中要求,采样的一个数据必须要分解成半字节(nibble,4bit),那么14位的AD数据,能分解成3个nibble,还余下2位。那么余下的这2位,要与控制位(CS)或尾位(T)组成一个新的nibble。所以14位采样率的AD,需要4个nibble,那么N’=16,发送时先发送高位,再发送低位。同理,如果12位的AD,只需要3个nibble,不需要控制位或尾位在补充。
还是以一个4通道,500MSPS采样率,14位的AD为例,可以知道N’=16,S=1。假设器件支持的JESD204B协议的速率为12.5Gb/s,那么可以求得L=4的时候,速率为10Gb/s,这样才不会超过速率的最大限制;同样的,计算得出F=2,即每一帧传输中有2个字节的数据。

传输层按照应用层中的相关配置对对样本数据进行处理,将其映射为符合要求的帧数据。 协议定义了四种映射机制,如下所示,
在实际应用中,一个设备通常集成多个转换器,并且多个转换器同时工作,因此一般情况下采用后两种方式,即多个转换器中的样本映射到单个通道或多个通道中。在向多个通道映射样本数据时,参数 HD 和 CF 控制链路采用不同的映射方式。
| 参数名称 | 描述 | 备注 |
|---|---|---|
| HD | 控制映射完成后八位字节的传输方式 | 当 HD = 0 时,每个转换器的样本和控制字符只能在一个通道内传输,并且不同转换器的样本和控制字符不能出现在同一个八位字节中;当 HD = 1 时,每个转换器中的样本和控制字符可以通过多个通道分开传输,不同转换器中的样本和控制字符可以出现在同一个八位字节中 |
| CF | 控制每条链路每帧数据内控制字节的数量 | CF可以和参数 L、M 共同决定控制字节所在的通道以及在该通道中所处的位置 |


JESD204B Overview
如图所示,为一个8通道采样,11位的AD,拥有4条传输通道,即M=8,N=11,L=4。根据上面的说明,N’=13(此处TI的定义和ADI的略有不同,ADI的定义下N’=16,但不影响理解),补充了2个控制位和3个尾位。要是同一帧的传输下,4条通道装下8个转换器的一个数据,需要设置F=4,即4个字节,每2个转换器共用一个传输通道,各自传输2个字节的数据。这张图一目了然的展示了连接参数对组帧方式的作用。

摘自《AD9689》


JESD204B 协议定义了长传输层测试模式和短传输层测试模式,前者周期为多个帧周期,后者周期为单个帧周期,两种测试模式中采用的测试序列必须是可重复的,即在测试持续时间内按照一定周期重复出现。
在传输层测试模式中,将输入到传输层的数据样本替换为测试样本,通过验证接收端与发送端传输层中的测试样本是否完全一致,可以判断收发端传输层是否能够对数据样本进行正确的处理,将其映射为帧数据并对其进行解帧。

数据链路层中包括字符替换和还原模块、缓存器和 8B/10B 编解码模块。

对齐字符的替换与帧数据是否经过加扰以及链路是否支持通道同步有关,如下所述,
| 方式 | 描述 |
|---|---|
| 收发端都支持通道同步,数据加扰 | 发送端检测到当前帧的最后一个八位字节等于0xFC,并且该八位字节不在多帧的末尾时,将其替换为控制字符/F/;当前多帧的最后一个八位字节等于 0x7C 时,将其替换为对齐字符/A/。接收端接收到字符/F/和/A/后将其还原为 0xFC和 0x7C |
| 收发端都支持通道同步,数据不加扰 | 发送端检测到当前帧与前一帧的最后一个八位字节相等,且当前帧的最后一个八位字节不在多帧的末尾时,将其替换为控制字符/F/,但如果在前一帧中已经进行了对齐字符的替换,则不对当前帧进行对齐字符替换;当前多帧的最后一个八位字节与前一帧的最后一个八位字节相等时,将其替换为控制字符/A/。接收端接收到字符/F/和/A/后将其还原为与前一帧最后一个八位字节相等的数据 |
| 收发端至少有一侧不支持通道同步,数据加扰 | 发送端检测到当前帧的最后一个八位字节等于 D28.7 时,将其替换为控制字符/F/。接收端接收到字符/F/后将其还原为 D28.7 |
| 收发端至少有一侧不支持通道同步,数据不加扰 | 发送端检测到当前帧与前一帧的最后一个八位字节相等时,将其替换为控制字符/F/,但如果在前一帧中已经进行了对齐字符的替换,则不对当前帧进行对齐字符替换。接收端接收到字符/F/后将其还原为与前一帧最后一个八位字节相等的数据 |
数据链路的建立分为三步:代码组同步(CGS)、初始通道同步(ILS)、传输用户数据。


调整分辨率
调整时钟




上图所示的是一种比较灵活的时钟架构,

摘自《pg066》

产生ILA序列的仿真代码如下,基本和AD9680要求的一致,

以下摘自《AD9680手册》
CGS是JESD204B接收设备找到数据流中10位符号间界限的过程;在CGS阶段,JESD204B传送模块传送/K28.5/字符;接收设备必须使用时钟数据恢复(CDR)技术,在输入数据流中定位/K28.5/字符。
CGS阶段之后是ILAS阶段,它在下一LMFC边界开始;ILAS由4个多帧组成,/R/字符表示开始,/A/字符表示结束。ILAS从发送/R/字符开始,然后发送一个多帧的0至255斜坡数据。在第二个多帧发送链路配置数据,从第三个字符开始。第二个字符是/Q/字符,用以确认随后是链路配置数据。所有未定义数据时隙都用斜坡数据填充。ILAS序列从不加扰。
仿真如下图,接收数据的时候,先接收的数据放在低位字节



JESD204接口调试总结——Xilinx JESD204B IP testbench解析
【Xilinx JESD204B】针对JESD204B的一些问题解答
Xilinx JESD204B数据手册的理解
jesd204b高速ad/da ad9172 AD9689调试记录
我正在测试我的资源Controller的删除操作,如下所示:describeResourceControllerdocontext"DELETEdestroy"dobefore:eachdodelete:destroy,id:@resource.idendit{shouldrespond_with(:no_content)}endend我期待204/无内容响应。但是,此测试失败,因为服务器返回的响应是406。当我直接从Rest测试客户端访问Controller时,响应是204。 最佳答案 几年过去了......我只想指出,可以使用e
这看起来很基础,但我是Ruby/Rails初学者。我只需要在Controller中返回HTTP204。会respond_todo|format|format.htmlend返回204? 最佳答案 head:no_content使用Rails3.2.x、4.x测试。它会导致Controller方法以204NoContentHTTP状态代码进行响应。在名为foobar的Controller方法中使用它的示例:deffoobarhead:no_contentend 关于ruby-on-rail
JESD204B1、jesd204b概述2、时钟3、JESD时钟计算实例JESD204B定义1、jesd204b概述jesd204b是一种基于高速SERDES的ADC/DAC数据传输接口。详细介绍可以参考:JESD204B详细介绍初学的时候有好多问题没理清楚,现在记录一下:1、jesd204b分为几个子类,其中subclass1支持确定性时延,是最为常用的一个。由于AD/DA一般有多个lane来传输数据,但是每条lane上的时延可能不一样,在subclass1模式下,在外部参考时钟sysref的作用下,可以缓存快的一路,在确定所有路径同步后,再进行数据传输。2、jesd204b包括jesd20
Firebase函数constfunctions=require('firebase-functions');constadmin=require('firebase-admin');constcors=require('cors')({origin:true});exports.addMessage=functions.https.onCall((data,context)=>{return{text:"Test"};});问题问题是,当我从应用程序调用此函数时,我首先得到完成状态代码:204,然后完成状态代码:200204我怎样才能避免这种情况? 最佳答
梦晨詹士发自凹非寺量子位|公众号QbitAI2022特斯拉AIDAY举办同时,马斯克另一桩大事也有了最新进展。特拉华州法院公布了一系列马斯克与推特交易关联方的聊天记录,时间跨度从2022年1月份到6月份,数量超过400条。随大量私人聊天记录曝光,马斯克如何一步步对收购推特失去兴趣的心路历程也被揭开——这场大戏台面之下的诸多细节也能被吃瓜群众们窥到。从惺惺相惜到关系破裂,只需要6天第一个关键人物,推特创始人JackDorsey。在马斯克的手机里,他的备注是“jackjack”。下面这段对话发生在3月26日,马斯克宣布收购推特9.2%的股份之前。收购完成后的4月3日,马斯克成为推特最大的个人股东,
鉴于此WebApi服务:[ActionName("KillPerson")][HttpPost]publicvoidKillPerson([FromBody]longid){//Kill}这个HttpClientPostAsync调用:varhttpClient=newHttpClient{BaseAddress=newUri(ClientConfiguration.ApiUrl)};httpClient.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));va
一切正常,但我无法在firefox控制台中消除此错误:noelementfound我正在向我的api发送HTTP请求:$http({url:API_LOCATION+'expenses/'+obj.expense.id+'/',method:"DELETE",}).then(function(response){if(response.status===204){varparams=$location.search();params['alert-success']=ALERTS.EXPENSE_DELETED;$location.search(params);}$route.relo
我正在使用returnresponse(null,204);因为我想返回一个空的正文消息,但问题是当我用ruby代码解析响应时JSON.parse(res.body)我收到一些正文消息:{"data"=>[]}那么我怎样才能避免返回这个“数据”而只返回状态代码呢? 最佳答案 你也可以做returnresponse()->noContent(); 关于php-Laravel如何仅响应没有正文消息的204代码状态,我们在StackOverflow上找到一个类似的问题:
我需要在4"x6"纸(也称为4r)上打印1800x1200像素、300dpi的图像我尝试过的我创建了一个PrintRequestAttributeSet来处理我的PrintableArea(4x6)、PrinterprintDPI、Orientation。我在底部附上了一个MCVE。问题虽然代码有效,但我得到了一个具有以下属性的PageFormat(对于我的打印机):x=12.0y=12.32w=276.0h=419.67宽度和高度少了一点,因为我的打印机不支持零边距。(这是我考虑过的。如果有人知道除此之外我可以强制零margin的方法,请告诉我)我提供的边距为0,因为这些图像将通过支
我运行这段代码:privatevoidnotify(Stringdate,intspace)throwsIOException{StringACCOUNT_SID="dddddd";StringAUTH_TOKEN="ggggggg";StringTWILIO_PHONE="+mytwilioproject";StringELAD_PHONE="+myrealnumber";TwilioRestClientclient;client=newTwilioRestClient(ACCOUNT_SID,AUTH_TOKEN);//BuildafilterfortheCallListMappa