在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来实现。例如对特定服务中的参数进行设定:

全部0条评论
快来发表一下你的评论吧 !