news 2026/7/31 10:19:04

从经典CAN到CAN FD:总线协议核心原理、演进对比与工程实践全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从经典CAN到CAN FD:总线协议核心原理、演进对比与工程实践全解析

1. 项目概述:从经典CAN到CAN FD的演进之路

如果你在汽车电子、工业控制或者机器人领域摸爬滚打过,那么“CAN总线”这个词对你来说,熟悉得就像吃饭喝水一样。它就像设备之间沟通的“普通话”,从车窗升降、仪表盘显示,到发动机控制,无处不在。但不知道你有没有遇到过这样的困扰:当需要传输的数据量越来越大,比如高清环视摄像头的数据、复杂的电池管理信息,或者自动驾驶传感器融合的海量数据时,传统的CAN总线就像一条双向两车道的乡村公路,突然要承载国庆高速的车流,瞬间就堵得水泄不通,带宽严重不足。这时候,CAN FD(CAN with Flexible Data-Rate)就登场了,它相当于在原有公路基础上,拓宽了车道,并且允许在车流稀疏的路段提速行驶,从而大幅提升了通行效率。今天,我就结合自己这些年调试各种车载网络和工控设备的经验,带你彻底搞懂CAN和CAN FD总线协议,从最底层的帧结构、通信机制,到实际应用中的选型考量、配置要点和避坑指南,让你不仅知道它们是什么,更明白在什么场景下该用谁,以及怎么用好它们。

2. CAN总线协议核心原理深度拆解

2.1 CAN总线的设计哲学与核心机制

CAN(Controller Area Network)总线诞生于上世纪80年代,由博世公司为汽车电子系统量身打造。它的设计初衷非常明确:在复杂的电磁环境下,实现多个电子控制单元(ECU)之间可靠、实时、低成本的数据通信。其核心设计哲学可以概括为“多主、广播、事件触发、优先级仲裁”。

多主与广播:这意味着总线上没有传统意义上的“主机”和“从机”。任何一个节点都可以在总线空闲时主动发起通信,发送的消息会被总线上所有其他节点接收到。每个节点通过报文标识符(ID)来判断这个消息是否与自己相关。这种设计极大地提高了系统的灵活性和可靠性,任何一个节点的故障不会导致整个网络瘫痪。

非破坏性位仲裁:这是CAN总线最精妙的设计之一,解决了多节点同时想发言时的“撞车”问题。CAN总线采用“线与”机制,显性位(逻辑0)可以覆盖隐性位(逻辑1)。在报文帧起始后,紧接着就是仲裁场(标识符ID)。各节点同时发送自己的ID位,从最高位开始逐位比较。如果某个节点发送了隐性位(1),但监听到总线上是显性位(0),它就会立刻退出发送,转为接收模式,而发送显性位的节点则继续发送,毫无延迟地赢得总线使用权。这个过程是在硬件层面实时完成的,保证了高优先级(ID数值小,因为0是显性)的报文总能优先发送,实现了确定的实时性。

错误检测与处理机制:CAN总线以其强大的容错能力著称。它内置了多种错误检测机制:

  • CRC校验:对数据场进行循环冗余校验,接收节点会自行计算并与发送方提供的CRC序列对比。
  • 帧检查:检查帧格式是否符合标准,如固定的帧起始、帧结束位等。
  • 应答错误:发送节点会在ACK槽期待一个显性位作为应答,如果没收到,则认为传输失败。
  • 位填充:为防止长时间电平不变导致同步丢失,CAN协议规定,在帧起始、仲裁场、控制场、数据场和CRC场,每连续出现5个相同极性的位后,必须插入一个极性相反的位(位填充)。接收方会删除这些填充位。这本身也是一种错误检测手段,如果接收到连续6个相同极性的位,则视为“位填充错误”。

每个CAN控制器内部都有两个错误计数器:发送错误计数器(TEC)和接收错误计数器(REC)。根据错误类型和严重程度,计数器会增减。当计数器超过一定阈值,节点会依次进入“错误被动”状态(只能发送被动错误帧)和“总线关闭”状态(自动与总线隔离),这种分级机制防止了单个故障节点拖垮整个网络。

