ARTICLE DETAIL

资讯详情

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

CAN、485、232总线匹配电阻与TVS管接法详解:避免烧板子的实操指南

CAN、485、232总线匹配电阻与TVS管接法详解:避免烧板子的实操指南 1. 从一次烧板子说起为什么匹配电阻和TVS管不能随便接刚入行那会儿我在一块STM32的485通信板上随手焊了一颗120Ω电阻心想“匹配电阻嘛加上总没错”。结果板子跑起来通信距离不到50米就开始丢包用示波器一测差分波形被压得只剩不到1V的幅值。后来拆掉那颗电阻通信立刻恢复正常。这个教训让我明白一件事CAN、485、232这三种总线的匹配电阻和TVS管接法完全不同接错了轻则通信不稳重则烧收发器。这三种总线在工业控制、汽车电子、仪器仪表里几乎无处不在。CAN总线跑在汽车和工控现场485总线撑起了楼宇自动化和PLC组网232接口则是老设备调试的标配。很多人画原理图的时候看到别人在差分线上挂个120Ω自己也跟着挂看到别人在接口处放个TVS管自己也照抄型号。但背后的逻辑是什么什么时候该接、接多大、接几颗往往说不清楚。这篇内容就是把我这些年在这三种总线上踩过的坑、测过的波形、烧过的芯片整理成一份可以直接对照使用的实操参考。不管你是刚接触硬件设计的新手还是想系统梳理一下总线防护的老手都能从里面找到能直接落地的参数和步骤。核心围绕三个问题展开匹配电阻到底该不该接、接在哪里、接多大TVS管怎么选型、怎么布局三种总线的电路结构差异在哪里。2. 三种总线的电气特性决定了匹配电阻的接法2.1 CAN总线的差分阻抗与终端电阻逻辑CAN总线用的是差分信号两根线CAN_H和CAN_L的标称差分阻抗是120Ω。这个120Ω不是随便定的它来自总线两端各接一个120Ω终端电阻并联后的等效阻抗——两个120Ω并联正好是60Ω而CAN收发器输出的差分驱动能力就是按照60Ω负载来设计的。这里有个关键点终端电阻的作用是消除信号在总线末端的反射而不是“增强信号”。信号在传输线上传播时如果末端阻抗不匹配能量会反射回来和原始信号叠加造成波形畸变。120Ω终端电阻的作用就是让总线末端的阻抗等于传输线的特征阻抗把信号能量全部吸收掉。那为什么是两端各接一个而不是中间接一个因为CAN总线是线性拓扑信号从一端传到另一端两端都是“末端”都需要匹配。如果只在中间接一个120Ω两端仍然会反射波形上会出现明显的振铃。实际测过波形的朋友应该有印象接对了终端电阻的CAN总线差分波形干净利落上升沿和下降沿都很陡没接或者只接一端的波形上会有明显的台阶和振荡通信距离越长越明显。2.2 485总线的匹配电阻与CAN的异同485总线和CAN总线都是差分传输但电气规范不一样。485的差分输出电压典型值是2V到6V接收器灵敏度是±200mV共模范围是-7V到12V。485的标称特征阻抗也是120Ω左右所以终端匹配电阻通常也是120Ω。但485和CAN有一个重要区别485是半双工总线同一时刻只有一个节点在发送其他节点在接收。这意味着485总线的匹配电阻接法更灵活一些。短距离、低波特率的场合比如9600bps、几十米的距离不接匹配电阻也能正常工作。但长距离、高波特率比如115200bps、几百米甚至上千米就必须在总线两端各接一个120Ω电阻。我实测过一个典型场景一条200米的双绞线波特率115200不接匹配电阻时示波器上看差分波形上升沿有明显过冲和振铃误码率大概在10的负4次方量级两端各接120Ω后波形干净误码率降到10的负7次方以下。这个差距在工业现场就是“能用”和“不能用”的区别。2.3 232接口为什么不需要匹配电阻232和CAN、485完全不是一回事。232是单端信号每个信号线对地参考逻辑1是-3V到-15V逻辑0是3V到15V。它的传输速率低、距离短标准规定最大电缆长度是15米实际用高质量线缆可以到30米左右。232不需要匹配电阻因为它的信号速率和线缆长度不构成传输线效应。传输线效应只有在信号上升时间小于信号在线上传播时间的2倍时才显著。232的上升时间通常在微秒级15米线缆的传播时间大概75纳秒远小于上升时间所以不会出现明显的反射问题。那232电路里需要关注什么主要是电荷泵电容和接口保护。232收发器芯片内部有一个电荷泵把5V或3.3V升压到±10V左右这个电荷泵需要外接几个电容通常是1μF到10μF。这些电容的容值和材质直接影响232的输出电平和抗干扰能力。我见过不少板子因为电荷泵电容用了劣质MLCC导致232输出电平只有±5V通信距离大打折扣。3. 匹配电阻的取值、位置与常见错误接法3.1 120Ω不是唯一答案什么时候该用其他阻值虽然120Ω是CAN和485的标称匹配电阻但实际工程中并不是死守这个值。有几种情况需要调整第一种是总线阻抗偏离120Ω。比如用了非标双绞线特征阻抗是100Ω那匹配电阻也应该用100Ω。特征阻抗可以用TDR或者阻抗分析仪测没有设备的话可以查线缆手册。第二种是节点数很多、总线电容很大。每个节点接入总线都会引入几皮法到几十皮法的电容节点多了之后总线电容可能到几百皮法甚至更大。这时候如果还用120ΩRC时间常数变大信号边沿变缓高速通信会出问题。解决办法是适当减小匹配电阻比如用100Ω甚至82Ω但要注意收发器的驱动能力是否足够。第三种是低功耗场合。120Ω电阻在5V差分电压下会消耗约200mW的功率对于电池供电的设备来说不小。有些设计会用更大的阻值比如300Ω到500Ω牺牲一些信号质量换低功耗。但这种做法只适合短距离、低波特率的场景。下面这张表是我在实际项目中总结的匹配电阻取值参考总线类型典型特征阻抗推荐匹配电阻适用场景CAN120Ω两端各120Ω标准工业CAN网络CAN120Ω两端各120Ω节点多时可用100Ω节点超过20个485120Ω两端各120Ω长距离、高波特率485120Ω不接或单端接120Ω短距离、低波特率485100Ω两端各100Ω非标线缆3.2 终端电阻该放在总线两端还是节点内部这个问题在工程中争议很大。标准做法是终端电阻放在总线物理拓扑的两个最远端而不是随便放在某个节点上。因为匹配的目的是吸收到达总线末端的信号能量如果电阻放在中间节点末端仍然会反射。但实际布线时总线两端往往就是两个节点所以把电阻放在这两个节点的接口处是合理的。很多CAN收发器芯片内部已经集成了可切换的终端电阻比如TJA1042、TJA1051这些通过引脚控制是否接入。这种设计的好处是调试方便坏处是如果多个节点都打开了内部终端电阻总线上就会并联多个120Ω等效阻抗变成60Ω甚至更低收发器驱动能力不够通信反而出问题。我遇到过最典型的错误是一条CAN总线上有5个节点每个节点的板子上都焊了120Ω电阻结果总线上并联了5个120Ω等效阻抗只有24Ω。收发器输出差分电压被拉低到1V以下通信完全失败。记住一个原则一条CAN总线无论有多少节点终端电阻最多只有两个。3.3 用万用表快速判断匹配电阻是否接对没有示波器的时候可以用万用表快速判断。断电情况下测CAN_H和CAN_L之间的电阻正常应该是60Ω左右两个120Ω并联。如果测出来是120Ω说明只接了一个终端电阻如果测出来是40Ω说明接了三个如果测出来是无穷大说明一个都没接。485总线同理断电测A和B之间的电阻正常也是60Ω左右。但要注意有些485收发器内部有失效保护电路可能会影响测量结果最好把收发器芯片拔掉或者断开再测。这个方法我用了很多年在现场调试时特别管用。有一次客户反映CAN通信时好时坏我到现场一测CAN_H和CAN_L之间电阻是30Ω明显是接了四个终端电阻。拆掉多余的三个通信立刻稳定。4. TVS管选型不是随便找个管子焊上去就行4.1 TVS管在总线防护中到底防什么TVS管的全称是瞬态电压抑制二极管它的核心作用是在极短时间内把过压能量泄放掉保护后面的收发器芯片不被击穿。在CAN、485、232这些总线上TVS管主要防三种东西第一种是静电放电。人体接触接口时可能带入几千伏的静电虽然能量不大但电压极高足以击穿收发器的栅极氧化层。第二种是浪涌。工业现场的大功率设备启停、继电器动作、电机换向都会在电源线和信号线上感应出几百伏到几千伏的浪涌。这种能量比静电大得多持续时间也长是收发器损坏的主要原因。第三种是总线上的异常电压。比如485总线的共模电压范围是-7V到12V如果现场接地不良共模电压可能超出这个范围TVS管可以把超出部分钳位掉。但TVS管不是万能的。它的响应时间虽然很快纳秒级但能承受的能量有限。如果浪涌能量太大TVS管自己也会烧掉。所以TVS管通常是和保险丝、限流电阻配合使用形成多级防护。4.2 关键参数怎么读VRWM、VBR、VC、IPP选TVS管的时候数据手册上有一堆参数很多人只看个“5V”或者“12V”就选了这是不够的。真正要关注的是这四个VRWM反向工作电压这是TVS管正常工作时能承受的最大电压超过这个值TVS管开始轻微漏电。选型时VRWM要大于总线正常工作电压。比如CAN总线的差分电压最大3V左右共模电压范围-2V到7V所以TVS管的VRWM至少要选5V以上。485总线的共模范围是-7V到12VVRWM要选12V以上。VBR击穿电压TVS管开始导通的电压通常是VRWM的1.1到1.2倍。这个值决定了TVS管什么时候开始保护。VC钳位电压TVS管在通过规定电流时的最大电压。这个值必须小于被保护芯片的绝对最大额定电压。比如CAN收发器的总线引脚绝对最大电压通常是-27V到40VTVS管的VC要低于这个值。IPP峰值脉冲电流TVS管能承受的最大脉冲电流。这个值决定了TVS管能吸收多少能量。工业现场建议选IPP在10A以上的静电为主的场合5A左右也够用。下面这张表是我常用的几款TVS管对比型号VRWMVBRVCIPP适用总线PESD1CAN24V26.7V40V3ACANPESD2CAN24V26.7V40V3ACANSM71212V13.3V21V10A485SMBJ5.0A5V6.4V9.2V65A232PESD5V0S1BA5V6.8V12V15A2324.3 CAN和485的TVS管为什么不能混用CAN和485的共模电压范围不一样所以TVS管的选型也不一样。CAN的共模范围通常是-2V到7V485的共模范围是-7V到12V。如果用CAN的TVS管保护485当485总线上出现12V共模电压时TVS管会提前导通把信号钳位掉通信直接失败。反过来用485的TVS管保护CAN虽然不会误动作但485的TVS管VRWM是12VCAN总线上出现7V共模电压时它不导通起不到保护作用。所以CAN和485的TVS管必须分开选型不能混用。232的TVS管又不一样。232的信号电平是±15V所以TVS管的VRWM要选24V以上否则正常通信时TVS管就会导通。但232的接口通常不需要像CAN和485那样强的防护因为232是短距离、点对点通信很少遇到工业现场那种大能量浪涌。4.4 TVS管的布局比选型更重要选对了TVS管布局不对照样没用。TVS管的核心原则是靠近接口走线短而粗。靠近接口的意思是TVS管要放在连接器旁边不能放在收发器芯片旁边。因为浪涌是从接口进来的如果TVS管放在芯片旁边浪涌先经过一段走线再到TVS管这段走线本身就会感应电压芯片可能已经受损了。走线短而粗的意思是TVS管到接口的走线要尽量短线宽要尽量大。短是为了减小寄生电感粗是为了承受大电流。我通常要求TVS管到连接器的走线不超过5mm线宽不小于20mil。还有一个容易被忽略的点TVS管的地线要单独走不能和信号地混在一起。浪涌电流通过TVS管泄放到地时如果地线阻抗大地电位会抬升反而可能干扰其他电路。我一般会在TVS管的地引脚旁边放一个0.1μF的陶瓷电容到信号地给高频噪声一个低阻抗回路。5. 三种总线的完整电路结构对比与实操建议5.1 CAN节点电路收发器、终端电阻、TVS管、共模电感一个完整的CAN节点电路包含这几个部分CAN收发器芯片、终端电阻可切换、TVS管、共模电感、隔离电源可选。收发器芯片负责把MCU的TTL电平转换成CAN差分电平。常用的芯片有TJA1050、TJA1042、SN65HVD230等。选型时要注意供电电压5V还是3.3V、速率高速CAN还是容错CAN、是否支持低功耗模式。终端电阻我通常用两个120Ω电阻串联中间通过跳线或者MOS管切换。这样调试的时候可以灵活选择是否接入终端电阻。如果板子固定在总线末端直接焊一个120Ω也行。TVS管用PESD1CAN或者PESD2CAN放在连接器旁边。共模电感用CAN专用的比如ACT45B-101-2P抑制共模噪声。如果现场干扰特别严重还可以加隔离电源模块比如B0505S把CAN收发器的电源和MCU电源隔离开。5.2 485节点电路自动收发切换与失效保护485节点电路比CAN稍微复杂一点因为485是半双工需要控制收发切换。传统做法是用一个GPIO控制收发器的DE/RE引脚发送时拉高接收时拉低。但这种做法有个问题如果MCU死机或者GPIO状态不确定收发器可能一直处于发送状态把总线拉死。现在很多设计用自动收发切换电路利用发送数据线上的电平自动控制DE/RE。具体做法是把TX线通过一个三极管或者MOS管接到DE/RE发送时TX有跳变自动使能发送发送完成后TX保持高电平自动切换到接收。这种电路我实测过在115200bps下工作稳定省了一个GPIO。失效保护是485电路的另一个重点。当总线空闲或者所有节点都不发送时差分电压应该在200mV以上否则接收器输出不确定MCU会收到乱码。解决办法是在A线上拉一个680Ω电阻到5V在B线下拉一个680Ω电阻到地这样空闲时A比B高接收器输出确定的高电平。TVS管用SM712它的VRWM是12V正好覆盖485的共模范围。同样放在连接器旁边走线短而粗。5.3 232电路电荷泵电容与接口保护的特殊性232电路的核心是电荷泵。232收发器芯片内部有一个开关电容升压电路把5V或3.3V转换成±10V左右。这个电荷泵需要外接4个电容通常是1μF到10μF。电容的材质很重要要用X7R或者X5R的MLCC不能用Y5V因为Y5V的容值随电压变化太大会导致232输出电平不足。232的接口保护相对简单。因为232是短距离通信很少遇到大能量浪涌所以TVS管可以选小一点的比如PESD5V0S1BA。但232接口有一个特殊问题热插拔时电荷泵电容可能反向放电损坏芯片。解决办法是在232输出引脚串联一个100Ω左右的电阻限制反向电流。232接口的公母区分也是新手常问的问题。DB9公头通常用在DTE设备比如电脑母头用在DCE设备比如调制解调器。但实际工程中很多设备不按标准来所以最可靠的方法是看引脚定义232的TX是引脚3RX是引脚2GND是引脚5。用万用表测一下引脚2和3对引脚5的电压负电压的是TX正电压的是RX。6. 实测波形与故障排查从现象反推电路问题6.1 用示波器看CAN波形判断终端电阻是否合适示波器是调试总线最有用的工具。测CAN波形时用差分探头接CAN_H和CAN_L看差分信号的形状。正常的CAN差分波形应该是干净的方波上升沿和下降沿陡峭没有明显的过冲和振铃。如果看到上升沿有台阶说明终端电阻不匹配如果看到明显的振铃说明终端电阻缺失或者阻值不对如果看到波形幅值明显偏低说明总线上并联了太多终端电阻。我一般会测三个位置的波形发送端、中间节点、接收端。如果发送端波形干净接收端波形畸变说明总线中间有问题可能是线缆阻抗不连续或者分支太长。CAN总线的分支长度一般建议不超过0.3米分支太长会引起反射。6.2 485通信不稳定的排查链路485通信不稳定是最常见的问题排查起来有一套固定的链路第一步测总线电阻。断电测A和B之间的电阻正常是60Ω左右。如果不对先解决终端电阻问题。第二步测共模电压。上电但不通信时测A对地和B对地的电压。正常应该在-7V到12V之间。如果超出说明现场接地有问题需要检查地线连接或者加隔离。第三步测差分波形。用示波器看A和B的差分信号正常应该有明显的正负跳变。如果波形幅值小、边沿缓可能是线缆太长、波特率太高或者节点太多。第四步检查收发切换。如果发送时总线有波形接收时没有可能是DE/RE控制逻辑有问题。用示波器同时看TX、DE和A/B确认时序对不对。第五步检查失效保护。总线空闲时测差分电压应该在200mV以上。如果接近0需要加上拉下拉电阻。这套流程我用了很多年基本上能在半小时内定位大部分485通信问题。6.3 232串口好坏的最简测试方法232串口测试最简单的方法是短接引脚2和3用串口助手发数据看能不能收到自己发的数据。如果能收到说明232收发器和线缆都没问题如果收不到再检查电荷泵电容、TVS管和线缆。还有一个方法是测电压。232空闲时TX应该是负电压-5V到-15VRX也是负电压。发送数据时TX电压会在正负之间跳变。用万用表测TX对GND的电压如果一直是0V或者正电压说明电荷泵没工作或者芯片坏了。我遇到过最奇怪的一个232问题是通信时好时坏换线缆也没用。后来用示波器看TX波形发现上升沿有严重的振铃原因是TVS管的寄生电容太大和线缆电容形成了LC振荡。换了一个寄生电容更小的TVS管问题解决。所以232的TVS管选型时除了看VRWM和VC还要看结电容一般要小于50pF。7. 几个容易忽略的细节和我的个人经验7.1 共模电感不是必须的但有时候能救命共模电感在CAN和485电路里经常被忽略。它的作用是抑制共模噪声对差分信号没有影响。在实验室里不接共模电感通常也能通信但在工业现场共模噪声可能大到让收发器误触发。我印象最深的一次是给一个变频器柜做485通信实验室里跑得好好的到现场就频繁丢包。后来在A/B线上加了一个共模电感问题立刻消失。用示波器看现场共模噪声有几十伏的尖峰没有共模电感的话这些噪声会直接进入收发器导致误码。共模电感的选型主要看阻抗和额定电流。CAN和485用的共模电感阻抗一般在100Ω到1000Ω之间额定电流要大于总线的最大电流。我常用的是ACT45B系列体积小效果不错。7.2 隔离电源在什么时候值得加隔离电源不便宜一个B0505S模块要十几块钱加上隔离芯片整个节点的成本可能翻倍。所以不是所有场合都需要隔离。需要隔离的场合总线两端设备的地电位差超过共模范围。比如一端是PLC一端是变频器两者的地可能差几十伏。这种情况下不隔离收发器很快就会被共模电压打坏。不需要隔离的场合所有节点共地地电位差很小。比如一块板子上的多个节点或者同一个控制柜里的设备。判断是否需要隔离可以用万用表测两端设备的地之间的电压。如果超过5V建议加隔离如果超过10V必须加隔离。7.3 接口防护的“三级防护”思路单靠一个TVS管防护能力有限。我通常用三级防护的思路第一级是气体放电管或者压敏电阻放在接口最前端泄放大能量浪涌。气体放电管能承受几千安的浪涌但响应慢而且有续流问题。第二级是TVS管放在气体放电管后面钳位残余电压。TVS管响应快但能量承受能力有限。第三级是限流电阻或者自恢复保险丝放在TVS管和收发器之间限制流过收发器的电流。三级防护配合起来可以承受IEC 61000-4-5标准里的4kV浪涌。当然成本也会增加。对于普通工业场合两级防护TVS管加限流电阻就够了对于户外或者电力行业建议上三级。7.4 我踩过的最大的坑TVS管焊反了TVS管是二极管有极性。虽然它叫“瞬态电压抑制二极管”但本质上还是一个PN结。焊反了的话正常工作时它就是一个正向导通的二极管直接把总线短路。我刚开始做硬件的时候有一次批量生产了100块板子测试时发现485通信全部失败。查了半天最后发现是TVS管的丝印方向搞反了贴片机按照错误的丝印贴全部焊反。100块板子全部返修损失惨重。从那以后我在PCB上画TVS管的时候一定会加一个明显的极性标记而且在BOM里注明“注意方向”。测试的时候第一块板子一定会用万用表测TVS管两端的电阻确认没有短路。7.5 关于匹配电阻和TVS管的最终建议如果你只记一件事记住这个匹配电阻看总线类型和距离TVS管看共模电压和能量等级。CAN和485长距离通信两端各接120Ω短距离低速可以不接。232不需要匹配电阻。TVS管的VRWM要大于总线共模电压VC要小于收发器绝对最大电压IPP要大于预期浪涌电流。布局上TVS管靠近接口走线短而粗地线单独走。最后再分享一个小技巧调试总线的时候先不焊TVS管和匹配电阻等通信跑通了再逐个加上去每加一个测一次波形。这样如果出问题能立刻定位是哪个元件引起的。我这些年一直用这个方法省了很多排查时间。
返回列表