前言

最近两周在做一些关于高速ADC的东西,也算是接触到了一些新的东西,做技术的,就是要不断地学习新的东西才可以啊。调试的平台是zcu102+daq3。daq3是ADI推出的一个高速AD和DA的评估板。上面主要的芯片是ADC芯片AD9680,DAC芯片AD9152,时钟芯片AD9528。ADI的产品有一个好处就是开源的东西多,能够大大地减少手册阅读的时间。

1. JESD204B 基本协议

其实使用到ADI的东西,基本也就没有太去关注协议这些东西,只是简简单单的有个了解就行,在实际调试的时候,用的也是Xilinx的评估版的JESD的IP,基本不需要自己做什么工作就能够把整个系统运行起来了。
下面这个图是AD9680的一个基本的结构框图,可以看到这个ADC的作用就对输入的信号进行采集量化,在JESD204B链路建立之后,按照特定的格式组成数据帧,然后将数据帧通过JESD的接口将数据发送到FPGA上。其实基于JESD 204B的ADC和DAC在使用的时候,只需要去弄清楚链路是如何建立的就基本宣告JESD的驱动成功了。

1.1 JESD204B链路参数

在JESD 204B的链路建立的过程中,最重要就是需要去关注链路所需要的参数,这些参数是后面对FPGA当中JESD IP的配置和对AD9680配置十分重要的,JESD IP的手册可以参考PG066和PG198这两个手册。
无论是JESD的发送还是接收,关于链路建立的关键参数都是一致的,如下面从AD9680的手册当中截取出来的一些参数。

通过这些参数能够确定JESD链路当中所需要使用到的LANE的数量,JESD该如何来进行组帧,组成的数据帧当中哪些位是数据位哪些位是控制位,组成的数据帧是对应哪一个ADC当中的哪一个转换器的。举个基于AD9680和FPGA进行全带宽传输的简单的例子,
L=4,M=2,F=2, N’=16, N=14, CS=2, K=32对应到JESD的链路当中就是
L=4需要4个lane来建立JESD 204链路,从FPGA角度来看就是需要使用到4个高速收发器接口。
M=2产生ADC数据的数据来源有两个,如下面的图中所示
N’=16表示一个采样点中包含16bit数据,N=14表示ADC的采样精度为14bit,CS=2表示在传输JESD的数据的时候有两位的控制位,这样就能够很好地理解N’,N和CS的关系了。一般情况下一个采样点包含了具体的数据和控制位。
F=2表示一个数据帧当中有两个字节的数据,这两个字节刚好能够表示一个采样点。
K=32表示一个多帧当中有32个数据帧,通过前面的F参数,不难计算出一个多帧包含有64个字节的数据。
上面只是一个对JESD链路当中参数的一个简单的介绍,在实际的使用的时候,就是多看手册,弄清楚每个参数在具体的应用当中的作用就OK了。
下图是一个ADC采样点经采样后从传输层经过数据链路层,最终经过物理层进行传输的过程,在这个过程中,可以看到在具体的数据帧党总,上面介绍的一些关键的参数的具体的表现形式。

1.2 JESD 204B的分层

就像学习以太网的时候,要先了解一下OSI的涉及参考模型一样,在JESD当中,也有一个参考的数据分层的物理模型,下图所示的就是一个简单的JESD 204B的分层。主要有三个层级,分别是传输层,数据链路层和物理层。

  • 传输层: 传输层负责将庶几乎打包映射到有字节组成的JESD204B数据帧当中。传输层的映射关系是由链路层的设置的参数来决定的。
  • 数据链路层:数据链路层负责数据传输的底层的功能,这些功能包括对数据进行加扰,插入用于多芯片同步,通道对齐等控制字符,完成8B10B转换,发送初始通道对齐序列(ILAS)等。ILAS是一个比较重要的序列,这个序列当中包含了链路的一些信息,在接收方当中,可以通过这个序列来知道当前链路的一个配置的状态。
  • 物理层:物理层就是负责将数据进行传输的层,在我这里也就是指的FPGA和AD9680之间具体的高速接口了。

1.3 链路建立的过程

在我进行JESD204B的调试过程中,我认为最重要的一步就是链路建立的过程,只要能够正确地建立起JESD204B链路的link,那么后续的工作就比较简单了。因此首先需要弄清楚链路建立的一个过程。
在JESD204B subclass1中链路的建立主要包含一下几个步骤:

  1. Code Group Synchronization (CGS) and SYNCINB±
  2. Initial Lane Alignment Sequence (ILAS)
  3. User Data and Error Detection

1.3.1 CGS & SYNC

在CSG阶段,简而言之就是一个同步的阶段,如果对Xilinx的高速接口有一定的了解的话,就知道高速接口当中是如何实现数据和时钟的恢复和数据的对齐的,在CSG阶段,JESD的发送器会不停的发送/K28.5/字符。在JESD的接收器当中,就会根据所接收到的数据来检测是否接收到了/K28.5/字符,如果检测到了,就会使SYNC信号拉高,从而提示JESD发送器,当前已经检测到了/K28.5/也即已经同步上了。
这里需要提一下SYNC信号,在前面数据链路层当中,我们可以在数据链路层当中,有两个用于控制数据链路层的信号,分别是sysref和sync。JESD204B子类1是否同步上,跟这两个信号有着很紧密的关系。
举个简单的例子,ADC 转换器AD9680作为JESD的发送方,FPGA作为JESD的接收方,两者一个共同的参考信号sysref,链路是否建立是根据LMFC与sysref共同来决定的,作为数据的接收方,FPGA若成功检测到当前已经同步上,需要拉高sync,告诉AD9680当前FPGA已经能够同步了,数据的发送方才会进行下一步的操作。若sync一直不拉高,那么链路的建立将会一直处于CGS阶段,在JESD当中也就只能接收到/K28.5/(0xBC).

