TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

在背板系统或任何长走线设计里,你大概都碰过这画面:

TDR 曲线一开始乖乖在 92 Ω,但越往末端、阻抗越爬越高,来到最高 97 Ω,心里瞬间凉半截

😒 ,「难不成... 板厂又翻车了吗?」

 

然后,当你去找板厂理论时,人家跟你讲,这很正常啊,咱们测了好几百张板子了,数据都是这样子跑的,还拿出过往的测试图给你看。 这到底...?

🔑 做任何决定前,先不要怀疑别人,想想自己是不是哪里搞错了。 🔑

这其实是TDR模拟或是测试时很常见的现象,尤其是当走线设计越长,这个爬坡的现象越明显,绝对不是说你的设计有问题,至于为什么会发生? 本文带您从为何TDR被如此广泛地应用在SI领域,以及背后的基础理论,再来解析为何传输线测试时会有往上爬的现象,让您对TDR有更深一层的认识!

为何使用TDR?

TDR(Time-Domain Reflection),其实就像拿手电筒往线路里照,哪里断、哪里接不好,一眼就能看出来。 很多行业都得靠它找线路的哪里发生开路,而在信号完整性这圈子,TDR更是我们的日常武器。 设计阶段,工程师先在电脑里把每个零件,像是 Via、Connector、Trace,统统放到模拟软件里面去跑模拟,算出它们应该有的阻抗,确保通道的阻抗匹配。 板子打样做好后,还得把实际的板子,透过网络分析仪或阻抗量测机台,扫一遍真实阻抗曲线。 最后再把模拟图叠上量测图,比对每个波峰、波谷的位置是否接近,阻抗值差了多少,并确认设计时设定的参数,如材料的DK/DF是否与实际的一致,必要时还得透过切片,看看板子加工后的厚度与线宽/线距,整体比对起来如果很吻合,那我们才可以说模拟是靠谱的。

 

说到TDR为什么这么好用,最大的原因就是因为它可以单靠一条步阶波、只用一个 Port,就能把整条通道的阻抗分布扫得清清楚楚。 想想看,要量损耗还得准备两边 Test fixture、校正、锁治具,流程相对冗长; 而TDR只要简单一个Port,屏幕立刻画出曲线,这种「单点注射、全段成像」的特性,真的省下我们许多的时间。

但很多人就会问:TDR 看不到损耗,那频域规格怎么办? 其实,只要阻抗匹配做得够好,损耗通常就不会差到哪去,真的要确认规格,再透过双埠测试验证一下即可,工作吗... 还是得尽量省心呀。

TDR基本理论介绍

TDR除了可以单靠一个Port就得到通道的阻抗外,其实也可以拿来计算传输线的Delay,或是两两对象之间的距离,甚至是拿来求得等效介电常数!

阻抗分析

为什么TDR这么厉害,可以单单使用到一个Port就可以得到整条路径的阻抗?

其实原理很简单,透过分压定理,稍微换算一下就可以得到答案!

下面这张图... 应该不需要多做解释了吧 😁

 

从测试仪器如网络分析仪,你看到的TDR图大概率会长这个样子。

 

开头会是一段测试治具Test Fixture,通常这段我们会把它De-embedded,或是做Time-domain gating把它拿掉,这样数据看起来会稍微清楚些,不移除也是还好,不太会大幅度地影响测试结果,但是要小心一点,如果Test Fixture的设计很差很差,阻抗不匹配的太跨张,很容易导致待测物的数据严重失真!

接着是待测物通道的数据,例如PCB的SMT pad、过孔Via、传输线Trace、封装PKG的Solderball皆会囊括其中。 可以看到这些零件分别有各自的阻抗表现,像开头第一个掉落点,就是SMT pad与其上的Via组成的电容性负载所造成的低阻抗,因为TDR有分辨率的关系,造成SMT pad与Via在这边难以分辨(所以我们在这篇文章有提到强烈建议做SMT pad+Via的共模拟去做两者间的设计)。

