4、特性阻抗的概念:PCB走线的特性阻抗(50Ω、75Ω等),差分与单端信号

说到SPI端接匹配,有一个绕不开的基础概念——特性阻抗。这东西听起来抽象,其实说白了就是一条传输线对高频信号呈现的“阻力”。你想想看,低速的时候导线就是一根导线,但信号频率一高,走线就开始表现出电阻、电感、电容的分布式特性,特性阻抗就是描述这条走线在这种高频下“天生的”阻抗值。

我记得刚入行那几年,总觉得这是个理论概念,跟我画PCB没啥关系。后来有一次调一块板子,SPI时钟线长了点,波形抖得像心电图,我才真正意识到:不知道特性阻抗,匹配就是瞎蒙。

4.1 什么是特性阻抗?

对于一根均匀的PCB走线,特性阻抗Z₀由单位长度的电感和电容决定:

Z₀ = √(L/C)

其中L是单位长度电感,C是单位长度电容。这个值跟走线的宽度、铜厚、介电常数、参考层距离都有关系。只要走线均匀,特性阻抗就是一个固定的常数,跟信号频率(在一定范围内)关系不大。

核心要点:特性阻抗不是电阻,而是传输线对行波的阻抗。直流下你可以忽略它,但在信号上升时间< 2倍走线延迟时,就必须把它当一回事。

为什么SPI会用到这个?一般来说,当走线长度超过信号上升沿空间长度的1/6时,反射就开始影响波形了。SPI时钟频率通常几十兆赫到上百兆赫,上升沿很快,很多PCB上的长走线已经进入了“传输线”领域,不做匹配就会看到过冲、振铃、台阶——这些我都在示波器上亲眼见过。

4.2 单端信号与特性阻抗

单端信号是最常见的信号形式:一根信号线,一个参考地。典型的单端特性阻抗值有50Ω、75Ω等。为什么是50Ω?这不是拍脑袋定的——50Ω在损耗、功率容量、制造工艺之间取得了比较好的折中。

我个人的习惯是:SPI的单端信号线,除非板子特别紧凑,否则我都会按50Ω来设计阻抗。控制阻抗的方法很简单:

  • 确定叠层:参考层(地平面)与信号层之间的介质厚度
  • 选择合适的线宽:根据板材DK值和铜厚,用阻抗计算工具算出线宽
  • 保持线宽一致性:换层时要加阻抗参考的过孔

举个例子,FR4板材、1oz铜、芯板厚度0.2mm(8mil),50Ω单端微带线线宽大约12~14mil。不同厂家工艺有偏差,但差不了太多。

目标阻抗 典型线宽(1oz铜,FR4,8mil介质厚) 适用场景
50Ω 12~14mil SPI时钟、数据线(大多数情况)
75Ω 8~9mil 视频信号、低损耗传输
100Ω(差分) 单端~6~7mil,间距~8~10mil 差分对(如USB、以太网,SPI一般不直接差分)
小经验:如果你板子上的SPI走线超过20cm,强烈建议控制50Ω阻抗。否则端接电阻的效果会大打折扣。

4.3 差分信号与差分阻抗

差分信号用两条线共同传递一个信号,两条线相位相反。差分阻抗是指两条线之间的阻抗,典型值是100Ω或90Ω。差分结构的优点是对共模噪声不敏感,抗干扰能力强。

不过,SPI标准本身是单端协议,并不用差分信号。那为什么还要提差分阻抗?

有两个原因:

  1. SPI的时钟和数据线虽然是单端,但它们之间也存在耦合。 如果两条线靠得很近,就会互相串扰,影响信号质量。控制差分阻抗的概念可以帮助你理解线间距的重要性。
  2. 有些设计用差分SPI(DSPI) 或者用LVDS电平扩展SPI距离。这时候差分阻抗就是必须考虑的参数了。

有一次我帮一个客户调试一块长距离(1米)的SPI扩展板,他们用的就是差分传输方式,但因为差分阻抗没控制好,高速时误码率很高。后来我建议他们把差分对的线宽和间距算准,并串联了匹配电阻,问题就解决了。

4.4 为什么SPI要关注特性阻抗?

回到SPI本身。大部分SPI工作在几兆到几十兆赫兹,走线长度也就十几厘米,按理说不需要太严格的阻抗控制。但现实是:

  • 上升沿很快: 很多MCU的SPI输出上升时间能到2~5ns,相当于空间长度30~75cm。走线超过10cm就开始有反射。
  • 过冲可能烧芯片: 不匹配的反射会造成电压过冲,超过IO口的最大额定值。
  • 时序裕量变小: 反射让波形变差,建立时间和保持时间被压缩。
我遇到过最惨的一次:一块四层板,SPI时钟走线在表层走了30cm,没做阻抗控制,也没加端接。上电后时钟线上看到超过3.6V的过冲(3.3V IO),烧了两个SPI从设备的输入引脚。从那以后,我凡是超过10cm的SPI线,都会先算一下阻抗,再决定加不加端接。

4.5 特性阻抗与端接电阻的关系

端接电阻的值,理论上应该等于传输线的特性阻抗。这样当信号到达末端时,能量被电阻吸收,不会反射回来。比如走线是50Ω,串联端接或末端端接就取50Ω。

这就是为什么我前面反复强调要控制特性阻抗——你连走线本身的阻抗都不知道,怎么选端接阻值?

实践中,我会这样操作:

  1. 先确定PCB叠层,算出信号线的目标线宽(50Ω或100Ω差分)。
  2. 在Layout阶段保持线宽均匀,避免直角拐弯和过孔过多。
  3. 根据走线长度和驱动能力选择端接拓扑(串联、并联、RC等)。
  4. 如果无法精确控制阻抗,至少保证端接电阻在30Ω~70Ω之间,比不加好得多。
特性阻抗与端接匹配核心概念 单端信号 特性阻抗:Z₀ = √(L/C) 典型值:50Ω、75Ω SPI常用50Ω控制 差分信号 差分阻抗:Z_diff ≈ 2×Z₀ 典型值:100Ω、90Ω 差分SPI或LVDS场景 端接电阻匹配 → 吸收反射能量 R_term ≈ Z₀(单端)或 R_term ≈ Z_diff(差分) 效果:消除过冲 / 减少振铃 / 改善时序 说明
画这个图的时候我在想:其实很多工程师把“端接电阻”当成万金油,不管走线多长都加个电阻。但如果不先控制特性阻抗,这个电阻可能是乱选的——我见过有人给75Ω的走线串33Ω电阻,信号反射更严重了。

4.6 实战小贴士

  • 先量后算: 如果板子已经做好了,可以用TDR(时域反射计)测一下实际走线的特性阻抗,再决定端接值。我在实验室用过Tektronix的TDR模块,直观能看到阻抗突变点。
  • 仿真省力: 用HyperLynx或ADS简单仿真一下,比靠经验猜准得多。我通常会先跑个快速仿真,确认端接范围,然后留出0Ω或NC的调试位置。
  • 留调试位置: 在SPI的时钟线和数据线靠近发送端或接收端预留0402/0603的电阻焊盘,调试时换阻值,找到最佳点再量产。

嗯,这一章主要就是帮大家把特性阻抗这个基础概念吃透。有了这个底,后面讲端接电阻的具体选值和拓扑,你就能明白“为什么”要这么做了。