初始JESD204B高速接口协议(JESD204B一)

devtools/2024/10/18 14:17:19/

  本文参考 B B B站尤老师 J E S D 204 B JESD204B JESD204B视频,图片来自 J E S D JESD JESD手册或者 A D I / T I ADI/TI ADI/TI官方文档。

1、对比 L V D S LVDS LVDS J E S D 204 JESD204 JESD204

   J E S D 204 B JESD204B JESD204B是逻辑器件和高速 A D C / D A C ADC/DAC ADC/DAC通信的一个串行接口协议,在此之前, A D C / D A C ADC/DAC ADC/DAC与逻辑器件交互的接口大致分为如下几种。

  低速串行接口( I 2 C 、 S P I I2C、SPI I2CSPI)、低速并行接口(包含时钟信号和并行数据信号,例如 A D 9226 、 A D 9280 AD9226、AD9280 AD9226AD9280等)、 L V D S LVDS LVDS接口(在低速并行接口的基础上将数据线和时钟线变为差分信号,速度可以达到几百 M H z MHz MHz)、最后演变为 J E S D 204 JESD204 JESD204高速串行总线。

  前两种接口的ADC和DAC比较常见,不管是单片机还是FPGA,都使用的比较多,不再赘述。接下来讲解LVDS接口的劣势,为什么高速ADC会演变为JESD204。

  首先是 P C B PCB PCB布局布线的难度,如下所示,相同的 16 16 16 D A C DAC DAC L V D S LVDS LVDS接口需要使用 16 16 16对差分数据线,而 J E S D 204 B JESD204B JESD204B接口只需要使用 4 4 4对差分线(带宽与 L V D S LVDS LVDS接口一致)。

在这里插入图片描述

图1 数据线的差别

  上述两种接口的 P C B PCB PCB布线如下所示,由于数据线之间还要严格等长, L V D S LVDS LVDS需要使用 4 4 4层布线,而 J E S D 204 B JESD204B JESD204B只需要一层布线即可。

在这里插入图片描述

图2 PCB布线

  同时由于芯片数据引脚减少,芯片的尺寸也可以做得更小,缩减 P C B PCB PCB的面积,如下所示。

在这里插入图片描述

图3 芯片面积缩小

   L V D S LVDS LVDS接口的时序如下图所示,在时钟信号的边沿采集并行数据总线的状态,容易引起信道偏斜。要求各数据线之间严格等长,在时钟边沿能够稳定采集所有数据线的状态,在使用 L V D S LVDS LVDS接口的器件时,一般都需要去通过 i d e l a y e idelaye idelaye去调节时钟和数据线的相位关系。

  但如果数据线之间本身就没有对齐,当时钟频率较高时,整个系统很可能调试不出结果。钟频率越高,数据线对齐的要求越严格,时钟频率增加到某些值时, P C B PCB PCB走线可能已经无法完成对齐。

在这里插入图片描述

图4 L V D S LVDS LVDS接口的时序

   J E S D 204 JESD204 JESD204接口是在高速 S e r d e s Serdes Serdes的基础上封装得到的,因此数据传输的原理是一样的。如下图所示, J E S D 204 JESD204 JESD204接口并没有随路时钟信号,接收端通过 C D R CDR CDR技术去调节参考时钟和数据之间的相位关系,每路串行数据均有对应 C D R CDR CDR,各组数据线的 P C B PCB PCB走线之间不需要等长对齐。

在这里插入图片描述

图5 J E S D 204 JESD204 JESD204接口接收数据时序

  当然 J E S D 204 JESD204 JESD204相对于 L V D S LVDS LVDS也是有劣势的, J E S D 204 JESD204 JESD204并不能取代 L V D S LVDS LVDS。由于 J E S D 204 JESD204 JESD204的接收端需要锁相环给 C D R CDR CDR提供参考时钟,因此 J E S D 204 JESD204 JESD204的功耗一般会比 L V D S LVDS LVDS高。

在这里插入图片描述

图6 JESD204与 LVDS接口功耗

  另外 J E S D 204 JESD204 JESD204的接收端有缓冲器来实现多通道数据同步,数据传输延迟也会比 L V D S LVDS LVDS大很多,因此在一些对延时比较敏感的系统中,可能还是得使用 L V D S LVDS LVDS

2、 J E S D 204 JESD204 JESD204的结构

   J E S D 204 JESD204 JESD204从发布开始至今有四个版本,分别为 J E S D 204 、 J E S D 204 A 、 J E S D 204 B 、 J E S D 204 C JESD204、JESD204A、JESD204B、JESD204C JESD204JESD204AJESD204BJESD204C,目前使用最多的是 J E S D 204 B JESD204B JESD204B,各个版本之间的差异如下所示。