2.2 经典CAN帧格式详解与实战解析

理解帧格式是进行报文分析和故障诊断的基础。经典CAN有数据帧远程帧两种主要帧类型,数据帧用于携带数据,远程帧用于请求具有相同ID的数据帧。这里我们重点剖析最常用的数据帧。

一个标准数据帧(11位标识符)的结构如下,我们可以把它想象成一封格式严谨的电报:

  1. 帧起始(SOF):1个显性位(0),标志着总线空闲结束,一帧开始。所有节点据此进行硬同步。

  2. 仲裁场

    • 标识符(ID):11位。这不仅是报文的“名字”,更决定了其优先级。ID值越小,优先级越高。因为它决定了仲裁胜负。
    • 远程传输请求位(RTR):1位。在数据帧中,此位为显性(0)。
  3. 控制场

    • 标识符扩展位(IDE):1位。标准帧中为显性(0)。
    • 保留位(r0):1位,必须为显性(0)。
    • 数据长度码(DLC):4位。表示后续数据场的字节数,范围为0-8。注意,即使DLC=0,数据场不存在,CRC计算仍会包含DLC。
  4. 数据场:0-8字节的实际应用数据。这是用户真正关心的有效载荷。

  5. CRC场

    • CRC序列:15位,由除帧起始、仲裁场、控制场、数据场、CRC场及ACK场之外的部分计算得出。
    • CRC界定符:1个隐性位(1),用于分隔。
  6. 应答场(ACK)

    • ACK槽:1位。发送节点在此发出隐性位(1)。所有正确接收到该帧的节点(无论ID是否匹配),都会在此时刻向总线发送一个显性位(0)作为应答。
    • ACK界定符:1个隐性位(1)。
  7. 帧结束(EOF):7个连续的隐性位(1)。

实操心得:在调试CAN网络时,我习惯先用CAN分析仪(如PCAN、周立功CAN卡)抓取原始报文。看到一长串十六进制数不要慌,对照这个帧结构去拆解。例如,一帧标准数据帧的原始数据可能是02 01 00 00 00 00 00 00(假设)。你需要结合分析软件设定的显示格式(标准帧ID通常是11位,显示为3位十六进制数),先确认ID,再根据DLC找到数据部分。很多通信问题,比如节点无应答,往往就是ACK环节出了问题,这时抓取到的帧在ACK槽位会是隐性位,而不是显性位。

2.3 CAN总线物理层与组网实战要点

协议栈再完美,也需要物理层作为基石。CAN物理层主要涉及传输介质信号电平拓扑结构

  • 传输介质:最常用的是双绞线(CAN_H和CAN_L),利用差分信号传输来抵抗共模干扰。这也是为什么CAN线需要绞合在一起的原因。
  • 信号电平:采用ISO 11898-2标准(高速CAN)。总线空闲时,CAN_H和CAN_L电压均为2.5V左右(隐性,逻辑1)。当发送显性位(逻辑0)时,CAN_H拉高至约3.5V,CAN_L拉低至约1.5V,形成约2V的差分电压。
  • 拓扑结构:典型为总线型拓扑。两个末端必须各接一个120欧姆的终端电阻,用以阻抗匹配,消除信号反射。这是新手最容易忽略和出错的地方!

组网配置核心参数

  • 波特率:常见的速率有125kbps、250kbps、500kbps、1Mbps。速率越高,通信距离越短(1Mbps时典型距离约40米)。选择时需在实时性要求和布线长度间权衡。
  • 采样点:指在一位时间内,控制器采样总线电平的时刻。通常设置在一位时间的75%-90%处。设置合理的采样点对通信稳定性至关重要,尤其是在长距离或节点数多的情况下。采样点过早容易受到信号边沿抖动影响,过晚则可能错过稳定的电平。

避坑指南:在一次工业现场调试中,我们遇到了间歇性通信错误。排查了软件配置、节点电源后一无所获。最后用示波器查看总线波形,发现信号边沿有过冲和振铃。问题根源竟然是:总线上有四个节点,工程师在每个节点电路板上都预留了120欧姆终端电阻的焊盘,结果有两个节点误焊上了电阻,导致总线上实际有3个120欧姆电阻并联,等效电阻约40欧姆,严重失配。拆除多余的终端电阻后,通信立即恢复正常。切记:一条总线上,有且只能有两个120欧姆终端电阻,通常位于总线物理距离的两端。

