差分IO标准

差分标准
和单端IO不同的是,差分电平使用两根信号线来传达信号,这两根信号线在传输过程中如果遇到同样的噪声源(共模噪声)干扰,在接收端,这样的共模噪声会在两个信号相减时消除,这样并不会给接收电平造成影响。
在单端信号的传输过程中,信号往往以电源平面或地平面作参考平面,而在差分电平中,由于两根线的电流方向相反,因此两者产生的电磁场相互抵消。向外辐射的地磁波更少,也就是减小了EMI,同样也减小了对参考平面的依赖,在传输过程中,两根电流大小一样,方向相反的信号线互为参考。不过,信号线与电源平面或地平面之间的距离等因素会影响信号线的差分阻抗。
下图所示,可以明显地看到两个差分信号线之间的电磁场。由于两者的电流大小相等,方向相反,于是他们之间的电磁场相互抵消,同时减少了对外的辐射。两者之间的电磁场越强,对外辐射也就越小。

微带线(microstrip)

带状线(stripline)
LVDS是一种常见的差分电平,如下图:

LVDS驱动器和接收器
在LVDS驱动器中,采用一个恒流源(大约3.5mA)输出,由于输入端的输入阻抗非常高,绝大部分的驱动电流流经100欧姆电阻,因此在接收器的输入端,两个信号线之间,产生了一个100*3.5=350mV的输入电压。当驱动器的输入电平翻转时,流经100欧姆电阻的电流方向就发生了变化,于是就会在电阻两端形成“0”和“1”两种逻辑状态。
和LVTTL/LVCMOS标准直接输出电压幅度信号不同的是,LVDS的驱动器输出是电流信号,由电流信号在接收端的差分匹配电阻上产生了一个合适的电压幅度信号,作为接收器的判决电平。因此,业界也把这种驱动器叫做电流模式(current mode)驱动器。
电压模式的驱动器,在静态时可以认为其输出的电流为0,而信号在翻转时,会产生较大的瞬态电流(Icc),Icc的大小随着时钟频率的增加而成指数增加,会给系统引入较大的开关噪声,尤其是在信号的边沿比较陡的时候,这种问题尤为严重。而电流模式的驱动器就不存在这种问题,LVDS的驱动器从电源汲取的电流值是恒定的大约3.5mA,无论信号如何翻转,这个电流值时钟不变,只是其在传输信号上的方向不同而已。而且LVDS的信号边沿相对比较缓,对保持信号完整性也是有好处的。
单端标准的信号一般是以地做参考,输出一定幅值的电压信号。而差分信号的输出有一个固定的共模输出电压(Vocm),如LVDS是1.2V,正端和负端的信号都是在这个共模电压的上下来回摆动的。在差分输入端,信号的输入共模电压允许在一定范围之内,如LVDS的信号输入的电平允许的值是0~2.4V,这样即使信号在传输过程中出现较大的共模干扰,也会在接收端相互抵消,如下图:

共模噪声的抵消
下图所示为几种差分电平标准的共模输出电压和输出摆幅示意图。

差分电平输出幅度示意图
与LVDS相比,LVPECL电平的输出结构是一对射极跟随器(emitter follower),它的特点是翻转速度很快,但是直流电流很大,大概为14mA。LVPECL的驱动器的输出阻抗很小,因此其驱动能力非常强,如下图:

LVPECL驱动器结构
CML也是一种常用的差分电平标准,其驱动器又一个共射极差分对直接输出。CML电平常用在高速的网络和通信设备中,其串行数据速率可以做到非常高,如10Gbit/s,如下图:

CML驱动器结构
对差分信号加终端电阻时,也可以采用FLY-BY的布PCB线,以尽量减少由于匹配电阻造成的短线,影响信号质量,如下图:

差分匹配的FLY-BY方式

版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号

扫描二维码关注杭州卿萃科技FPGA极客空间
差分IO标准的更多相关文章
- 单端IO标准
单端标准 常用的单端IO标准是LVTTL和LVCMOS. 目前业界绝大部分FPGA/CPLD器件的LVCOMS的IO是由CMOS推挽(push-pull)驱动器构成的,这种结构是上面的PMOS管和下面 ...
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
今天在做C++ Primer习题的14.11时,印象中应该挺简单的一题,结果却费了很长时间. 类定义: typedef string Date; class CheckoutRecord{ publi ...
- 走进C++程序世界------IO标准库介绍
流概述 流是C++标准的组成部分,流的主要目标是,将从磁盘读取文件或将输入写入控制台屏幕的问题封装起来,创建流后程序猿就能够使用它.流将负责处理全部的细节. IO类库 在C++输入、输出操作是通 ...
- 第十三篇:带缓冲的IO( 标准IO库 )
前言 在之前,学习了 read write 这样的不带缓冲IO函数. 而本文将讲解标准IO库中,带缓冲的IO函数. 为什么要有带缓冲IO函数 标准库提供的带缓冲IO函数是为了减少 read 和 wri ...
- 带缓冲的IO( 标准IO库 )
前言 在之前,学习了 read write 这样的不带缓冲IO函数.而本文将讲解标准IO库中,带缓冲的IO函数. 为什么要有带缓冲IO函数 标准库提供的带缓冲IO函数是为了减少 read 和 writ ...
- c++ io标准库2
转自:http://www.2cto.com/kf/201110/109445.html 接下来我们来学习一下串流类的基础知识,什么叫串流类? 简单的理解就是能够控制字符串类型对象进行输入输出的类,C ...
- Spartan6系列之SelectIO深入详解及高级应用简介
1. 什么是I/O Tile? 对Spartan-6系列FPGA来说,一个IO Tile包括2个IOB.2个ILOGIC.2个OLOGIC.2个IODELAY. 图 1Spartan-6系列 ...
- C++ 标准IO库
<C++ Primer 4th>读书笔记 C++ 的输入/输出(input/output)由标准库提供.标准库定义了一族类型,支持对文件和控制窗口等设备的读写(IO).还定义了其他一些类型 ...
- C++ Primer 读书笔记: 第8章 标准IO库
第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于 ...
随机推荐
- String和StringBuilder、StringBuffer
Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder String 只读字符串,这里的只读并不是指String类型变量无法被修改,而是指String类 ...
- 写时拷贝(Copy On Write)方案详解
本文旨在通过对 写时拷贝 的四个方案(Copy On Write)分析,让大家明白写时拷贝的实现及原理. 关于浅拷贝与深拷贝,我在之前的博客中已经阐述过了 浅拷贝容易出现指针悬挂的问题,深拷贝效率低 ...
- explicit c++
C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况 ...
- log files of IIS
C:\inetpub\logs\LogFiles https://docs.microsoft.com/en-us/iis/manage/provisioning-and-managing-iis/m ...
- JAVA 写中文字符串到指定文件 中文乱码 问题解决
之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ Fi ...
- 使用命令【TLCL】
type command 显示命令的类别 which command 显示可执行程序的位置 help - 得到 shell 内建命令的帮助文档 --help - 显示用法信息 man ...
- <转载>Win x86-64 - Download & execute (Generator)
#Title: Obfuscated Shellcode Windows x86/x64 Download And Execute [Use PowerShell] - Generator #leng ...
- How to use QToolBar and QToolButton in Qt
http://developer.nokia.com/Community/Wiki/How_to_use_QToolBar_and_QToolButton_in_Qt How to use QTool ...
- matplotlib画子图时设置总标题
matplotlib subplots绘图时 设置总标题 :fig.suptitle(name)
- Swagger自动生成接口文档
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...