表1 各个版本的功能
功能JESD204JESD204AJESD204BJESD204C
线速率(Gbps)3.1253.12512.534.25
多lane不支持支持支持支持
多lane同步不支持支持支持支持
多器件同步不支持支持支持支持
确定性延时不支持不支持支持支持

  其中支持确定性延迟是 J E S D 204 B JESD204B JESD204B的特点, J E S D 204 B JESD204B JESD204B链路的确定性延迟定义为串行数据从发送器( A D C ADC ADC F P G A FPGA FPGA)的并行帧数据输入传播至接收器( D A C DAC DAC或接收端 F P G A FPGA FPGA)并行帧数据输出所需的时间。

在这里插入图片描述

图7 链路延迟

   J E S D 204 JESD204 JESD204包含 3 3 3种工作模式,如下所示。其中子类 0 0 0 J E S D 204 A JESD204A JESD204A的工作模式,不支持确定性延迟。子类 1 1 1通过 s y s r e f sysref sysref s y n c sync sync实现确定性延迟,子类 2 2 2通过 s y n c sync sync实现确定性延迟。子类 1 1 1的结构最为复杂,也是 J E S D 204 B JESD204B JESD204B使用最广泛的模式。

在这里插入图片描述

图8 子类的连接方式

  子类 1 1 1的款图如下所示,时钟芯片同时给发送端和接收端提供 s y s r e f sysref sysref D e v i c e C l o c k Device Clock DeviceClock,接收端和发送端通过 s y s r e f sysref sysref去产生与 D e v i c e C l o c k Device Clock DeviceClock同步的帧时钟和多帧时钟 L M F C LMFC LMFC。在链路建立阶段接收端通过拉低 S Y N C SYNC SYNC信号,去同步多 l a n e lane lane数据,具体细节在后文的 J E S D 204 B JESD204B JESD204B确定性延迟章节进行讲解。

在这里插入图片描述

图9 子类1的结构

  上图的发送端可以是 A D C ADC ADC或者 F P G A FPGA FPGA,接收端可以是 F P G A FPGA FPGA或者 D A C DAC DAC,从而实现 A D C ADC ADC或者 D A C DAC DAC F P G A FPGA FPGA的数据传输。不管是发送端还是接收端,主要包含 T r a n s p o r t L a y e r 、 S c r a m b l e r 、 L i n k L a y e r 、 P h y s i c a l L a y e r Transport Layer、Scrambler、Link Layer、Physical Layer TransportLayerScramblerLinkLayerPhysicalLayer等几部分。

  物理层包含了完成高速并/串转换的SDRDES 模块,时钟及时钟数据恢复模块(CDR),也规定了接口的物理电器特性如下表所示。

表2 接口的物理电器特性
参数LV-OIF-Sx15LV-OIF-6G-SRLV-OIF-11G-SR
线速率312.5M~3.125Gbps312.5M~6.375Gbps312.5M~12.5Gbps
差分电压500~1000 (mV)400~750 (mV)360~770 (mV)
误码率≤ 1e-12≤ 1e-15≤ 1e-15

   L i n k L a y e r Link Layer LinkLayer主要包括 8 B 10 B 8B10B 8B10B编解码、数据链路的建立(帧和通道对齐)、使用符号位链路监控。链路建立的过程如下所示,具体实现在后文与确定性延时一起讲解。

在这里插入图片描述

图10 链路建立

  加扰( S c r a m b l e r Scrambler Scrambler) 用于去除数据相关性,例如各个帧同时发送相同的数据,从而减小造成的系统干扰和减小电磁兼容性问题。加扰多项式为 X 15 + X 14 + 1 X15+X14+1 X15+X14+1,对应框图如下所示。

在这里插入图片描述

图11 加扰多项式

  传输层( T r a n s p o r t L a y e r Transport Layer TransportLayer)的功能是将 A D / D A AD/DA AD/DA的采集到的数据映射到非扰码的八字结的过程。如下图是一个传输层,需要理解一些参数的含义。

     L L L:每颗 A D C ADC ADC或者 D A C DAC DAC芯片的高速收发器数量。

     M M M:每颗芯片包含 A D C ADC ADC D A C DAC DAC通道数量。

     F F F:每个高速收发器的每个 f r a m e frame frame包含几个字节的数据。

     S S S:每个 f r a m e frame frame周期内芯片的采样点个数。

     C S CS CS:每个采样点含有多少 b i t bit bit控制位。

在这里插入图片描述

