最近一段时间,项目需求,需要对USB眼图进行摸底测试。测试过程很简单,然而debug之路却很不简单。不简单往往也就意味着带来了不少收获。

示波器跨接在接收滤波器的输出端,调整示波器扫描周期,使示波器水平扫描周期与接收码元的周期同步,此时,示波器作为接收端会受到一连串的脉冲信号(000 001 010 011 100 101 110 111),这些信号叠加在一起,会形成类似人眼的图形。同时按照协会的要求,示波器带宽至少应该为1.5GHZ,最好是2GH或者2.5GHZ。

其主要用到了余辉方式累计叠加显示采集到串行信号的比特的结果,叠加后的图形形状也正是因为看起来和眼睛很像,所以被称为眼图。眼图表征了串行信号的比特信息,成为了衡量信号质量的重要工具。通过眼图,可以观察出码间串扰和噪声的影响,从而估计信号完整性的优劣。

USB眼图的测量主要分为device与host。

USB host端:D+和D-各接一个15kΩ的下拉电阻;

USB device端:高速和全速D+接一个1.5kΩ电阻上拉到3.3V;低速在D-上接一个1.5kΩ电阻上拉到3.3V。高速chirp KJ握手(Chirp KJ的频率大概是10KHz)成功后,自动断开D+上的1.5kΩ上拉;当高速设备进入suspend时,使能D+上的1.5kΩ上拉到3.3V,退出suspend时,断开D+上的1.5k上拉。

集线器的全速驱动器和设备的全速驱动器在功能上等效成每个都是45Ω电阻,合成90Ω的差分电阻产生一个0系数的反射。这样才产生了cable的特征阻抗是90Ω的需求。

