ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CAN/485/232总线匹配电阻与TVS管选型避坑指南

CAN/485/232总线匹配电阻与TVS管选型避坑指南 1. 从一次烧板子说起为什么匹配电阻和TVS管不能随便接刚入行那会儿我在一块STM32的485通信板上随手焊了两个120Ω电阻心想“匹配电阻嘛两端各一个教科书上都这么画”。结果板子跑起来通信距离一超过50米就疯狂丢包示波器一测差分波形上升沿全是振铃像弹棉花一样抖个不停。后来拆掉一个电阻波形立刻干净了。再后来另一块板子在室外走线一场雷雨过后收发器直接冒烟这才意识到TVS管不是“可选件”而是“保命件”。CAN、485、232这三种总线几乎覆盖了工业控制、汽车电子、仪器仪表里90%的串行通信场景。但很多新手——包括当年的我——在画电路时最容易犯两个错误一是匹配电阻无脑加二是TVS管随便选。这两个问题轻则导致通信不稳定重则烧毁收发器甚至整块主板。这篇文章就把我这些年踩过的坑、测过的波形、烧过的芯片一次性讲清楚。你如果是刚接触硬件设计的嵌入式工程师或者正在调试485/CAN通信的开发者又或者是对TVS选型一头雾水的PCB Layout人员这篇内容应该能帮你省下不少返工时间和物料成本。我会从原理讲到实操从参数计算讲到波形实测尽量让每个结论都有据可循。2. 三种总线的电气特性与匹配逻辑拆解2.1 CAN总线差分信号与终端匹配的底层逻辑CAN总线用的是差分信号CAN_H和CAN_L两根线显性电平逻辑0时CAN_H约3.5V、CAN_L约1.5V差分电压2V左右隐性电平逻辑1时两根线都在2.5V附近差分电压接近0V。这种设计的好处是共模干扰会被差分接收器抵消掉但前提是信号在传输线上不能反射。传输线反射的原理不复杂当信号沿电缆传播到末端如果末端阻抗不匹配能量就会反射回来和原始信号叠加造成波形振铃、过冲。CAN标准ISO 11898规定总线两端各接一个120Ω的终端电阻并联后等效60Ω正好匹配双绞线的特性阻抗。注意关键词是“两端”不是“每个节点”。我见过不少设计在总线上每个节点都放一个120Ω电阻结果节点一多等效阻抗低到十几欧姆差分幅度直接被拉垮通信距离大幅缩短。正确的做法是只有物理上最远的两个节点各放一个120Ω中间节点一个都不放。如果你不确定哪个是末端用万用表量一下总线断电时的差分阻抗正常应该在60Ω左右。还有一个细节CAN总线的终端电阻不只是匹配阻抗它还负责在总线空闲时把差分电压拉回隐性状态。没有终端电阻总线可能无法进入空闲态导致通信直接失败。所以CAN的120Ω是“必须接”但“只能接两个”。2.2 RS-485总线匹配电阻的取舍与失效场景RS-485和CAN一样是差分总线特性阻抗也是120Ω左右所以很多资料也建议两端各接120Ω。但485和CAN有一个关键区别485的收发器驱动能力更强而且很多485网络是半双工的总线长度和节点数差异很大。在实际项目中我总结了一个经验法则通信距离小于30米、波特率低于115200bps时匹配电阻可以不加或者只在接收端加一个。原因是短距离下信号反射还没形成明显振铃就衰减掉了加了反而增加功耗。当距离超过100米或波特率高于500kbps时两端各加120Ω是必要的。但这里有个坑很多485收发器芯片比如MAX485、SP3485的输出驱动能力有限如果总线上挂了32个节点每个节点都加120Ω等效负载可能低到几欧姆芯片根本驱动不起来。所以匹配电阻的取舍要结合节点数、距离、波特率三个因素一起看。我实测过一组数据在1200米双绞线上跑9600bps不加匹配电阻时误码率约0.1%加了两端120Ω后误码率降到0.001%以下。但在10米线上跑115200bps加不加匹配电阻误码率都是0区别只是功耗多了几十毫安。所以别盲目照搬“两端120Ω”的教条。2.3 RS-232为什么它不需要匹配电阻RS-232和CAN、485完全不是一回事。它是单端信号逻辑1是-3V到-15V逻辑0是3V到15V用的是电压绝对值判断不是差分。传输距离通常不超过15米波特率也偏低一般115200bps以内。在这种低速短距离场景下信号反射的影响微乎其微所以232标准里根本没有匹配电阻的概念。那232电路里需要关注什么主要是电荷泵电容和TVS管。232收发器比如MAX232、SP3232内部需要电荷泵把5V或3.3V升压到±10V左右外部的几个电容通常是1μF或0.1μF就是电荷泵的储能电容。这些电容的容值和ESR直接影响输出电平的稳定性和纹波。我见过有人用劣质电容导致232输出只有±5V通信时好时坏。232的TVS管选型也和485/CAN不同。232信号线电压范围是±15V所以TVS的击穿电压要高于15V通常选24V或27V的。而485/CAN的差分线电压范围是-7V到12VTVS击穿电压一般选6.8V到12V之间。这个区别很关键选错了要么保护不了要么影响正常通信。3. 匹配电阻的参数计算与实操选型3.1 120Ω是怎么来的特性阻抗与反射系数双绞线的特性阻抗公式是Z0 √(L/C)其中L是单位长度电感C是单位长度电容。常见的屏蔽双绞线特性阻抗在100Ω到150Ω之间CAN和485标准都取120Ω作为标称值。终端电阻等于特性阻抗时反射系数Γ (ZL - Z0) / (ZL Z0) 0能量全部被吸收没有反射。但实际电缆的特性阻抗不是精确的120Ω会有±10%的偏差。所以终端电阻选120Ω是折中方案反射系数最小可以做到0.05左右已经足够好了。如果你用的是非标电缆比如特性阻抗100Ω的那终端电阻应该选100Ω而不是死守120Ω。我做过一个对比实验用120Ω终端电阻匹配100Ω电缆反射系数约0.09波形有轻微过冲换成100Ω终端电阻后反射系数降到0.02波形几乎完美。所以如果你对通信质量要求极高可以先测一下电缆的特性阻抗再选终端电阻。3.2 匹配电阻的功率计算别再用0603了很多人画板时随手放一个0603封装的120Ω电阻觉得“电阻嘛功耗能有多大”。算一下CAN总线显性时差分电压2V终端电阻120Ω电流I 2V / 120Ω ≈ 16.7mA功耗P I²R (0.0167)² × 120 ≈ 0.033W。看起来很小0603的额定功率是0.1W够用。但485不一样。485收发器的差分输出电压典型值是1.5V到2.5V如果总线两端各一个120Ω等效负载60Ω电流I 2V / 60Ω ≈ 33mA每个电阻功耗P (0.033)² × 120 ≈ 0.13W。这就超过0603的0.1W了长时间工作电阻会发热阻值漂移甚至烧断。所以485的匹配电阻建议用0805或1206封装额定功率0.125W以上。更极端的情况如果总线有多个节点误加了匹配电阻等效负载可能低到20Ω电流100mA每个电阻功耗1.2W0603直接冒烟。所以我在所有485和CAN的匹配电阻上都用1206封装留足余量。3.3 匹配电阻的布局位置不是随便放两端就行匹配电阻的PCB布局也有讲究。理想情况下终端电阻应该放在总线连接器的入口处紧挨着连接器引脚引线越短越好。如果电阻离连接器太远中间那段走线就成了“ stub ”会产生额外的反射。我见过一块板子终端电阻放在收发器旁边离连接器有5厘米远。结果在1Mbps波特率下波形上出现了明显的台阶通信误码率很高。后来把电阻挪到连接器旁边走线缩短到5毫米以内波形立刻干净了。对于CAN总线如果节点是菊花链拓扑终端电阻应该放在最远两个节点的连接器处。如果是星型拓扑每个分支的末端都要加终端电阻但星型拓扑本身就不推荐用于CAN因为分支会产生严重反射。485也一样手拉手菊花链是最佳拓扑星型或树型都会导致阻抗不连续。4. TVS管选型从参数到实测的完整流程4.1 TVS管的核心参数击穿电压、钳位电压、结电容TVS管瞬态电压抑制二极管选型看三个参数反向 standoff 电压VRWM、击穿电压VBR、钳位电压VC。VRWM是TVS不导通的最高电压必须高于信号线的正常工作电压。VBR是TVS开始导通的电压通常比VRWM高10%左右。VC是TVS在承受峰值脉冲电流时的最大电压必须低于被保护芯片的绝对最大额定电压。以485为例485收发器的A/B线正常工作电压是-7V到12V所以TVS的VRWM要选12V以上但也不能太高否则保护效果差。常见选型是VRWM12V、VBR13.3V、VC19.9V在10A脉冲下。收发器的绝对最大额定电压通常是-8V到13V所以VC19.9V其实已经超过收发器的耐压了。但TVS的响应时间是纳秒级而收发器的损坏需要能量积累所以实际保护效果是够的。结电容是另一个关键参数。485和CAN的波特率可以到1Mbps甚至更高信号边沿很陡如果TVS的结电容太大会把边沿变缓导致通信失败。485的TVS结电容建议小于50pFCAN的建议小于30pF。232的波特率低结电容可以放宽到100pF以上。4.2 不同总线的TVS选型对照表总线类型正常工作电压VRWM推荐VBR推荐VC推荐结电容要求常见型号CAN-7V ~ 12V12V13.3V20V30pFPESD1CANRS-485-7V ~ 12V12V13.3V20V50pFSM712RS-232±15V24V26.7V40V100pFPESD1CAN注意SM712是专门为485设计的双通道TVS内部有两个反向串联的二极管可以同时保护正负电压。PESD1CAN是CAN专用的结电容只有十几pF。232可以用普通的单向TVS比如SMAJ24A但要注意它的结电容可能到几百pF不过232波特率低影响不大。我实测过SM712和普通SMAJ12A在485上的表现SM712的结电容约30pF1Mbps波形边沿约50nsSMAJ12A的结电容约200pF边沿变成200ns通信直接失败。所以高速总线一定要选低结电容的专用TVS。4.3 TVS管的布局与接地保护效果差十倍的原因TVS管的保护效果70%取决于布局。理想情况下TVS应该放在连接器入口处被保护芯片的前面引线长度不超过5毫米。如果TVS离连接器太远浪涌电流还没到TVS就先经过了一段走线那段走线的电感会产生额外的电压尖峰可能直接打坏芯片。接地也很关键。TVS的接地引脚要直接连到低阻抗的接地平面引线越短越好。我见过有人把TVS的地线拉了一根10厘米的细线到板子另一端的接地点结果浪涌来时地线电感产生几百伏的压降TVS根本没起作用芯片照样烧。还有一个细节TVS的地和收发器的地要尽量靠近最好在同一块铜皮上。如果中间隔着其他电路浪涌电流会寻找其他路径可能干扰到其他信号。我在PCB布局时通常把TVS和收发器放在同一区域地平面完整不打过孔确保浪涌电流有最短的回流路径。5. 实操过程从原理图到波形实测的完整记录5.1 原理图设计以STM32SP3485为例我拿一块STM32F103CBT6的485通信板做例子。原理图里SP3485的A/B线先经过共模电感可选然后并联SM712 TVS再串联10Ω电阻可选最后接到连接器。终端电阻120Ω放在连接器旁边用跳线帽选择是否接入。为什么加10Ω串联电阻这是为了限流当TVS导通时串联电阻可以分担一部分能量降低TVS的峰值电流。但10Ω电阻会影响信号幅度所以只在长距离或高干扰场景下加。短距离通信可以不加直接TVS并联。共模电感的作用是抑制共模干扰但会引入少量差分插入损耗。如果通信距离短、环境干净可以省略。我在工业现场通常会加因为电机和变频器产生的共模干扰很严重。5.2 PCB布局TVS和匹配电阻的摆放顺序PCB布局的顺序是连接器 → TVS → 匹配电阻 → 收发器。TVS最靠近连接器浪涌一进来就被钳位。匹配电阻在TVS后面不影响TVS的保护效果。收发器在最里面受到TVS和匹配电阻的双重保护。走线方面A/B线要尽量等长差分阻抗控制在120Ω。如果做不到精确控制至少保证两根线平行走间距一致。TVS的接地引脚用短而粗的走线连到地平面最好打多个过孔。我画过一版板子TVS放在收发器旁边连接器到TVS之间有3厘米走线。结果做浪涌测试时TVS没坏收发器坏了。后来把TVS挪到连接器旁边同样的测试条件收发器完好。所以布局顺序比选型更重要。5.3 波形实测匹配电阻对信号完整性的影响我用示波器差分探头测了485总线在1Mbps下的波形。不加匹配电阻时上升沿有明显的振铃过冲约1V持续时间约200ns。加了一端120Ω后振铃减小到0.3V持续时间约100ns。加了两端120Ω后振铃几乎消失波形干净。但加了两端120Ω后差分幅度从2.5V降到2.0V因为负载加重了。如果收发器驱动能力不足幅度可能降到1.5V以下接收器可能误判。所以匹配电阻不是越多越好要平衡信号完整性和驱动能力。TVS对波形的影响也很明显。SM712的结电容30pF在1Mbps下边沿从20ns变成50ns还在可接受范围。如果换成结电容200pF的TVS边沿变成200ns1Mbps通信直接失败。所以高速总线一定要选低结电容TVS并且实测波形确认。6. 常见问题与排查技巧实录6.1 通信不稳定先查匹配电阻再查TVS通信不稳定的原因很多但我的排查顺序是先看匹配电阻再看TVS最后看电源和地。匹配电阻的问题通常是“该加没加”或“不该加乱加”。用万用表量总线断电时的差分阻抗正常应该是60Ω左右两端各120Ω并联。如果量出来是120Ω说明只加了一端如果量出来是30Ω说明加了四端如果量出来是无穷大说明一端都没加。TVS的问题通常是“选错型号”或“布局太远”。选错型号的典型表现是通信距离缩短或波特率上不去因为结电容太大。布局太远的典型表现是浪涌测试时芯片烧毁但TVS完好。用示波器测TVS两端的电压如果浪涌来时TVS两端电压很高超过VC说明TVS没起作用可能是接地不良或引线太长。6.2 TVS管发热甚至烧毁电压选低了TVS管发热通常是电压选低了。比如485的TVS选了5V的VRWM但485正常工作电压可以到12VTVS长期处于击穿边缘漏电流大发热严重。正确的选型是VRWM高于信号线最高工作电压留20%余量。485选12V或15VCAN选12V或24V232选24V或27V。TVS烧毁通常是能量不够。TVS的峰值脉冲功率PPP要大于浪涌能量。比如IEC 61000-4-5的浪涌测试是1.2/50μs电压波和8/20μs电流波峰值电流可能到几十安培。如果TVS的PPP只有400W可能扛不住。选型时要看 datasheet 里的PPP曲线确保在预期浪涌电流下VC不超过芯片耐压。6.3 常见问题速查表现象可能原因排查方法解决方案通信距离短匹配电阻缺失或过多量总线差分阻抗两端各加120Ω波形振铃匹配电阻不匹配示波器测差分波形调整终端电阻值高速通信失败TVS结电容太大查TVS datasheet换低结电容TVSTVS发热VRWM选低了量TVS两端电压换高VRWM型号浪涌后芯片烧TVS布局太远检查TVS位置挪到连接器旁232输出电平低电荷泵电容失效量232输出波形换优质电容6.4 独家避坑技巧我踩过的三个坑第一个坑CAN总线两端加了120Ω但中间节点也加了。结果总线等效阻抗只有30Ω通信距离从1公里降到100米。后来拆掉中间节点的电阻恢复正常。记住CAN的120Ω只在物理两端。第二个坑485的TVS选了SMAJ12A结电容200pF1Mbps通信失败。换成SM712后结电容30pF通信正常。高速总线一定要看结电容参数不能只看电压。第三个坑232的电荷泵电容用了0.1μF输出只有±5V通信时好时坏。换成1μF后输出±10V稳定通信。232的电荷泵电容容值要按datasheet推荐不能随便改。7. 我的实操体会与后续扩展思路这些年做硬件设计最大的体会是匹配电阻和TVS管不是“抄个电路就行”的事它们和电缆特性、波特率、环境干扰、PCB布局都强相关。同一个电路在实验室跑得好好的到了现场可能就出问题。所以每次设计完我都会做三件事量总线阻抗、测差分波形、做浪涌测试。这三步做完心里才有底。后续如果要做更深入的设计可以考虑加共模电感抑制共模干扰加自恢复保险丝防止过流加气体放电管泄放高能量浪涌。但这些器件会引入额外的寄生参数需要重新评估信号完整性。我的建议是先用TVS和匹配电阻把基础做好再根据实际测试结果决定是否加其他保护器件。最后分享一个小技巧如果你不确定TVS选型是否合适可以先在板子上留一个TVS的焊盘用0Ω电阻短接。调试时先不焊TVS测波形然后焊上TVS再测波形。对比两次波形如果边沿变化不大说明TVS结电容合适如果边沿明显变缓说明TVS结电容太大需要换型号。这个方法我用了很多次比看datasheet更直观。
返回列表