图12 传输层

  上图表示该芯片包含 8 8 8路( M = 8 M=8 M=8)分辨率为 11 11 11 N = 11 N=11 N=11)的 A D C ADC ADC 8 8 8 A D C ADC ADC的数据通过 4 4 4路( L = 4 L=4 L=4)高速收发器传输,每个采样点包含 2 2 2位( C S = 2 CS=2 CS=2)控制位。

   A D C ADC ADC每个采样点的数据需要经过两个时钟才能输出,因此在计算高速收发器线速率时, A D C ADC ADC分辨率其实可以等效为 16 16 16位。

  假设ADC采样率为X,则单个时钟ADC的采样数据为 X ∗ M ∗ 16 b i t X*M*16bit XM16bit,然后需要经过 8 B 10 B 8B10B 8B10B编码,编码后的数据量为 ( X ∗ M ∗ 16 ) / 0.8 b i t = X ∗ M ∗ 20 b i t (X*M*16)/0.8bit = X*M*20bit (XM16)/0.8bit=XM20bit,最后通过 4 4 4路高速收发器输出,每路高速收发器的线速率为 X ∗ M ∗ 20 / 4 = X ∗ M ∗ 5 b p s X*M*20/4 = X*M*5bps XM20/4=XM5bps

  当采样率为 100 M H z 100MHz 100MHz时,每路收发器线速率为 100 M ∗ 8 ∗ 5 = 4000 M b p s 100M*8*5=4000Mbps 100M85=4000Mbps

   A D S 42 J B 49 ADS42JB49 ADS42JB49的传输层如下图所示, 2 2 2 14 14 14 A D C ADC ADC通过 4 4 4路高速收发器传输数据,通过上述方式计算每路高速收发器线速率为 X ∗ 2 ∗ 16 / 0.8 / 4 = X ∗ 10 b p s X*2*16/0.8/4=X*10bps X216/0.8/4=X10bps

在这里插入图片描述

图13 A D S 42 J B 49 ADS42JB49 ADS42JB49的传输层

  下文着重讲解 J E S D 204 B JESD204B JESD204B子类 1 1 1的数据链路建立过程和确定性延时相关知识。


http://www.ppmy.cn/devtools/109996.html

相关文章

Mysql基础练习题 1757.可回收且低脂的产品(力扣)

编写解决方案找出既是低脂又是可回收的产品编号。 题目链接: https://leetcode.cn/problems/recyclable-and-low-fat-products/description/ 建表插入数据: Create table If Not Exists Products (product_id int, low_fats ENUM(Y, N), recyclable …

信号与槽,QMainWindow中常用类的使用

QMainWindow菜单栏和工具栏 菜单栏,工具栏,状态栏,中心部件,铆接部件(浮动窗口) 菜单栏 //创建菜单栏QMenuBar *bar menuBar();//指定父组件this->setMenuBar(bar);this->resize(600,400);this-&g…

linux top命令介绍以及使用

文章目录 介绍 top 命令1. top 的基本功能2. 如何启动 top3. top 的输出解释系统概况任务和 CPU 使用情况内存和交换空间进程信息 4. 常用操作 总结查看逻辑CPU的个数查看系统运行时间 介绍 top 命令 top 是一个在类 Unix 系统中广泛使用的命令行工具,用于实时显示…

【JavaWeb】JDBCDruidTomcat入门使用

本章使用技术版本: Tomcatv10.1.25 关于javaweb相关的其他技术,比如tomcat和maven,在我的主页记录了笔记,ajax我用的是本地笔记以后再考虑上传,前端三板斧我用的菜鸟教程文档 JDBC 初识 JDBC概念 JDBC 就是使用Jav…

k8s 存储(PV、PVC、SC、本地存储、NFS)

存储持久化相关三个概念: PersistentVolume (PV) 是对具体存储资源的描述,比如NFS、Ceph、GlusterFS等,通过PV可以访问到具体的存储资源;PersistentVolumeClaim (PVC) Pod想要使用具体的存储资源需要对接到PVC,PVC里会定义好Pod希望使用存储…

机器学习和物联网驱动技术在加工过程中监测工具磨损:一项全面的综述

这篇论文的标题是《Machine-Learning and Internet-of-Things-Driven Techniques for Monitoring Tool Wear in Machining Process: A Comprehensive Review》,由 Sudhan Kasiviswanathan、Sakthivel Gnanasekaran、Mohanraj Thangamuthu 和 Jegadeeshwaran Rakkiya…

hive时间函数

一、随机示例(想到哪里写哪里) 1.系统时间函数 查询 select current_timestamp --当前格式化时间,current_date --当前格式化日期,unix_timestamp() --当前unix时间戳 结果: 2.时间函数转换 查询 --将时间戳转化为格式化时间 sel…

python-新冠病毒

题目描述 假设我们掌握了特定时间段内特定城市的新冠病毒感染病例的信息。在排名 i 的当天有 i 个案例,即: 第一天有一例感染第二天有两例感染第三天有三例感染以此类推...... 请计算 n 天内的感染总数和每天平均感染数。 输入 整数 n 表示天数&…