HS模式DP/DM对地单端阻抗为45Ω(由全速驱动器形成的一个阻抗为45Ω的终端电阻),串联的匹配电阻必须是0,否则眼图有问题;LS/FS的DP/DM上必须有大于0的匹配电阻。 HS模式DP/DM的DC-level是17.78mA x (45Ω//45Ω) = 17.78mA x 22.5Ω = 400mV,其中17.78mA是电流源(一般需要PHY外接参考电阻), 所以差模电压是800mV。DC-level of LS/FS is 3.3V。

HS PHY DP/DM上串联10Ω电阻带来的信号完整性问题如下计算所示

Udevice = 17.78mA(45//(10+45)) = 440.1mV, Uhost = (45/(45+10))440.1 = 360.1mV

这也就是为何眼图最大与最小我们要控制在±400mV左右,以及不要轻易在D+ D-上电阻的原因。

看不懂没关系可暂时忽略,后面的文章,小编会重点介绍这些,建议那时再拐回来看这段内容。

眼图的测量参数不同于波形的测量参数,更多情况下是一种统计意义的测量,主要关注的测量参数有眼高,眼宽,眼抖动等。

眼高的测量

眼高反映的是眼图在垂直方向张开的程度。其测量方法是先在眼图的中心位置对眼图的电平分布进行统计,根据直方图分布出现概率最大的位置得到高电平(One Level)和低电平(Zero Level)的位置;然后再根据高低电平上的噪声分布情况各向内推3个西格玛(噪声的RMS值),从而得到眼高的测量结果。

眼图的抖动(Eye Jitter)测量

眼图的抖动反映的是信号的时间不确定性,抖动过大会减小信号的眼宽。眼图的抖动是指眼图交叉点附近的信号的水平抖动,可以用RMS或者Peak-Peak值来衡量。

模板,即事先把信号高低电平的范围要求以及抖动的范围等指标事先定义好,然后在此模板上生成眼图测试文件。

模板主要由三部分组成:

顶部区域定义了信号的最大幅度的要求。

底部区域定义了信号的最小幅度要求。

中间区域定义了对信号的眼图张开度的要求。

在进行眼图测试时,直接把眼图套在这个模板上,如果长时间的累计测量没有压在模板上,就说明信号质量基本满足了要求。



PASS

如果被测信号压在了测试模板上,说明被测信号质量存在明显的问题。

FAIL

Usb信号线的设计

在USB高速信号方面,我们往往喜欢在D+ D-端串电阻,电感或者并TVS管用以静电或者浪涌防护。由于属于高速信号(速率480Mbps,频率240MHZ),因此对TVS管的选取也要慎重。TVS管具有结电容,结电容的容值要格外注意,在小白所做过的项目里,TVS管结电容容值往往选取1pf以下的容值。容值过大因RC延时的影响会使得眼图的睁开程度变小,进而可能压倒中间的模板。同时串阻的选取也要适当,因为其影响到眼高。

所以日常在针对眼图压模板的debug时,要尤为注意这方面影响。

USB眼图常识的更多相关文章

  1. USB眼图

    /********************************************************************** * USB眼图 * 说明: * 对于USB眼图,并不是很 ...

  2. 如何验收安卓PCBA主板的质量和性能

    . 版本:v0.1 作者:河东西望 日期:2022-7-15 . 目录 1 有哪些情况需要验收? 2 有哪些验收测试? 2.1 主板测试 2.2 工程测试 2.3 性能测试 2.4 压力测试 2.5 ...

  3. 关于键盘冲突那点事(3键冲突/7键冲突/PS2/USB的各种原理)

    转自关于键盘冲突那点事(3键冲突/7键冲突/PS2/USB的各种原理) 最近闲得无聊,正好看到有人发帖提问,于是就来详细说说所谓键位冲突和无冲突的各种原理--基本上这也是个老生常谈的话题了,但相关的技 ...

  4. USB匹配电阻

    做过USB的人都或许有一个纠结,那就是D+和D-上到底要串多大的电阻,串在源端还是终端. 我想说:网络上的说法都不完全正确,首先USB有低速.全速和高速之分,在低速和全速模式下是电压驱动的,驱动电压为 ...

  5. USB 3.0传输规格

    通用序列总线(USB) 从1996问世以来,一统个人电脑外部连接界面,且延伸至各式消费性产品,早已成为现代人生活的一部分.2000年发表的USB 2.0 High-speed规格,提供了480Mbps ...

  6. 新一代的USB 3.0传输规格

    通用序列总线(USB) 从1996问世以来,一统个人电脑外部连接界面,且延伸至各式消费性产品,早已成为现代人生活的一部分.2000年发表的USB 2.0 High-speed规格,提供了480Mbps ...

  7. Android手机使用WIFI及USB建立FTP服务器总结

    想必大家经常在PC和Android之间传输文件,并不是每次都会插USB接口进行文件传输,就算是插上USB接口,还是有个问题,那就是Android打开大容量存储模式之后,经常很多软件就会被强制停止使用, ...

  8. USB 3.0规范中译本 第6章 物理层

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 6.1 物理层概览 物理层定义超高速总线的信号技术.本章定义超高速物理层的电气要求. 本节定义超高速组件之间 ...

  9. USB 3.0规范中译本 第3章 USB 3.0体系结构概览

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章呈现USB 3.0体系结构和关键概念的概览.USB 3.0与前面版本的USB类似,因为它是线缆总线,支持 ...

  10. PCB中的生产工艺、USB布线、特殊部件、蓝牙天线设计

    PCB中的生产工艺.USB布线.特殊部件.蓝牙天线设计 (2016-07-20 11:43:27) 转载▼     PCB生产中Mark点设计 1.pcb必须在板长边对角线上有一对应整板定位的Mark ...

随机推荐

  1. ios证书免费分享

    首先,ios证书能不能分享给别人使用,能否用别人的证书打包呢? 这个问题的答案在技术上是肯定可以的,但是我要解释一下,技术上可以,不代表真的就可以这样做,为什么呢? 首先,假如用别人的苹果开发者账号的 ...

  2. linux环境弱网测试

    linux环境弱网测试 使用以下命令可以对linux系统进行弱网设置 sudo tc qdisc add dev eth0 root netem delay 500ms       #设置500ms的 ...

  3. Jmeter JDBC连接配置

    JDBC连接配置(JDBC Connection Configuration),用于创建数据库连接,后续可对数据库进行增删查等操作.和组件[JDBC请求(JDBC Request)]搭配使用 组件路径 ...

  4. Jmeter参数化2-读取文件

    如果你想要jmeter批量生成 指定 的参数值数据,可以使用导入文件参数化方法来实现 下面讲述两种jmeter读取文件参数值方法:"CSV 数据文件设置"."函数助手&q ...

  5. HPA* (Near Optimal hierarchical Path-finding)算法的效果图

    本文中的图全部来自: https://mohitsharma0690.blogspot.com/2016/01/hierarchical-pathfinding.html 图的说明: Here is ...

  6. Jax框架的jit编译是否可以使用循环结构,如果使用循环结构需要注意什么(续)

    前文: Jax框架的jit编译是否可以使用循环结构,如果使用循环结构需要注意什么 从前文我们知道,jax的jit中尽可能的不要放入循环结构,因为在jit编译时会将循环结构暂开,因而会消耗掉大量的时间进 ...

  7. 如何使用深度学习技术探测代码逻辑死循环 —— 浪潮集团的“公开号CN117271314A”专利

    专利公开号: CN117271314A 新闻链接: https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"% ...

  8. java主线程等待多个子线程中任意一个有结果后,主线程继续执行

    1.背景 2.代码 package com.qianxingniwo.ls; import org.junit.Test; import java.util.concurrent.atomic.Ato ...

  9. 洛谷P1842 [USACO05NOV] 奶牛玩杂技

    [USACO05NOV] 奶牛玩杂技 题目背景 Farmer John 养了 \(N\) 头牛,她们已经按 \(1\sim N\) 依次编上了号.FJ 所不知道的是,他的所有牛都梦想着从农场逃走,去参 ...

  10. python学习之---迭代器与生成器

    什么是迭代器 可迭代对象: 可以通过for循环来实现遍历,例如list.string.dict 迭代器: 不仅可以使用for循环,还可以使用next()方法.__iter__() next():获取容 ...