在CAN总线中存在5种过错类型,它们相互并不排挤,下面简略介绍一下它们的差异、发生的原因及处理办法。
位过错:向总线送出一位的某个节点一起也在监督总线,当监督到总线位的电平与送出的电平不一起9则在该位时间检测到一个位过错。可是在裁定区的填充位流期间或应对空隙送出隐性位而检测到显性位时,不认为是过错位。送出认可过错标示的发送器,在检测到显性位时也不认为是过错位。
填充过错:在运用位填充办法进行编码的报文中,呈现了第6个接连相同的位电平常,将检 测出一个填充过错。
CRC过错:CRC序列是由发送器CRC核算的成果组成的。接纳器以与发送器相同的办法核算CRC。假如核算的成果与接纳到的CRC序列不同,则检测出一个CRC过错。
方式过错: 当固定方式的位区中呈现一个或多个不合法位时,则检测到一个方式过错。
应对过错:在应对空隙,发送器未检测到显性位时,则由它检测出一个应对过错。
检测到犯错条件的节点经过发送过错标志进行标定。当任何节点检测出位过错、填充过错、方式过错或应对过错时,由该节点鄙人一位开端发送出过错标志。
在CAN总线中,任何一个单元或许处于下列3种毛病状况之一:过错激活状况(ErrorActive)、过错认可状况(Error Pasitive)和总线封闭状况(Bus off)。
过错激活单元能够照旧参加总线通讯,而且当检测到过错时,送出一个活动过错标志。过错 认可节点可参加总线通讯,可是不答应送出活动过错标志。当其检测到过错时,只能送出认可错 误标志,而且发送后仍为过错认可状况,直到下一次发送初始化。总线封闭状况不答应单元对总 线有任何影响。
为了界定毛病,在每个总线单元中都设有2个计数:发送犯错计数和接纳犯错计数。这些 计数依照下列规矩进行。
(1)接纳器查看出过错时,接纳器过错计数器加1,除非一切检测过错是发送活动过错标志或超载标志期间的位过错。
(2)接纳器在送出过错标志后的第一位查看出显性位时,过错计数器加8。
(3)发送器送出一个过错标志时,发送器过错计数器加8。有两种状况破例:其一是假如发 送器为过错认可,因为未检测到显性位应对或检测到应对过错,而且在送出其认可过错标志时,未检测到显性位;别的一种状况是假如裁定器材发生填充过错,发送器送出一个隐性位过错标志,而检测到的是显性位。除以上两种状况外,发送器过错计数器计数不改动。
(4)发送器送出一个活动过错标志或超载标志时,检测到位过错,则发送器过错计数器加8。
(5)在送出活动镨误标志、认可过错标志或超载过错标志后,任何节点都最多答应接连7个显性位。在检测到第11个接连显性位后,或紧随认可过错标志检测到第8个接连的显性位,以及附加的8个接连的显性位的每个序列后,每个发送器的发送过错计数都加8,而且每个接纳器的接纳过错计数也加8。
(6)报文成功发送后,发送过错计数减1,除非计数值现已为0。
(7)报文成功发送后,假如接纳过错计数处于1~197之间,则其值减1;假如接纳过错计数为0,则仍坚持为0;假如大于127,则将其值记为119~127之间的某个数值。
(8)当发送过错计数等于或大于128,或接纳过错汁数等于或大于128时,节点进人过错认,可状况,节点送出一个活动过错标志。
(9)当发送过错计数器大于或等于256时,节点进人总线封闭状况。
(1O)当发送过错计数和接纳过错计数均小于或等于127时,过错认可节点再次变为过错激活节点。
(11)在检测到总线上11个接连的隐性位发送128次后,总线封闭节点将变为2个过错计数器均为0的过错激活节点。
(12)当过错计数器数值大于96时,阐明总线被严峻搅扰。
假如系统启动期间仅有1个节点挂在总线上,此节点发出报文后,将得不到应对,查看出过错并重复该报文,此刻该节点能够变为过错认可节点,但不会因而封闭总线。