OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3906|回复: 9

CAN通讯多个节点同时发送丢帧

[复制链接]

5

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-12-5
在线时间
43 小时
发表于 2020-7-8 14:04:51 | 显示全部楼层 |阅读模式
3金钱
我用17台设备连接,每台为一个节点。每台设备的发送和接收都没有问题。当16台设备同时发送一帧相同的数据帧给第17个的时候,无论这16台设备发送的数据帧ID相同还是不同,第17台设备接收到的不是16条,会丢失几台设备发送的数据。有人碰到过类似问题吗?在线等,急,感谢。

最佳答案

查看完整内容[请看2#楼]

can的优势就是可以抢占式发送,谁优先级高谁发送,这就是为什么用在汽车里的原因,比如遇到危险,同时你想开车门,肯定是刹车优先级高
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-7-8 14:04:52 | 显示全部楼层
rainymin 发表于 2020-7-8 15:17
您好,我刚才又看了一下,原因第1个是因为单片机出发CAN接收中断,关闭中断,接收完成后再打开。第二个是 ...

can的优势就是可以抢占式发送,谁优先级高谁发送,这就是为什么用在汽车里的原因,比如遇到危险,同时你想开车门,肯定是刹车优先级高
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-7-8 14:18:31 | 显示全部楼层
看来你不不懂can通信机制,建议回炉重新学习can的机制
回复

使用道具 举报

5

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-12-5
在线时间
43 小时
 楼主| 发表于 2020-7-8 15:17:47 | 显示全部楼层
三叶草 发表于 2020-7-8 14:18
看来你不不懂can通信机制,建议回炉重新学习can的机制

您好,我刚才又看了一下,原因第1个是因为单片机出发CAN接收中断,关闭中断,接收完成后再打开。第二个是因为同时发送比较优先级,优先级低的停止发送。我一开始以为是优先级低的等待优先级高的发送完成再继续发送,其实应该是直接停止不在发送了对吗?
回复

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2016-8-26
在线时间
31 小时
发表于 2020-7-9 11:23:42 | 显示全部楼层
三叶草 发表于 2020-7-8 15:57
can的优势就是可以抢占式发送,谁优先级高谁发送,这就是为什么用在汽车里的原因,比如遇到危险,同时你 ...

你这还是没解释清楚人家的问题。 人家问的是CAN总线控制器冲突的时候,会不会自动重发,还是需要自己写程序,进行重发。
回复

使用道具 举报

5

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-12-5
在线时间
43 小时
 楼主| 发表于 2020-7-22 11:15:03 | 显示全部楼层
guoqingli1123 发表于 2020-7-9 11:23
你这还是没解释清楚人家的问题。 人家问的是CAN总线控制器冲突的时候,会不会自动重发,还是需要自己写程 ...

您好,我看了之后认为是需要自己重新发送,CAN本身不会重新发送,对吗
回复

使用道具 举报

0

主题

20

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2020-7-19
在线时间
9 小时
发表于 2020-7-22 12:36:07 来自手机 | 显示全部楼层
学习了
回复

使用道具 举报

0

主题

104

帖子

0

精华

高级会员

Rank: 4

积分
724
金钱
724
注册时间
2015-5-23
在线时间
137 小时
发表于 2020-7-22 16:43:44 | 显示全部楼层
rainymin 发表于 2020-7-22 11:15
您好,我看了之后认为是需要自己重新发送,CAN本身不会重新发送,对吗

CAN本身有自带重发,使能自动重发配置就可以了,不需要自己重新发送
回复

使用道具 举报

5

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-12-5
在线时间
43 小时
 楼主| 发表于 2020-7-23 09:16:48 | 显示全部楼层
denike 发表于 2020-7-22 16:43
CAN本身有自带重发,使能自动重发配置就可以了,不需要自己重新发送

我发现之前我配置的就是使能自动重传模式,但是还是会出现我帖子中一开始说的,会丢失几台设备的数据帧。
回复

使用道具 举报

5

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-12-5
在线时间
43 小时
 楼主| 发表于 2020-7-23 10:06:42 | 显示全部楼层
rainymin 发表于 2020-7-23 09:16
我发现之前我配置的就是使能自动重传模式,但是还是会出现我帖子中一开始说的,会丢失几台设备的数据帧。

解决了,配置成自动重传模式,就可以了。能接收到所有设备的回复指令了。刚才马虎了,那是非自动重传模式的使能与失能,双重否定表肯定,学到了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 17:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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