硬汉嵌入式论坛

 找回密码
 立即注册
查看: 607|回复: 9
收起左侧

[CAN/FDCAN] can设计求助

[复制链接]

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2024-11-6 14:57:24 | 显示全部楼层 |阅读模式
CAN总线上一共33个设备,主机广播后其余设备要做回复一条设备状态,现在的问题是所有从机几乎同时回复,CAN总线阻塞,打开自动重发从机会重复回复3-5次,大佬没有没有比较好的解决办法
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-11-6 15:09:50 | 显示全部楼层

回帖奖励 +1 个金币

实际上这个是没关系的,将节点都配置上不同ID,发送回复消息的时候将自己ID放在标准ID或者扩展ID里面发送即可,这个ID是在仲裁段里面,CAN总线可以正常处理优先级仲裁的。

如果不放心,可以接收到消息后,每个节点加个延迟时间返回,而这个延迟时间由自己的ID大小决定,这样每个节点都可以不同时间段返回。
回复

使用道具 举报

5

主题

60

回帖

75

积分

初级会员

积分
75
发表于 2024-11-6 15:17:46 | 显示全部楼层
对的,同时回复没事的 , can总线仲裁会按照优先级处理 , 要是怕丢报文 , 就把CAN的FIFO打开
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2024-11-6 16:12:44 | 显示全部楼层
求助的帖子是实际情况,嵌入式的测试已经开始两天了,有时候确实会丢,ID是根据从机拨码开关设置的,有FIFO的缓存,节点时间延迟的方案也试过。监控CAN总线能看到有的设备到了发送can的时间会发不出来(从机会有一些不能打断的任务有时候可能会错过发送延时就发不出来了)所以CAN发送的时间间隔比较长,后来就没用这个方案。使能CAN控制器自动重发后会多次发送(主机接受到了,感觉从机也认为自己发送不成功,重发很多次),我现在不知道还能有什么改进的方向了很迷茫,我下面从哪里入手呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-11-6 16:32:19 | 显示全部楼层
小里 发表于 2024-11-6 16:12
求助的帖子是实际情况,嵌入式的测试已经开始两天了,有时候确实会丢,ID是根据从机拨码开关设置的,有FIFO ...

那你的组网环境可能有其它问题,合理的终端电阻值,降低CAN波特率试试,当前是多少,可以125K试试。
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2024-11-6 17:18:48 | 显示全部楼层
现在是500K,终端120Ω,我试试,谢谢
回复

使用道具 举报

4

主题

43

回帖

55

积分

初级会员

积分
55
发表于 2024-11-9 09:11:32 | 显示全部楼层
小里 发表于 2024-11-6 16:12
求助的帖子是实际情况,嵌入式的测试已经开始两天了,有时候确实会丢,ID是根据从机拨码开关设置的,有FIFO ...

因为牵涉到can仲裁,所以在实际的产品应用中是需要一套can的发送机制。接收比较好处理。can的发送一般都有周期性的和事件型的,而周期性的根据规范是有一定的误差范围要求的。在发送失败时候如何及时有效的重发是需要考虑的。各家开发板的例子都是上去简单一个发送,在实际产品中没法用。
回复

使用道具 举报

4

主题

43

回帖

55

积分

初级会员

积分
55
发表于 2024-11-9 09:14:21 | 显示全部楼层
这种也在业务交互层面进行重试,要求主机广播特定时间内没有收到回复,进行重试
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2024-11-13 18:23:04 | 显示全部楼层
dc7170 发表于 2024-11-9 09:11
因为牵涉到can仲裁,所以在实际的产品应用中是需要一套can的发送机制。接收比较好处理。can的发送一般都 ...

是的,我觉得在软件上应该也有相应的机制来做处理但是没有思路
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2024-11-13 20:08:41 | 显示全部楼层
小里 发表于 2024-11-13 18:23
是的,我觉得在软件上应该也有相应的机制来做处理但是没有思路

你有试过在不同的板上做接受广播后的回复延时吗,我最近也在搞FDCAN的网络,不过还没到多设备组网这一步,我的不同设备通过板上的电位器配置板载ID,做成类似Mac地址一样,上电之后根据ID依次回复主机的广播响应,你可以试一试,你留个QQ我加你,可以一起讨论一下,说不定等我下个月做到组网这一步了,也会有你遇到过的问题
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-29 01:07 , Processed in 0.283660 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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