打印
[STM32F1]

接收到同一个命令

[复制链接]
265|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2022-5-8 18:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
can总线重发机制会不会导致另一个节点重复接收到同一个命令?

使用特权

评论回复
沙发
lizye| | 2022-5-8 18:33 | 只看该作者
什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
chuxh|  楼主 | 2022-5-12 22:18 | 只看该作者
节点a发送一个命令给另一个节点b,节点b收到命令后返回ack,由于干扰导致ack没有被a节点收到,之后a节点重发这个命令,由于can总线发出的帧不带序列号,节点b无法识别此帧是不是重发帧,所以这个命令就被b执行了两次。

使用特权

评论回复
地板
renyaq| | 2022-5-12 22:20 | 只看该作者
这就需要在应用层做好相关校验算法了,所以说实现功能是很容易的,可靠性、稳定性、纠错性等都需要自己设计算法去处理。对于CAN来说,它本身的硬件标准机制就涉及很多校验,理论上应用层不需做校验都可以正常使用,恶劣环境除外。

使用特权

评论回复
5
huangchui| | 2022-5-12 22:23 | 只看该作者

理论上应用层不需做校验都可以正常使用

物理层已经做好了

使用特权

评论回复
6
chuxh|  楼主 | 2022-5-12 22:25 | 只看该作者
好像连canopen都没有相应的处理

使用特权

评论回复
7
juventus9554| | 2022-5-12 22:27 | 只看该作者
一般情况下 在应用层协议中。会有明确规定。不准许发送增量和切换类型的指令帧。就是为了防止类似重发指令带来的歧义结果。

使用特权

评论回复
8
supernan| | 2022-5-12 22:29 | 只看该作者
类似重发帧。是否重新参与总线竞争。如果是这样重发帧。有可能被延迟一帧到多帧发送。

使用特权

评论回复
9
kangzj| | 2022-5-12 22:31 | 只看该作者

这样在应用层剔除该多发的重复帧就更困难了。

使用特权

评论回复
10
llljh| | 2022-5-12 22:34 | 只看该作者
嗯,因为你很难区分它是重复发送帧还是新发帧了。

使用特权

评论回复
11
llljh| | 2022-5-12 22:35 | 只看该作者
是应用层不

使用特权

评论回复
12
zhenykun| | 2022-5-12 22:38 | 只看该作者
我感觉会收到

使用特权

评论回复
13
zwll| | 2022-5-12 22:41 | 只看该作者
这个我也搞不明白 如果是你操作寄存器控制的 我感觉可能不会收到

使用特权

评论回复
14
pengf| | 2022-5-12 22:42 | 只看该作者
不会,重发也是有地址指向的。

使用特权

评论回复
15
chuxh|  楼主 | 2022-5-12 22:47 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

936

主题

11296

帖子

2

粉丝