0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

lhl545545 ? 来源:ZLG致远电子 ? 作者:ZLG致远电子 ? 2020-06-09 16:30 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

总线关闭是CAN节点比较重要的错误处理机制。在总线关闭状态下,CAN节点的恢复流程是怎样的?如何理解节点恢复流程的“快恢复”和“慢恢复”机制?本文将为大家详细分析总线关闭及恢复的机制和原理。

故障界定与总线关闭状态

为了避免某个设备因为自身原因(例如硬件损坏)导致无法正确收发报文而不断的破坏总线的数据帧,从而影响其它正常节点通信,CAN网络具有严格的错误诊断功能,CAN通用规范中规定每个CAN控制器中有一个发送错误计数器和一个接收错误计数器。根据计数值不同,节点会处于不同的错误状态,并根据计数值的变化进行状态转换,状态转换如下图所示。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图1 节点状态转换图情形1

以上三种错误状态表示发生故障的严重程度,总线关闭是节点最严重的错误状态。并且,节点在不同的状态下具有不同的特性,在总线关闭状态下,节点不能发送报文或应答总线上的报文,也就意味着不能再对总线有任何影响。

状态跳转和错误计数的规则使得节点在发生通信故障时有了较好的自我错误处理和恢复机制,从一种较严重的错误状态跳转到另一种严重性相对较低的状态,本质上就是一种恢复过程。图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总线的帧间隔时间大于0.011264s,节点在总线空闲时间内便可轻易恢复通信。我们已经知道,当进入总线关闭状态时,节点已经发生了严重的错误,处于不可信状态,如果迅速恢复参与总线通信,具有较高的风险,因此,在实际的应用中,往往会通过MCU对CAN控制器总线关闭状态的恢复过程进行编程处理,以控制节点从总线关闭状态恢复到错误主动状态的等待时间,达到既提高灵活性又保证节点在功能上的快速响应性的目的。具体包括“快恢复”和“慢恢复”策略,两种策略一般同时应用。

通过以上的讨论,我们可以知道,节点进入总线关闭状态后,存在以下几种恢复情况:

MCU仅开启CAN控制器的自动恢复功能,节点只需检测到128次11个连续的隐性位便可以恢复通信,恢复过程如图1所示。

MCU没有开启CAN控制器的自动恢复功能,也不主动干预总线关闭错误,节点将一直无法“自动”恢复总线通信,只能通过重新上电的方式使节点恢复, 恢复过程如图2所示。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图2 节点状态转换图情形2

MCU对CAN控制器的恢复过程进行编程处理,这时,节点的恢复行为由具体的编程逻辑决定,各厂家普遍采用了先“快恢复”后“慢恢复”的恢复策略,恢复过程如图3所示。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图3 节点状态转换图情形3

MCU如何实现“快恢复”和“慢恢复”?

MCU编程实现总线关闭“快恢复”和“慢恢复”的一般过程可用以下流程图描述:

图4 MCU实现总线关闭恢复流程

节点以正常发送模式发送报文的过程中,如果出现了发送错误,发送错误计数会增加,只要发送错误计数没有超过255, CAN控制器便会自动重发报文,如果出现多次发送错误,使发送错误计数累加超过255,则节点跳转为总线关闭状态。MCU能够第一时间知道节点进入了总线关闭状态(例如在错误中断处理逻辑中查询状态寄存器的相应位),这时MCU控制CAN控制器进入“快恢复”过程,即控制CAN控制器停止报文收发,并进行等待,计时达到需要的时间T1(如100ms)后,MCU重新启动恢复CAN控制器参与总线通信,这样便完成了一次“快恢复”过程。

节点每进入一次“快恢复”过程时,MCU会对此进行计数,当节点“快恢复”计数达到设定的值N(如5次),则后续再次进入总线关闭状态时MCU把恢复总线通信的等待时间T2进行延长(如1000ms),这样便实现了“慢恢复”过程。“快恢复”和“慢恢复”过程的主要区别就在于恢复节点参与总线通信的等待时间的不同。