电感性与电容性负载

我们在看TDR阻抗图时,会很明显看到阻抗曲线呈现上上下下的走势,通常我们可以依据这条曲线的起伏来判断这个时间点是电感性负载还是电容性负载来主导。

由于电感在高频属于“正”阻抗,因此如果阻抗曲线往上跳,代表这个时间点是电感性负载。

而电容在高频属于“负”阻抗,所以如果阻抗曲线往下跳,则表示电容性负载在此时主导了阻抗结果。

(这篇文章对于TDR分析写得很好,也建议各位去看)

电感在高频属于“正”阻抗:

ZL=jωL

电容在高频属于“负”阻抗:

ZC=−j1ωC

 

所以意思就是,如果你觉得阻抗过高,那就得想办法在那个位置增加电容; 如果阻抗过低,那就搞个电感给它,把阻抗补偿回来即可!

如果大家对补偿机制有兴趣,我们再额外讨论啰~ 🤭

Delay分析

TDR 是纯时域的量测方法:我们把一个上升时间很快的步阶波打进待测物,波一路向前跑,当它遇到不连续点时,因为阻抗不匹配,而产生反射波。 反射波沿原路折返回仪器,每个阻抗不连续的「出现时间」,就代表这个阻抗不连续点离源头多远。 换句话说,TDR也可以拿来判断待测物的长度,或是两两对象之间的距离。

不过要记得一件事:因为步阶波从源头跑到不连续点再反射回来,实际走了「去程+回程」两倍的路,所以仪器上显示的时间自然也是两倍。

 

这边通过一个简单的示例来介绍如何通过TDR阻抗图计算出两两对象之间的距离:

首先,长度是波速跟时间的乘积,波在材料里面的速度跟介电常数DK有关,其中c是光速c=3 \times 10^8 m/s = 0.0118 inch/ps:

L=v×t=cDKeff−−−−−−√×t

稍作个转换会得到时间t:

t=L×DKeff−−−−−−√c

就可以得到我们要的长度L了:

L=c×tDKeff−−−−−−√

当然,如果有长度,也可以换算得到等效介电常数DKeff

DKeff=(c×tL)2

举这个案例来分析一下,两个不连续点的时间间隔是1.4ns,中间平滑的区域是传输线,Round trip delay是2TD,所以其实走完这段传输线线长大约需要700ps的时间,等效介电常数DKeff大约是3,所以稍微换算一下就可以得到长度L是4.77inch。

 

为何TDR模拟与测试时,传输线阻抗会一直往上跑?

步階波(Step Function)

简单介绍TDR后,终于来到本文主题,为何TDR测试时,容易看到传输线阻抗一路往上跑的现象?

我们先来看什么是步阶波(Step Function),这个波只有一个上升缘,是瞬时AC成分,而其它时间都是保留在low或是high level,也就是DC成分。

瞬时AC的时间才是信号会发生反射的时间点,而DC稳态则是会分压,也就是说会得到传输线的电阻。

 

实际的模拟结果:一探究竟为何在TDR中,传输线阻抗会爬升

我们直接通过模拟来看结果:

我们准备了一条理想传输线,5inch长度时,DC直流的电阻为1.5Ohm,10inch时为3Ohm。

从TDR的图来看,的确5inch的传输线会爬升1.5Ohm,而10inch传输线则会爬升3Ohm。

 

如果是差动对的TDR结果,会因为差动对本身是两两互相参考,所以这个电阻还会再乘两倍,5inch的线会有3Ohm的爬升,而10inch的线会有6Ohm的爬升!

 

以上的结果是通过电路模拟软件的W-element model萃取得到的,接下来我们透过3D软件Clarity,萃取一段真实Layout里头的传输线,这段线大约5.7inch,DC电阻大约是4Ohm左右,跟TDR的爬升幅度很类似唷!

 

