【国产虚拟仪器】基于ZYNQ7045+V7 FPGA的多通道数据同步采集设计方案(一)

news2024/11/18 23:41:34

多通道数据采集设备在当前信息数字化的时代应用广泛,各种被测量的信息 如光线、温度、压力、湿度、位置等,都需要经过多通道信号采集系统的采样和 处理,才能被我们进一步分析利用[37]。在一些对采集速率要求较高的军事、航天、 航空、工业制造等领域,为满足信号分析的实时性,对信号采集系统的采样及处 理速率提出了更高的要求,高速信号采集系统的需求场景不断增加。

2.2.1.3 JESD204接口 
为了解决并行接口下的高速率传输限制,由固态技术协会JEDEC推出的,传 输速率高达10G的串行数据接口:JESD204。结合了差分 LVDS电流型结构驱动 的优势,以CML结构作为其输出驱动单元,推出了 JESD204 系列标准。以串行 的数据传输方式,大幅度的降低了芯片的引脚数量,简化了PCB布局,获得更小 的芯片尺寸,同时还提高了数据传输速率。尤其适用于高转换速度、高分辨率的 场景下。表2-2是对三种高速数据接口的典型特征进行对比。

JESD204协议一共推出了4个版本:JESD204、JESD204A、JESD204B 、 JESD204C。 
2006年4月JEDEC 固态技术协会发布了第一版JESD204协议[24]:JESD204。 该协议描述了转换器与数据处理器之间的高速串行数据链路传输接口。JESD204 只支持一个转换器与逻辑器件之间进行单通道(line)、单链路(link)的数据传输,M 位数据转换芯片均在一个串行CML通道上传输,最高速率可达 3.125Gbps[25]。如 图2-6所示。 

JESD204协议规定了数据链路层使用 8b/10b 的编码方式,转换器与逻辑处理 器件使用同一个时钟:帧时钟(Frame Clock)。把需要的时钟嵌入数据流里,避免了 高速数据传输时,数据要与时钟对齐的难点。 
2008年的4月份,JEDEC 推出了JESD204A版本。主要增加的功能有:  1) 单个逻辑处理器可以与多个转换器器件同时传输数据。  2) 单个转换器器件单个链路下多个通道同时传输功能。  3) 单个链路下多个通道数据对齐功能。 

2011年的8月份,JEDEC 推出了JESD204B版本。该版本的主要改变为:  1) 取消帧时钟,数据转换器与逻辑处理器使用各自的的器件时钟(Device 
clock),提升器件使用灵活度。  2) 支持确定性延迟,支持多器件多通道同步。  3) 最大传输速度提高到了 12.5Gbps。

JESD204B存在3个子类[26],分别是子类0,子类1,子类2。三个子类根据 同步的方式进行划分。子类0兼容JESD204A,子类1使用SYSREF同步,子类2 使用SYNC进行同步。只有子类1和子类2支持确定性延迟,即从数据发送到数 据接收之间的链路延迟固定。 
2017年10月,JEDEC发布了JESD204标准的第三个修订版本JESD204C。 该版本的主要改变为:

1) 通道最大传输速率可达 32Gbps。 
2) 6.375Gbps 到 32Gbps传输速率下,按照链路功耗划分成三个子类,分别
为:C-S、C-M、C-R。 
3) 引入了两种编码方式:64B/66B和64B/80B。

表2-3是对四种版本的JESD204接口典型特征进行对比。 

与CMOS和LVDS接口相比,JESD204与JESD204A接口的优势没有特别明 显,没有被普遍应用。而JESD204B协议因其显著的优势,受众多高速转换器公 司的青睐,推出了大量基于JESD204B协议接口的高速转换器产品,典型的公司 有亚德诺(ADI)、德州仪器(TI)。JESD204C协议推出时间较晚,用户应用需求不是 很强烈,应用广泛度暂时不如JESD204B接口。  2.2.2 多芯片同步 
在多通道数据采集技术中,不同的通道在相同的时刻进行数据采集,相位是 相同的。而实际上,由于通道间的物理路径延迟不同,导致多路原始信号在传输 过程中存在着不同的延迟,信号数据没有对齐。同理,多个采样时钟也存在着链路延迟,也没有达到同步采样的效果。通过对通道间延迟标校,再进行通道间延 迟补偿和修正,使得不同通道的原始信号起点一致,采样时刻一致,进而实现数 据同步采集的效果。 
文献[27]提出一种多物理量集体效应思想,阐述了多个物理因素造成的通道间 延迟时间差,并用时基补偿和修正,完成数据采集的同步。多个物理因素可以分 成模拟因素和数字因素,因此多通道数据采集同步技术分可为模拟信号同步和数 字信号同步。其中模拟信号同步保证多通道模拟信号相位一致,数字信号同步保 证多通道数字信号采样时刻一致。  2.2.2.1 模拟信号同步 
文献[28]给出了多片模拟信号同步的方法:当多个模拟信号采集通道使用同一 个本振时,可以忽略模拟信号接收链路中放大、滤波、衰减带来的相位偏移影响, 实现模拟信号同步。 
目前的ADC普遍支持单片多通道模拟信号同步采集,不一定支持模拟信号多 片同步(Multi-Chip Sync,MCS)采集。例如ADI公司的AD9361芯片,采用零中频 架构,芯片支持片内两通道同步,但不支持多片多路模拟信号同步。若此类芯片 需要实现多片多路模拟信号同步,有两种实现方法: 
1) 一是多片ADC共用一个本振方法。 
2) 二是测量多片内部LO的相位差,然后通过FPGA算法进行校准。  其中方法一对本振信号质量要求极高。针对方法二文献[29]给出了通过算法补 偿实现多片AD9361相位同步的方法。  2.2.2.2 数字信号同步 
在常用的多通道信号同步采集方法中,使用同一个时钟,根据链路延时稍加 调整后去采集多片ADC芯片的数据。在采集时,选取其中一个ADC的同步时钟 作为采样时钟,该时钟与各片ADC数据同源,但相位关系未知[30]。通过FPGA内 部的输入输出延迟单元功能,将各片ADC输入的数据信号进行延时调整,调整数 据信号与采样时钟之间的相位差,保证采样时钟可以正确的采到对应的数据,实 现了多片数字同步采样的功能,结构简单,易于工程实现。 
以ADI公司的ADRV9009芯片[31]为例,该芯片支持 JESD204B接口,通过对 板内两片FPGA同步协调管理配置,达到在两片FPGA上配置多片ADRV9009芯 片的功能,实现多片ADRV9009同步采集的要求。本设备多片ADRV9009芯片的 同步网络如图2-10所示。