3. CAN FD总线协议:性能跃迁的技术实现

3.1 CAN FD诞生的背景与核心改进

随着汽车电子架构从分布式向域控制、中央计算演进,ECU之间需要交换的数据量呈指数级增长。经典CAN最大8字节的数据场和最高1Mbps的速率成为了瓶颈。CAN FD在完全兼容经典CAN数据帧格式的基础上,引入了两大核心改进:

  1. 可变速率(Flexible Data-Rate):一帧报文可以有两种比特率。从帧起始到BRS(Bit Rate Switch)位之前,使用标准的仲裁段波特率(最高1Mbps,与经典CAN相同);从BRS位之后到CRC界定符之前,切换到更高的数据段波特率(最高可达5Mbps,甚至根据ISO 11898-2:2016,可达8Mbps以上)。这种设计非常聪明:仲裁阶段用较低速率保证了在复杂网络中的可靠仲裁和兼容性;一旦赢得总线,在传输大量数据时切换到高速率,显著缩短了报文传输时间。

  2. 扩展的数据场长度:数据场长度从经典的0-8字节,扩展到了0-64字节(由DLC编码表示)。这意味着单帧报文可以携带多达8倍的数据量,极大地提高了协议效率,减少了因数据分包带来的协议开销和延迟。

3.2 CAN FD帧格式变化与兼容性解析

CAN FD帧在经典CAN数据帧的基础上做了几处关键改动,以支持新特性,同时保持后向兼容性(一个纯经典CAN控制器收到CAN FD帧时,会将其视为错误帧,但不会破坏总线)。

我们来看一个CAN FD数据帧的关键字段:

  1. 仲裁场和控制场前半部分:与经典CAN帧几乎相同(SOF, ID, RTR, IDE)。对于使用11位标准ID的CAN FD帧,IDE位之后紧跟替代远程请求位(FDF),此位为隐性(1),用于宣告这是一个FD帧。经典CAN帧的r0保留位在这里被重新定义为位速率转换位(BRS)。BRS为显性(0)表示不切换速率,为隐性(1)表示在BRS位之后切换到更高的数据段波特率。

  2. 新的控制场

    • ESI(错误状态指示位):发送节点的错误状态(主动错误/被动错误)。
    • DLC:4位,但编码方式扩展了。0-8对应0-8字节(与经典CAN相同),9-15则对应12, 16, 20, 24, 32, 48, 64字节。这是CAN FD能传输更多数据的关键。
  3. 数据场:长度根据DLC变化,最多64字节。

  4. CRC场:由于数据长度可变且可能很长,CAN FD采用了更强大的CRC算法(CRC多项式从15位增加到17位或21位),并且增加了一个Stuff Count字段和对Stuff位的CRC计算,进一步提升了长数据帧在高速率下的错误检测能力。

  5. ACK场与帧结束:与经典CAN相同。

注意事项:CAN FD的兼容性是“消极兼容”。经典CAN节点无法正确解析CAN FD帧,会报格式错误。因此,在混合网络中,如果不想升级所有节点,必须确保经典CAN节点和CAN FD节点使用不同的报文ID段,或者通过网关进行协议转换。同时,CAN FD帧由于数据段速率高,对物理层(线缆质量、连接器、拓扑)的要求比经典CAN更为苛刻。

3.3 CAN FD的物理层挑战与布线建议

