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

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

3天内不再提示

如何验证CAN控制器的错误响应机制?

ZLG致远电子 2025-04-30 18:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制器的错误管理机制的工作原理(点击阅读)。本文将基于其工作原理及ISO16845-1:2016标准,为大家介绍使用ZPS-CANFD设备验证CAN控制器的错误响应过程。


CAN控制器的错误管理机制是保障CAN总线通信可靠性的关键机制,它能检测并处理多种错误情况,即位错误、填充错误、CRC错误、格式错误以及ACK错误,并及时地响应错误帧,另外通过错误计数器的数值(发送错误计数器TEC,接收错误计数器REC),它可以判断自身通信状态,如主动错误、被动错误和总线关闭,从而采取不同应对策略。
在CAN网络里,CAN节点既可以作为发送节点,也可以作为接收节点,当总线上出现错误时,可能是作为发送节点报出的错误,也可能是作为接收节点报出的错误,所以验证CAN控制器错误处理机制,需要从发送和接收两个方向进行测试。本文通过使用ZPS-CANFD设备提供的发送干扰和接收干扰功能,进行总线的错误注入,结合报文接收、报文解码窗口观察总线情况,分析错误帧的产生和错误计数器动作是否符合标准。

411129e2-25ad-11f0-9434-92fbcf53809c.png

图1 ZPS-CANFD功能开启界面

接收错误响应能力验证

在CAN控制器的运行机制中,当面对不同的接收错误时,错误响应位置与REC增量存在一定的差异,部分错误发生后,下一位便紧跟错误标志位;而另一些错误出现后,要在随后几位才开始呈现错误标志位。在REC增量方面,不同错误导致的结果也各不相同,有的错误让REC以1为单位进行递增,有的使其以8为单位进行递增,还有的情况下REC保持不变。接下来我们将通过两个实例,介绍不同错误情形下,CAN控制器的接收错误检测结果以及REC增量是否符合标准。

实例一:CRC错误

1、验证目的

①观察出现CRC错误之后,错误帧生成位置是否符合标准;②观察出现错误帧之后,REC递增是否符合标准。

2、预期结果

①根据ISO16845-1:2016(E)标准中7.2.5小节要求,当DUT接收到CRC错误(CANFD帧的)之后,它将生成一个有效的错误帧,从CRC定界符后的第四位开始;②根据ISO16845-1:2016(E)标准中7.6.10小节要求,当DUT生成一帧错误帧后,它的REC应增加1。

3、硬件准备

ZPS-CANFD作为测量设备,简称ZPS。USBCANFD-200U作为被测设备,简称DUT。

4、软件准备

打开ZPS和DUT的软件,进行CAN通道参数的匹配(如波特率、终端电阻),并开启CAN通道,进行数据数据交互,ZPS参数设置如图2所示。

418f5010-25ad-11f0-9434-92fbcf53809c.png

图2 波特率匹配注:

1、总线允许,代表CAN1通道启动;

2、ZPS的工作模式选择“只听应答模式”,ZPS不会回应错误帧,可以便于在对错误帧的波形分析时,只看到DUT发送的错误帧。

5、错误注

打开ZPS软件的报文发送窗口,添加任意报文(例如ID 100的CANFD帧),然后点开高级按钮,勾选“发送干扰”,将干扰位置选择“自定义”,干扰类型选择“单位干扰”,干扰光标移到CRC的某个位,如图3所示。

42457336-25ad-11f0-9434-92fbcf53809c.png

图3 发送CRC错误注:CANFD帧的CRC场有固定填充位,所以发送CRC错误时,干扰光标不能选择固定填充位,且需离它远一些,否者会发送CRC固定填充位错误,这样就不符合该测试项的预期了。

6、验证结果

①在ZPS软件界面,观察错误帧的波形,当DUT接收到CRC错误后,它的错误帧从CRC定界符后的第四位开始发出,符合标准。如图4、图5所示,对比正确帧和错误帧的CRC定界符位置可以看出。

4256863a-25ad-11f0-9434-92fbcf53809c.png

图4 正确CANFD帧时,CRC起始~CRC定界符宽度:23us

4288bc86-25ad-11f0-9434-92fbcf53809c.png

图5 DUT在CRC定界符后第四位开始发出错误帧注:主动错误帧格式:6个显性位+8个隐性位。
②查看DUT软件界面的错误信息,观察到当出现一帧错误帧时,REC+1,两帧错误帧时,REC+2,以此类推,符合标准。

