打印
[STM32F1]

can总线重发机制会不会导致另一个节点重复接收到同一个命令?

[复制链接]
2213|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
woainizhangman|  楼主 | 2017-4-23 17:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位can总线会不会出现下面的问题:节点a发送一个命令给另一个节点b,节点b收到命令后返回ack,由于干扰导致ack没有被a节点收到,之后a节点重发这个命令,由于can总线发出的帧不带序列号,节点b无法识别此帧是不是重发帧,所以这个命令就被b执行了两次。
沙发
Prry| | 2017-4-23 19:55 | 只看该作者
这就需要在应用层做好相关校验算法了,所以说实现功能是很容易的,可靠性、稳定性、纠错性等都需要自己设计算法去处理。对于CAN来说,它本身的硬件标准机制就涉及很多校验,理论上应用层不需做校验都可以正常使用,恶劣环境除外。

使用特权

评论回复
板凳
woainizhangman|  楼主 | 2017-4-23 20:29 | 只看该作者
Prry 发表于 2017-4-23 19:55
这就需要在应用层做好相关校验算法了,所以说实现功能是很容易的,可靠性、稳定性、纠错性等都需要自己设计 ...

好像连canopen都没有相应的处理

使用特权

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

使用特权

评论回复
5
dxfshsh| | 2017-8-13 08:27 | 只看该作者
我更关系类似重发帧。是否重新参与总线竞争。如果是这样重发帧。有可能被延迟一帧到多帧发送。这样在应用层剔除该多发的重复帧就更困难了。因为你很难区分它是重复发送帧还是新发帧了。

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