当数据段速率提升到2Mbps、5Mbps甚至更高时,信号完整性问题变得异常突出。此时,总线已不再是“电气连接”,而是需要作为“传输线”来对待。

  • 信号反射与阻抗匹配:高速信号在阻抗不连续点(如分支、连接器)会发生反射,造成波形畸变。除了两端必须的120欧姆终端电阻,还需要尽量减少总线上的分支(Stub),理想情况是单一菊花链。如果必须分支,分支长度应尽可能短(建议小于0.3米,且速率越高要求越严格)。
  • 线缆选择:推荐使用特性阻抗为120欧姆的专用CAN FD双绞线缆,例如遵循ISO 11898-2:2016标准的线缆。普通的网线(双绞线)虽然阻抗接近,但未必能满足高速CAN FD对衰减和时延对称性的要求。
  • 节点电容:每个CAN节点的收发器接口都会给总线带来容性负载。过多的节点电容会减缓信号边沿,限制最高通信速率和距离。在规划高速CAN FD网络时,需要核算总负载电容。

实战配置建议: 对于一个新的CAN FD网络设计,建议遵循以下步骤:

  1. 确定需求:明确最高数据段波特率(如2Mbps)、网络最大长度、节点数量。
  2. 选择线缆:根据速率和长度选择符合标准的专用线缆。
  3. 设计拓扑:优先采用线性总线(菊花链)拓扑,避免星型或复杂树型拓扑。如果必须分支,严格控制分支长度。
  4. 计算采样点:CAN FD工具(如Vector的CANoe)通常提供采样点计算器。你需要输入波特率、晶振容差、总线长度等参数,计算出合适的采样点。数据段的采样点设置通常比仲裁段更关键。
  5. 预留测试点:在系统设计时,就在总线关键位置(如主干中点、远端)预留测试接口,方便日后用示波器或网络分析仪进行信号质量测量。

4. CAN与CAN FD的对比选型与开发要点

4.1 技术参数对比与场景化选型指南

选择CAN还是CAN FD,不是一个单纯的技术竞赛,而是一个基于具体需求的系统工程决策。下表列出了核心对比维度:

特性维度经典CAN (ISO 11898-2)CAN FD (ISO 11898-2:2016)选型考量
最大数据长度8 字节64 字节是否需要单帧传输大量数据?如传输图像特征点、配置参数块、诊断数据。
最大比特率1 Mbps (仲裁与数据段相同)仲裁段:≤1 Mbps;数据段:≤5 Mbps (常见) 或更高对网络吞吐量和实时性要求多高?计算总线负载率。经典CAN在500kbps下传8字节约需0.26ms,CAN FD在2Mbps数据段下传64字节约需0.33ms,吞吐量提升显著。
协议效率较低,固定开销大高,尤其对于长数据,开销占比小网络带宽是否紧张?在需要传输大量小包或少量大包时,CAN FD效率优势明显。
兼容性广泛兼容,生态成熟需硬件支持,与经典CAN节点共存需隔离或网关现有节点升级成本与复杂度?新旧系统混合阶段如何过渡?
物理层要求相对宽松,容错性强非常严格,对线缆、拓扑、终端匹配敏感布线环境如何?长距离、多分支、强干扰环境不适合高速CAN FD。
成本控制器、收发器成本低控制器、收发器成本较高,对PCB设计也有要求项目预算是否敏感?

场景化选型建议

  • 坚持使用经典CAN:车身控制(BCM、门窗、座椅)、低端仪表盘、简单的工业传感器网络等。这些场景数据量小(几个字节)、实时性要求中等、成本敏感,且已有成熟稳定的经典CAN方案。
  • 强烈建议升级至CAN FD
    • 智能驾驶域:雷达、摄像头、域控制器之间的原始数据或特征数据传递。
    • 新能源三电系统:电池管理系统(BMS)中大量电芯的电压、温度数据上报。
    • 高端网关/中央计算单元:需要聚合和转发多个子网的海量数据。
    • 需要高带宽诊断刷写:使用DoIP或基于CAN FD的增强型诊断,可大幅缩短ECU软件刷写时间。
  • 混合网络策略:在过渡期,可以通过网关隔离经典CAN网络和CAN FD网络。经典CAN子网处理传统车身信号,CAN FD主干网处理高性能数据。这是当前很多车型采用的架构。

4.2 控制器配置与软件开发核心步骤

