工程师必读! 3 个最常被忽略的 TDR 测试关键细节与原理
TDR真的是一个用来看阻抗跟Delay的好工具,通过一个Port的测试就可以看到通道各个位置的阻抗变化。 可是使用上其实没这么单纯,有很多细节需要非常地小心,才可以真正地看到您想看的信息!
就让我们整理3个极为重要的TDR使用小细节,让您在看TDR阻抗图时可以看到最正确的信息,使用上更为得心应手!
TDR读阻抗不是只看绝对值! 教您利用正确的方法判读阻抗!
我们很常遇到EE或是同业工程师在判读TDR阻抗时,直接透过TDR阻抗图的数值来判断对象或是设计的阻抗大小,我们必须讲,这其实是不对的!
我们之前提到,传输线的TDR因为步阶波会变成稳态的关系,所以最后的阻抗会是传输线的特性阻抗加上其本身的直流电阻,因此我们会在TDR图上看到阻抗有爬坡的上升特性,而差动对又因为两两互相参考的关系,所以爬升的阻抗还会再多一倍:
透过TDR图判断传输线的真实阻抗,我们要看的是起头这个点,这个点的阻抗位置才是传输线的真实特性阻抗,后续的任何爬升都不应该视为传输线的真正阻抗。
TDR阻抗是透过相对值来判断,而不是绝对值!
但也因为这个爬坡的特性,所以会造成通道内其他物件的阻抗判读有所变化。 下图是一张真实的TDR测试图,中间那段较为平滑的位置为传输线,前后各两个阻抗掉落点,第一个我们称作A-1,掉了10Ohm,阻抗读值为82Ohm,第二个称作A-2,掉了8Ohm,阻抗读值为87Ohm。
一般而言,大家都会觉得阻抗就是以读值为定,所以A-1的阻抗就是82Ohm,A-2则为图上显示的87Ohm,但其实并不然,由于阻抗的爬升效应,使得A-2的参考阻抗已从传输线设计的92Ohm变成大约95Ohm。 也就是说,A-1由于是在传输线的起头所掉落的,从92Ohm掉到82Ohm,我们可以说对于92Ohm的通道而言,它是82Ohm的设计; 而对于A-2来讲,由于是从95Ohm掉下来的,对于同样的92Ohm通道,它的阻抗不会是图上的87Ohm,而是84Ohm,换句话说,我们会对这条传输线的阻抗做归一化(Re-normalization)至92Ohm!
其实与其说去知道这些阻抗掉落点的真实阻抗,我们在看这些设计时,主要看的会是相对阻抗,而不是绝对阻抗,也就是到底掉了几欧姆,或是抬升了几欧姆。 尽量避免通道上阻抗的变化,以求一个Transparent的通道,将Return loss控制到最佳状况,降低反射现象,以求最佳的SI表现!
分辨率 – 注意TDR步阶波的上升时间
在使用TDR时,要非常注意分辨率(Resolution)这个非常关键的概念,它决定了你能不能看得清楚一个高速通道里的每一个细节与其带来的阻抗变化。
简单来说,TDR的分辨率可以视为最小可以分辨的空间距离,假如这个分辨率是100mil,那你就可以看到大于100mil的物件是否有剧烈的阻抗变化。
TDR的分辨率,主要受到步阶波上升时间(Rise time)的限制。 因为步阶波越快,代表它的信号前缘越陡峭,这样它就可以在更短的距离内被反射回来,让示波器或是网络分析仪接收到反射信号,我们就可以透过数据分辨出非常近的两个结构,或是看到更为细致的微小结构。
TDR分辨率的计算
TDR分辨率可以简化成这样的算法:
Resolution=v×tr2
v为电磁波在介质中的传递速度v=c/√DK,c为光速3×108m/s,tr为上升时间。
主要就是利用距离d=v \times t这个算式求得,要再除以2的原因是因为TDR是反射的原理,所以这段时间包含了讯号「来回」的距离,对我们而言只需要一半就好。
举个例吧:一般我们常用的TDR仪器或是网络分析仪的默认Rise time是35ps,在介电常数为4(DK=4)的材料里,它的TDR分辨率大约是:
3×108/√4×35/2=100mil
也就是说,大于100mil的结构才比较能被35ps的TDR给捕捉到,小于这个尺寸,或许你能看到阻抗的变化,但你不知道这个阻抗变化是来自于这个对象的哪里!
TDR分辨率 vs Rise time and DK
根据这个算式,我们整理了信号在不同DK的介质内,Rise time与Resolution的关系,并列出一些结构适用的Rise time区间,例如连接器,大概是1-2mm(40-80mil),所以Rise time小于25ps都是可以看得清楚的,而尺寸小如Solderball或是uVia,就会需要更小的Rise time,大约10ps, 也就是说系统层级上,如果要考虑到Solderball的效应,至少要到112G-PAM4以上的速度会比较明显,当然这不是说在这以下的速度不需要考虑,而是这个性价比可能不高!
总结,如果你要看穿一个Via里的小变化(特别是Via pad and Via barrel),或者想知道微型连接器的阻抗跳动,则TDR分辨率就变得非常重要。 如果分辨率不够高,那么这些问题就会被「模糊掉」,根本看不出来。 这也是为什么高速板在做TDR测试时,会选择Rise time更短的脉冲来源,例如30ps甚至20ps的TDR系统,因为你想看的变化,往往就在1mm之内。
就像这张PCB Via的TDR模拟结果,10ps时就可以很明显看到在1.5ns左右有一个跳动点,而其它较慢的Rise time则没有办法看出这个地方有阻抗变化!
依照实际状况设定正确的Rise time
不过也不要太过勉强自己,为了要做到最好的设计,看到最细微的位置,而选用过小的Rise time,这会使得你的设计会太过Overdesign。 我们建议针对你的高速信号带宽来做设定,如下表格,列出常见的一些高速接口的Data Rate、对应的Nyquist Frequency、带宽、以及Rise time,供各位参考。
Rise time不是一成不变,变慢的Rise time导致误判TDR阻抗
你知道高速讯号通道其实是一个低通滤波器吗? 你们看到的通道Insertion loss应该都是长这样吧? 低频能量传递几乎100%,高频损耗越来越大,能量衰减越多。
所以妥妥一个低通滤波器!
低通滤波器有一个特征:输入信号的Rise time,会随着损耗增加而上升(或者说变缓)。
原因是讯号的高频成分是由Rise time所组成的,越快速的Rise time,则高频成分越多(也就是为什么越高速的讯号会带来更高的带宽)。 所以当高频成分被滤除时,Rise time就会变缓变慢。
高速信号的Rise time是由许多高频谐波组合而成的:
Rise time 随着通道损耗增加而变缓变慢:
再次强调,TDR测试,起头的阻抗最准确
我们先来看一个简单的公式:
VTDR(t)=Vincident(t)(dvdt)∗h(t)
Vincident(t)是入射的步阶波,VTDR(t)是TDR仪器收到的反射讯号,h(t)则是待测物的Impulse response,*这个符号在做卷积(Convolution)这个动作。
不用想得太复杂,想象信号入射波跟通道的频率响应做类似相乘的动作,就可以得到反射信号。
所以如果入射波的Rise time变大,则收到的反射波形的变化也会跟着变小,阻抗变化也会变小。 一样的这张图就可以看出这种现象!
我们也可以透过带宽来解析,越快的上升时间会带来较宽的带宽:
BW=0.35RT
所以当测试用探棒的带宽越宽,等效的上升时间越小,TDR就可以看得越清楚(更多的内容可以参考这里):
藉由这些观念,我们就可以知道,利用TDR做阻抗测试,最准确的时间点就是讯号刚打进去的那个点,也就是讯号的起头。 当讯号走远之后,Rise time会越来越慢,测到的阻抗变化就会越来越小,原本假设阻抗差异要5Ohm,可是Rise time变慢之后,可能就只剩4Ohm。
我们透过一种极为简单的模拟来看这个现象,在Clarity里头,我们跑模拟都要设定Wave port,这个Wave port有一个很好的功能叫De-embedded,预设是没开启的,当我们打开之后,可以填线长,这是在说Wave port可以平移多少走线长度,假设模拟待测物是500mil的传输线,则这个De-embedded长度如果是+300mil,那模拟结果会马上变成200mil的结果,如果我们填入-500mil,则结果会变成1inch的数据。
当我们在跑传输线时这个功能非常好用,因为这样我们就不用耗费一大堆时间在等待长传输线的模拟结果。
透过这种方式,我们延长了PCB via的馈入线,可以看到阻抗变化随着走线距离越长,而变得更小。
相关文章:

