在基于CANoe的测试中,我们常会遇到一些典型场景:例如需要快速读取ECU诊断信息,此时许多测试工程师往往会首选使用IG(Interactive Generator Block)模块直接模拟发送诊断请求。使用IG模块对于单帧可完成简单请求,然而一旦需要读取超长数据(如某些DID信息)或诊断故障码,IG手动组帧的繁琐与多帧处理的复杂性便会立刻显现,使得整个过程效率低下且极易出错。本文将以CANoe为实操平台,结合CDD诊断数据库文件,描述如何通过诊断控制台(Diagnostic Console)来发送诊断指令。
CDD(CANdela Diagnostic Descriptions)诊断数据库文件是用于描述汽车电子控制单元诊断数据的数据库文件,主要用于优化诊断开发过程。CDD文件使用Vector公司的CANdelaStudio工具创建,可以在CANoe/CANalyzer中用于诊断服务和参数的访问和解释。
(一) 打开CANoe软件的【Diagnostic/ISO TP】模块
图1 【Diagnostic/ISO TP】界面 图2 CANoe导入CDD诊断数据库文件 编辑
(三)修改诊断控制台参数
导入CDD文件后可以在【Transport Layer】界面根据控制器参数信息修改诊断ID,传输层参数,总线类型等。
图3 【Transport Layer】界面
(五)双击左侧的诊断服务来发送诊断数据
图5 双击左侧的诊断服务来发送诊断数据
图7和图8为诊断控制台发送CAN诊断数据和发送CAN FD诊断数据的截图。
图 7 CAN诊断报文发送
(七)加载安全访问DLL文件来进行安全解锁
打开【Diagnostic Layer】界面,找到【Seed&Key DLL】,加载安全访问DLL件后,可以发送27服务来进行安全解锁。
图9 【Diagnostic Layer】界面
(八)发送功能寻址诊断命令
找到【Usage of the Diagnostic Description】,选择【Functional Group Requests】,打开【Diagnostic Console】界面发送诊断数据。
图11 【Functional Group Requests】
(九)注意激活在线保持
打开【Diagnostic Console】界面,点击【Tester Present on】图标,可以开启在线保持,Tester 周期发送3E 80维持会话。
图13 开启在线保持
(二)控制器IP配置及逻辑地址配置
在【Diagnostic/ISO TP】中,找到【DoIP/HSFZ Setting】,设置Tester逻辑地址,控制器逻辑地址以及控制器IP地址。
图15 控制器IP配置及逻辑地址配置
CANoe通过诊断控制台发送LIN诊断报文的步骤与发送CAN诊断报文步骤1-7相同,需要增加如下几个配置项:
(一)在导入CDD文件之前需要先加载LDF文件
在菜单栏【Simulation】下找到【Simulation Setup】并点击,找到LIN Networks,右键点击【Database】后点击【Add】添加LDF文件。
图18 添加LDF文件
图20 修改LDF文件
(四)打开【Diagnostic Console】界面发送诊断数据
图22 LIN诊断报文发送 编辑
以上介绍了利用CANoe诊断控制台直接发送CAN/LIN/Ethernet诊断请求的详细步骤。该方法的核心优势在于通过集成CDD诊断数据库,将复杂的多帧通信底层工作交由工具自动完成,从而实现操作简化以及效率提升。
北汇信息作为一家专注于汽车电子测试领域的企业,在车载网络测试方面积累了丰富经验。我们可提供专业的培训、技术咨询及完整的测试解决方案,协助汽车制造商与零部件供应商确保车载网络系统的可靠性及安全性。如您需要具体的测试服务或希望了解更多信息,欢迎随时联系我们。
注:文中部分图片来源于Vector