无论是经典CAN还是CAN FD,在嵌入式软件层面的开发流程相似,但配置细节有差异。以常见的ARM Cortex-M系列MCU(如STM32)集成CAN FD控制器为例:

  1. 硬件与引脚初始化:配置MCU时钟,使能CAN控制器所在的外设总线时钟(如APB1)。配置CAN_RX和CAN_TX引脚为复用功能模式(Alternate Function),并通常设置为高速推挽输出(对于TX)和上拉输入(对于RX)。

  2. 控制器工作模式配置

    • 初始化模式:进入此模式以配置关键参数。设置CANx->MCR寄存器,进入初始化。
    • 位时序配置(最关键):这是通信稳定的基石。需要配置CANx->BTR(经典CAN)或CANx->NBTPCANx->DBTP(CAN FD)寄存器。
      • 参数计算:位时间被划分为同步段(Sync_Seg)、时间段1(BS1)和时间段2(BS2)。波特率 = 时钟频率 / (Prescaler * (Sync_Seg + BS1 + BS2))采样点 = (Sync_Seg + BS1) / (Sync_Seg + BS1 + BS2)。通常使用厂商提供的配置工具(如STM32CubeMX)自动计算,但理解原理有助于调试。
      • CAN FD特别注意:需要分别配置正常比特率(Nominal Bit Rate,即仲裁段)和数据比特率(Data Bit Rate)。两者的预分频器、时间段长度可能不同。
  3. 过滤器配置:CAN控制器通常提供一组报文过滤器(Identifier Filter),用于硬件过滤无关报文,减轻CPU中断负担。可以配置为标识符列表模式或掩码模式。例如,只接收ID为0x100-0x1FF的报文。

  4. 中断配置:使能所需的中断,如发送中断、接收FIFO中断、错误中断等。在中断服务程序中,及时读取接收邮箱或处理发送完成事件。

  5. 报文发送流程

    • 检查是否有空闲的发送邮箱(CAN_TSR寄存器)。
    • 填充发送邮箱:设置标识符(CAN_TIxR)、数据长度码DLC(CAN_TDTxR)、数据(CAN_TDLxR,CAN_TDHxR)。
    • 对于CAN FD帧,还需设置FDFBRS等标志位(通常在标识符寄存器扩展位中)。
    • 请求发送(设置CAN_TIxR中的TXRQ位)。
  6. 报文接收流程

    • 通常通过中断方式。在接收中断中,判断是哪个FIFO(FIFO0或FIFO1)有数据。
    • 从相应的CAN_RFxR寄存器读取标识符、DLC和数据。
    • 对于CAN FD,同样需要读取帧类型标志位。
    • 释放该FIFO邮箱(CAN_RFxR中的RFOM位),以便接收新报文。

开发避坑:在配置CAN FD数据段波特率时,我曾踩过一个坑。当时MCU的主时钟是80MHz,我试图配置5Mbps的数据段波特率。计算出的预分频器和时间段参数在理论上是成立的,但实际通信极不稳定。后来发现,该型号MCU的CAN FD内核时钟(fdcan_ker_ck)并不是直接来自系统主频,而是经过了一个可配置的分频器。我没有正确配置这个内核时钟源,导致实际用于数据段波特率计算的时钟频率远低于预期,配置的参数自然不对。教训:仔细阅读数据手册中关于时钟树的描述,确保用于CAN FD位时间计算的时钟频率是你认为的那个值。

4.3 测试验证与网络管理要点

开发完成后, rigorous的测试是保证质量的关键。

  1. 基础通信测试:使用两个节点或一个节点自发自收(Loopback模式),测试基本收发功能。验证不同ID、不同DLC、不同数据的报文能否正确收发。

  2. 压力与容错测试

    • 总线负载测试:使用工具(如CANoe的IG模块)持续以高负载(如70%,90%)向总线发送报文,观察被测节点是否会出现丢帧、错误帧激增或BusOff。
    • 错误注入测试:主动注入错误,如格式错误、CRC错误、应答错误,验证节点的错误计数和状态机转换(主动错误 -> 被动错误 -> BusOff -> 恢复)是否符合ISO 11898-1标准。
    • 物理层压力测试:在极限温度下测试通信;人为制造短路、开路、电源波动等故障,观察系统的恢复能力。
  3. 网络管理:对于需要休眠和唤醒的汽车网络,通常需要实现网络管理(如AUTOSAR NM、OSEK NM)。这涉及到周期性地发送/接收网络管理报文,协调整个网络的休眠与唤醒状态。即使你的应用简单,也需要规划好上下电时序,避免出现“幽灵唤醒”(某个节点异常导致整个网络无法休眠)的问题。

  4. 诊断功能:基于UDS(Unified Diagnostic Services)协议实现诊断是汽车电子的标配。你需要实现诊断服务,并通过CAN TP(Transport Protocol)层来处理长消息的分包与重组。CAN FD的出现,使得单帧诊断响应可以携带更多数据(如读取DTC信息),或者通过更快的波特率提升刷写效率。

