LVDS 源同步接口

传统数据传输通常采用系统同步传输方式,多个器件基于同一时钟源进行系统同步,器件之间的数据传输时序关系以系统时钟为参考,如图1所示。系统同步传输方式使各器件处于同步工作模式,但器件之间传输数据的传输时延难以确定,当系统时钟频率增加后,数据接收接口同步电路难以实现,因此系统同步传输方式不适用于高速数据传输。

图1 系统同步结构图

为便于在接收端实现数据同步,提高数据传输速率,业界提出了采用源同步接口传输的解决方案。源同步结构框图如图2所示,允许时钟和多个数据通道同时传输,时钟信号和数据保持确定的相位关系,同时由发送端传输至接收端。接收端利用对端传送来的时钟信号作为采样时钟,对数据位进行采样。在采样过程中,只要保证接收端时钟信号与接收数据满足一定的建立/保持时间,数据即可被正确接收。

图2 源同步结构框图

相对于系统同步接口,源同步接口通常存在于两个芯片之间,其时钟和数据之间的关系是局部的,时延关系相对精确简单,因此非常适合高速数据传输。随着数据接口速度和带宽需求的不断增长,源同步接口逐渐成为主流,广泛应用在高速信号传输领域,如SPI-4.2、XGMII和DDR SDRAM等。

LVDS具有传输速率快和抗干扰性强的特点,正逐渐成为宽带高速系统设计的主流接口标准。目前广泛应用在高速信号传输领域的源同步接口,大部分采用LVDS作为接口电平。例如,系统包接口SPI-4.2采用1对LVDS时钟信号加16对数据信号同时传送数据。

1 源同步偏斜分析

相对于系统同步传输技术,源同步技术可以支持较高的传输速率,但当数据传输速率非常高时,同样存在无法正确接收数据的问题。在源同步接口设计中,接收端对多位数据(如16位)进行并行接收,要求数据和时钟到达保持同步。在理想情况下,时钟沿在各数据信号有效窗口的中间时刻到达,以提供最大的时序余量,但由于PCB走线传输路径的不同,导致数据与数据之间存在偏斜。当数据传输速率较高时,数据有效采样窗口越来越小,时序余量无法满足,导致接收端无法采集到正确数据。

偏斜的产生受静态和动态因素影响,静态因素包括电路板走线长度变化、连接器使用和芯片I/O引脚的传输时延差异等;动态因素包括PCB制作工艺、板卡电压和温度的变化等。源同步接口的偏斜分为“位偏移”和“字偏移”。采样时钟沿不在各数据窗口的中心位置采样,可能会导致数据采样保持时间不够长,易发生采样到的数据比特位瞬间突变,从而导致接收数据不稳定,称为位偏移。图7中三个数据通道的时钟沿都没在数据眼图中心位置采样,即为位偏移。采样接收后的各数据信号之间不同步,使得同时在发送端发送的数据在接收端不能同时被采样,导致接收的数据无效,称为字偏移。图3中以数据通道1的数据为基准,数据通道2的数据有-1个时钟周期的偏移,数据通道3有+1个时钟周期的偏移,存在字偏移。

图3 数据偏移示意图

2 去偏斜解决方案

在源同步接口设计中,随着数据接口速度和带宽的不断提高,数据有效窗口不断缩减,时序余量很难得到保证,可采用去偏斜方案解决源同步设计的难题。如图8所示为高速总线中的去偏移示意图,去偏移设计的目的就是将图4(a)中受到位偏移和字偏移影响的数据总线波形调整为4(b)中的理想波形,在去偏移过程中需调整位偏移和字偏移。

图4 高速总线中的去偏斜示意图

目前解决偏斜的方案包括静态相位调整和动态相位调整技术。

2.1 静态相位调整

静态相位调整(StaticPhase Alignment,SPA)可以从调整物理路径开始,通过调整时钟线和数据线长度,使时钟和数据、数据和数据传输线尽可能等长,受外部环境的影响较为接近,各数据线之间的传输差异可相互抵消,因此能较好保证正确的信号采样。考虑到时钟和数据信号经过不同物理路径传输,时钟和数据的相位存在不确定性,时钟采样点不在所有数据信号窗的中心位置,因此需对时钟的相位进行调整,使得采样时钟能稳定在数据信号的中心位置采样数据。

以在FPGA中实现静态相位调整为例,可以使用DCM、PLL或MMCM的相位调整功能,产生多个不同相位的采样时钟,观察哪些相位能准确地采集到输入数据,然后选择可以正确采样数据的时钟作为正常工作时的采样时钟。例如,可以通过PLL时钟管理器产生 0°、45°、90°、135°、…、315°共8个相位时钟,若检测到90°、135°、180°这3个相位的时钟都可以正确采样数据,则选择中间的135°时钟作为采样时钟,使得采样数据信号具有更大的时序余量。