429765c4-25ad-11f0-9434-92fbcf53809c.png

图6 REC递增结果显示

实例二:EOF错误

1、验证目的

①观察出现EOF错误之后,错误帧生成位置是否符合标准;②观察出现错误帧之后,REC递增是否符合标准。

2、预期结果

①根据ISO16845-1:2016(E)标准中7.2.10小节要求,当DUT接收到EOF错误时,它将生成一个有效的错误帧,从损坏位的下一位位置开始。②根据ISO16845-1:2016(E)标准中7.6.14小节和ISO 11898-1:2015(E)标准中12.1.4.2小节描述,若REC起始值为0,接收节点ACK发送成功,REC保持为0,若REC起始值大于0,接收节点ACK发送成功,REC减1。③根据ISO16845-1:2016(E)标准中7.6.8小节要求,当DUT生成一帧错误帧后,它的REC应增加1。

3、硬件准备同上。

4、软件准备同上。

5、错误注入打开ZPS-CANFD(1)软件的报文发送窗口,添加任意报文,然后点开高级按钮,勾选“发送干扰”,将干扰位置选择“自定义”,干扰类型选择“单位干扰”,干扰光标移到EOF位,如图7所示。

42a748ae-25ad-11f0-9434-92fbcf53809c.png

图7 发送EOF错误

6、验证结果

①在ZPS软件界面,观察错误帧的波形,当DUT接收到EOF错误后,错误帧在该位之后的第一位开始发出,符合标准,如图8所示。

42b4ff26-25ad-11f0-9434-92fbcf53809c.png

图8 DUT在EOF损坏位后第一位开始发出错误帧

②查看DUT软件界面的错误信息,观察到当出现一帧错误帧时,REC保持初始值,符合标准。例如REC初始值为1,因为EOF错误出现在ACK之后,ACK发送成功,REC-1,EOF错误,REC+1,所以,REC值不变。

435e4978-25ad-11f0-9434-92fbcf53809c.png

图9 REC递增结果显示

发送错误响应能力验证

在CAN控制器的运行机制中,当面对不同的发送错误时,它的错误响应一般在错误出现后,下一位便紧跟错误标志位。在TEC增量方面,错误帧的产生会让TEC以8为单位进行递增。接下来我们将通过一个实例,介绍在错误情形下,CAN控制器的发送错误检测结果以及TEC增量是否符合标准。

实例一:CRC定界符错误

1、验证目的

①观察出现CRC定界符错误之后,错误帧生成位置是否符合标准。②观察出现错误帧之后,TEC递增是否符合标准。

2、预期结果

①根据ISO16845-1:2016(E)标准中8.2.5小节要求,当DUT发送报文的CRC定界符位被破坏之后,它将生成一个有效的错误帧,从损坏位的下一位位置开始。②根据ISO16845-1:2016(E)标准中8.6.7小节要求,当DUT生成一帧错误帧后,它的TEC应增加8。

3、硬件准备

同上。

4、软件准备

打开ZPS和DUT的软件,进行CAN通道参数的匹配(如波特率、终端电阻),如图 2所示,并开启CAN通道,ZPS接收DUT发送的报文。DUT发送数据如图10所示。

436ebc86-25ad-11f0-9434-92fbcf53809c.png

图10 DUT发送帧

5、错误注入

打开ZPS软件的被动接收干扰窗口,按照DUT发送的报文,设置帧数据、干扰位置,即设置模版,然后将干扰光标放到“CRC定界符”位,再将干扰类型选择为“隐性干扰为显性”并启动干扰,如图11所示。

4378bc86-25ad-11f0-9434-92fbcf53809c.png

图11 CRC定界符位干扰

6、验证结果

①在ZPS软件界面,观察错误帧的波形,当DUT的CRC定界符位被干扰后,它的错误帧在该位之后的第一位开始发出,符合标准,如图12所示。

43886f82-25ad-11f0-9434-92fbcf53809c.png

图12 DUT在CRC定界符后第一位开始发出错误帧

