CAN/CAN FD调试–笔记1
一、CAN 和 CAN FD 的配置差别
1.1 BSR 位的作用:速率切换标志
CAN FD 支持两种比特率:
- 仲裁段(Arbitration Phase):与传统 CAN 相同的低速速率(用于仲裁,确保兼容性)
- 数据段(Data Phase):更高的速率(用于数据传输,提升效率)
BSR 位位于 CAN FD 帧的控制字段中,用于指示是否在数据段切换到更高的比特率。
取值含义:
- BSR = 1:启用比特率切换(数据段使用更高的速率)
- BSR = 0:禁用比特率切换(全程使用仲裁段速率,等同于传统 CAN 模式)
二、时序图解对比
2.1 CAN 和 CAN FD 时序比对
2.3 逻辑分析仪抓取的时序
三、位时间计算
3.1 位时间示意图
3.2 同步段(TSynseg/SS)详解
3.2.1 功能作用
同步段是位时间的第一个段,用于:
- 硬同步:每个帧起始(SOF)的下降沿都发生硬同步
- 边沿检测:在位时间内检测到边沿时,用于重新同步
- 时钟对齐:确保所有节点在位时间开始处对齐
3.2.2 技术特性
- 固定长度:始终为 1 个时间量子(1 tQ)
- 不可配置:在所有 CAN/CAN FD 配置中,同步段都是固定的
- 硬件实现:由 CAN 控制器硬件自动管理
四、CANFD的时钟配置
由上图可知,CAN FD 的数据域分频后时钟必须满足 24MHz 以上。
4.1 计算示例
示例 :CAN FD 仲裁500hbps,数据:2Mbps(不分频)
举例:CAN时钟60M Canfd 不分频,为了满足2M CANFD要超过24M时钟以上 Tq=1/srcclk=1/60 Tbit=1/baud=1/2 N=Tbit/Tq=30 Tseg1=N*采样点(0.8/0.7/……) = 30*0.8=24 Tseg2=N-Tseg1 = 30-24 = 6 seg1 = 24-2 = 22 seg2 = 6-1 = 5 sjw = 5 presc = 0 can 2分频 60/(2+1)= 20M Tq=1/srcclk=1/20 Tbit=1/baud=1/0.5 = 2 N=Tbit/Tq=40 Tseg1=N*采样点(0.8/0.7/……) = 40*0.8=32 Tseg2=N-Tseg1 =40-32 = 8 presc = 2 can seg1 = 32-2 = 30 seg2 = 8-1 = 7 sjw = 7 presc = 2五、TDC 测试方法
5.1 测试步骤
- 初始值选择:在 0 到 tsg1 中间取值,选择一个可以与周立功通信的值
- 采样点确认:使用 CANoe 的采样点功能,确认数据域采样点要在 80%
- 动态调整:根据测试结果动态调整参数
5.2 注意事项
- 确保数据域采样点满足要求(通常为 80%)
- 根据实际通信情况动态调整参数
- 验证不同负载下的通信稳定性
六、可参考的其他文章
CAN总线详解
错误帧