工程师必读! 3 个最常被忽略的 TDR 测试关键细节与原理
TDR真的是一个用来看阻抗跟Delay的好工具,通过一个Port的测试就可以看到通道各个位置的阻抗变化。 可是使用上其实没这么单纯,有很多细节需要非常地小心,才可以真正地看到您想看的信息! 就让我们整理3个极为重要的TDR使用小细节&…...

C++中的各式类型转换
隐式转换: 基本类型的隐式转换: 当函数参数类型非精确匹配,但是可以转换的时候发生 如: void func1(double x){cout << x << endl; }void func2(char c){cout << c << endl; }int main(){func1(2);//…...
2025年阿里云ACP人工智能高级工程师认证模拟试题(附答案解析)
这篇文章的内容是阿里云ACP人工智能高级工程师认证考试的模拟试题。 所有模拟试题由AI自动生成,主要为了练习和巩固知识,并非所谓的 “题库”,考试中如果出现同样试题那真是纯属巧合。 1、在PAl-Studio实验运行完毕后,可以右键单…...
如何使用scp命令拉取其他虚拟机中的文件
使用 SCP 命令拉取远程虚拟机文件 scp(Secure Copy)是基于 SSH 协议的安全文件传输工具,可以在本地与远程主机之间复制文件。以下是使用scp从其他虚拟机拉取文件的详细指南: 一、基本语法 bash # 从远程主机复制到本地 scp [选…...

Nacos源码—9.Nacos升级gRPC分析七
大纲 10.gRPC客户端初始化分析 11.gRPC客户端的心跳机制(健康检查) 12.gRPC服务端如何处理客户端的建立连接请求 13.gRPC服务端如何映射各种请求与对应的Handler处理类 14.gRPC简单介绍 10.gRPC客户端初始化分析 (1)gRPC客户端代理初始化的源码 (2)gRPC客户端启动的源码…...
从入门到精通:Drools全攻略
目录 一、Drools 初相识二、快速上手 Drools2.1 环境搭建2.2 第一个 Drools 程序 三、深入理解 Drools 核心概念3.1 规则(Rule)3.2 工作内存(Working Memory)3.3 知识库(Knowledge Base, KieBase)3.4 会话&…...
最大子段和(递推)
题目描述 给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数,表示序列的长度 n。 第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai。 输出格式 输出一行一个整数表示答案。 输…...

【计算机视觉】基于深度学习的实时情绪检测系统:emotion-detection项目深度解析
基于深度学习的实时情绪检测系统:emotion-detection项目深度解析 1. 项目概述2. 技术原理与模型架构2.1 核心算法1) 数据预处理流程2) 改进型MobileNetV2 2.2 系统架构 3. 实战部署指南3.1 环境配置3.2 数据集准备3.3 模型训练3.4 实时推理 4. 常见问题与解决方案4.…...
Windows CMD通过adb检查触摸屏Linux驱动是否被编译
检查 CONFIG_TOUCHSCREEN_GT9XX 是否启用,检查内核是否编译了Goodix GT9XX系列触摸屏的驱动支持 Windows CMD.exe输入: adb shell “zcat /proc/config.gz | grep CONFIG_TOUCHSCREEN_GT9XX” 如果返回CONFIG_TOUCHSCREEN_GT9XXy,表示驱动已编…...

