尚未签到
|
- 最近发现有好多测试老手,包括一些软件的同事,遇到所使用CANoe工程中没有导入*.cdd 诊断数据库文件或者新建CANoe工程的情况下,想读取ECU诊断信息,都是直接用 CANoe IG 模块模拟发送诊断报文,如果所请求的诊断报文不需要多帧交互的情况还好,一旦要读取一个超过单帧长度的DID 以及DTC,用IG 的方式访问就很麻烦,以读取ECU DTC ($19 02 FF)为例:
复制代码 其步骤如下:- 通过IG 发送诊断请求 [size=85%]03 19 02 FF 00 00 00 00;
- 待接收到ECU回复首帧诊断报文后,然后在N_Bs 超时前通过IG 发送流控帧,如[size=85%]30 00 14 00 00 00 00;
IG 配置截图:💡以IG这种方式先发送诊断请求,再发送流控帧的方式相当于手动模拟CAN TP 层协议,不仅要设置帧的PCI信息,且要严格按照TP 的交互流程发生流控帧,在时间上很不好把握💡以下针对没有 .cdd 文件或者不懂如何使用 Vector CANdelaStudio 或没有工具权限编辑*.cdd 文件而需要诊断仿真的场景,简单说明一下基于Diagnostic Console 发送诊断请求的配置:1. 创建诊断仿真节点从[size=85%][size=85%]Diagnostic→ [size=85%]Diagnostic/ISO TP 配置ECU诊断💡注意:一个CAN 网络可以建立多诊断仿真节点,选择左侧CAN,然后选择[size=85%]"[size=85%]Add Basic Diagnostic Description(UDS)" 即可!2. 配置节点诊断描述信息- Transport Layer 配置
- Diagnostic Layer 配置
配置完成之后,可以看到诊断仿真节点的控制台窗口:3. 通过诊断控制台发送诊断请求通过[size=85%]Diagnostic→ [size=85%]Diagnostic Console可以打开诊断仿真节点的控制台如下:💡这样就可以随意通过诊断控制台发送任何诊断报文了,而不需要通过IG 这种麻烦的方式进行模拟4. 配置常见的诊断服务通过[size=85%]Diagnostic→ [size=85%]Basic Diagnostic可以打开配置界面:💡以下以新增10 01/03,以及22 F1 86 为例进行说明同样再分别选中$10/$22服务,然后右键新建服务,创建 10 03 & 22 F1 86:此时回到诊断控制台可以看见新建的诊断服务:💡对于常用的一些诊断服务就可以直接双击即可通过诊断控制台发送出去,可以省去输入诊断数据的步骤。💡注意:Basic Diagnostics 也可以维护诊断数据库文件,即可以导出然后导入,这样ECU 通用的一些服务就可以做到重复使用,如下:按照步骤 1 新建仿真节点 ZCU_to_PDM:进入到[size=85%]Diagnostic→ [size=85%]Basic Diagnostic,然后选择新创建的节点:可以看到新创建的节点ZCU_to_PDM也可以使用[size=85%]Basic Diagnostic 服务
如果你有GET到新的技能点,记得一键三连 !
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|