5. 常见问题排查与性能优化实战

5.1 通信故障排查清单与信号测量

当CAN网络出现通信异常时,系统化的排查至关重要。以下是我总结的排查清单:

现象可能原因排查工具与方法
所有节点都无法通信1. 总线供电异常(终端电阻无电源)
2. 总线短路(CAN_H对CAN_L、对电源、对地)
3. 终端电阻缺失或阻值错误
万用表测量总线电阻(应≈60欧姆)、对地/电源电压。示波器看波形。
部分节点通信异常1. 异常节点电源不稳
2. 异常节点收发器故障
3. 异常节点软件配置错误(波特率、采样点)
4. 总线分支过长,信号反射
逐一断开异常节点测试。用示波器在异常节点处测量波形。核对配置。
间歇性错误帧1. 总线负载过高,仲裁失败频繁
2. 电磁干扰(EMI)
3. 接地不良,共模干扰大
4. 采样点设置不合理
CAN分析仪统计错误帧类型和频率。示波器观察错误帧出现时的波形和电源纹波。检查接地。
特定ID报文丢失1. 发送该ID的节点软件故障
2. 接收节点过滤器配置错误,将其过滤
3. 总线冲突,该ID优先级低,长期无法赢得仲裁
确认发送节点是否在持续发送。检查接收节点过滤器设置。分析总线负载和报文序列。
CAN FD数据段错误率高1. 数据段波特率设置过高,信号质量差
2. 线缆或连接器不满足高速要求
3. 拓扑结构不合理,分支多
4. 节点电容过大
重点用示波器测量数据段波形!检查上升/下降时间、过冲、振铃。降低数据段波特率测试。优化拓扑。

示波器测量技巧: 将示波器通道1和2分别接CAN_H和CAN_L,使用数学函数计算通道1-通道2,得到差分信号。观察:

  • 隐性/显性电平:是否稳定在0V和2V左右?
  • 边沿质量:是否陡峭?有无明显的圆角或台阶?
  • 过冲与振铃:在电平转换后,是否有振荡?振荡幅度和衰减如何?
  • 位宽度:测量一位的时间,反算实际波特率是否与配置相符。

5.2 总线负载计算与实时性优化

总线负载率是评估网络健康度和预测实时性的关键指标。计算公式为:总线负载率 = (所有报文传输时间总和 / 统计时间窗口) * 100%其中,单帧报文传输时间 = 帧位数 / 波特率。

对于经典CAN标准数据帧,最小帧为44位(数据场0字节),最大帧为108位(数据场8字节,带位填充最坏情况)。对于CAN FD帧,位数计算更复杂,需考虑仲裁段、数据段不同波特率以及新的位填充规则。

优化策略

  1. 减少不必要报文:审查网络设计,移除周期性但内容很少变化的报文,或改为事件触发。
  2. 优化报文周期:在不影响功能的前提下,适当降低非关键报文的发送频率。
  3. 合并数据:将多个关联性强的信号打包到同一帧报文中,减少帧头开销。CAN FD的大数据场为此提供了便利。
  4. 合理分配ID优先级:确保实时性要求最高的报文拥有最小的ID(最高优先级)。
  5. 使用CAN FD:这是最根本的提升吞吐量和效率的方法。在相同物理负载率下,CAN FD能传输的有效数据量远大于经典CAN。

5.3 电磁兼容性设计与PCB布局建议

