如何在CANoe中使用DFS诊断功能集

描述

在2026年,CANoe迎来了它的30周年。在这个重要节点,我们整理了一系列由一线专家团队沉淀的技术经验,希望帮助您在实际项目中更高效地发挥CANoe的能力。每一个主题,都对应一个CANoe的具体功能或典型工作流程,助您解决开发中的实际挑战,优化使用方式,并带来可感知的效率提升。

摘要

CANoe的诊断功能集(Diagnostic Feature Set,DFS)提供一种简单的方法用于仿真被诊断ECU,可以在缺少真实ECU的情况下验证诊断测试脚本,也可以用于测试诊断仪或网关的诊断路由功能。

能做什么?

能解决什么问题?

在实际项目中,诊断通信并不仅仅是“收发报文”,而是由多个层级共同构成的一套机制

物理层(CAN/LIN/Ethernet等)

传输层(ISO-TP、DoIP、FrTP等)

诊断应用层(UDS、KWP等)

如果要完整模拟一个ECU的诊断行为,就需要同时处理传输协议和诊断服务两部分内容。在传统方式下,开发者通常需要编写大量代码,自行实现传输协议处理逻辑,包括报文分段与重组、流控和超时控制等,同时还需要处理诊断请求解析以及诊断响应生成等内容。这种方式不仅开发工作量大,而且对实现细节要求较高,稍有疏漏就可能导致通信异常或行为不一致。

为了解决这一类问题,CANoe的DFS提供一种基于配置的诊断ECU仿真方式,用户只需加载诊断描述文件,并指定仿真ECU行为的网络节点,无需编写任何CAPL代码,即可由工具自动完成诊断ECU的仿真。其行为包括:

自动处理传输协议(如ISO-TP、DoIP等)

自动响应诊断请求

自动填充诊断参数(默认值)

如果默认响应无法满足需求(例如需要更真实的ECU行为),还可以通过CAPL进一步调整仿真逻辑,例如设定参数值,实现从“快速仿真”到“更贴近真实行为”的平滑过渡。

如何在CANoe中找到此功能?

如何开始使用?

1.添加诊断描述文件

打开CANoe的诊断配置(Diagnostics/ISO-TP),在任意网络下添加诊断描述文件(CDD/ODX等),以CAN总线为例:

网关

2. 配置诊断层与传输层参数(可选)

通常这些配置在诊断描述文件中已有定义,如有需要也可以在“Transport Layer”和“Diagnostic Layer”配置页中进一步调整,以CAN总线为例:

网关

3. 启用仿真功能

在Simulation Setup窗口中对应的总线网络上创建网络节点;在诊断配置窗口的“Usage of the Diagnostic Description”中勾选“Simulated by”,并在下拉列表中选择一个网络节点,该节点将承担诊断ECU的仿真角色,点击OK完成配置:

网关

至此,已经完成了基础的仿真流程。如果需要更复杂的行为,可以在仿真节点中通过CAPL来实现。例如对特定服务中的参数进行设定:

网关

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分