找回密码
 立即注册
查看: 290|回复: 10

关于CAN通信的应答位(ACK)的疑问

[复制链接]
  • TA的每日心情
    开心
    昨天 08:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    20

    主题

    104

    回帖

    230

    积分

    中级会员

    积分
    230
    发表于 2024-3-1 10:06:37 | 显示全部楼层 |阅读模式
    大家好,正在学CAN,我看了何滨教授关于CAN的视频讲座后,有一个疑问,
    假设一个网络内有多个节点,一个节点发出信息后,希望其他的节点都接受,
    它发完CRC后,希望其他的节点发出应答位(ACK),
    那么这个节点如何知道其他的节点都收到了信息,而且都发出了自己的ACK,谢谢。

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:47
  • 签到天数: 146 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4124

    积分

    荣誉版主

    积分
    4124
    发表于 2024-3-1 10:18:32 | 显示全部楼层
    这是广播发送形式, 像 RS485 类, 都是无应答的.

    CAN通信估计也是如此, 这是半双工通讯的通病.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    20

    主题

    104

    回帖

    230

    积分

    中级会员

    积分
    230
     楼主| 发表于 2024-3-1 10:27:27 | 显示全部楼层
    LAOXU 发表于 2024-3-1 10:18
    这是广播发送形式, 像 RS485 类, 都是无应答的.

    CAN通信估计也是如此, 这是半双工通讯的通病. ...

    不会吧,我记得是发完CRC后,需要接收方填写ACK位。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2024-3-1 11:02:29 | 显示全部楼层
    newlined 发表于 2024-3-1 10:27
    不会吧,我记得是发完CRC后,需要接收方填写ACK位。

    有一个节点进行应答,数据就发送成功。不能确认所有节点是否都能收到,毕竟有些节点发生故障,例如进入BUS OFF模式,整个网络还是要能够正常工作不受影响。

    点评

    点对点是有应答的, 广播发送形式(主机对所有辅机), 是没有应答的, 否则所有辅机应答, 信号叠加乱套了, 主机根本无法正确接收解码.  详情 回复 发表于 2024-3-1 12:06
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    20

    主题

    104

    回帖

    230

    积分

    中级会员

    积分
    230
     楼主| 发表于 2024-3-1 11:06:08 | 显示全部楼层
    乘风飞扬 发表于 2024-3-1 11:02
    有一个节点进行应答,数据就发送成功。不能确认所有节点是否都能收到,毕竟有些节点发生故障,例如进入BU ...

    是这样,明白了,谢谢您的回复。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:47
  • 签到天数: 146 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4124

    积分

    荣誉版主

    积分
    4124
    发表于 2024-3-1 12:06:50 | 显示全部楼层
    乘风飞扬 发表于 2024-3-1 11:02
    有一个节点进行应答,数据就发送成功。不能确认所有节点是否都能收到,毕竟有些节点发生故障,例如进入BU ...

    点对点是有应答的,  广播发送形式(主机对所有辅机), 是没有应答的, 否则所有辅机应答, 信号叠加乱套了, 主机根本无法正确接收解码.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    20

    主题

    104

    回帖

    230

    积分

    中级会员

    积分
    230
     楼主| 发表于 2024-3-1 14:59:24 | 显示全部楼层
    本帖最后由 newlined 于 2024-3-1 15:16 编辑
    LAOXU 发表于 2024-3-1 12:06
    点对点是有应答的,  广播发送形式(主机对所有辅机), 是没有应答的, 否则所有辅机应答, 信号叠加乱套了,  ...

    您好,谢谢您的回复。我看教程,CAN的帧中,有数据帧,远程帧,错误帧,过载帧,请问主机是如何区分是广播的数据帧还是点对点的数据帧?数据帧中也没有定义是广播的位。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:47
  • 签到天数: 146 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4124

    积分

    荣誉版主

    积分
    4124
    发表于 2024-3-1 16:38:57 | 显示全部楼层
    以  RS485 为例, 地址为 8bit (0-255) , 规定最多连接 辅机 250个, 地址为 0-249, 254或255 为广播地址(对所有辅机), 其他地址 备为.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    20

    主题

    104

    回帖

    230

    积分

    中级会员

    积分
    230
     楼主| 发表于 2024-3-2 13:19:37 | 显示全部楼层
    LAOXU 发表于 2024-3-1 16:38
    以  RS485 为例, 地址为 8bit (0-255) , 规定最多连接 辅机 250个, 地址为 0-249, 254或255 为广播地址(对 ...

    CAN协议中没有专门的广播ID,在一个QQ群中,我也问了这个问题,有位老师是这样回复我的,他说主节点不可能检测到谁没有发ACK,如果想知道大家都收到了信息,就需要每个节点都各自向主节点发从携带自己节点ID的信息。

    点评

    如果不设地址............. 我想起来了, CAN是靠起始位的高低电平宽度, 作为ID地址. 只能单点通讯(与RS485不同), 不支持广播方式, 如你所说, 要想知道大家都收到了信息,只能主节点依次向各个子节点分别发送信息。  详情 回复 发表于 2024-3-2 16:55
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:47
  • 签到天数: 146 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4124

    积分

    荣誉版主

    积分
    4124
    发表于 2024-3-2 16:55:07 | 显示全部楼层
    newlined 发表于 2024-3-2 13:19
    CAN协议中没有专门的广播ID,在一个QQ群中,我也问了这个问题,有位老师是这样回复我的,他说主节点不可 ...

    如果不设地址............. 我想起来了, CAN是靠起始位的高低电平宽度, 作为ID地址.

    只能单点通讯(与RS485不同), 不支持广播方式, 如你所说,

    要想知道大家都收到了信息,只能主节点依次向各个子节点分别发送信息。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-18 04:15 , Processed in 0.067663 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表