【图像处理基石】什么是油画感?
在图像处理中,“油画感”通常指图像呈现出类似油画的块状纹理、笔触痕迹或色彩过渡不自然的现象,表现为细节模糊、边缘不锐利、颜色断层或人工纹理明显。这种问题常见于照片处理、视频帧截图或压缩后的图像,本质是画质受损的一种表现。以下是…...

AD PCB布线的常用命令
PCB布线顺序:先信号,再电源,再GNG 1.多根走线的应用 将IC上的引脚分类 更改一类引脚以及引线的颜色,画出走线(将脚引出) 选中这些走线,点击‘交互式总线布线’,便可以多根拉线 shi…...
Python操作Elasticsearch实战指南:从安装到性能调优的全链路解析
一、引言:为什么选择Python+Elasticsearch? Elasticsearch作为分布式搜索引擎,在日志分析、全文检索等场景中表现卓越。Python凭借其简洁语法和丰富生态,成为操作ES的首选语言。本文将带您从环境搭建到性能调优,系统掌握Python操作ES的核心技能。 二、环境准备:三步完成…...

【3-2】HDLC
前言 前面我们提到了 PSTN(Public Switched Telephone Network) ,今天介绍一种很少见的数据链路层的协议,HDLC! 文章目录 前言1. 定义2. 帧边界3. 零比特填充4. 控制字段4.1. 信息帧(I帧)4.2. …...

MySQL 学习(八)如何打开binlog日志
目录 一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)3.2 永久开启(需修改配置文件)3.3 验证是否开启成功3.4 查看 binlog 内容 四、高级配置建议五、注意事项六、开启后的日常维护 知识回顾&a…...
《数据库原理》部分习题解析
《数据库原理》部分习题解析 1. 课本pg196.第1题。 (1)函数依赖 若对关系模式 R(U) 的任何可能的关系 r,对于任意两个元组 t₁ 和 t₂,若 t₁[X] t₂[X],则必须有 t₁[Y] t₂[Y],则称属性集 Y 函数依赖…...

