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

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

3天内不再提示

CAN的应用层一致性测试

灵动MM32MCU 来源:灵动MM32MCU 作者:灵动MM32MCU 2022-07-29 10:06 次阅读

前面一个章节中我们和大家一起学习了CAN的物理层和链路层的一致性测试项,本章节我们将和大家一起了解CAN的应用层一致性测试。

应用层一致性测试

该测试项主要为了验证 ECU 在网络通信的完整性,一般还包括上层应用层协议的测试,网络管理功能的测试以及故障诊断等方面。

1.1 发送报文测试

报文的发送一般分为周期性的、紧急事件触发型的以及软件使能型,周期性的报文需要测验周期时长的偏差是否满足规约,另外 2 种类型的报文需要在干扰条件下进行看是否会造成发送失败情况。一般以固定 ID 发送至 CAN 工具(一个 CAN 网络至少需要有 2 个节点),通过上位机的时间戳功能查验。

报文发送周期测试主要是测试 DUT 期性报文的间隔时间是否小于允许误差。在DS301通讯规范中,要求由测试设备触发 DUT 进入周期性发送状态,测试设备接收 1 分钟报文后,进行统计,查看是否有间隔超过 20% 的误差的报文。

另外,一般需要 CAN 具备自动重发功能,可以通过 CAN_MCR.AEN 位实现,官方库例程中默认不使能 CAN_MCR.AEN位。

在发送时还有一点需要注意,FlexCAN具有接收自己发出的报文功能,且库例程中是默认开启该功能的,具体可参见 CAN_CTRL1.SRXDIS 寄存器描述,视情况决定是否禁止启用该功能。

1.2 CAN_H/L 对电源/对地短路容错性测试

测试 ECU 在不同错误状态下的容错性能,看错误条件解除后是否能够自动恢复通讯。一般测试时需要使 ECU 处于周期性发送报文的状态,且 CAN_H 或者 CAN_L 对电源/对地短路和自己与总线断路的维持时间要超过 1 min 钟保证错误的积累数致使 ECU 处于被动错误状态。

依据 GMW3122 定义,可分为7 种物理错误类型,包括地线漂移、地线丢失、电源丢失、CAN 线中断、CAN 线各短接到地、CAN 线各短接到电源、CAN 线短路等错误状态。如果恢复后,都可以恢复通讯,则通过测试。

实际测试发现,这几种短路和断路条件只会使 FlexCAN 的 Tx error 计数器增加到超过 127 ,进入被动错误状态而不会发生 Busoff ,期间会一直尝试重发,在恢复总线正常后,计数器的值会逐一递减同时由于能够收到正确的 ACK 响应而恢复正常通讯了,恢复的时长也符合标准。下图展示的是 2s 周期发送报文直到恢复正常通讯的实测图:

255b6546-0e4f-11ed-ba43-dac502259ad0.png

CAN_H 与 CAN_L 短接会导致 FlexCAN 进入 Busoff 状态,由于官方库例程中默认设置开启了自动从总线关闭状态中恢复的功能,所以在解除总线短路后的一段时间内,ECU 重新恢复正常通讯,自动恢复时长 = 128 x 11 x 位时间(即检测到 128次11个连续空闲状态位电平则恢复,符合 CAN2.0B 标准)。

1.3 BusOff快恢复/慢恢复策略测试

当 CAN 通信出现故障时,CAN 控制器会让故障节点从主动错误状态进入被动错误状态,甚至进入总线关闭(BusOff)状态,使故障节点脱离总线的通信,使其不影响正常节点的通信,但该控制方案将导致在系统重新上电之前,进入总线关闭状态的节点会持续无法与其他节点做数据的交互,如若节点只是暂时的故障,那让节点实现自恢复的功能,则是更为上乘的控制方法。所以 CAN 总线设计规范对于 CAN 节点的 BusOff 自恢复方式做了严格的规定,充分考虑了偶发故障与持续故障的处理。

为了避免某个设备因为自身原因(例如硬件损坏)导致无法正常收发数据而不断地破坏数据帧,从而影响其他正常节点通讯,CAN-bus规范中规定每个CAN控制器都有一个发送错误计数器和一个接收错误计数器。根据计数值不同CAN节点会处于不同的设备状态。根据计数值的变化进行状态转换,状态转换如下图所示:

256c6dbe-0e4f-11ed-ba43-dac502259ad0.jpg

接收、发送错误计数器对应的变动条件及数值变动情况:

