最近一段时间,项目需求,需要对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. Linux podman容器实验

    要求 1.登录到指定的镜像仓库拉取镜像 2.以普通用户contsvc运行 3.配置 systemd-journald 服务,要求永久保留日志数据(物理机,创建文件mkdir /var/log/jour ...

  2. 对比python学julia(第二章)--(第一节)隔沟算样—枚举策略

    1.1.  问题描述 在明代数学家程大位的<算法统宗>著作中记载了这样一道数学题: 甲乙隔沟放牧,二人暗里参详. 甲云得乙九个羊,多你一倍之上. 乙说得甲九只,两家之数相当. 两边闲坐恼心 ...

  3. 【Spring】06 Aop切面功能

    什么是Aop? Aspect Oriented Programming 面向切面编程 通过预编译的方式和运行期动态代理实现程序功能统一维护的一种技术 是OOP的延续,也是Spring第二个核心内容 可 ...

  4. 海豚调度调优 | 如何解决任务被禁用出现的Bug

    本系列文章是 DolphinScheduler 由浅入深的教程,涵盖搭建.二开迭代.核心原理解读.运维和管理等一系列内容.适用于想对 DolphinScheduler了解或想要加深理解的读者. 祝开卷 ...

  5. Sentry 开源版与商业 SaaS 版的区别

    您会在官方的文档中找到大量对 sentry 和 getsentry 的引用.两者都是 Django 应用程序,但 sentry 是开源的, getsentry 是闭源的.里面有什么? https:// ...

  6. 利用Stream实现简单的等差数列求和

    我们都熟知高斯的故事,认识等差数列也是从这个故事开始的,编程课程为了练习for循环,也在不断的练习这个从1加到100的例子,那么原始的办法是这样的: int sum1 = 0; for (int i ...

  7. C#给类的添加扩展方法

    今天学习了给类添加扩展方法,这里记录下.我这记性不好,过不了两天就给忘记了. 下面的例子是给控件ListView类添加三个方法: 1.  AddItemInofStudent 作用是用结构体数据添加新 ...

  8. 【原创】vagrant up 异常报错,出现 There was an error while executing `VBoxManage` 的解决方法

    最近在使用 vagrant homestead 时,不小心在虚拟机上使用了 exit 命令退出虚拟机,导致再使用 vagrant up 时出现以下错误: Bringing machine 'larav ...

  9. java_html笔记

    颜色 color 字体大小 1. 数值+单位 2. 关键字 - px - em 字体(可以写多个,但 不是全都生效 只生效存在的 如果全都不存在 则使用默认字体) font-family:" ...

  10. LaTeX 编译警告:Script 'CJK' not explicitly supported within font 'FandolSong-Regular'. Check the typeset output, and if it is okay then ignore this warning. Otherwise a different font should be chosen.

    在编译一篇中文文档时遇到如下警告: Package fontspec Warning: Script 'CJK' not explicitly supported within font 'Fando ...