ADI高速信号采集芯片与JESD204B接口简介
ADI高速信号采集芯片与JESD204B接口简介
JESD204B接口
介绍:
JEDEC Standard No. 204B (JESD204B)—A standardized serial interface between data converters (ADCs and DACs) and logic devices (FPGAs or ASICs)
也就是说这是一个高速模数信号转换芯片与逻辑器件芯片之间的标准接口。
JEDEC是开发微电子行业开放标准的全球领导者,拥有3,000多名志愿者,代表近300家成员公司。官网:https://www.jedec.org/
特点:
优点:具有所有高速串行接口的优点(减小芯片封装大小、引脚数量;减小电路板PCB面积;功率一定时提供更大的吞吐量。);
速度:每个Lane/通道高达12.5 Gbps(12.5 * 10 ^ 9 bits per second = 12.5 * 10 ^ 8 Bytes per second(8b/10b编码) ~= 1192.0929 MBytes per second(除以1024 ^ 2))。
子类:
JESD204B接口共有三个子类:Subclass 0 Subclass 1 Subclass 2(常见Subclass 1,不同子类的区别主要跟信号SYSREF和SYNC~的有无有关):
Subclass 0 uses device clock, lanes, and SYNC~(子类0只有SYNC~信号);
Subclass 1 uses device clock, lanes, SYNC~, and SYSREF(子类1有SYNC~和SYSREF信号);
Subclass 2 uses device clock, lanes, and SYNC~(子类2只有SYNC~信号)。
架构:
以上图片来自:http://www.ti.com/lit/ml/slap161/slap161.pdf
图中显示了一个基本的JESD204B(Subclass 1)的架构,时钟产生器给收发双方提供Device Clock及SYSREF信号;发送方通过串行接口发送数据至接收方,接收方通过SYNC~信号控制发送进程。
以上图片来自:http://www.ti.com/lit/ml/slap161/slap161.pdf
从图中我们可以看到:
架构分三层:1 Transport Layer / 传输层;2 Link Layer / 链路层;3 Physical Layer / 物理层。
比较重要的信号有Device Clock、SYSREF和SYNC~:
Device Clock提供外部统一同步时钟;
SYSREF由外部时钟产生器生成;
SYNC~由接收发给发送,用于同步。
deterministic link latency
上图中各参数:
M=8表示共有8路ADC;S=1表示一帧中包含了1次采样;N=11表示ADC采样精度为11;N'=13表示采样精度11bits+控制位2bits;CS=2表示控制位为2bits;L=4表示Lane的数量为4;F=4表示每个Lane的每个帧有4个字节;K=User Defined表示由用户定义的每个多帧里面有几个帧;Control bits用于表示ADC是否溢出或;Tails Bits用于填充,可以固定为0或填充伪随机序列;
上述参数都是通过寄存器进行设置的。
初始化:
JESD204B通过三个阶段来建立同步链路:代码组同步(code group synchronization, CGS),初始化通道同步(initial lane synchronization, ILAS),数据传输阶段(data transmission phase)。
1.代码组同步(CGS)阶段
CGS is the process by which the JESD204B receiver finds the boundaries between the 10-bit symbols in the stream of data.
CGS阶段:
a 首先由接收端将SYNC信号拉低(表示请求与发送端同步);
b 发送端检测到SYNC信号拉低后,发送连续的K28.5字符;
c 接收端利用CDR(时钟数据恢复)技术,提取到四个连续的K28.5字符(表示同步完成)后,将SYNC拉高;
d 发送端检测到SYNC信号拉高后,即代表CGS阶段的完成,代码组同步阶段完成,进入ILAS阶段。
换个说法再来一遍:各接收器(FPGA)必须利用时钟和数据恢复(CDR)技术,在ADC传来的输入数据流中找到K28.5字符。一旦在所有链路通道上检测到某一数量的连续K28.5字符,接收器模块就会解除置位至发送器模块的SYNC~信号。在JESD204B中,发送模块捕捉SYNC~信号的变化,并在下一个本地多帧时钟(LMFC)边界上启动ILAS。
2.初始通道同步(ILAS)阶段
ILAS的主要作用是对齐链路的所有通道,验证链路参数,以及确定帧和多帧边界在接收器的输入数据流中的位置。
The ILAS phase follows the CGS phase and begins on the next LMFC boundary after SYNCINB± deassertion.
The ILAS consists of four mulitframes, with an /R/ character marking the beginning and an /A/ character marking the end.
ILAS包含4个多帧,由一个/R/码开始,由一个/A/码结束(/R/码为/K28.0/ /A/码为/K28.3/);
The ILAS begins by sending an /R/ character followed by 0 to 255 ramp data for one multiframe. On the second multiframe, the link configuration data is sent, starting with the third character. The second character is a /Q/ character to confirm that the link configuration data follows. All undefined data slots are filled with ramp data. The ILAS sequence is never scrambled.
The four multiframes include the following:
Multiframe 1 begins with an /R/ character (/K28.0/) and ends with an /A/ character (/K28.3/).
Multiframe 2 begins with an /R/ character followed by a /Q/ character (/K28.4/), followed by link configuration parameters over 14 configuration octets (see Table 31) and ends with an /A/ character. Many of the parameter valuesare of the value – 1 notation.
Multiframe 3 begins with an /R/ character (/K28.0/) and ends with an /A/ character (/K28.3/).
Multiframe 4 begins with an /R/ character (/K28.0/) and ends with an /A/ character (/K28.3/).
3.用户数据阶段
在这一阶段,用户数据根据发送器(ADC)中定义并转发到接收器(FPGA)的链路参数,以流形式从发送器传输到接收器。接收器模块处理并监视收到的数据有无错误,包括运行差异不正确(8B/10B错误)、不在表中(8B/10B错误)、意外控制字符、 ILAS不正确和通道间偏斜。如果接收器检测到了错误,将会通过SYNC~报告错误。
参考:
ADI AD9695;
TI JESD204B;
ADI高速信号采集芯片与JESD204B接口简介的更多相关文章
- 数字麦克风PDM信号采集与STM32 I2S接口应用
数字麦克风采用MEMS技术,将声波信号转换为数字采样信号,由单芯片实现采样量化编码,一般而言数字麦克风的输出有PDM麦克风和PCM麦克风,由于PDM麦克风结构.工艺简单而大量应用,在使用中要注意这二者 ...
- 数字麦克风PDM信号采集与STM32 I2S接口应用(二)
在使用STM32的数字麦克风I2S接口时,计算采样率让人头疼,芯片手册上没有明确的说法,而手册上的计算方法经过测试确和实验不符.借助搜索引擎,大部分资料都是来自于开发板卖家或开发板论坛,主要是咪头采集 ...
- 数字麦克风PDM信号采集与STM32 I2S接口应用--笔记目录
数字麦克风采用MEMS技术,将声波信号转换为数字采样信号,由单芯片实现采样量化编码,一般而言数字麦克风的输出有PDM麦克风和PCM麦克风,由于PDM麦克风结构.工艺简单而大量应用,在使用中要注意这二者 ...
- 数字麦克风PDM信号采集与STM32 I2S接口应用(四)--单片机源码
本文是数字麦克风笔记文章的单片机程序.一些朋友私信我,调试出问题. 我就把源码贴出来吧,可能主要问题是DMA的配置. 尤其双DMA时候,需要手动启动I2S的接收DMA,HAL库没有这个接口,不看dat ...
- 数字麦克风PDM信号采集与STM32 I2S接口应用(三)
本文是数字麦克风笔记文章的数据处理篇. 读取数字麦克风的信号,需要嵌入式驱动和PC应用的结合,驱动负责信号采集,应用代码负责声音分析. 一般而言,在完成特征分析和实验之后,把优化过的代码固化到嵌入式端 ...
- [芯片] 4、接口技术·实验四·串行接口8251A
目录 一.实验目的和要求... 2 二.实验原理与背景... 3 三.实验具体的内容... 3 四.实验的代码说明... 4 五.实验结果的分析... 6 附录资料 一.实验目的和要求 学会8251芯 ...
- [芯片] 3、接口技术·实验三·可编程并行接口8255A
目录 一.实验目的和要求 二.实验原理与背景 2-1.8255A简介 2-2.8255A编程 三.实验具体的内容 3-1.8255方式0实验1 3-2.8255方式0实验2 3-3.8255方式1输出 ...
- CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评
CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评 摄像头配置:ov5640.OV5642.mt9p031.mt9m001c12stm OV5640 xclk:24 ...
- 4~20mA信号采集
4-20mA信号采集 4-20mA信号采集可选卓岚ZLAN6802(485)/ZLAN6842(以太网)/ZLAN6844(无线wifi)他们不仅可以可采集4~20mA还可以采集 /0~5V/0~10 ...
随机推荐
- lsnrctl 与 tnsnames.ora 的联系
平台:Windoxs XP+Oracle 11G 当使用oralce的 Net Manager创建了一个名为“L3”的Listener后,要想使用lsnrctl启动和关闭 L3 还必须在tnsname ...
- 【日常记录】【unity3d】 OnTriggerEnter 和 OnCollisionEnter (2D) 的区别
问题:两个物体A,B 两者都有碰撞体 collider(Box Collider,Sphere Collider,Capsule Collider等)当两物体相撞时,会进入 OnTriggerEnte ...
- shell_basic
1.回顾基础命令 2.脚本 3.变量 4.别名 5.条件判断 6.test判断 一.回顾基础命令 shutdown --关机/重启 exit --退出当前shell rmdir --删除空目录 d ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Tomcat6.0下的jsp、servlet和javabean的配置
第一步:下载jdk和tomcat: 第二步:安装和配置你的jdk和tomcat:执行jdk和tomcat的安装程序,然后设置按照路径进行安装即可.1.安装jdk以后,需要配置一下环境变量,在我的电脑- ...
- SQLServer SELECT @@IDENTITY 遇到的坑
经常在写存储过程的时候获取当前插入后的ID都会用 @@IDENTITY 但是今天在用 @@IDENTITY的时候涉及到当前数据的插入会有insert触发器发生时,发现与实际插入的ID值对不上,网上查 ...
- 用C#自定义一个简单的集合
闲来无聊来自己做了一个简单的'集合',用来加深自己对集合的理解 class listNode { private object value; public listNode(object _value ...
- Linux 系统的用户和组详解_【all】
1.Linux 用户和用户组详解 2.Linux 文件特殊权限详解 3.Linux 文件的读写执行权限的说明 4.Linux 架构之简述企业网站 5.Linux 环境变量设置详解 6.企业生产环境用户 ...
- Windows:删除图标缓存
适用于桌面快捷方式图标丢失或图标变成白色的情况,批处理代码如下: rem 关闭explorer.exe taskkill /f /im explorer.exe attrib -h -i %userp ...
- in有两种用法:
# in有两种用法: 1. 在for中. 是把每一个元素获取到赋值给前⾯的变量. 2. 不在for中. 判断xxx是否出现在str中. #len() 为内置函数,输出为1,2,3,4....., 长度 ...