JESD204B接口在同源时钟下使用自带的同步协议便可以达到多片同步的功 能。由ADRV9009同步网络图可以看到该模拟信号集成芯片内部不仅有JESD204B 接口还有内部基带锁相环(BBPLL)、模拟信号锁相环(RFPLL)、输入分频模块 (DEVDIV)、同步管理模块(SYNC)。参考时钟进入该芯片内部后,还经过了内 部的同步管理模块、分频模块和基带锁相环再分给JESD204B使用。所以想要达 到多片同步的功能,还需要对ADRV9009芯片内部各个模块进行同步触发。  2.2.3 多线程同步 
因为多片数据转换器需要同步采集,所以不能依次配置各个数据采集器。为 了满足同时配置的需求,运用操作系统的多任务特性,即在一个应用程序中创建 多个线程来分别完成各个数据采集器的参数配置任务。 
以ADI的ADRV9009芯片为例,实现多片ADRV9009同步的核心是需要三个 相位相同的SYSREF脉冲信号。每个线程在配置ADRV9009时,都会阻塞在等待 3个SYSREF脉冲信号的状态,当主线程检测到每片ADRV9009都处于等待脉冲 的状态时,控制时钟管理芯片产生3个SYSREF脉冲,这样多片ADRV9009就同 时收到了3个同相位的SYSREF脉冲。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp radio如何实现取消选中

uniapp 内置radio组件明确表示&#xff0c;不能取消选中&#xff0c;那如果要实现取消选中呢&#xff1f; 只要在外层加上label或者其他标签包裹&#xff0c;或者直接加入click事件然后加入事件控制radio的值改变即可 <label class"radio" click"changeAll&…

记录--Threejs-着色器实现一个水波纹

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 hree.js 是一个基于 WebGL 的 JavaScript 3D 库&#xff0c;用于创建和渲染 3D 图形场景。 一、 图像渲染过程 1、webGL webGL: WebGL 是一种基于 JavaScript API 的图形库&#xff0c;它允许在浏览器…

【STM32智能车】电机控制

【STM32智能车】电机控制 PWMPWM基本用法&#xff1a; 电机驱动基本控制基本状态 欢迎收看由咸鱼菌工作室出品的STM32系列教程。本篇内容主要电机控制 PWM 我们要控制电机&#xff0c;就要先了解一下PWM。 PWM(Pulse Width Modulation)控制——脉冲宽度调制技术&#xff0c;通…

全开源的 agv 小车

最近github 有 一个开源的stm32 大荷载小车&#xff0c;从pcb 到代码到cad 文件全部开源 代码在 git 小车的实物图 小车的cad 模型 小车的 abaqus 力学分析模型 pcb 图 控制板接线图 全开源小车 代码在 git

港科夜闻|香港科大(广州)与特斯联共建研究中心,打造国际领先的创新联合体...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大(广州)与特斯联共建研究中心&#xff0c;打造国际领先的创新联合体。6月27日&#xff0c;“数字世界”联合研究中心正式揭牌成立&#xff0c;这个由香港科大(广州)与特斯联共同打造的研究中心&#xff0c;旨在推…

hive中的datagrip和beeline客户端的权限问题

hive中的datagrip和beeline客户端的权限问题 使用ranger和kerberos配置了hadoop和hive&#xff0c;今天想用来测试其权限 测试xwq用户&#xff1a; 1.首先添加xwq用户权限&#xff0c;命令如下&#xff1a; useradd xwq -G hadoop echo xwq | passwd --stdin xwq echo xwq …