②查看DUT软件界面的错误信息,观察到当发送一帧错误帧时,它的TEC+8,以此类推,符合标准。4394633c-25ad-11f0-9434-92fbcf53809c.png图13 TEC递增结果显示

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

    关注

    5

    文章

    4785

    浏览量

    93760
  • CAN控制器
    +关注

    关注

    3

    文章

    76

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CAN控制器总线错误分析之CAN节点BusOff恢复过程分析与测试

    “ 总线关闭(bus off)是CAN节点比较重要的错误处理机制。那么,在总线关闭状态下,CAN节点的恢复流程是怎样的?又该如何理解节点恢复流程的“快恢复”和“慢恢复”机制?本文将为大
    发表于 08-04 11:16 1.7w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>总线<b class='flag-5'>错误</b>分析之<b class='flag-5'>CAN</b>节点BusOff恢复过程分析与测试

    示波器破解CAN错误帧/BusOff的经验分享

    MCU内置了CAN控制器用来将MCU的数据封装为CAN帧格式,同时它也负责CAN帧的校验和错误帧的处理。
    发表于 09-08 09:19 2581次阅读

    CAN控制器错误怎么检测?

    CAN在汽车电子中的应用是什么?CAN控制器错误怎么检测?
    发表于 05-18 06:39

    基于Verilog HDL语言的CAN总线控制器设计及验证

    在此利用Verilog HDL设计了一款CAN总线控制器,首先根据协议把整个CAN总线控制器划分为接口逻辑管理、寄存逻辑和
    发表于 07-31 14:25 8874次阅读
    基于Verilog HDL语言的<b class='flag-5'>CAN</b>总线<b class='flag-5'>控制器</b>设计及<b class='flag-5'>验证</b>

    浅析CAN总线错误分析与解决

    CAN总线上有干扰,导致CAN控制器发生接收错误CAN总线上的信号经过收发转化为差分电平信
    发表于 10-08 14:31 5952次阅读
    浅析<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>分析与解决

    深入探讨CAN节点错误管理机制

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。那么,CAN节点为什么能感知错误?又是如何
    的头像 发表于 10-20 09:49 2884次阅读
    深入探讨<b class='flag-5'>CAN</b>节点<b class='flag-5'>错误</b>管理<b class='flag-5'>机制</b>

    CAN控制器和收发

    一、CAN控制器CAN控制器用于将欲收发的消息(报文),转换为符合CAN规范的CAN帧,通过
    发表于 12-04 11:21 28次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>和收发<b class='flag-5'>器</b>

    基于FPGA的CAN总线控制器的设计

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,CAN 总线协议解析以及 CAN 通信控制器
    的头像 发表于 05-18 09:21 2263次阅读
    基于FPGA的<b class='flag-5'>CAN</b>总线<b class='flag-5'>控制器</b>的设计

    虹科干货 | 带你全面认识“CAN总线错误”(一)——CAN总线错误错误

    节点错误状态,并通过实际的应用测试生成并记录CAN错误。什么是CAN总线错误控制器局域网络(C
    的头像 发表于 05-27 10:39 5651次阅读
    虹科干货 | 带你全面认识“<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>”(一)——<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>与<b class='flag-5'>错误</b>帧

    STM32 CAN接收/发送错误寄存如何清零?

    ,每一个节点都有一个CAN控制器CAN控制器通过内部寄存和接口与CAN总线连接。其中,在
    的头像 发表于 09-14 14:22 6577次阅读

    CAN收发CAN控制器的区别

    CAN总线系统是现代工业自动化和汽车控制系统中常用的通信协议。在CAN总线系统中,CAN收发CAN
    的头像 发表于 05-28 15:44 5290次阅读

    CAN总线控制器是什么意思

    CAN总线控制器(Controller Area Network Bus Controller)是CAN总线通信系统中的核心部件,它扮演着接收、处理并转发CAN总线数据的关键角色。下面
    的头像 发表于 09-03 14:16 3067次阅读

    CAN总线控制器的工作原理

    CAN(Controller Area Network,控制器局域网)总线控制器的工作原理涉及多个方面,包括消息传输、冲突检测与解决、总线仲裁等关键机制。以下是对
    的头像 发表于 09-30 11:33 2874次阅读

    CAN节点错误管理机制工作原理解析

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。那么,CAN节点为什么能感知错误?又是如何
    的头像 发表于 03-25 11:44 689次阅读
    <b class='flag-5'>CAN</b>节点<b class='flag-5'>错误</b>管理<b class='flag-5'>机制</b>工作原理解析

    CAN芯片逻辑响应验证测试

    CAN芯片研发阶段,需要做诸多涉及通讯错误管理验证的问题。在ISO-16845国际标准中,规定完善的测试标准,如错误帧检测,传输帧相关检测,错误
    的头像 发表于 04-30 18:24 604次阅读
    <b class='flag-5'>CAN</b>芯片逻辑<b class='flag-5'>响应验证</b>测试