1 几个重要概念
- Fault confinement(过错界定)
CAN nodes shall be able to distinguish short disturbances from permanent failures. Defective transmitting nodes shall be switched off. Switched off means a node is logically disconnected from the bus, so that it can neither send nor receive any frames.
CAN节点能够差异惯例过错和永久毛病。有毛病的发送节点将切换到离线状况。离线意味着在逻辑上与总线断开,既不能发送也不能接纳。
- Error-active(自动过错)
An error-active node shall normally take part in bus communication and send an active error flag when an error has been detected. The active error flag shall consist of six (6) consecutive dominant bits and shall violate the rule of bit stuffing and all fixed formats appearing in a regular frame .
处于自动过错状况的节点能正常参加总线通讯的收发和当检测到过错时将发送过错标志,过错标志由6个接连的显现位组成(这种接连的6个显现位与惯例的填充位和其它帧固定格局不相同,正因为如此,硬件才简单差异)。
- Error-passive(被迫过错)
An error-passive node shall not send an active error flag. It takes part in bus communication, but when an error has been detected a passive error flag shall be sent. The passive error flag shall consist of six (6) consecutive recessive bits. After transmission, an error-passive node shall wait some additional time before initiating a further transmission .
处于被迫过错状况的节点不能发送自动过错标志。它能参加正常通讯,但当检测到过错时发送的是被迫过错标志。被迫过错标志由6个接连的隐性位组成。当发送完毕后,处于被迫过错状况的节点鄙人一次再次发送时之前需求等候一些额定时刻。
- Bus-off(离线)
A node shall be in the bus-off state when it is switched off from the bus due to a request of FCE. In the bus-off state, a node shall neither send nor receive any frames. A node shall start the recovery from bus-off state only upon a user request.
因为过错界定规矩,一个节点或许处于离线状况,当处于此状况时,这个节点既不发送也不接纳。至于何时离线康复取决于何时用户恳求。
2 ISO11898中过错界定的规矩
2.1 描绘
当涉及到过错界定,一个节点有必要处于下述三个过错状况中的其间一个,至于详细是哪种过错状况取决于节点的过错计数值:
- 自动过错状况(Error-active)
- 被迫过错状况(Error-passive)
- 离线状况(Bus-off)
2.2 过错计数
过错计数器当检测下下述事情时将修正过错计数值:
- 当一接纳节点检测到一个过错时,过错计数器将加1.有一种状况能够排外,即当检测到发送一自动过错标志或许重载标志时呈现一位过错时在外。
- 当一接纳节点发送一过错标志时,检测到首位为显性位时,过错计数器加8.
- 当一发送节后发送过错标志时,过错计数器加8,这时有两种状况在外:1:当这个发送节点处于自动过错状况下,且检测到因为ACK域未有显性位而形成的ACK过错,但是在发送时未检测到被迫过错标志;2:当发送节点发送一过错标志时,在裁定时检测到填充位过错(这些填充位本来应该是隐性,但检测成果为显性)。以上两种反常过错计数值保存原值不变。
- 当发送节点发送一自动过错标志或重载标志时,检测到位过错时,过错计数器加8.
- 当接纳节点娄送一自动过错标志或重载标志时,检测到位过错时,过错计数器加8.
- 任何节点在发送自动过错标志,被迫过错标志,或重载标志时都应都忍耐接连7个显现位。当检测到衔接14个显现位,或许被迫过错标志后紧跟着衔接8个显现位,或许8个接连显性位后紧跟着被迫过错标志时,一切发送节点发送过错计数器加8,一切接纳节点接纳过错计数器加8.
- 发成功发送一帧报文后,发送计数器应减1,除非当时现已为0.
- 当成功接纳一帧报文后,假如当时接纳计数器的值大于1且小于127,则接纳计数器减1;假如接纳计数器的值为0,则坚持为0;假如在于127,则接纳计数器的值应设置为119~127之间的值。
2.3 自动过错状况和被迫过错状况之间的改变
当发送过错计数器或许接纳过错计数器的值大于127时,该节点变成被迫过错状况。
当节点从自动过错状况变为被迫过错状况时,节点将发送一自动过错标志。
当被迫过错节点的发送过错计数器和接纳过错计数器的值都小于且等于127时,将再次变为自动过错状况。
2.4 离线办理
假如一个节点的发送过错计数器的值超越255时,那么此节点将会处于离线状况。处于离线状况的节点不会对总线发生任何影响,它将不会发送音讯帧,ACK,过错帧,过载帧等,至于会不会接纳总线上的数据,撤销于此节点的完成。
当一个处于离线状况下的节点接纳到128次衔接11位隐性位时,将变成自动过错状况,且一起设置发送过错计数器和接纳过错计数器为0.
注:详细完成或许并不会与上述所描绘的如出一辙,比方离线复原,在STM32是有一开关来设置是否会自动复原,假如此功用制止了,那么当处于离线状况下的节点接纳到128次衔接11连隐性位时也不会不复原成自动过错状况。
图1