稳定的CAN通信离不开良好的硬件设计。

  • 收发器选型:选择符合ISO 11898-2(高速)或ISO 11898-3(容错)标准的收发器芯片。注意其共模输入电压范围、静电防护等级(ESD)和待机功耗。
  • 电源与去耦:为CAN收发器提供干净、稳定的电源。在VCC和GND引脚附近放置一个0.1μF和一个1-10μF的陶瓷电容,以滤除高频和低频噪声。
  • 信号走线
    • CAN_H和CAN_L应作为差分对走线,保持平行、等长、紧密耦合,阻抗控制在120欧姆左右。
    • 远离高频噪声源(如时钟线、开关电源)。
    • 走线避免锐角,使用圆弧或45度角。
  • 隔离设计:在工业或汽车等恶劣电气环境中,建议使用隔离型CAN收发器或外加数字隔离器(如ADI的ADM3053,TI的ISO1042),以切断地环路,提高抗共模干扰能力。隔离电源的选择同样关键。
  • 保护电路:在总线入口端,可以添加TVS管(如SMBJ系列)进行浪涌防护,串联共模扼流圈(CMC)抑制共模干扰,并可选择添加ESD保护二极管。

最后,我想分享一个深刻的体会:CAN总线协议的精髓在于其简洁而鲁棒的分布式通信机制。无论是经典的CAN还是增强的CAN FD,其核心价值都在于为嵌入式系统提供了一个可靠的“对话”平台。在实际项目中,协议本身只是骨架,真正的挑战往往来自于物理层的信号完整性、网络拓扑的合理性以及各节点软件行为的协调性。多动手测量波形,善用分析工具解读数据链路层的信息,严谨地对待每一个终端电阻和每一厘米的走线,你才能真正驾驭这条“总线”,构建出稳定可靠的通信网络。从经典CAN到CAN FD的升级,不仅是速率的提升,更是对开发者系统工程能力的一次考验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 10:18:10

如何查串口日志

USB 属性(要留意) sys.usb.config adb persist.sys.usb.config adb vendor.usb.acm_enable 1 vendor.usb.acm_port0 2 ttyGS2 能建出来,说明 vendor 侧 ACM gs2 已开。 但对 Host 暴露的是否包含 CDC 串口,不能只看 sys.usb.c…

作者头像 李华
网站建设 2026/7/31 10:13:07

PCB干膜工艺全解析:从原理到实战,掌握图形转移核心技术

1. 从“湿”到“干”:干膜工艺为何成为PCB制造的基石在PCB(印制电路板)行业里摸爬滚打十几年,亲眼见证了生产工艺的迭代。如果说有什么技术是让PCB从“手工作坊”迈向“精密制造”的关键一步,干膜(Dry Film…

作者头像 李华
网站建设 2026/7/31 10:12:08

Python医药数据处理实战:Pandas与NumPy数据清洗与预处理指南

1. 项目概述:当医药数据遇上Python 如果你正在学习Python,或者你的专业恰好与医药、生物、公共卫生相关,那么“以医药数据处理为例”这个切入点,绝对能让你眼前一亮。这不仅仅是又一本枯燥的编程教材,而是一座连接抽象…

作者头像 李华
网站建设 2026/7/31 10:11:00

大模型智能体——从模块化架构到自主协作

具身智能学习路径小白入门具身智能学习路径https://mp.weixin.qq.com/s/rh4nN-KCYCECIyH32d8rhQ RAG与知识工程方法知识工程学习方法 源自:Tsinghua Science and Technology 作者: 秦川、金龙等 大模型的发展推动人工智能迎来范式变革,催生…

作者头像 李华
网站建设 2026/7/31 10:08:47

「大模型运维」池化混部和共享混部区别和关系

共享混部 vs 池化混部:定义、区别、内在关系 一、基础定义 1. 共享混部(单卡/单机本地共享) 核心:单张GPU/单台机器内部,多任务/多模型并行占用同一份硬件资源 只局限单机内资源复用,不跨服务器调度: 同卡多模型混部:一张GPU同时跑多个推理服务(如ToB文生图、告警分…

作者头像 李华