打印
[STM32F1]

接收到同一个命令

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
5
renyaq| | 2020-5-10 13:52 | 只看该作者

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

物理层已经做好了

使用特权

评论回复
6
chuxh|  楼主 | 2020-5-10 13:57 | 只看该作者
好像连canopen都没有相应的处理

使用特权

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

使用特权

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

使用特权

评论回复
9
pengf| | 2020-5-10 14:06 | 只看该作者
这样在应用层剔除该多发的重复帧就更困难了。

使用特权

评论回复
10
supernan| | 2020-5-10 14:13 | 只看该作者
嗯,因为你很难区分它是重复发送帧还是新发帧了。

使用特权

评论回复
11
llljh| | 2020-5-10 14:16 | 只看该作者

是应用层不

使用特权

评论回复
12
yinxiangh| | 2020-5-10 14:19 | 只看该作者

我感觉会收到

使用特权

评论回复
13
zyf部长| | 2020-5-10 14:23 | 只看该作者
这个我也搞不明白 如果是你操作寄存器控制的 我感觉可能不会收到

使用特权

评论回复
14
ousj| | 2020-5-10 14:26 | 只看该作者

不会,重发也是有地址指向的。

使用特权

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

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