【笔记】EDA学习笔记

网课&#xff1a;立创EDA&#xff08;专业版&#xff09;电路设计与制作快速入门 资料&#xff1a;pan.baidu.com/s/1UlcfvAZ13s_wOHo3cvNQxA?pwdb9x8 提取码&#xff1a;b9x8 解压密码&#xff1a;123456 1.创建项目 略 2.原理图设计环境设置 2.1设置 默认网格尺寸&#…

阿里云云效 流水线发布spring cloud项目及Vue项目

1. 单体spring boot 项目流水线主机部署 1.1 创建流水线 页面地址 我们选择模板,当然也可以自己新建一个 1.2 添加流水线源 这里是根据自己的代码仓库决定的,我用的gitee,需要添加服务连接 添加服务连接 新建服务授权/证书 点击新建自动跳转至gitee认证页面,同意授权即可 授权…

网安等保 | 主机安全之KylinOS银河麒麟服务器配置优化与安全加固基线文档脚本分享...

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; “ 花开堪折直须折&#xff0c;莫待无花空折枝。 ” 作者主页&#xff1a;[ https://www.weiyigeek.top ] 博客&…

线程不安全举例

1、举例说明集合类线程不安全 &#xff08;1&#xff09;查看源码可证明 看ArrayList源码 没有sync、lock&#xff0c;线程不安全 &#xff08;2&#xff09;创建多个线程写入读取数据 List<String> list new ArrayList<>(); for (int i 1; i <30 ; i) {n…

2023年Web安全学习路线总结!430页Web安全学习笔记(附PDF)

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线、web安全攻防笔记、渗透测试路线图 网络安全的范畴很大&#xff0c;相较于二进制安全等方向的高门槛、高要求&#xff0c;Web安全体系比较成熟&#xff0c;在现阶段来看&#xff0c;但凡有自己…

k8s下安装redis

一、使用helm安装redis 执行以下命令添加redis的repo helm repo add bitnami https://charts.bitnami.com/bitnami 创建的master和replica pod的默认size是8Gi&#xff0c;如果k8s的node没有足够的空间&#xff0c;会抛出如下错误&#xff1a;default-scheduler 0/3 nodes …

安全防御 --- SSL VPN

附&#xff1a;无线项目介绍 SSL VPN 有浏览器的设备就可以使用SSL&#xff0c;进而使用SSL VPN。无需担心客户端问题&#xff0c;所以SSL VPN也称为无客户端VPN。SSL VPN在client to lan场景下特别有优势。 实际实现过程&#xff08;基于TCP实现&#xff09; &#xff08;1&…

Nginx SSL使用自制证书

1. 生成证书 keytool -genkey -v -alias <Alias别名> -keyalg RSA -keystore <KeyStore文件> -validity <有效期> keytool -genkey -v -alias nginx -keyalg RSA -keystore nginx.keystore -validity 36500 alias别名为 nginxkeystore文件为 nginx.keystore…

C/C++内存管理(内存分布、动态内存分配、动态内存分配与释放、内存泄漏等)

喵~ 内存之5大区&#xff08;栈区、堆区、静态区、常量区、代码区&#xff09;C/C中各自的内存分配操作符内存泄露?内存泄漏检测方法 内存之5大区&#xff08;栈区、堆区、静态区、常量区、代码区&#xff09; 1、栈区&#xff08;stack&#xff09;&#xff1a;由编译器自动分…

避雷投稿!这3本SCIE期刊处于On Hold状态!有剔除风险!

今年3月份科睿唯安剔除的大量期刊中&#xff0c;有几本期刊之前被WOS数据库标记为“On Hold”状态&#xff0c;后面也出现了一些期刊解除“On Hold”状态的情况。 目前&#xff0c;WOS数据库查询有3本SCIE期刊正处于“On Hold”状态&#xff0c;这是什么信号呢&#xff1f;对于…

org.apache.thrift.transport.TTransportException: GSS initiate failed

hive配置kerberos發現錯誤&#xff0c;就所有的配置都配好了&#xff0c;但是使用datagrip連接hive時報錯如下&#xff1a; org.apache.thrift.transport.TTransportException: GSS initiate failed 後面是沒有認證的原因&#xff0c;使用kinit 認證即可 還有一種情況是 我使…

7.1下周黄金非农数据是否会影响美联储七月暂停加息?

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(6月30日)&#xff0c;现货黄金价格收盘上涨&#xff0c;盘中一度升破1920美元关口。美国疲软的个人消费支出推动了美国国债收益率的下降&#xff0c;从而导致美…

libevent实践04:监听管道第二季

一 本次实例使用函数简介 事件集合初始化&#xff1a; struct event_base *event_init(void); 示例&#xff1a; struct event_base *base event_init(); 单个事件初始化 void event_set(struct event *ev, evutil_socket_t fd, short events,void (*callback)(evutil_s…

两小时快速入门 TypeScript 基础(二)面向对象

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端&#xff08;Node.js 等&#xff09; &#x1f4c3;个人状态&#xff1a; 2023届本科毕业生&#xff0c;已拿多个前端 offer&#x…