weixin_52594119 2024-03-28 11:16 采纳率: 0%
浏览 5

CAN总线同ID不同周期如何仲裁

CAN总线上两个控制器用同一个ID 不同的周期(例如10ms 50ms)发送不同的data,can总线如何表现。

  • 写回答

1条回答 默认 最新

  • Kwan的解忧杂货铺 2024-03-28 11:16
    关注

    weixin_52594119 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    当CAN总线上出现同ID不同周期的消息时,CAN总线使用基于非闭锁的仲裁机制来解决冲突,并决定哪个消息具有优先权。

    以下是解决方案:

    1. 仲裁优先级:每个CAN消息都包含一个优先级字段,使用的是标准帧格式标识符(SFF)的前11位。通常情况下,较低标识符值的消息具有较高的优先级。因此,在同一ID的情况下,较低周期的消息将具有更高的优先级。
    2. 仲裁冲突处理:当两个节点同时尝试发送具有相同ID的消息时,首先检测到总线状态的节点具有优先权,并允许其消息在总线上发送。其他节点会检测到总线上的活动,即冲突,并停止发送。
    3. 信号覆盖:如果一个节点正在发送一个较低周期的消息,并且另一个节点尝试发送一个具有相同ID的较高周期的消息,较高周期的消息将能够覆盖较低周期的消息。这是因为较高周期的消息将更频繁地尝试发送到总线上。

    因此,在CAN总线上,同一ID但不同周期的消息得到解决,较低周期的消息具有较高的优先级,并且能够覆盖较高周期的消息。

    注意:这是CAN的基本工作原理,具体的实现方式可以根据所使用的CAN控制器和协议进行调整。例如,在嵌入式系统中,可以使用CAN控制器的滤波器和仲裁机制进行更高级的配置,以实现特定的需求。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月28日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析