OpenCV进阶操作:光流估计
文章目录 前言一、光流估计1、光流估计是什么?2、光流估计的前提?1)亮度恒定2)小运动3)空间一致 3、OpenCV中的经典光流算法1)Lucas-Kanade方法(稀疏光流)2) Farneback方…...
uniapp+vue3开发项目之引入vuex状态管理工具
前言: 我们在vue2的时候常用的状态管理工具就是vuex,vue3开发以后,又多了一个pinia的选项,相对更轻便,但是vuex也用的非常多的,这里简单说下在uni-app中vuex的使用。 实现步骤: 1、安装&#x…...
SparkSQL 连接 MySQL 并添加新数据:实战指南
SparkSQL 连接 MySQL 并添加新数据:实战指南 在大数据处理中,SparkSQL 作为 Apache Spark 的重要组件,能够方便地与外部数据源进行交互。MySQL 作为广泛使用的关系型数据库,与 SparkSQL 的结合可以充分发挥两者的优势。本文将详细…...
面试题:请解释Java中的设计模式,并举例说明单例模式(Singleton Pattern)的实现方式
Java中的设计模式 设计模式是在软件开发过程中针对特定场景而使用的通用解决方案。设计模式可以帮助开发者编写出更加清晰、灵活和可维护的代码。设计模式分为三大类: 创建型模式:用于对象的创建过程,如单例模式、工厂模式、建造者模式等。…...

4. 文字效果/2D-3D转换 - 3D翻转卡片
4. 文字效果/2D-3D转换 - 3D翻转卡片 案例:3D产品展示卡片 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">.scene {width: 300px;height…...
嵌入式学习笔记 - 关于单片机的位数
通常我们经常说一个单片机是8位的,16位的,32位的,那么怎么判断一款单片机的位数是多少位呢,判断的依据是什么呢, 一 单片机的位数 单片机的位数是指单片机数据总线的宽度,也就是一次能处理的数据的位数&a…...

【AI News | 20250513】每日AI进展
AI Repos 1、iap-diffusion-labs 从零开始带我们构建完整的扩散模型。通过三个精心设计的实验练习,循序渐进地引导我们实现流匹配和扩散模型,从基础 SDE 到条件图像生成,每一步都有详尽指导和完整代码,让复杂理论简单易懂。主要内…...

mybatisplus 集成逻辑删除
一开始,没去查资料,后面要被AI气死了,先看它的的话 一开始,看ai的描述,我还以为,不需要改数据库,mybatis-puls自动拦截集成就可以实现逻辑删除,c,最后还是要给数据库加一…...
typedef unsigned short uint16_t; typedef unsigned int uint32_t;
你提到的这两行是 C/C 中的类型别名定义: typedef unsigned short uint16_t; typedef unsigned int uint32_t;它们的目的是让代码更具可读性和可移植性,尤其在处理精确位数的整数时非常有用。 ✅ 含义解释 typedef unsigned short uint16_t;…...

SimScape物理建模实例2--带控制的单质量弹簧阻尼系统
模型下载: 基于simscape,单质量系统带位置控制资源-CSDN文库 在实例1中,我们搭建了不带控制的单质量弹簧阻尼系统,该系统没有外界力量介入,只有弹簧的初始弹力,带着弹簧使劲弹来弹去。 SimScape物理建模实…...

PyGame游戏开发(含源码+演示视频+开结题报告+设计文档)
前言: 大二小学期python课上基于pygame做的一个游戏小demo,当时老师花了一天讲解了下python基础语法后(也是整个大学四年唯一学习python的时间),便让我们自学网课一周然后交项目,所以做的非常仓促ÿ…...

拒绝flash插件打劫!如何在vscode上玩4399小游戏
现在电脑上玩4399都需要flash插件了 这也导致了很多人无法玩到小时候的游戏 今天介绍一款插件 功能强大 即安即玩 首先打开vscode 点开小方框(拓展)搜索4399 认准4399 on vscode点击安装 安装完毕后 按下 Ctrl Shift P , 输入 4399 on VSCode 或…...
五大静态博客框架对比:Hugo、Hexo、VuePress、MkDocs、Jekyll
目录 1. Hugo概述优点缺点适用场景使用体验 2. Hexo概述优点缺点适用场景使用体验 3. VuePress概述优点缺点适用场景使用体验 4. MkDocs概述优点缺点适用场景使用体验 5. Jekyll概述优点缺点适用场景使用体验 框架对比总结如何选择?结语 静态博客框架通过将内容&…...

learning ray之ray核心设计和架构
我们每天都在处理海量、多样且高速生成的数据,这对计算能力提出了前所未有的挑战。传统的单机计算模式在面对日益复杂的机器学习模型和大规模数据集时,往往显得力不从心。更重要的是,数据科学家们本应专注于模型训练、特征工程、超参数调优这…...

C语言while循环的用法(非常详细,附带实例)
while 是 C 语言中的一种循环控制结构,用于在特定条件为真时重复执行一段代码。 while 循环的语法如下: while (条件表达式) { // 循环体:条件为真时执行的代码 } 条件表达式:返回真(非 0)或假&#x…...