JESD常用的字符如下:

1.3.2 ILAS 阶段

在这个阶段当中,JESD的发送方,会发送JESD链路的配置信息。ILAS阶段一般包含4个多帧。每个多帧以/R/字符表示开始,以/A/字符表示多帧结束。
在第一个多帧当中,填充的主要是0~255的递增数。
在第二个多帧当中,以/R/字符表示开始,然后发送一个Q字符,用于表示开始发送链路配置数据,从第三个字符开始发送链路配置数据,链路配置数据一共14个字符,其余地方用递增数进行填充。
第三个和第四个多帧,结构和第一个多帧一致。

1.3.3 用户数据

在ILAS阶段完成之后,就可以进行用户数据传输了。这些东西在JESD的IP里面都已经集成地很好了,在使用IP地时候,能够大大地减轻设计的难度。

高速接口----JESD 204B(1)相关推荐

  1. jtag接口原理图_在开始高速接口前,我们来试试IBERT测试吧!

    第一次在知乎上发文章,一想到我只是个IP手册翻译大师就犯愁该怎么下笔,既然只会翻译IP手册,那么我就直接来分享一些IP core是怎么用的吧.因为某些原因恰好学习了一些高速接口的IP的使用,所以这个系 ...

  2. 机器视觉:下一代相机高速接口

    机器视觉:下一代相机高速接口 本文概述并对比了下一代以太网.USB .Camera Link以及CoaXpress标准,并就Thunderbolt3接口的技术潜力展开探讨.今后,这类相机接口将一如既往 ...

  3. 计算机高速接口与嵌入式设计与实现,基于嵌入式双结构通信系统高速接口的设计与实现...

    基于嵌入式双结构通信系统高速接口的设计与实现 主要设计了ARM加DSP双架构通信系统的高速接口,ARM芯片选用S3C2440A,DSP芯片选用TMS320C6416,在两芯片的基础上搭建完整的嵌入式硬 ...

  4. 【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析

    期待大家的一键三连,爱你们!!! 总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理 ...

  5. 千兆以太网工程(高速接口)

    <千兆以太网>是高速接口必修课程, 从课程中学习FPGA模块划分,熟悉高速以太网接口逻辑. 包括:包括TCP IP 协议.ARP 协议.UDP IP MAC 协议解析,MAC IP 核的生 ...

  6. 【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析

    期待大家的一键三连,爱你们!!! 总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理 ...

  7. 【高速接口-RapidIO】2、RapidIO串行物理层的包与控制符号

    总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理层的包传输过程 [高速接口-Rap ...

  8. 【高速接口-RapidIO】4、Xilinx RapidIO核详解

    期待大家的一键三连,爱你们!!! 总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理 ...

  9. 软件的接口设计图_【学术论文】高速接口JESD204B的灵敏放大器设计

    摘要 采用UMC 28 nm CMOS工艺,在低电源电压下设计实现了一种高速.低失调的灵敏放大器.在传统差分放大器.AB类锁存器等电路的基础上进行改进,提出了一种新型结构的灵敏放大器.利用Cadenc ...

  10. 【高速接口-RapidIO】3、RapidIO串行物理层的包传输过程

    总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理层的包传输过程 [高速接口-Rap ...

最新文章

  1. 2021年中国工业互联网安全大赛核能行业赛道writeup之Webshell密码
  2. GitLab 上市,市值高达 149 亿美元!GitHub 的头号劲敌来了
  3. Mybatis常见的面试题总结
  4. linux环境valgrind 安装
  5. 在Centos 5.2下编译安装LAMP
  6. 第四章MPU6000传感器驱动解析
  7. eclipse项目导出错误处理
  8. 数据的增删改_准备数据
  9. 基于微信小程序的点餐系统源码【包调试运行】
  10. div垂直居中和水平居中的多种方式
  11. 关于实习4个月的一些总结
  12. 定义一个Employee类,其中包括表示姓名、街道地址、城市和邮编等属性
  13. 基于dotNET 5 MVC经典模式引入Swagger进行web api开发和管理发布OAS3标准接口文档全过程
  14. android 9 vxp 闪退,XPrivacyLua限制了权限的应用无法打开
  15. Pytorch - 弹性训练原理
  16. 时序动作检测《BSN: Boundary Sensitive Network for Temporal Action Proposal Generation》
  17. Mobius反演(莫比乌斯反演)
  18. MySQL数据库的管理工具
  19. Hystrix断路器执行原理
  20. Linux各种安装软件包的方式

热门文章

  1. 矩阵迹的常用性质,导数,以及推导过程
  2. 东芝打印机共享怎么设置_东芝打印机如何共享
  3. 公钥私钥的使用和数字签名原理
  4. 解密SuperWebview的一种另类方法
  5. 电容屏物体识别_浅谈多点电容屏物体识别,实物识别技术
  6. 液晶拼接处理器_大屏幕显示系统设备中矩阵与液晶拼接屏的连接方法
  7. 为什么创业者要假装读过《从0到1》和《创业维艰》?
  8. 基于朴素贝叶斯算法实现情感分类
  9. 全息过山车:带你释放压力,体验激情
  10. 拯救你的SD卡,找回丢失的文件