电子产业一站式赋能平台

PCB联盟网

搜索
查看: 27|回复: 0
收起左侧

CAN通信波特率异常的危害

[复制链接]

764

主题

764

帖子

4133

积分

四级会员

Rank: 4

积分
4133
发表于 2025-5-30 08:00:00 | 显示全部楼层 |阅读模式

tlaotsqs0ir64068844243.gif

tlaotsqs0ir64068844243.gif

点击上方蓝色字体,关注我们


波特率定义了CAN总线上传输数据的速度,通常以千位每秒(kbps)表示,如125kbps、250kbps或500kbps。

波特率由CAN控制器的位定时参数决定,包括:
  • 波特率预分频器(BRP):将系统时钟分频以生成时间量子(Tq)。
  • 时间段1(TSEG1):包括传播段和相位段1,决定采样点前的时长。
  • 时间段2(TSEG2):相位段2,决定采样点后的时长。
  • 同步跳转宽度(SJW):允许在检测到边沿时调整位定时以实现同步。
    位时间由这些段的总和组成:位时间 = (1 + TSEG1 + TSEG2) × Tq,其中Tq = (BRP + 1) × 2 / f_osc(f_osc为晶振频率)。

    波特率则为1 / 位时间。例如,对于16MHz晶振,欲实现125kbps波特率,可设置BRP=7,TSEG1=13,TSEG2=2,总时间量子为16,位时间为8μs,波特率精确为125kbps。

    k1cu3d1rs1w64068844343.png

    k1cu3d1rs1w64068844343.png


    波特率异常(不匹配或偏差)会对CAN通信产生严重影响,以下是主要危害:
    通信失败

    波特率不匹配的节点无法正确解码数据。
    例如,若一个节点以125kbps发送,而另一个以100kbps接收,接收节点将误判位边界,导致数据损坏或完全无法通信。
    错误帧干扰
    波特率异常的节点若非监听模式,会因检测到错误而发送错误帧。
    这些错误帧会中断总线上的正常通信,导致其他节点丢弃当前消息并增加错误计数器,严重时可能使总线瘫痪。
    间歇性错误与可靠性下降
    小幅波特率偏差(如0.32%)可能在短消息或低负载下仍允许通信,但随着数据量或总线负载增加,累积的定时偏差可能超出SJW的补偿能力,导致间歇性错误。
    这种问题难以调试,可能在关键时刻引发故障。
    系统性能与安全影响
    在汽车应用中,波特率异常可能导致发动机控制单元(ECU)或刹车系统通信失败,带来安全风险。
    在工业自动化中,通信延迟可能扰乱生产线,造成经济损失。
    研究表明,波特率偏差还会增加重传次数,提高总线负载,降低系统效率。
    波特率偏差可能由以下因素引起:
    非整数晶振频率
    如11.0592MHz晶振可能导致位定时计算复杂,增加偏差风险。
    晶振温度漂移
    极端温度可能使晶振频率偏移,例如±3200ppm(0.32%)远超典型晶振的±20-100ppm容差。
    位定时配置错误
    错误的BRP、TSEG1或TSEG2设置可能导致波特率偏离目标值。
    总线长度与信号完整性
    高波特率(如1Mbps)要求较短的总线长度(30-40m),否则信号衰减可能加剧定时问题。
    例如,一个标称波特率为125kbps的总线,CAN分析仪测量发现某节点实际波特率为125.4kbps,偏差为0.32%。

    3bcmfl3z5wb64068844443.png

    3bcmfl3z5wb64068844443.png


    计算如下:
  • 标称位时间:T_bit = 1 / 125,000 = 8μs
  • 实际位时间:T_bit' = 1 / 125,400 ≈ 7.974μs
  • 每位偏差:δ = 8 - 7.974 = 0.026μs
  • 5位累积偏差(考虑填充位规则):5 × 0.026 = 0.13μs

    假设时间量子Tq = 0.5μs,SJW = 2 Tq = 1μs,0.13μs

    0.32%(3200ppm)偏差远超典型晶振容差,表明可能是位定时配置错误,而非晶振问题。

    针对波特率异常,可采取以下措施:
    修正位定时配置
    使用CANScope的眼图回溯功能,识别波特率异常的节点,调整其BRP、TSEG1或TSEG2寄存器。例如,对于STM32微控制器,可通过以下代码配置CAN波特率:
    增加SJW容错
    将正常节点的SJW从1 Tq增至3 Tq,扩大位定时调整范围,但可能影响采样点精度,需谨慎评估。
    使用CAN网桥

    若无法修改节点程序,可使用如致远电子的CANbridge,串联在异常节点与总线之间,调整两端波特率匹配。
    单独测试节点

    将每个节点单独上电,用CANScope测量其波特率,定位故障节点并修正。
    波特率异常是CAN通信中的重大隐患,可能导致通信失败、总线干扰和系统可靠性下降。

    通过专业工具检测、精确配置位定时和采取预防措施,可以有效避免这些问题。

    在关键应用中,确保波特率一致性和信号完整性至关重要,以保障系统性能和安全性。

    feacfcap5mm64068844543.jpg

    feacfcap5mm64068844543.jpg

    n4wkouqkrgv64068844644.gif

    n4wkouqkrgv64068844644.gif

    点击阅读原文,更精彩~
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条


    联系客服 关注微信 下载APP 返回顶部 返回列表