通过MCU对于总线关闭后的恢复行为进行编程控制,实际上是对CAN控制器的错误管理和恢复机制进行了补充,使得总线关闭状态后的恢复过程更加灵活,更能适应实际应用的需要。对于 “快恢复”和“慢恢复”的等待时间,以及“快恢复”计数多少次后进入“慢恢复”过程,不同厂家可根据具体的需求进行编程实现。

实测总线关闭恢复过程

通过广州致远电子有限公司的CAN总线分析仪的流量分析功能,可以很方便分析总线关闭后节点的恢复过程及测试“快恢复”和“慢恢复”的恢复时间。

第一步,连接DUT但先不要上电。按以下配置,使能接收干扰功能,并开启报文读取功能。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图5 功能设置

第二步,给DUT上电,并采集一段时间报文,停止采集后使用流量分析功能进行分析。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图6 采集报文并进行流量分析

第三步,鼠标放置于波形“团”(本文把包含多帧密集帧的波形称为波形“团”)之间读取恢复时间。

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图7 读取恢复时间

至此,我们便可以得出结论:该DUT对总线关闭的恢复过程进行了编程控制,采用了先“快恢复”后“慢恢复”的恢复机制,节点进入总线关闭状态后,进行一次“快恢复”过程,后续进行“慢恢复”过程,两个恢复过程的恢复时间分别为27.5ms和209.5ms。

那么,我们该如何根据所得波形理解该DUT进入总线关闭状态及恢复通信的整个过程呢?

把第一个波形“团”放大得到下图:

为什么需要对总线关闭状态的节点实现“快恢复”和“慢恢复”策略?

图8 放大波形“团”观察

可以清晰的看到,波形“团”中包含共32帧CAN报文。把其余各波形“团”放大后也都是包含32帧,这里不再把详细的图片贴出来。