至于在评估阻抗时,这个爬升需不需要考虑在内? 其实并不用,当您知道这个现象的缘由后,以后只需要考虑最起头的位置,那个位置显示的阻抗是95Ohm,那这条传输线的阻抗就是95Ohm啰!

 

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

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

相关文章

在另外一台可以科学下载的电脑用ollama下载模型后,怎么导入到另外一台服务器的ollama使用

环境: Win10专业版 Ubuntu20.04 问题描述: 在另外一台可以科学下载的电脑用ollama下载模型后,怎么导入到另外一台服务器的ollama使用,原电脑win10上的ollama下载的模型,复制到ubuntu20.04的ollama上推理 解决方案:…

Ethan独立开发产品日报 | 2025-04-27

1. CreateWise AI 旨在提升你工作效率的AI播客编辑器 人工智能播客编辑器,让你的播客制作速度提升10倍!它可以自动去除口头语和沉默,生成节目笔记和精彩片段,还能一键制作适合社交媒体分享的短视频——所有这些功能都只需一次点…

解决 shadui组件库Popover 点击后会消失

react用了shadui组件库 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…

SVC电气设备作用

SVC&#xff08;Static Var Compensator&#xff0c;静止无功补偿器&#xff09;是一种基于电力电子技术的动态无功补偿装置&#xff0c;属于灵活交流输电系统&#xff08;FACTS&#xff09;的核心设备之一。它通过快速调节电网中的无功功率&#xff0c;改善电能质量、稳定系统…

黑马点评商户查询缓存--缓存更新策略

ShopTypeServiceImpl类 代码 package com.hmdp.service.impl;import cn.hutool.json.JSONUtil; import com.hmdp.dto.Result; import com.hmdp.entity.ShopType; import com.hmdp.mapper.ShopTypeMapper; import com.hmdp.service.IShopTypeService; import com.baomidou.myba…

C 语言函数指针与指针函数详解

一、引言 在 C 语言的编程世界中&#xff0c;函数指针和指针函数是两个既强大又容易混淆的概念。它们为 C 语言带来了更高的灵活性和可扩展性&#xff0c;广泛应用于回调函数、动态链接库、状态机等多种场景。深入理解和掌握函数指针与指针函数&#xff0c;对于提升 C 语言编程…

HTML5 新特性详解:语义化标签、表单与音视频嵌入

前言 HTML5作为当前Web开发的核心技术&#xff0c;为开发者提供了更强大、更语义化的工具集。本文将深入探讨HTML5的三大核心特性&#xff1a;语义化标签、增强的表单功能以及原生的音视频支持&#xff0c;帮助开发者构建更现代化、更易维护的网页应用。 一、HTML5语义化标签…

利用HandlerMethodArgumentResolver和注解解析封装用户信息和Http参数

获取用户身份信息详情注解 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 获取用户身份信息详情注解*/ Retention(RetentionPolicy.RUNTIME) Tar…

OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从 NV12 (YUV420p) 色彩空间转换为 RGB。该函数将输入图像从 NV12 色彩空间转换到 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。 输出图…

哈工大李治军《操作系统》进程同步与信号量笔记

1.什么是信号量&#xff1f; 定义&#xff1a;记录一些信息&#xff08;即量&#xff09;&#xff0c;并根据这个信息决定睡眠还是唤醒&#xff08;即信号&#xff09;。睡眠和唤醒只是一个信号&#xff08;相当于0和1&#xff09;。 2.问题&#xff1a;一种资源的数量是8&am…

MySQL 的索引类型有哪些?

MySQL 中的索引是提高查询性能的重要工具&#xff0c;它通过构建数据结构来加速数据检索。MySQL 支持多种索引类型&#xff0c;每种类型适用于不同的场景。以下是 MySQL 中主要的索引类型及其特点&#xff1a; 1. B-Tree 索引&#xff08;默认类型&#xff09; 结构&#xff1…

