1. 为什么CAN采样点不是“随便设个值就行”的参数在汽车电子、工业控制和嵌入式通信领域CAN总线至今仍是不可替代的骨干通信协议。但凡做过CAN通信开发或测试的人几乎都经历过这样的场景硬件电路完全照着参考设计搭好收发器型号、终端电阻、PCB走线长度也都核对无误可一上电节点间就是无法稳定通信——报文大量丢帧、错误帧频繁触发、甚至直接进入总线关闭Bus Off状态。这时候工程师第一反应往往是查硬件、换芯片、抓波形、看示波器……折腾半天后最后发现问题根源竟藏在一个看似不起眼、文档里常被一笔带过、配置界面里只占一行的小参数上采样点Sample Point。它不是波特率那种宏观指标也不是ID或DLC那种报文字段而是一个精确到纳秒级的时序控制点决定了CAN控制器在每一位时间槽Bit Time内究竟在哪一个瞬间去“读取”总线上的电平状态。这个点选得准不准直接关系到能否在信号最稳定、噪声干扰最小的窗口期完成采样。它就像高速公路上的ETC闸口——闸口开得太早车还没完全驶入识别区开得太晚车尾已经离开识别必然失败。而CAN采样点就是这个“闸口开启时刻”在每一位时间槽中的精确坐标。更关键的是这个坐标不是固定不变的。它受制于物理层的诸多变量线缆长度带来的信号传播延迟、收发器驱动能力与上升/下降时间、终端匹配质量、甚至PCB布线的阻抗连续性。这些因素共同导致信号边沿发生畸变、振铃或延迟使得理想的方波变成带有过冲、下冲和拖尾的复杂波形。如果采样点恰好落在这些畸变区域哪怕只偏移几个纳秒就可能把高电平误判为低电平或者反之从而引发位错误Bit Error最终演变为CRC错误、格式错误乃至整个网络的通信崩溃。所以采样点绝非一个可以“默认填0.875”就万事大吉的配置项。它是一个需要与物理链路特性深度耦合、必须通过实测验证才能最终敲定的核心时序参数。尤其在CAN FDFlexible Data-rate时代数据段波特率可高达5Mbps甚至8Mbps每一位时间槽被压缩到200ns以内此时采样点的容错窗口被急剧收窄其重要性更是呈指数级放大。一个在经典CAN1Mbps下表现良好的采样点配置在CAN FD数据段5Mbps下很可能完全失效。这正是为什么所有主流汽车电子供应商如Vector、Kvaser、Peak的CAN分析仪和测试套件中“采样点测试”都是一个独立且强制的验证环节——它不是锦上添花而是通信可靠性的生死线。2. 采样点的本质从CAN协议规范到硬件时序实现要真正理解采样点必须穿透协议栈的抽象层直抵CAN控制器内部的时序生成逻辑。CAN协议本身ISO 11898-1并未规定具体的硬件实现方式但它严格定义了“位时间Bit Time”的结构而采样点正是这个结构中的一个关键锚点。2.1 位时间的四段式解构同步段、传播段、相位缓冲段1与2CAN控制器将每一位时间槽划分为四个逻辑段每个段由若干个“时间量子Time Quantum, Tq”组成。Tq是CAN控制器内部最基本的时钟单位其长度由系统主时钟如40MHz经预分频器Prescaler分频后得到。例如若主频为40MHz预分频器设为5则Tq 5 / 40MHz 125ns。同步段Sync Seg固定为1个Tq用于硬同步Hard Sync和重同步Resync。当总线检测到从隐性Recessive到显性Dominant的跳变沿时控制器会在此段强制将内部位时间计数器清零实现与总线信号的对齐。这是所有位时间的起点。传播段Prop Seg用于补偿信号在物理总线上的传播延迟。其长度需大于信号在最长总线距离上传播所需的时间通常按200ns/m估算。例如对于20米长的总线传播延迟约为4000ns若Tq125ns则Prop Seg至少需32Tq。该段长度一旦设定在通信过程中不可动态调整。相位缓冲段1Phase Seg1位于传播段之后同步段之前。它的核心作用是吸收因晶振误差、温度漂移等引起的位时间微小偏移。当发生重同步时控制器可通过延长Phase Seg1来“拉长”当前位时间以追赶稍慢的总线信号。相位缓冲段2Phase Seg2位于同步段之后是采样点实际所在的区域。它的长度决定了采样点距离位时间起点的绝对位置。当发生重同步时控制器可通过缩短Phase Seg2来“缩短”当前位时间以追赶稍快的总线信号。整个位时间Bit Time的总长度为Bit Time (Sync Seg Prop Seg Phase Seg1 Phase Seg2) × Tq。而采样点Sample Point的数学定义就是从位时间起点Sync Seg开始到Phase Seg1结束即Phase Seg2开始这一时刻所占位时间的百分比采样点 (Sync Seg Prop Seg Phase Seg1) / (Sync Seg Prop Seg Phase Seg1 Phase Seg2)由于Sync Seg恒为1Tq该公式可简化为采样点 (1 Prop Seg Phase Seg1) / (1 Prop Seg Phase Seg1 Phase Seg2)这个公式揭示了一个根本事实采样点不是一个孤立的数值而是四个可配置参数Prop Seg, Phase Seg1, Phase Seg2共同作用的结果。改变其中任何一个都会改变最终的采样点位置。这也是为什么不同厂商的CAN控制器配置工具如Vector DaVinci Configurator、PEAK PCAN-Explorer中采样点往往是一个“只读”的计算结果而非直接输入的参数——你配置的是底层的Tq分配系统自动为你算出采样点。2.2 采样点的物理意义为何必须落在信号眼图的“最佳窗口”在高速数字通信中“眼图Eye Diagram”是评估信号质量的黄金标准。将CAN总线上连续的比特流在示波器上以位时间为横轴进行叠加显示就会形成一个类似“眼睛”的图形。眼图的张开程度直观反映了信号在采样时刻的噪声裕量和抖动容限。眼图的“瞳孔”中心代表信号最稳定、最不易受噪声干扰的理想采样区域。此处高低电平的区分度最大判决错误率最低。眼图的“上下眼皮”代表信号的上升沿和下降沿。眼皮越厚、越模糊说明信号边沿越慢、振铃越严重。眼图的“左右瞳孔边缘”代表信号的抖动Jitter范围。边缘越宽说明时序不确定性越大。一个合格的CAN物理层设计其眼图必须在标称波特率下保持足够开阔。而采样点就是工程师手动选择的、落在这个“瞳孔”中心区域内的那个具体时刻。根据ISO 11898-2:2016标准推荐的采样点范围是75%至90%。这个范围并非凭空而来下限75%是为了避开信号上升沿的不稳定区域。如果采样点太靠前如60%很可能在信号尚未完全建立到稳定高电平或低电平时就进行了采样极易受上升/下降时间影响而误判。上限90%是为了避开信号下降沿的拖尾和反射干扰。如果采样点太靠后如95%信号可能已经开始衰减或受到前一位反射波的干扰同样增加误判风险。因此75%-90%是一个经过大量工程实践验证的“安全黄金区间”。它在保证足够噪声裕量的同时也为重同步机制通过调整Phase Seg1/2预留了足够的弹性空间。而CAN FD协议对此要求更为严苛因其数据段波特率更高眼图更窄通常要求采样点落在**80%-87.5%**之间以应对更严峻的信号完整性挑战。3. CAN FD的双重采样点为什么需要两个独立配置CAN FD协议最大的革新在于引入了“双速率”机制仲裁段Arbitration Phase仍使用经典CAN的波特率如500kbps以保证网络兼容性和仲裁公平性而数据段Data Phase则可切换至更高的波特率如2Mbps、5Mbps甚至8Mbps以大幅提升有效数据吞吐量。这一机制带来了革命性的带宽提升但也给时序设计带来了前所未有的复杂性——它要求控制器必须支持并独立配置两个采样点一个用于仲裁段一个用于数据段。3.1 仲裁段与数据段的物理层差异速度跃迁下的信号完整性鸿沟当CAN FD节点从仲裁段切换到数据段时波特率可能瞬间翻倍甚至五倍。这意味着位时间被急剧压缩在5Mbps下一位时间仅为200ns而在500kbps下为2000ns。信号上升/下降时间通常为几十纳秒在低速下占比微不足道但在高速下却占据了位时间的10%-20%成为决定信号质量的关键瓶颈。传输线效应被显著放大高频信号对阻抗匹配、终端电阻精度、PCB走线长度和拓扑结构的敏感度呈指数级增长。一段在500kbps下表现完美的总线在5Mbps下可能因反射和串扰而彻底失效。收发器性能成为瓶颈并非所有CAN收发器都能在5Mbps下维持良好的信号完整性。其驱动能力、压摆率Slew Rate和内部延迟都会直接影响高速段的眼图质量。因此为仲裁段低速、鲁棒性强和数据段高速、脆弱性高分别配置最优采样点是保障CAN FD通信可靠性的唯一途径。一个统一的、折中的采样点无法同时满足两种截然不同的物理层需求。3.2 双采样点的配置逻辑与典型值在CAN FD控制器如NXP S32K系列、Infineon AURIX系列的寄存器配置中你会看到两组完全独立的位时间参数仲裁段位时间Nominal Bit Timing包含Nominal Prop Seg,Nominal Phase Seg1,Nominal Phase Seg2。其采样点计算公式与经典CAN完全一致仲裁段采样点 (1 Nominal Prop Seg Nominal Phase Seg1) / (1 Nominal Prop Seg Nominal Phase Seg1 Nominal Phase Seg2)数据段位时间Data Bit Timing包含Data Prop Seg,Data Phase Seg1,Data Phase Seg2。其采样点计算公式同理数据段采样点 (1 Data Prop Seg Data Phase Seg1) / (1 Data Prop Seg Data Phase Seg1 Data Phase Seg2)这两组参数的配置策略截然不同配置维度仲裁段Nominal数据段Data目标兼容性、鲁棒性、长距离传输最大化带宽、短距离高性能典型波特率125kbps - 1Mbps2Mbps - 8Mbps推荐采样点75% - 87.5%兼顾兼容性80% - 87.5%追求稳定性Prop Seg设置较大补偿长线延迟较小短线延迟低Phase Seg1/2分配Phase Seg1略大于Phase Seg2增强重同步能力Phase Seg1与Phase Seg2更均衡优化高速响应例如一个典型的汽车网关CAN FD配置可能是仲裁段波特率500kbps采样点87.5%137/1371 11/12 ≈ 91.7%但通常会保守设为87.5%即11/12.5需调整Tq分配。数据段波特率2Mbps采样点85%115/1151 7/8 87.5%或更优的85%114/1141 6/7 ≈ 85.7%。提示许多初学者会误以为“数据段采样点越高越好”这是危险的误区。过高的采样点如90%以上会严重削弱Phase Seg2的重同步能力。在存在晶振误差或温度漂移的车载环境中Phase Seg2是吸收正向时序偏差总线信号比本地时钟快的唯一手段。一旦Phase Seg2被压缩到极限节点将无法容忍任何正向偏差极易导致同步丢失和通信中断。4. 采样点测试从理论计算到实车环境的闭环验证再完美的理论计算和仿真也无法替代在真实物理环境中的一次实测。采样点测试本质上是一场针对CAN物理层“时序鲁棒性”的压力测试。它不关心报文内容是否正确只关注在最恶劣的信号条件下控制器是否依然能在预定的采样点上做出正确的位判决。4.1 标准测试方法基于CANoe/CANalyzer的“第二采样点”功能Vector公司的CANoe/CANalyzer是汽车电子测试领域的事实标准。其内置的“Second Sample Point”第二采样点功能正是为验证采样点鲁棒性而生。该功能的工作原理如下基准测试首先使用默认配置即你设定的主采样点运行通信记录正常通信时的错误帧率、总线负载等基线数据。偏移扫描然后软件会自动、系统性地将采样点向左提前和向右延后进行微小步进偏移例如每次±1%并在每个偏移点上运行一段时间的通信测试。错误率测绘对于每一个偏移点软件会精确统计该配置下产生的位错误Bit Errors、CRC错误CRC Errors和格式错误Form Errors的数量。生成“采样点容差图”最终软件将所有测试点的错误率绘制成一条曲线横轴为采样点偏移量%纵轴为错误率%。这条曲线清晰地展示了你的当前配置在多大范围内是“安全”的。下表展示了一个典型的测试结果解读采样点偏移量错误率状态说明-5% 提前到70%12.3%失败已进入上升沿不稳定区误判率激增-2% 提前到73%0.8%警告噪声裕量显著降低长期运行风险高0% 标称85%0.0%通过当前配置的基准点2% 延后到87%0.1%通过仍有良好裕量5% 延后到90%3.5%警告开始受下降沿拖尾影响8% 延后到93%28.7%失败已进入反射干扰区通信崩溃这张图的价值在于它告诉你你的标称采样点85%虽然“能用”但其左侧的安全裕量-2%远小于右侧2%说明当前物理链路的上升沿质量优于下降沿质量。这提示你可能需要检查终端电阻的匹配精度或收发器的驱动能力因为下降沿的劣化往往与阻抗不连续或驱动不足有关。4.2 实车HIL/PIL测试中的采样点验证为什么实验室测试不够在台架Bench Test或实验室环境下使用高质量的CAN分析仪和标准线缆采样点测试往往能轻松通过。但这绝不意味着在实车上也能万无一失。实车环境的复杂性主要体现在三个维度电磁干扰EMI发动机点火、ABS泵工作、DC-DC转换器开关等都会在CAN总线上注入高强度的共模和差模噪声。这些噪声会直接“污染”眼图使原本清晰的“瞳孔”变得模糊从而压缩有效的采样窗口。线束拓扑与连接器实车线束长达数十米分支众多连接器插拔次数成百上千。每一次连接器的磨损、氧化或接触不良都会引入额外的阻抗不连续点导致信号反射严重劣化眼图质量。温度与振动车载环境温度范围可达-40°C至125°C剧烈的温度变化会导致PCB板材膨胀系数变化、焊点应力疲劳、收发器电气参数漂移。这些因素会缓慢地、不可逆地改变信号的上升/下降时间和传播延迟从而使原先在25°C下完美的采样点在-40°C冷启动或100°C高温工况下失效。因此真正的采样点验证必须在HILHardware-in-the-Loop或PILProcessor-in-the-Loop测试平台上加载真实的ECU固件并模拟上述所有恶劣工况。一个成熟的汽车电子开发流程会将采样点测试作为“物理层认证PHY Certification”的关键一环要求在-40°C、25°C、85°C、125°C四个温度点以及施加特定EMI干扰如ISO 11452-4大电流注入法的条件下均能通过第二采样点测试错误率低于1e-9即每十亿位中错误少于1位。注意很多团队会忽略“温度循环”测试。他们只在常温下测试一次就签字放行。我曾遇到一个案例某车型在夏季高温路试中网关模块在长时间运行后出现偶发性CAN通信中断复位后恢复。最终排查发现高温下收发器的驱动能力下降导致信号眼图闭合而原配置的采样点85%在高温下已逼近失效边缘。将数据段采样点从85%微调至83%并增大Phase Seg2问题彻底解决。这个教训深刻说明采样点不是一劳永逸的静态参数而是必须随环境动态验证的生命线。5. 实操避坑指南那些让资深工程师也头疼的采样点陷阱在十余年的CAN通信开发与测试实践中我见过太多因采样点配置不当而导致的疑难杂症。它们往往不直接报错而是以一种极其隐蔽、难以复现的方式折磨着工程师。以下是我总结的几类最高频、最致命的陷阱以及对应的破解思路。5.1 陷阱一“复制粘贴式配置”——盲目套用他人参数的灾难这是新手最容易犯的错误。看到网上论坛或同事分享的“某ECU在某波特率下的成功配置”便不加思索地全盘照搬。这种做法的危险性在于它完全忽略了物理层的唯一性。同一款MCU不同PCB版本采样点需求天差地别。我曾负责一个项目A版PCB使用FR4板材B版为了降低成本改用CEM-1。虽然走线长度相同但CEM-1的介电常数更高导致信号传播速度变慢约15%。结果A版上完美的采样点配置在B版上导致了高达10%的位错误率。最终我们不得不为B版单独调整Prop Seg增加了2Tq才将采样点重新拉回85%的安全区。同一块PCB不同批次的线束也会带来差异。线束供应商的工艺波动可能导致同一型号线缆的特征阻抗在105Ω到115Ω之间浮动。一个120Ω的终端电阻在105Ω线缆上会造成轻微的欠阻尼Under-damped表现为上升沿过冲在115Ω线缆上则造成轻微的过阻尼Over-damped表现为上升沿变缓。这两种情况都需要不同的采样点来补偿。破解之道永远将“采样点配置”视为一个系统级校准过程而非一个简单的参数填写任务。每一次硬件变更PCB改版、线束更换、收发器型号更新都必须重新执行完整的采样点测试流程。建立一个专属的“硬件版本-采样点配置”映射表是项目管理的基本功。5.2 陷阱二“只调采样点不看重同步”——忽视Phase Seg1/2的协同效应很多工程师认为只要把采样点设在85%就万事大吉。他们很少去深究Phase Seg1和Phase Seg2的具体分配。然而这两个参数共同决定了控制器的重同步能力Resynchronization Capability而这恰恰是CAN总线在恶劣电磁环境下生存的“免疫系统”。Phase Seg1过小当总线信号因晶振误差而略微变慢时控制器需要通过延长Phase Seg1来追赶。如果Phase Seg1只有2Tq那么它最多只能补偿2Tq的延迟。一旦误差超过此值位时间就会错位导致采样失败。Phase Seg2过小当总线信号因晶振误差而略微变快时控制器需要通过缩短Phase Seg2来追赶。如果Phase Seg2只有1Tq那么它最多只能补偿1Tq的超前。一旦误差超过此值下一个位的同步段就会错过跳变沿导致硬同步失败。一个经典的反例某项目为追求极致的高速性能将数据段的Phase Seg1和Phase Seg2都设为最小值各1Tq采样点计算为83.3%。在实验室安静环境下通信完美。但一上车遇到ABS泵工作时的强EMI干扰总线信号出现周期性抖动Phase Seg2瞬间被耗尽节点频繁进入“同步丢失”状态表现为间歇性通信中断。解决方案是将Phase Seg2从1Tq增加到3Tq牺牲了0.5%的采样点精度降至82.5%但换来了三倍的正向抖动容限问题迎刃而解。破解之道在确定采样点后务必检查Phase Seg1和Phase Seg2的绝对长度。一个经验法则是Phase Seg1和Phase Seg2的长度都应不小于采样点容差图中“安全区间”的一半。例如如果你的容差图显示安全区间是±3%那么Phase Seg1和Phase Seg2各自应至少能覆盖1.5%的位时间即至少为1.5% × Bit Time / Tq个Tq。5.3 陷阱三“CAN FD的‘伪双速率’幻觉”——数据段波特率未真正生效这是一个极具迷惑性的陷阱。开发者在代码中设置了很高的数据段波特率如5Mbps并通过调试信息确认寄存器写入成功于是便认为高速通信已启用。然而实际抓包却发现数据段的位时间与仲裁段完全相同根本没有提速。根本原因在于CAN FD的双速率切换依赖于一个关键的握手信号——ESI位Error State Indicator和BRS位Bit Rate Switch。BRS位位于CAN FD帧的控制场Control Field中是一个显性位Dominant。它的作用是向总线上的所有节点发出一个明确的“切换指令”。ESI位紧随BRS位之后指示发送节点当前的错误状态主动/被动。它的存在是接收节点识别这是一个CAN FD帧的必要条件。如果发送节点的CAN控制器未能正确设置BRS位或者接收节点的CAN控制器未能正确解析BRS/ESI位那么整个网络就会退回到经典CAN模式数据段波特率设置将被完全忽略。诊断步骤使用示波器捕获CAN FD帧的波形重点观察控制场区域。你应该能看到一个非常短促仅1-2Tq、但幅度明显的显性脉冲这就是BRS位。如果看不到说明发送端未启用FD模式。使用CAN分析仪如PCAN-USB FD的“Raw View”功能查看接收到的帧的原始字节。一个标准的CAN FD帧其控制字节第6字节的bit7BRS和bit6ESI必须为11。如果看到的是00那它就是一个经典CAN帧。破解之道在代码中启用CAN FD模式绝不仅仅是设置波特率寄存器。你必须在初始化时明确调用CAN_EnableFDMode()或等效API。在发送函数中确保填充了BRS和ESI位现代HAL库通常会自动处理但需确认。在接收中断中检查CAN_RX_MSG_IS_FD()标志位以区分经典CAN和CAN FD帧。我曾在一个项目中因为MCU的HAL库版本较旧HAL_CAN_AddTxMessage()函数在发送FD帧时未能自动置位BRS位。花了整整两天时间排查硬件和物理层最后才发现是软件层面的一个微小疏漏。这个教训提醒我们采样点是物理层的基石但它的前提是协议层的正确握手。6. 采样点计算公式的实战推演手把手带你算出你的第一个配置理论终须落地。现在让我们以一个真实的汽车电子项目为例完整推演一遍采样点的计算与配置过程。假设你正在为一款新的车身域控制器BCM配置CAN FD总线其需求如下仲裁段波特率500 kbps数据段波特率2 MbpsMCU主时钟80 MHz目标采样点仲裁段87.5%数据段85%物理总线长度15米单线6.1 步骤一确定基础Tq与位时间Tq总数首先我们需要为两个波特率分别计算所需的总Tq数NBT。仲裁段500kbps目标位时间 1 / 500,000 2000 ns设定预分频器Prescaler为N则 Tq N / 80,000,000 秒。我们希望Tq是一个便于计算的整数比如125ns、250ns等。尝试N10Tq 10 / 80MHz 125 ns。则总Tq数 NBT 2000 ns / 125 ns 16 Tq。这是一个非常常见的、被广泛支持的值。数据段2Mbps目标位时间 1 / 2,000,000 500 ns同样使用 Tq 125 ns则 NBT 500 ns / 125 ns 4 Tq。但请注意4 Tq是CAN FD的最小要求ISO 11898-1规定数据段NBT ≥ 4但它几乎没有留给Prop Seg、Phase Seg1/2的空间。因此我们必须为数据段选择一个更小的Tq即更大的预分频器。尝试N5Tq 5 / 80MHz 62.5 ns。则 NBT 500 ns / 62.5 ns 8 Tq。这是一个更合理、更灵活的选择。提示这里我们为两个波特率选择了不同的预分频器仲裁段N10数据段N5这是完全允许且常见的。CAN FD控制器的寄存器设计本身就支持这种独立配置。6.2 步骤二根据采样点反推各段Tq分配现在我们有了仲裁段NBT 16 Tq, Tq 125 ns, 目标采样点 87.5% 7/8数据段NBT 8 Tq, Tq 62.5 ns, 目标采样点 85% ≈ 17/20但NBT8所以我们找一个最接近的分数如6/7 ≈ 85.7%或5/6 ≈ 83.3%。我们选择6/7即采样点位置 6 Tq从Sync Seg开始算起。回忆公式采样点位置 Sync Seg Prop Seg Phase Seg1仲裁段16 TqSync Seg 1 Tq固定所以Prop Seg Phase Seg1 6 Tq因为 7/8 * 16 14, 14 - 1 13? 等等这里需要重新计算错误87.5% of 16 0.875 * 16 14。所以Sync Seg Prop Seg Phase Seg1 14。因为 Sync Seg 1所以Prop Seg Phase Seg1 13。总Tq 16 Sync Seg Prop Seg Phase Seg1 Phase Seg2 1 13 Phase Seg2因此Phase Seg2 2。现在我们需要在Prop Seg Phase Seg1 13的约束下分配两者。根据经验Prop Seg应大于等于总线传播延迟15m * 5ns/m ≈ 75ns75ns / 125ns ≈ 0.6 Tq所以1Tq足够但为了留有余量设Prop Seg 3则Phase Seg1 10。最终Sync Seg1,Prop Seg3,Phase Seg110,Phase Seg22。验证采样点 (1310)/(13102) 14/16 87.5% ✓。数据段8 Tq目标采样点85.7% ≈ 6/7但NBT8所以Sync Seg Prop Seg Phase Seg1 6因为 6/8 75%太低7/887.5%太高。我们需要一个更精确的匹配。85% of 8 6.8所以我们取Sync Seg Prop Seg Phase Seg1 7即采样点 7/8 87.5%。虽然略高于85%但在安全范围内。Sync Seg 1所以Prop Seg Phase Seg1 6。总Tq 8 1 6 Phase Seg2因此Phase Seg2 1。对于高速段Prop Seg应尽量小以减少延迟设Prop Seg 1则Phase Seg1 5。最终Sync Seg1,Prop Seg1,Phase Seg15,Phase Seg21。验证采样点 (115)/(1151) 7/8 87.5% ✓。6.3 步骤三将Tq分配写入寄存器以NXP S32K144为例NXP S32K144的CAN FD控制器寄存器名为CAN_CTRL1和CAN_CTRL2。仲裁段配置写入CAN_CTRL1PROPSEG[5:0] 3(0x03)PSEG1[5:0] 10(0x0A)PSEG2[3:0] 2(0x02)RJW[2:0] 1(0x01重同步跳转宽度通常设为1数据段配置写入CAN_CTRL2PROPSEG[5:0] 1(0x01)PSEG1[5:0] 5(0x05)PSEG2[3:0] 1(0x01)注意不同MCU的寄存器位定义千差万别。务必查阅你所用芯片的Reference Manual确认位域Bit Field的位置和宽度。一个常见的错误是将PSEG1的值写到了PSEG2的位域上导致配置完全错误。这套配置完成后你就可以将其固化到你的BSPBoard Support Package中并在后续的HIL测试中用第二采样点功能对其进行闭环验证。记住这只是万里长征的第一步。真正的考验永远在实车的滚滚车轮之下。