1

接收单元检测出错误时,检测到错误标识符或过载标志的“位错误”除外,此时REC+1、TEC不变;

2

接收单元在发送完错误标志后检测到第一位为显性电平,此时REC+8、TEC不变;

3

发送单元输出错误标志,此时REC不变、TEC+8;

4

发送单元发送主动错误标志或过载标志,检测出位错误,REC不变、TEC+8;

5

接收单元发送主动错误标志或过载标志,检测出位错误,REC+8、TEC不变;

6

各单元从主动错误标志、过载标志的开始检测出连续14个显性位,之后每检测出连续8个显性位,发送时REC+8、接收时TEC+8;

7

检测出被动错误标志后追加连续8个位的显性位,发送时REC+8、接收时TEC+8;

8

发送单元正常接收数据结束时(返回ACK且到帧结束位检测到错误),REC不变、TEC-1;

9

接收单元正常接收数据结束时(到CRC未检测出错误且正常返回ACK),REC《127时,rec-1,rec》127时,REC=127;TEC不变;

10

处于总线关闭的单元,检测到128次连续11个位的隐形位,错误计数器归零,REC、TEC=0;CAN总线错误处理功能属于是链路层功能,此功能由CAN控制器决定。

汽车内部挂有很多的 ECU 节点,当其中一个节点发生故障进入总线关闭状态时,会很大程度上影响整车 CAN 网络的通讯。所以一方面需要迅速找到引发节点总线关闭的物理故障,另一方面需要遵循一定准则合理设计恢复策略,主要为了控制节点从总线关闭状态恢复到错误主动状态的等待时间,太快或者太慢地恢复都将可能影响到网络其它节点的正常通讯,快恢复和慢恢复两种策略一般同时应用。

整车厂对其系统供应商的设备也都提出了相应的 BusOff 后恢复时间的控制策略要求,对总线关闭状态的节点需要实现“快恢复”和“慢恢复”策略。

2587ae1c-0e4f-11ed-ba43-dac502259ad0.jpg

制定策略大致思路是:将默认配置的自动从总线关闭状态中恢复的功能关闭(CAN_CTRL1.BOFFREC = 1),再实时检查 CAN_ESR1.BOFFINT 寄存器的值来判断是否进入 BusOff状态,当检测到总线关闭后,开启快恢复计时,时间到达后进行一次 CAN 控制器的时钟、驱动及相关寄存器进行初始化操作,初始化完成后如果物理条件恢复正常那么即可完成快恢复,反之循环 10 次前面操作,如果仍旧无法消除 d BusOff 状态,那进入慢恢复策略,同样在开启慢恢复计时并且到达后进行复位 FlexCAN操作, 此时 CAN 总线关闭故障如果解除了,为了避免该节点在 CAN 网络中频繁发生总线关闭问题,此时不立即对外发送 CAN 报文。

大致流程图如下:

259d80b6-0e4f-11ed-ba43-dac502259ad0.jpg

至于自定义的 BusOff后的恢复时间策略,可以根据 CAN_CTRL1.BOFFREC 的寄存器描述来控制关闭自动恢复机制,然后根据自己需要的时间间隔完成后开启自动恢复,官方例程默认为开启了BusOff 自动恢复功能,自动恢复时长 = 128 x 11 x 位时间(即检测到 128次11个连续空闲状态位电平则恢复,符合 CAN2.0B 标准)。

25a78020-0e4f-11ed-ba43-dac502259ad0.png

在BusOff 恢复策略制定时,是需要通过软件流程去实施实现控制时长,IP 层面不能设置恢复的时长。至于如何判断是主动错误还是被动错误,可以根据 CAN_ESR1.FLTCONF 寄存器以及结合CAN_ECR 寄存器来分析。

我们通过CANScope总线综合分析仪对上述的测试项一一进行测试,MM32F0140的FlexCAN 能够满足相关的测试标准,能够满足汽车领域对通信总线的要求,保障整车CAN总线安全稳定。

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

    关注

    31

    文章

    5304

    浏览量

    119889
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2702

    浏览量

    463209
  • 网络管理
    +关注

    关注

    0

    文章

    118

    浏览量

    27639

原文标题:灵动微课堂 (第224讲) | MM32F0140 FlexCAN一致性测试 (2)

