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

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

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-16 02:30:56

35

主题

191

回帖

1097

积分

金牌会员

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-16 02:30:56

35

主题

191

回帖

1097

积分

金牌会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:444
  • 最近打卡:2025-06-16 09:26:42
已绑定手机

39

主题

2059

回帖

7070

积分

论坛元老

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

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

点评

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-16 02:30:56

35

主题

191

回帖

1097

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-16 02:30:56

35

主题

191

回帖

1097

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-16 02:30:56

35

主题

191

回帖

1097

积分

金牌会员

积分
1097
发表于 2024-3-2 13:19:37 | 显示全部楼层
LAO*** 发表于 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
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

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

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

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

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 18:08 , Processed in 0.132257 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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