SPA调整过程需耗费大量时间和精力,才能得到较好的调整结果,而且调整的效果和粒度较粗,因此SPA可适用的采样时钟频率在200MHz左右。由于SPA设定的静态参数只针对板卡当前的物理状态,所以静态调整参数一旦配置后就不再变化,不能适应由 PCB制作工艺、电压、温度变化引起的传输线偏差。当外部物理条件发生变化后,SPA设定的参数通常需重新调整,需要再次进行静态相位调整。综上所述,SPA方法对消除静态因素引起的偏移效果较好,但对动态因素引起的偏移无法有效消除。

2.2 动态相位调整

动态相位调整(DynamicPhase Alignment,DPA)是指根据当前各数据线的物理状态,实时对各数据线进行去偏移操作,使得采样时钟始终位于数据窗口的中心位置。DPA技术根据周期性发送的训练序列(在SPI-4.2中的训练序列为“00000000001111111111”)对数据进行对齐和相位调整,初次调整过程可以消除当前物理环境参数引起的偏移,此后间隙性发送训练序列,对数据线相位进行实时调整,可以很好地消除由环境参数变化导致的偏移。

Altera StratixGX或StratixIIFPGA中集成有专用的DPA模块,内部产生8个不同的相位时钟分别对数据进行采样,根据采样结果选择最佳的相位,作为本通道的最终采样时钟。在Xilinx公司的Virtex系列FPGA中,每个I/O引脚都带有输入/输出延迟单元 IODELAY,并有高速串并转换器ISERDES核,通过上述IP核可以对接收数据进行实时动态相位调整,详细的DPA实现过程会在第7节重点介绍。

DPA技术消除了由时钟到数据或数据到数据的偏移引发的信号对齐问题,简化了印制电路板(PCB)的设计。DPA技术使通信接口能够不断适应外部环境的变化,避免由于相位偏移而导致的数据采样错误,保证了数据的可靠传输。相对于静态相位调整,DPA技术调整的偏斜粒度更小,且具有实时偏斜检测功能,在接口传输过程中可以随时进行 DPA操作,实时消除环境变化造成的偏斜变化,因此越来越多的高速源同步接口都采用了DPA技术。

动态相位调整(DynamicPhase Alignment,DPA)是指根据当前各数据线的物理状态,实时对各数据线进行去偏移操作,使得采样时钟始终位于数据窗口的中心位置。DPA技术根据周期性发送的训练序列(在SPI-4.2中的训练序列为“00000000001111111111”)对数据进行对齐和相位调整,初次调整过程可以消除当前物理环境参数引起的偏移,此后间隙性发送训练序列,对数据线相位进行实时调整,可以很好地消除由环境参数变化导致的偏移。

Altera StratixGX或StratixIIFPGA中集成有专用的DPA模块,内部产生8个不同的相位时钟分别对数据进行采样,根据采样结果选择最佳的相位,作为本通道的最终采样时钟。在Xilinx公司的Virtex系列FPGA中,每个I/O引脚都带有输入/输出延迟单元 IODELAY,并有高速串并转换器ISERDES核,通过上述IP核可以对接收数据进行实时动态相位调整,详细的DPA实现过程会在第7节重点介绍。

DPA技术消除了由时钟到数据或数据到数据的偏移引发的信号对齐问题,简化了印制电路板(PCB)的设计。DPA技术使通信接口能够不断适应外部环境的变化,避免由于相位偏移而导致的数据采样错误,保证了数据的可靠传输。相对于静态相位调整,DPA技术调整的偏斜粒度更小,且具有实时偏斜检测功能,在接口传输过程中可以随时进行 DPA操作,实时消除环境变化造成的偏斜变化,因此越来越多的高速源同步接口都采用了DPA技术。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型的数据预处理