文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN一致性测试内容及解决方案

    新能源汽车行业的迅速发展,CAN总线问题日益突出,总线故障潜在问题极其严重。那么,如何保证CAN总线稳定,为何主机厂愈来愈重视CAN一致性测试
    的头像 发表于 05-29 09:14 2.1w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>一致性</b><b class='flag-5'>测试</b>内容及解决方案

    CANDT一致性测试系统发布 保障CAN总线安全

    CAN总线已经成为新能源汽车、军工、航空等行业的主控系统应用总线,ZLG致远电子致力于构建CAN总线安全保障体系,震撼发布CANDT一致性测试系统!
    的头像 发表于 08-29 09:54 6473次阅读

    一致性测试系统的技术原理和也应用场景

    网络瘫痪等问题。因此,为了保证CAN FD网络的正常安全运行,需要对物理、数据链路层和应用层进行一致性测试。例如,物理
    发表于 11-01 15:35

    CAN一致性测试—容错测试

    的CANDT一致性测试系统,该设备可自动化完成CAN节点物理、链路层及应用层一致性
    发表于 11-22 16:36

    高速串行总线的物理一致性测试是什么?由来呢?

    物理一致性测试作为近 10 多年来示波器最主要的用途之直是产业界最常提到的名词之。本
    发表于 08-12 07:17

    MIPI一致性测试

    MIPI一致性测试测试项目:> TX测试;> RX测试;> S参数和阻抗测试;> DigRF,U
    发表于 09-26 13:31

    CAN一致性测试系统之地偏移测试

    测试用于检验组件的可靠运转情况,比如个组件的电源由蓄电池和发动机双路提供,电源电压可能不一致,导致地偏移发生,为了检测CAN信号能否正常通信,可以使用ZLG致远电子的CANDT
    的头像 发表于 12-05 17:16 1w次阅读

    CAN节点一致性测试究竟有多重要

    的良莠不齐将给CAN总线网络带来较大的安全隐患,某个节点的错误将影响整体总线的正常运行,严重时可能导致整体总线的瘫痪。所以,CAN一致性测试是保障C
    的头像 发表于 08-23 11:03 4813次阅读

    AMAZINGIC晶焱科技CAN 总线收发器一致性测试

    AMAZINGIC晶焱科技CAN 总线收发器一致性测试
    的头像 发表于 05-26 15:49 841次阅读
    AMAZINGIC晶焱科技<b class='flag-5'>CAN</b> 总线收发器<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    虹科干货 | 如何进行CANopen的一致性测试

    分享。01CANopen的一致性测试概念可从CiA协会组织官方链接https://www.can-cia.org/services/test-center/了解相关信
    的头像 发表于 07-02 11:32 962次阅读
    虹科干货 | 如何进行CANopen的<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    AMAZINGIC晶焱科技CAN 总线收发器一致性测试

    AMAZINGIC晶焱科技CAN 总线收发器一致性测试
    的头像 发表于 08-29 15:36 698次阅读
    AMAZINGIC晶焱科技<b class='flag-5'>CAN</b> 总线收发器<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    技术分享丨CAN/CANFD一致性测试

    在汽车领域CAN/CANFD网络通信中,各节点(控制器)的质量不一致可能会引发错误、网络故障或网络瘫痪等问题,所以,为保证CAN/CANFD网络的正常安全运行,必须要执行CAN/CAN
    的头像 发表于 04-24 09:28 3512次阅读
    技术分享丨<b class='flag-5'>CAN</b>/CANFD<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    DDR一致性测试的操作步骤

    DDR一致性测试的操作步骤  DDR(双数据率)一致性测试是对DDR内存模块进行测试以确保其性能和可靠
    的头像 发表于 02-01 16:24 1313次阅读

    为什么主机厂愈来愈重视CAN一致性测试

    新能源汽车迅猛发展下整车CAN网络架构日益复杂,总线故障等潜在问题时刻影响着运行安全。整车零部件通过CAN一致性测试必将是安全保障的第道门
    的头像 发表于 05-29 08:24 1074次阅读
    为什么主机厂愈来愈重视<b class='flag-5'>CAN</b><b class='flag-5'>一致性</b><b class='flag-5'>测试</b>?

    新品发布 | 同星智能正式推出CAN总线一致性测试系统

    CAN总线一致性测试系统CANFD/CAN总线一致性测试系统,在硬件系统上基于同星自主研发的总线
    的头像 发表于 07-06 08:21 446次阅读
    新品发布 | 同星智能正式推出<b class='flag-5'>CAN</b>总线<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>系统