三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

100、CAN FD的软件栈与协议栈设计:驱动、配置与调试技巧

100、CAN FD的软件栈与协议栈设计:驱动、配置与调试技巧

CAN FD的软件栈与协议栈设计:驱动、配置与调试技巧

从一次现场总线崩溃说起

去年冬天,某客户产线上报了一个诡异问题:搭载CAN FD的ECU在高温老化测试中,每隔2-3小时就会丢一帧关键诊断报文。现场工程师用CANalyzer抓了波形,发现BRS位之后的采样点出现了毛刺,但经典CAN模式下完全正常。我远程连进去,第一件事不是看波形,而是问了一句:“你们的TDC配置是抄的参考手册默认值吗?”对方沉默了三秒,然后说:“是。”

这就是CAN FD软件栈最容易被忽视的陷阱——协议栈的物理层适配远比想象中复杂。今天这篇笔记,我就从驱动层、配置层到调试层,把踩过的坑和总结的套路摊开来讲。

驱动层:别把CAN FD当CAN用

很多工程师从经典CAN迁移到CAN FD,第一反应是“改个波特率就行”。大错特错。CAN FD的驱动设计,核心差异在于数据段速率切换错误处理机制

发送路径的“隐形开关”

看一段实际代码(简化版):

// CAN FD发送函数 - 别这样写!voidcanfd_send_msg
← 返回列表