基于Qt5的蓝牙打印开发实战:从扫描到小票打印的全流程

文章目录 前言一、应用案例演示二、开发环境搭建2.1 硬件准备2.2 软件配置 三、蓝牙通信原理剖析3.1 实现原理3.2 通信流程3.3 流程详解3.4 关键技术点 四、Qt蓝牙核心类深度解析4.1 QBluetoothDeviceDiscoveryAgent4.2 QBluetoothDeviceInfo4.3 QBluetoothSocket 五、功能实现…

高可靠性厚铜板制造的关键设备与工艺投入

随着科技的不断发展&#xff0c;电子设备越来越普及&#xff0c;对电路板的需求也越来越大。厚铜板电路板作为一种高性能、高可靠性的电路板&#xff0c;受到了广泛的关注和应用。那么&#xff0c;作为一家厚铜板电路板供应商&#xff0c;如何投入线路板生产呢&#xff1f;本文…

【如何使用solidwork编辑结构导入到simscope】

这里写自定义目录标题 尝试将solidrwork的模型导入到matlab中&#xff0c;以下是官方给出的设计步骤&#xff0c;冲啊 To use Simscape Multibody Link, you must install MATLAB and the CAD applications on the same computer. To ensure the successful installation of Si…

Linux 在个人家目录下添加环境变量 如FLINK_PROPERTIES=“jobmanager.rpc.address: jobmanager“

问题&#xff1a; Docker Flink Application Mode 命令行形式部署前&#xff0c;需要在Linux执行以下&#xff1a; $ FLINK_PROPERTIES"jobmanager.rpc.address: jobmanager" $ docker network create flink-network 临时变量只在当前session会话窗口生效&#xf…

spring项目rabbitmq es项目启动命令

应该很多开发者遇到过需要启动中间件的情况&#xff0c;什么测试服务器挂了&#xff0c;服务连不上nacos了巴拉巴拉的&#xff0c;虽然是测试环境&#xff0c;但也会手忙脚乱&#xff0c;疯狂百度。 这里介绍一些实用方法 有各种不同的场景&#xff0c;一是重启&#xff0c;服…

语音合成之七语音克隆技术突破:从VALL-E到SparkTTS,如何解决音色保真与清晰度的矛盾?

从VALL-E到SparkTTS&#xff0c;如何解决音色保真与清晰度的矛盾&#xff1f; 引言语音克隆技术发展史YourTTS&#xff1a;深入剖析架构与技术VALL-E&#xff1a;揭秘神经编解码语言模型MaskGCTSparkTTS&#xff1a;利用 LLM 实现高效且可控的语音合成特征解耦生成式模型特征解…

run code执行ts配置

1、全局安装typescript npm install –g typescript 执行tsc –v&#xff0c;可输出版本号&#xff0c;代表安装成功 2、创建tsConfig文件 npx tsc –init 创建成功目录下会出现tsconfig.json文件 3、安装ts-node&#xff0c;支持执行运行ts文件 npm install –g ts-node 控制…

splitchunk(如何将指定文件从主包拆分为单独的js文件)

1. 说明 webpack打包会默认将入口文件引入依赖js打包为一个入口文件&#xff0c;导致这个文件会比较大&#xff0c;页面首次加载时造成加载时间较长 可通过splitchunk配置相应的规则&#xff0c;对匹配的规则打包为单独的js,减小入口js的体积 2. 示例 通过正则匹配&#xff…

postgres 导出导入(基于数据库,模式,表)

在 PostgreSQL 中&#xff0c;导出和导入数据库、模式&#xff08;schema&#xff09;或表的数据可以使用多种工具和方法。以下是常用的命令和步骤&#xff0c;分别介绍如何导出和导入整个数据库、特定的模式以及单个表的数据。 一、导出数据 1. 使用 pg_dump 导出整个数据库…