移动支付引流:can错误类型和界定

来源:百度文库 编辑:中财网 时间:2024/05/04 15:44:32
 

9.2.4 错误类型和界定

1. 错误类型

有以下5种不同的错误类型(这5种错误不会相互排斥)

(1)位错误(Bit Error)

节点在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误。但是在仲裁场(Arbitration Field)的填充位流期间或应答间隙(ACK Slot)发送一“隐性”位的情况是例外的——此时,当监视到一“显性”位时,不会发出位错误。当发送器发送一个“认可错误”标志但检测到“显性”位时,也不视为位错误。

(2)填充错误(Stuff Error)

如果在使用位填充法进行编码的报文中,出现了6个连续相同的位电平时,将检测到一个填充错误。

(3)CRC错误(CRC Error)

CRC序列包括发送器的CRC计算结果。接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。

(4)格式错误(Form Error)

当一个固定形式的位场含有1个或多个非法位,则检测到一个格式错误。(注意:接收器的帧末尾最后一位期间的显性位不被当作帧错误)

(5)应答错误(Acknowledgment Error)

只要在应答间隙期间所监视的位不为“显性”,则发送器会检测到一个应答错误。

2. 错误信号的发出

检测到错误条件的节点通过发送错误标志指示错误。对于“错误激活”的节点,错误信息为“激活错误”标志”;对于“错误认可”的节点,错误信息为“认可错误”标志。节点检测到无论是位错误、填充错误、形式错误,还是应答错误,这个节点会在下一位时发出错误标志信息。

如果检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(除非其他错误条件引起的错误标志已经开始)。

3. 故障界定

(1)CAN的3种故障状态

① 错误激活(Error Active)

“错误激活”的节点可以正常地参与总线通信,并在错误被检测到时发出“激活错误”标志。

② 错误认可 (Error Passive)

“错误认可”节点不允许发送“激活错误”标志。当“错误认可”节点参与总线通信时,在错误被检测到时只发出“认可错误”标志。而且,发送之后,“错误认可”节点将在启动下一个发送之前处于等待状态。

③ 总线关闭(Bus Off)

  “总线关闭”的节点不允许对总线产生任何的影响(如:关闭输出驱动器)。

(2)CAN的2种故障计数器

在每一总线节点使用两种计数器以便故障界定,包括:

① 发送错误计数;

② 接收错误计数。

(3)CAN的故障计数规则

这些故障计数器按以下规则改变(注意:在给定的报文发送期间,可能要用到的规则不止一个):

①    当接收器检测到一个错误,接收错误计数器值就加1。在发送“认可错误”标志或过载标志期间,所检测到的错误为位错误时,接收错误计数器值不加1。

② 当错误标志发送以后,接收器检测到的第一个位为“显性”时,接收错误计数器值加8。

③ 当发送器发送一错误标志时,发送错误计数器值加8。在以下例外情况1和例外情况2发生时,发送错误计数器值不改变。

例外情况1:发送器为“错误认可”,并检测到应答错误(在应答错误中检测不到显性位),而且在发送“认可错误”标志时也检测不到“显性”位。

例外情况2:发送器由于在仲裁期间发生填充错误,此填充位应该为隐性位,但却检测出显性位,发送器送出错误标志。

④ 发送“激活错误”标志或过载标志时,如发送器检测到位错误,则发送错误计数器值加8。

⑤ 发送“激活错误”标志或过载标志时,如果接收器检测到位错误,则接收错误计数器值加8。

⑥ 在发送“激活错误”标志、“认可错误”标志或过载标志以后,任何节点最多允许7个连续的“显性”位。在以下3种情况,每一发送器将它们的发送错误计数值加8,同时每一接收器的接收错误计数值加8:

l       当检测到第14个连续的“显性”位后;

l       在检测到第8个连续的“显性”位跟随在“认可错误”标志后;

l       在每一个附加的8个连续“显性”位序列后。

⑦ 报文成功传送后(得到ACK及直到帧末尾结束没有错误),发送错误计数器值减1,除非已经是0。

⑧ 报文成功接收后(直到应答间隙接收没有错误,并成功地发送了ACK位),如果接收错误计数值介于1和127之间,接收错误计数器值减1。如果接收错误计数器值是0,则它保持0;如果大于127,则它会设置一个介于119到127之间的值。

⑨ 当发送错误计数器值等于或超过128时,或当接收错误计数器值等于或超过128时,节点为“错误认可”。

⑩ 当发送错误计数器值大于或等于256时,节点为“总线关闭”。

 当发送错误计数器值和接收错误计数器值都小于或等于127时,“错误认可”节点重新变为“错误激活”节点。

 在总线监视到128次出现11个连续“隐性”位之后,“总线关闭”的节点可以变成“错误激活”节点,它的两个错误计数值也被置为0