当前位置:首页 > 产品中心 > MCU芯片

节点BusOff康复进程剖析与测验

 发布时间:2021-11-25 03:16:33 来源:www.fun88.com

  节点的康复流程是怎样的?又该怎么了解节点康复流程的“快康复”和“慢康复”机制?本文将为咱们具体剖析总线封闭及康复的机制和原理。

  为了防止某个设备因为本身原因(例如硬件损坏)导致无法正确收发报文而不断的损坏总线的数据帧,然后影响其它正常节点通讯,CAN网络具有严厉的过错诊断功用,CAN通用标准中规矩每个CAN操控器中有一个发送过错计数器和一个接纳过错计数器。依据计数值不同,节点会处于不同的过错状况,并依据计数值的改变进行状况转化,状况转化如下图所示。

  以上三种过错状况表明产生毛病的严峻程度,总线封闭是节点最严峻的过错状况。而且,节点在不同的状况下具有不同的特性,在总线封闭状况下,节点不能发送报文或应对总线上的报文,也就意味着不能再对总线有任何影响。

  状况跳转和过错计数的规矩使得节点在产生通讯毛病时有了较好的自我过错处理和康复机制,从一种较严峻的过错状况跳转到另一种严峻性相对较低的状况,本质上便是一种康复进程。图1所呈现的转化进程是CAN通用标准所要求的,咱们从设备供货商买回来的CAN操控器现已把这些功用固化在硅片之中。

  在通讯进程中,过错自动和过错被迫两种状况下节点的康复进程一般不需求MCU进行额定的编程处理,直接运用CAN操控器固有功用即可。但关于总线封闭状况,往往不直接运用CAN操控器固有的康复进程,而是对其进行编程操控,以完成“快康复”和“慢康复”机制。

  1、因为篇幅有限,关于过错计数的具体规矩以及各状况下节点的具体特性不在本文进行评论,读者能够查阅CAN的相关协议标准。

  2、本文的“CAN操控器”是指现已完成了CAN通用协议物理层和数据链路层所要求的功用和特性的器材,如SJA1000;而“节点”是指把CAN操控器与MCU、收发器等相关器材进行整合开发出来的具有必定功用的CAN节点。

  当节点进入总线封闭状况后,假如MCU仅是敞开自动康复功用,CAN操控器在检测到128次11个接连的隐性位后即可康复通讯,在实践的CAN通讯总线中,这一条件是很简单到达的。以125K的波特率为例,128*11*(1/125000)= 0.011264s。这意味着假如节点地点的CAN总线s,节点在总线闲暇时刻内便可容易康复通讯。咱们现已知道,当进入总线封闭状况时,节点现已产生了严峻的过错,处于不可信状况,假如敏捷康复参加总线通讯,具有较高的危险,因而,在实践的使用中,往往会经过MCU对CAN操控器总线封闭状况的康复进程进行编程处理,以操控节点从总线封闭状况康复到过错自动状况的等候时刻,到达既进步灵敏性又保证节点在功用上的快速呼应性的意图。具体包括“快康复”和“慢康复”战略,两种战略一般一起使用。

  (1)MCU仅敞开CAN操控器的自动康复功用,节点只需检测到128次11个接连的隐性位便能够康复通讯,康复进程如图1所示。

  (2)MCU没有敞开CAN操控器的自动康复功用,也不自动干涉总线封闭过错,节点将一向无法“自动”康复总线通讯,只能经过从头上电的方法使节点康复, 康复进程如图2所示。

  (3)MCU对CAN操控器的康复进程进行编程处理,这时,节点的康复行为由具体的编程逻辑决议,各厂家遍及采用了先“快康复”后“慢康复”的康复战略,康复进程如图3所示。

  节点以正常发送形式发送报文的进程中,假如呈现了发送过错,发送过错计数会添加,只需发送过错计数没有超越255, CAN操控器便会自动重发报文,假如呈现屡次发送过错,使发送过错计数累加超越255,则节点跳转为总线封闭状况。MCU能够第一时刻知道节点进入了总线封闭状况(例如在过错中止处理逻辑中查询状况寄存器的相应位),这时MCU操控CAN操控器进入“快康复”进程,即操控CAN操控器中止报文收发,并进行等候,计时到达需求的时刻T1(如100ms)后,MCU从头发动康复CAN操控器参加总线通讯,这样便完成了一次“快康复”进程。

  节点每进入一次“快康复”进程时,MCU会对此进行计数,当节点“快康复”计数到达设定的值N(如5次),则后续再次进入总线封闭状况时MCU把康复总线ms),这样便完成了“慢康复”进程。“快康复”和“慢康复”进程的首要差异就在于康复节点参加总线通讯的等候时刻的不同。

  经过MCU关于总线封闭后的康复行为进行编程操控,实践上是对CAN操控器的过错办理和康复机制进行了弥补,使得总线封闭状况后的康复进程愈加灵敏,更能习惯实践使用的需求。关于 “快康复”和“慢康复”的等候时刻,以及“快康复”计数多少次后进入“慢康复”进程,不同厂家可依据具体的需求进行编程完成。

  经过广州致远电子有限公司的CAN总线剖析仪的流量剖析功用,能够很便利剖析总线封闭后节点的康复进程及测验“快康复”和“慢康复”的康复时刻。

  至此,咱们便能够得出结论:该DUT对总线封闭的康复进程进行了编程操控,采用了先“快康复”后“慢康复”的康复机制,节点进入总线封闭状况后,进行一次“快康复”进程,后续进行“慢康复”进程,两个康复进程的康复时刻分别为27.5ms和209.5ms。

  能够明晰的看到,波形“团”中包括共32帧CAN报文。把其他各波形“团”扩大后也都是包括32帧,这儿不再把具体的图片贴出来。

  DUT上电后,初始发送和接纳过错计数都为0。因为在测验时装备了接纳搅扰功用,当DUT开端发送报文后,每一帧报文都受到CAN总线剖析仪的搅扰而呈现发送过错,第一次发送时发送过错计数加8,并自动重发,第2次发送时过错计数再加8,直到发送了32次后,发送过错计数大于255,依据图3的过错状况的转化规矩,这时DUT跳转为总线封闭状况,MCU操控进入“快康复”进程一起对“快康复”次数进行计数,并等候约27ms后,MCU操控DUT从总线封闭状况康复为过错自动状况,由MCU继续发动发送,因为依然受CAN总线剖析仪的继续搅扰,发送32帧后再次进入总线封闭状况,再次履行“快康复”或“慢康复”进程,以此类推。

  依据流量剖析的成果可知,该DUT进入“快康复”的计数到达1次后便履行“慢康复”进程,“慢康复”等候时刻约为209ms。

  1、搅扰的设置能够依据需求设置其他的参数,只需保证能对DUT发送的帧进行搅扰使其呈现发送过错即可。

  2、为了剖析完好的总线封闭康复进程,主张DUT和CAN总线剖析仪连接好后,先敞开“报文读取”和“接纳搅扰”功用后再上电DUT。因为这样能保证DUT的接纳过错计数和发送过错计数的初始计数都为0。

  3、需求对DUT进行接连的搅扰,不然DUT康复后成功发送了报文,“快康复”次数的计数会递减,这不利于剖析DUT总线封闭后的整个康复行为。

  4、总线封闭后节点的“康复”是指康复参加总线的通讯,但并不意味着康复后必定能成功发送或接纳报文。如上述事例,DUT康复通讯后因为依然受CAN总线剖析仪的搅扰,导致报文发送再次失利。

  在总线封闭状况下,“快康复”和“慢康复”不是CAN操控器固有的功用,而是经过MCU的编程逻辑完成的康复机制,是总线封闭状况下康复进程的弥补,使康复进程更具有灵敏性。

上一篇:芯片涨价声复兴!MCU扛起国产化大旗13股中报成绩增超100% 下一篇:根据H323 高功能MCU的规划与完成

  快速链接

关于万高 新闻中心 支持与服务

  下载

开发工具 技术文档

  公司

招贤纳士 联系我们

  www.fun88.com

简体中文 English
Copyright © by Vango Technologies, Inc. All rights reserved. 浙ICP备12042626号