我是新的可以协议,通过robert bosch的CAN规范Ver2.0 Part B.我无法理解以下行,第63页

“注意: 启动/醒来: 如果在启动期间只有一个节点是在线,并且如果此节点发送一些消息,则不会确认,检测错误并重复该消息。由于这个原因,它可以成为'错误被动'但不是'公交车'。“

据我所知,当发送器检测到错误(如确认错误)时,它重新发送消息并且还递增8°递增8 8.因此,如果只有一个节点,则其TEC应增加8每次传输消息时,如果TEC都在255以上,每次传输消息并应进入“公交车”状态。

可以有人请解释为什么规范说明它只能去'错误被动'但不是'公交车'?

有帮助吗?

解决方案

我认为你错过了这个规范的这一部分:

“例外1:

如果发射机是“错误被动”并检测到确认错误,因为没有检测到“主导”ACK,并且在发送其被动错误标志时不会检测到“主导”位。 “

在这种情况下,TEC不会改变!

所以,在您的情况下,当网络中唯一的节点每次重新发送时,TEC变为>= 128,它变成了“错误被动”。然后上述例外情况变得有效!而且TEC没有更改!因此没有“公共汽车”。

其他提示

是的,这是正确的,好像TX ECU没有从CAN网络中的任何ECU接收任何ACK那么它将保持错误被动状态。 因为网络协议需要在CAN网络中提供多个系统时,如果网络中没有可用的ECU,那么由于ECU发出问题并不意味着它,而不是将禁止禁止状态错误被动状态。 要了解更多关于 can 错误,您可以遵循以下链接:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top