打印
[STM32F1]

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

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

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

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

使用特权

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

使用特权

评论回复
5
Diyer2015| | 2018-9-3 15:17 | 只看该作者
理论上应用层不需做校验都可以正常使用

物理层已经做好了

使用特权

评论回复
6
chuxh|  楼主 | 2018-9-3 15:20 | 只看该作者
好像连canopen都没有相应的处理

使用特权

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

使用特权

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

使用特权

评论回复
9
pengf| | 2018-9-3 15:29 | 只看该作者
这样在应用层剔除该多发的重复帧就更困难了。

使用特权

评论回复
10
supernan| | 2018-9-3 15:34 | 只看该作者
嗯,因为你很难区分它是重复发送帧还是新发帧了。

使用特权

评论回复
11
chuxh|  楼主 | 2018-9-3 15:38 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
12
yediezeus| | 2018-9-3 15:41 | 只看该作者
是应用层不

使用特权

评论回复
13
guanjiaer| | 2018-9-4 09:09 | 只看该作者
我感觉会收到

使用特权

评论回复
14
keaibukelian| | 2018-9-4 09:54 | 只看该作者
这个我也搞不明白 如果是你操作寄存器控制的 我感觉可能不会收到

使用特权

评论回复
15
xuanhuanzi| | 2018-9-4 21:21 | 只看该作者
不会,重发也是有地址指向的。

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