DUT上电后,初始发送和接收错误计数都为0。由于在测试时配置了接收干扰功能,当DUT开始发送报文后,每一帧报文都受到CAN总线分析仪的干扰而出现发送错误,第一次发送时发送错误计数加8,并自动重发,第二次发送时错误计数再加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的编程逻辑实现的恢复机制,是总线关闭状态下恢复过程的补充,使恢复过程更具有灵活性。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7261

    浏览量

    92253
  • 总线
    +关注

    关注

    10

    文章

    2962

    浏览量

    89920
  • CAN节点
    +关注

    关注

    0

    文章

    9

    浏览量

    9221
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    恢复二极管串联与并联设计:均压均流与应用挑战

    恢复二极管凭借较短的反向恢复时间和较低的开关损耗,在高频整流、PFC电路和逆变器等应用中广泛使用。随着电源系统的功率密度不断提升,单颗二极管的耐压或电流能力往往不足,这就需要通过串联
    的头像 发表于 07-23 09:56 ?155次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>二极管串联与并联设计:均压均流与应用挑战

    MySQL数据备份与恢复策略

    数据是企业的核心资产,MySQL作为主流的关系型数据库管理系统,其数据的安全性和可靠性至关重要。本文将深入探讨MySQL的数据备份策略、常用备份工具以及数据恢复的最佳实践,帮助运维工程师构建完善的数据保护体系。
    的头像 发表于 07-14 11:11 ?181次阅读

    MDD恢复整流器失效模式详解:过热、浪涌与封装问题一网打尽

    失效、浪涌损伤及封装老化等风险。本文将深入解析恢复整流器的主要失效模式,并提供工程应对策略。一、过热失效:热设计不可忽视的关键恢复整流器
    的头像 发表于 06-27 10:00 ?215次阅读
    MDD<b class='flag-5'>快</b><b class='flag-5'>恢复</b>整流器失效模式详解:过热、浪涌与封装问题一网打尽

    恢复整流器在电动车控制器中的典型应用与热管理策略

    。本文将聚焦恢复整流器在电动车控制器中的典型应用,并探讨其热管理策略。一、恢复整流器的作用机理简述
    的头像 发表于 06-26 09:54 ?221次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>整流器在电动车控制器中的典型应用与热管理<b class='flag-5'>策略</b>

    恢复桥如何进行全面检查?

    恢复桥凭借其快速恢复特性,在高频电力转换领域发挥着不可替代的作用。通过视觉检测、电气参数测量、热成像监测与频谱分析等系统化检测手段,可实现
    的头像 发表于 04-22 11:49 ?222次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>桥如何进行全面检查?

    MDD恢复二极管的应用设计

    1.恢复二极管概述恢复二极管(FastRecoveryDiode,FRD)是一种专门用于高频整流应用的二极管,其特点是具有短反向恢复时间
    的头像 发表于 03-27 11:11 ?492次阅读
    MDD<b class='flag-5'>快</b><b class='flag-5'>恢复</b>二极管的应用设计

    恢复二极管分类全解析:从基础结构到前沿应用

    在变频器IGBT驱动电路中,一个反向恢复时间过长的二极管导致开关损耗增加30%,这个案例揭示了恢复二极管选型对电力电子系统的关键影响。作为高频开关电路的核心元件,
    的头像 发表于 02-26 09:38 ?792次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>二极管分类全解析:从基础结构到前沿应用

    恢复二极管的导通压降与温度的关系

    恢复二极管(FastRecoveryDiode,简称FRD)是一种广泛应用于开关电源、逆变器、变频器等高频电路中的半导体器件。其特点是反向恢复时间短,能够快速从导通状态切换到截止
    的头像 发表于 02-12 10:39 ?770次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>二极管的导通压降与温度的关系

    恢复二极管的优势与特性

    的定义 恢复二极管是一种具有快速反向恢复时间的半导体器件,它能够在极短的时间内从正向导通状态切换到反向阻断状态,或者反之。这种快速的切换能
    的头像 发表于 02-07 09:40 ?775次阅读

    网络恢复比灾难恢复更加复杂

    技术已然成为维持企业运营的重要动力。对于大多数企业来说,IT服务中断直接影响到运营目标的实现。关注业务连续性的IT策略非常重要。虽然许多企业已经制定了完善的传统灾难恢复计划,但它们往往无法应对当今数据意外事件的复杂性。企业亟需制
    的头像 发表于 01-17 15:49 ?540次阅读

    恢复二极管的重要参数

    恢复二极管(Fast Recovery Diode, FRD)因其较短的反向恢复时间和良好的开关特性,在高频电路、开关电源、逆变器及电机驱动等领域得到了广泛应用。
    的头像 发表于 09-13 16:32 ?4014次阅读

    恢复二极管的主要参数有哪些

    恢复二极管是一种专为快速切换应用而设计的二极管,主要用于高频整流、开关电源和逆变器等领域。1.反向恢复时间(ReverseRecoveryTime,t_rr)反向恢复时间是
    的头像 发表于 09-11 13:51 ?1663次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>二极管的主要参数有哪些

    恢复桥损坏如何判断

    恢复桥是一种广泛应用于电力电子设备中的整流器件,通常用于对电流要求较高且需要快速恢复特性的电路中。由于其快速切换特性,
    的头像 发表于 09-04 14:27 ?644次阅读
    <b class='flag-5'>快</b><b class='flag-5'>恢复</b>桥损坏如何判断

    恢复二极管有什么作用

    恢复二极管(Fast Recovery Diode,简称FRD)是一种具有快速反向恢复特性的高速开关二极管,它在现代电子工业中扮演着至关重要的角色。以下是对
    的头像 发表于 08-16 18:10 ?5096次阅读

    恢复二极管是什么意思

    恢复二极管(Fast Recovery Diode,简称FRD)是一种具有特殊电气特性的半导体二极管,其核心特点在于其极短的反向恢复时间和优异的开关性能。
    的头像 发表于 08-16 18:10 ?3166次阅读