文章目录 质量过滤敏感内容过滤数据去重 当收集了丰富的文本数据之后,为了确保数据的质量和效用,还需要对数据进行预处理,从而消除低质量、冗余、无关甚可能有害的数据。一般来说,需要构建并使用系统化的数据处理框架(…

Find My腰包|苹果Find My技术与腰包结合,智能防丢,全球定位

腰包具有显瘦和显高的双重功效,它不仅能提高腰线、拉长腿部线条,还能遮住腹部多余的赘肉,从而在视觉上达到变高的效果,使整体看起来更加显瘦。除了时尚功能,腰包在运动中也有其独特的用途。例如,在跑步时&a…

大数据项目中的拉链表(hadoop,hive)

缓慢渐变维 拉链表 拉链表,可实现数据快照,可以将历史和最新数据保存在一起 如何实现: 在原始数据增加两个新字段 起始时间(有效时间:什么时候导入的数据的时间),结束时间(默认的结束时间为99…

day-35 二叉树的右视图

思路 根据层序遍历的思路。将每一层的最右边元素加入返回序列即可 解题方法 注意:链表删除一个数据后会立即重排,所以删除同一层的节点时,每次都删除第一个节点。 Code /*** Definition for a binary tree node.* public class TreeNode {…

企业智能照明控制系统 为企业实现智能化照明管理

工厂车间传统照明的问题及智能照明系统的优势 谢继东15821713522 一、工厂传统照明存在的问题: 1、工业厂房一般建筑结构高,跨距大。灯具安装悬挂高,照明空间大,灯具回路多,而车间是厂区对照明要求较高的区域&#xf…

Linux学习笔记4---点亮LED灯(汇编裸机)

本系统学习利用的是正点原子的阿尔法mini开发板,本系列的学习笔记也是按照正点原子的教程进行学习,但并不是利用虚拟机进行开发,而是使用Windows下的子系统WSL进行学习。 因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准…

Open CASCADE 教程 – AIS:自定义呈现

文章目录 开始 (Getting Started)呈现构建器 (Presentation builders)基元数组 (Primitive arrays)基元外观 (Primitive aspects)二次构建器 (Quadric builders)计算选择 (Computing selection)突出显示选择所有者 (Highlighting selection owner)突出显示的方法 (Highlighting…

[QT] 断点调试

目录 一 设置断点 二 调试窗口信息 2.1 默认窗口 2.2 详细窗口属性 三 调试方法和技巧 一 设置断点 在QtCreator中我们有两种方式添加断点。 用鼠标直接点击代码编辑窗口中的某一行按下F9添加/取消断点(操作的是当前鼠标光标所在的代码行) 二 调试窗口信息 2.1 默认窗…

Linux 信号保存

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux知识分享⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 目录 前言 阻塞信号 1. 信号其他相关常见…

MFC的CPen与CBush画图对象使用步骤

在MFC中,CPen和CBrush是两个常用的绘图对象,分别用于定义画笔和画刷,可以用于绘制图形、填充区域等。下面我会详细介绍如何在MFC中使用CPen和CBrush来绘制和填充图形。 使用 CPen 绘制图形: 创建 CPen 对象: 首先&am…

JAVA基础面试题(第十一篇)上! JVM

Hello好久不见!,最近我们讲更新JVM部分的面试题。 JVM 这块比较难理解,而且也是不擅长的点。所以今天我更新一下JVM希望小伙伴们能在面试中取得好成绩! JVM 1. 什么是JVM内存结构? jvm将虚拟机分为5大区域&#xff0…

单片机智能灯控制系统源程序仿真原理图与论文全套资料

目录 1、设计描述 2、仿真图 3、程序 4、资料内容 资料下载地址:单片机智能灯控制系统源程序仿真原理图与论文全套资料下载 1、设计描述 设计了一款智能控制系统。 AT89C51LCD1602DS1302按键LED组成了这样一个完整的设计。 P2.0-P2.3 4个LED等代表庭院内的4…

前端动态旋转地球背景

效果图 贴下源码 <template><div class"map-bg"><div class"canvas" id"canvs"></div><canvas class"canvasxk" id"canv"></canvas></div> </template><script setup …

Java RMI SERVER命令执行漏洞

Java RMI SERVER命令执行漏洞 一、介绍二、原理三、复现准备四、漏洞复现 一、介绍 RMI全称是Remote Method Invocation&#xff08;远程方法调用&#xff09;&#xff0c;是专为Java环境设计的远程方法调用机制&#xff0c;远程服务器提供API&#xff0c;客户端根据API提供相…

华为eNSP中型企业局域网网络规划设计(上)

敲半天一个闪退全™给我干没了呜呜呜&#xff0c;eNSP&#xff0c;wcnm&#xff01;wcnm&#xff01;wcnm&#xff01; →b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;下&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩←…

linux的信号量的使用

1.信号量 在多线程情况下&#xff0c;线程要进入关键代码就得获取信号量&#xff08;钥匙&#xff09;{sem_init(&sem, 0, 0);}&#xff0c;没有信号量的情况下就一直等待sem_wait(&sem)&#xff0c;只到别人把钥匙&#xff08;sem_post(&sem)&#xff09;给你。 …

Hadoop3:HDFS的Shell操作(常用命令汇总)

一、简介 什么是HDFS的Shell操作&#xff1f; 很简单&#xff0c;就是在Linux的终端&#xff0c;通过命令来操作HDFS。 如果&#xff0c;你们学习过git、docker、k8s&#xff0c;应该会发现&#xff0c;这些命令的特点和shell命令非常相似 二、常用命令 1、准备工作相关命令…

Deckset for Mac:让演示文稿制作更轻松

还在为繁琐的演示文稿制作而烦恼吗&#xff1f;Deckset for Mac来帮您解决&#xff01;它支持Markdown语言&#xff0c;让您只需专注于内容的创作&#xff0c;无需在排版和设计上耗费过多精力。丰富的主题和布局选项&#xff0c;让您能够轻松打造出专业级的演示文稿。快来体验D…

Django项目规范化(虚拟环境、目录结构、数据库权限、建表、Media、日志)

Django项目规范化&#xff08;虚拟环境、目录结构、数据库权限、建表、Media、日志&#xff09; 目录 Django项目规范化&#xff08;虚拟环境、目录结构、数据库权限、建表、Media、日志&#xff09;前言虚拟环境pycharm创建虚拟环境 创建Django项目调整目录结构数据库规范创建…

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…