CAN总线接口EMC防护设计:从选型到PCB布局的工程实践
1. 项目缘起与整体设计思路CAN总线在车载、工控、储能这些场景里有多常见做硬件的都懂。但真正让我下定决心把这块EMC防护设计从头到尾梳理一遍的是前两年一个车载项目——实验室里跑得好好的板子装车路试阶段频繁报总线错误最后定位到是CAN接口在整车电磁环境下的抗扰度不够。那次整改前后折腾了快两个月改板、换器件、重做测试代价不小。从那以后但凡涉及CAN接口EMC防护设计我都会当成一个独立课题来对待而不是随便并两颗TVS就完事。这篇文章要聊的就是从零开始把CAN总线接口电路的EMC防护设计做扎实这件事。核心关键词包括CAN总线、EMC防护、接口电路、PCB布局、TVS。我会把方案选型背后的逻辑、器件参数怎么算、PCB怎么摆、实测怎么调全部拆开讲清楚。适合正在做CAN接口硬件设计的工程师也适合想系统理解EMC防护思路的嵌入式开发者。哪怕你之前只画过简单的CAN收发器电路看完也能自己动手把防护做到位。先说整体设计思路。CAN接口的EMC防护本质上要解决三类问题传导骚扰设备产生的噪声顺着线缆传出去、辐射骚扰噪声以电磁波形式辐射出去、抗扰度外部干扰打进来时设备能不能扛住。这三类问题对应的防护手段不一样但落脚点都在接口电路和PCB布局上。我的整体方案是分级防护就近泄放阻抗匹配第一级用共模电感和TVS做粗保护第二级用共模扼流圈和终端电阻做细调同时通过合理的PCB布局把干扰电流的泄放路径缩到最短。为什么这么设计因为CAN总线的差分信号速率虽然不高经典CAN最高1MbpsCAN FD能到5Mbps甚至更高但它的线缆往往很长动辄几米到几十米长线缆既是天线又是耦合路径。如果只在收发器引脚旁边放一颗TVS干扰能量在到达TVS之前就已经耦合进芯片了。所以必须把防护器件放在连接器入口处让干扰在进入板内之前就被泄放掉。这个思路和很多人的直觉相反——不少人习惯把保护器件放在芯片旁边觉得离芯片越近越好但对接口防护来说入口才是第一道防线。另外CAN总线的差分特性决定了防护器件必须成对使用且参数一致。如果两条线上的TVS参数不一致共模干扰就会转化成差模干扰反而恶化信号质量。这一点在后面TVS选型部分会详细展开。2. 核心器件选型与参数计算2.1 TVS管怎么选型从工作电压到钳位电压TVS瞬态电压抑制二极管是CAN接口防护的核心器件选型错了后面全白搭。我见过太多人直接抄参考设计里的型号结果换个应用场景就出问题。TVS选型要盯住四个参数反向工作电压VRWM、击穿电压VBR、钳位电压VC、峰值脉冲功率PPP。先说VRWM。这个电压必须高于CAN总线的正常工作电压范围。CAN_H和CAN_L的共模电压范围在经典CAN里是-2V到7VCAN FD也差不多。所以TVS的VRWM至少要选到24V或以上常见的是24V、26V、27V这几个档位。有人会问CAN差分电压才2V左右为什么VRWM要选这么高因为TVS接在CAN_H对地和CAN_L对地之间它承受的是共模电压不是差分电压。共模电压在故障情况下可能飙到很高VRWM选低了会导致TVS在正常工作时就漏电影响总线通信。再说VBR和VC。VBR是TVS开始导通的电压一般比VRWM高10%左右。VC是TVS在承受峰值脉冲电流时的钳位电压这个值必须低于CAN收发器引脚能承受的最大电压。以常见的TJA1042、TJA1051这类收发器为例引脚绝对最大额定电压通常在-27V到40V左右不同型号有差异查数据手册确认。所以TVS的VC要控制在40V以下留足余量的话最好在35V以内。峰值脉冲功率PPP要根据实际可能遇到的浪涌能量来选。车载环境里ISO 7637-2的脉冲1-100V、脉冲2a50V、脉冲3a/3b-150V/100V是必须考虑的。对于12V系统TVS的PPP一般选400W到600W的SMB或SMC封装就够了。如果是24V系统或者工业环境建议上到1500W的SMC或DO-218封装。这里给一个实际选型的计算示例。假设用TJA1042收发器引脚最大耐压40VCAN总线共模电压范围-2V到7V车载12V系统。选TVS时VRWM ≥ 7V × 1.5安全系数≈ 10.5V但考虑到故障时共模电压可能更高实际选24V更稳妥VBR ≈ 24V × 1.1 ≈ 26.4VVC在峰值电流下要 40V查TVS数据手册24V的SMBJ24A在IPP10A时VC约38.9V勉强够用如果选SMCJ24AVC约38.9V但IPP更大余量更足PPPSMBJ24A是600WSMCJ24A是1500W车载建议选SMCJ24A注意TVS的VC和IPP是关联的数据手册里的VC是在特定IPP下的值。实际浪涌电流可能远大于测试条件所以选型时要留足余量不能只看标称VC。2.2 共模电感与共模扼流圈抑制共模噪声的关键TVS解决的是浪涌和瞬态干扰但CAN总线上的共模噪声是持续存在的尤其是车载环境里电机、继电器、DC-DC这些噪声源。共模电感Common Mode Choke就是用来抑制共模噪声的。共模电感的选型主要看三个参数共模阻抗、额定电流、寄生差模电感。共模阻抗在100MHz下通常选100Ω到1000Ω车载CAN常用的是200Ω到500Ω。额定电流要大于CAN总线的最大工作电流一般CAN收发器的工作电流在几十mA但考虑到短路等故障情况选100mA以上比较稳妥。寄生差模电感越小越好因为差模电感会影响差分信号的完整性一般要求寄生差模电感在共模电感的1%以下。共模电感的位置很关键。我的做法是放在连接器入口和TVS之间或者TVS之后、收发器之前。两种放法各有道理放入口处可以先滤掉一部分共模噪声减轻TVS的压力放TVS之后可以让TVS先泄放掉大能量浪涌保护共模电感不被烧毁。实际项目中我倾向于TVS在前、共模电感在后因为浪涌能量远大于共模噪声让TVS先扛第一波更合理。共模扼流圈和共模电感本质上是同一种东西只是叫法不同。有些设计里会用两颗独立的电感分别串在CAN_H和CAN_L上这种做法我不推荐因为两颗电感的参数很难做到完全一致不一致就会把共模噪声转化成差模噪声。共模扼流圈把两组绕组绕在同一个磁芯上耦合紧密参数一致性好是更可靠的选择。2.3 终端电阻与分裂终端阻抗匹配的细节CAN总线的终端电阻是120Ω这个大家都知道。但在EMC防护设计里终端电阻的接法有讲究。常见的做法是分裂终端两个60Ω电阻串联中间通过一个电容接地。这个电容通常是4.7nF到100nF。分裂终端的好处是为共模噪声提供一个低阻抗的泄放路径。共模噪声在CAN_H和CAN_L上是同相的通过两个60Ω电阻的中点再经过电容到地共模噪声就被旁路掉了。而差模信号在的中点是对称的不会受到影响。这个电容的耐压要足够一般选50V或100V的X7R或C0G材质。终端电阻的功率也要注意。CAN总线在显性状态时终端电阻上会有电流流过。经典CAN的显性差分电压约2V120Ω上的电流约16.7mA功率约33mW。但如果是CAN FD或者故障情况下电流可能更大。所以终端电阻建议选0805或1206封装功率至少0.125W。3. PCB布局与实操要点3.1 接口区域的布局原则让干扰电流走最短路径PCB布局是EMC防护设计里最容易被忽视、也最容易出问题的一环。我见过太多原理图完全正确、但布局一塌糊涂的板子EMC测试照样挂。CAN接口区域的布局核心原则就一条让干扰电流的泄放路径尽可能短且不要经过敏感电路。具体怎么做连接器进来之后TVS必须紧贴连接器放置距离控制在5mm以内。TVS的地引脚要直接打到接口地平面不要通过细长的走线绕到主地。如果TVS离连接器太远干扰在到达TVS之前就已经耦合到板内的其他走线上了。共模电感放在TVS之后同样要靠近连接器。CAN_H和CAN_L的走线要严格等长、等宽、平行走线线间距保持一致。差分对的阻抗控制在120Ω和终端电阻匹配这需要根据叠层来计算线宽和线间距。以常见的四层板为例顶层走线、第二层地平面1.6mm板厚FR4材质差分线宽0.2mm、间距0.2mm时差分阻抗大约在120Ω左右。具体数值要用阻抗计算工具确认。TVS的接地回路要特别注意。TVS泄放浪涌电流时电流从CAN_H经过TVS到地再通过地平面回到连接器的地引脚。这个回路面积越小越好。我的做法是在连接器下方铺一块独立的接口地Chassis GND或PGNDTVS的地引脚直接连到这块地上然后这块地通过单点连接到主地。单点连接的位置通常在连接器附近用一颗0Ω电阻或磁珠连接。这样做的目的是防止接口地的噪声串到主地上去。3.2 差分走线的细节等长、等宽、不跨分割CAN_H和CAN_L的差分走线细节决定成败。等长是基本要求长度差控制在5mil以内。等宽也很重要线宽变化会导致阻抗不连续引起反射。走线要避免跨分割尤其是不要跨过地平面的分割缝。如果差分对必须换层要在换层过孔附近放回流地过孔为返回电流提供通路。差分对的间距要保持一致。有些人为了绕线方便把差分对拆开走这是大忌。差分对拆开后共模噪声抑制能力会大幅下降。如果实在绕不开宁可在差分对内部绕蛇形线也不要拆开。还有一个容易被忽视的点CAN_H和CAN_L的走线不要和电源线、时钟线平行走长距离。如果必须平行要保持足够的间距至少3倍线宽或者在中间加地线隔离。电源线和时钟线是主要的噪声源平行走线会导致容性耦合和感性耦合。3.3 地平面处理接口地与主地的分割与连接地平面处理是CAN接口EMC设计的另一个关键点。我的做法是把接口地和主地分开接口地只负责连接器、TVS、共模电感这些接口器件主地负责收发器和MCU。两块地之间通过单点连接连接点选在收发器的下方或者连接器附近。为什么分割因为接口地是脏地上面有TVS泄放的浪涌电流、共模电感的噪声电流。如果接口地和主地大面积连接这些噪声电流会窜到主地上影响MCU和其他敏感电路。单点连接可以控制噪声电流的流向让它只在接口地内部流动。分割地的宽度要注意。接口地的铜皮要足够宽至少2mm以上保证低阻抗。TVS的地引脚到接口地的连接要短而粗最好用多个过孔并联降低接地阻抗。我通常会在TVS地引脚旁边打4到6个过孔过孔直径0.3mm间距1mm左右。提示地平面分割不是万能的。如果板子空间紧张或者接口电路和主电路离得很近强行分割反而可能引入更大的问题。这种情况下保持完整地平面但把接口器件集中放置、远离敏感电路也是可行的方案。4. 常见问题与排查技巧实录4.1 EMC测试常见失败项与对策CAN接口的EMC测试常见的失败项集中在辐射发射RE和传导发射CE上抗扰度ESD、BCI、浪涌失败也不少。我整理了一个速查表把常见问题、可能原因和排查方向列出来。失败项典型现象可能原因排查方向辐射发射超标30MHz-200MHz频段超标共模电流在电缆上形成天线检查共模电感选型、增加共模扼流圈、优化电缆屏蔽传导发射超标150kHz-30MHz频段超标开关电源噪声通过CAN线传导检查电源滤波、增加共模电感、优化地平面ESD抗扰度失败接触放电±8kV时通信中断TVS响应慢或钳位电压过高换低钳位TVS、缩短TVS接地回路、增加二级防护BCI抗扰度失败100mA注入时误码率升高共模噪声抑制不足增加共模电感阻抗、优化分裂终端电容浪涌抗扰度失败ISO 7637脉冲1/2a后器件损坏TVS功率不足或布局不合理换大功率TVS、优化布局、增加限流电阻辐射发射超标是最常见的。CAN电缆长共模电流在电缆上流动时电缆就成了天线。解决思路是在接口处把共模电流抑制掉。如果共模电感已经加了还是超标可以尝试在电缆上套铁氧体磁环或者改用屏蔽电缆并把屏蔽层在连接器处360度接地。传导发射超标通常和电源有关。CAN收发器的电源引脚要加去耦电容通常是一个100nF和一个10uF并联靠近引脚放置。如果电源噪声还是大可以在电源线上串一个磁珠选100MHz下阻抗600Ω以上的。4.2 实操中踩过的坑与独家技巧第一个坑TVS的寄生电容。TVS的结电容在几十pF到几百pF不等这个电容并联在CAN_H和CAN_L对地之间会影响差分信号的上升沿。如果TVS的寄生电容太大CAN FD的高速率通信会出问题。选TVS时要看结电容参数经典CAN可以放宽到100pF以内CAN FD建议选50pF以下的型号。有些TVS标称是低电容系列结电容只有几pF但价格贵不少按需选择。第二个坑共模电感的饱和。共模电感在通过大电流时会饱和饱和后阻抗急剧下降失去滤波作用。CAN总线的正常工作电流不大但如果TVS泄放浪涌时电流流过共模电感可能瞬间饱和。所以共模电感的额定电流要留足余量至少是正常工作电流的3倍以上。第三个坑终端电阻的布局。终端电阻要放在总线的最远端也就是连接器附近。如果放在收发器旁边而连接器在板子另一头那连接器到终端电阻之间的走线就成了 stub会引起反射。我的做法是把终端电阻放在连接器入口处和TVS、共模电感放在一起。第四个坑分裂终端的电容选型。分裂终端的中点到地的电容选X7R材质的话直流偏压下容量会下降。如果电容容量下降太多共模噪声泄放效果会变差。建议选C0G/NP0材质或者选容量大一点的X7R比如100nF留足余量。第五个坑测试时的接地。做ESD测试时板子的接地方式会影响测试结果。如果板子只通过CAN电缆的地线接地ESD电流会顺着电缆地线流到板子上。测试时要确保板子有独立的接地参考比如通过电源地线接地或者放在接地平面上。4.3 器件替代与降本方案不是所有项目都能用最好的器件。如果成本压力大可以这样降本TVS从SMC封装降到SMB封装但要注意功率余量共模电感从品牌货换成国产替代但要注意阻抗一致性和饱和特性终端电阻从0.1%精度降到1%但分裂终端的两个电阻要配对误差控制在0.1%以内。降本的前提是不影响EMC性能。我的经验是TVS和共模电感这两个器件不能省它们是防护的核心。终端电阻和电容可以适当降本但参数要匹配。如果实在要省宁可省掉共模电感用两颗独立的电感代替但要做好参数匹配——不过这种做法我不推荐风险太大。5. 实测验证与调试记录5.1 测试环境搭建与测试项板子打回来之后先做功能测试确认CAN通信正常。然后用示波器看CAN_H和CAN_L的波形检查上升沿、下降沿、差分电压是否正常。如果波形有振铃或者过冲说明阻抗匹配有问题要检查终端电阻和走线阻抗。EMC测试要在标准实验室做主要测试项包括辐射发射RE、传导发射CE、静电放电ESD、电快速瞬变脉冲群EFT、浪涌Surge、传导抗扰度BCI。车载项目还要做ISO 7637-2的脉冲测试。测试前要准备好测试电缆长度和实际使用一致。电缆的屏蔽层要按实际安装方式接地。测试时板子要放在接地平面上模拟实际安装环境。5.2 调试案例从失败到通过说一个我实际整改的案例。一个车载CAN节点辐射发射在80MHz到120MHz频段超标6dB。排查过程先用近场探头定位噪声源发现是CAN电缆上的共模电流。检查原理图TVS和共模电感都有但布局有问题——TVS离连接器有15mm远共模电感在TVS后面更远。整改措施把TVS移到连接器旁边距离控制在3mm以内共模电感紧跟在TVS后面TVS的地引脚从原来的1个过孔增加到6个过孔接口地和主地的单点连接从0Ω电阻换成磁珠100MHz下600Ω。改板后重测辐射发射余量有4dB通过了。这个案例说明布局比器件选型更重要。同样的原理图布局不同EMC性能可能差很多。TVS离连接器远了干扰在到达TVS之前就已经耦合到板内了TVS再好也没用。5.3 测试数据记录与分析测试数据要详细记录包括频率、幅值、余量、测试条件。比如辐射发射测试要记录每个超标频点的频率、准峰值、限值、余量。传导发射要记录每个频段的电压值。抗扰度测试要记录注入电平、误码率、恢复时间。数据分析时重点关注余量不足的频点。余量小于3dB的频点即使通过了测试量产时也可能因为器件批次差异、电缆长度变化而超标。我的做法是所有频点余量至少留6dB关键频点留10dB。如果某个频点余量不足先看频率对应什么噪声源。比如80MHz到120MHz通常是电缆共模谐振150kHz到30MHz通常是开关电源噪声30MHz到80MHz可能是时钟谐波。定位到噪声源之后再针对性整改。6. 设计检查清单与经验总结6.1 原理图检查清单TVS的VRWM是否高于CAN总线最大共模电压TVS的VC是否低于收发器引脚最大耐压TVS的结电容是否满足通信速率要求共模电感的共模阻抗、额定电流、寄生差模电感是否合适终端电阻是否为120Ω分裂终端的两个电阻是否配对分裂终端的电容材质是否为C0G/NP0容量是否足够收发器的电源引脚是否有去耦电容容量和位置是否合理6.2 PCB布局检查清单TVS是否紧贴连接器放置距离是否在5mm以内TVS的地引脚是否直接连到接口地过孔数量是否足够共模电感是否靠近连接器是否在TVS之后CAN_H和CAN_L是否等长、等宽、平行走线差分对是否跨分割换层时是否有回流地过孔接口地和主地是否单点连接连接位置是否合理终端电阻是否放在连接器附近接口区域是否远离时钟线、电源线等噪声源6.3 个人经验总结做了这么多CAN接口的EMC设计我最大的体会是防护器件的选型只是基础布局才是决定成败的关键。同样的TVS和共模电感布局合理能过布局不合理就挂。TVS离连接器的距离、接地回路的大小、差分对的走线质量这些细节比选什么型号的TVS重要得多。另一个体会是EMC设计要趁早。不要等板子打回来测试失败了再整改那时候改布局的成本很高。原理图设计阶段就要把防护方案定下来PCB布局阶段就要把接口区域规划好。我现在的习惯是画原理图的时候就把接口区域的布局草图一起画了确认器件摆放和走线路径没问题再开始正式布局。最后分享一个小技巧在接口区域预留一些调试用的焊盘。比如在TVS旁边预留一个0Ω电阻的位置方便调试时断开或更换TVS在共模电感旁边预留磁珠的位置方便调整滤波参数。这些预留的焊盘在调试阶段能省很多事不用飞线就能快速验证不同方案。这个内容后续还可以这样扩展如果项目涉及CAN FDTVS和共模电感的选型要重新评估因为CAN FD的速率更高对寄生电容和阻抗匹配更敏感。另外如果项目是隔离CAN隔离器件的选型和布局又是另一套思路隔离器的电源和信号隔离要做好否则隔离效果会打折扣。