昨天写了分享了CANOE的基本使用方法(CANOE基本使用教程),其中也简单的介绍了其中诊断功能,今天来详细分享一下,CANOE诊断这一块。
搭建UDS诊断帧发送环境
UDS诊断帧发送环境与上一张CAN帧相同,也分为手动添加和Cdd文件导入两种方式。
■手动方式添加诊断帧
1. 添加一个 BasicDiagnosticECU
2. 添加后如下
ECU qualifier : 使用CAPL脚本发送UDS诊断数据时会使用到,手动发送诊断帧不需要关注
Diagnostics tester : 选择物理请求还是功能请求。默认选择 物理请求
关于物理请求和功能请求的区别,后续会在UDS 专栏中单独介绍
3. 设置 Transport Layer参数
Request to ECU : ECU物理寻址Req ID
Response from ECU : ECU 物理寻址Res ID
Functional to ECU : 功能寻址 Req ID
STmin : TP层协议参数,两包连续帧发送的间隔
BlockSize : TP层协议参数,收到流控帧后可发送连续帧数量。设置为0时,发送数量无限制
FC Delay : CANOe 收到 首帧或连续帧后,回复流控帧的延迟时间。目的是防止CANoe的流控帧回复过快,导致接收端接受失败。
Max.Length : 一帧最大传输数据量(首帧+连续帧)
Mixing of CAN2.0 and FD frames : 是否兼容CAN帧和CAN-FD帧。
Ignore : 默认值, 不兼容,例如配置为CAN帧时,CANOe不接受CAN-FD帧,配置为CAN-FD帧时,也一样。
Accecpt : 兼容,例如配置为CAN帧时,CANOe可以接受CAN-FD帧,返回CAN帧。
Adapt : 兼容,例如配置为CAN帧时,CANOe可以接受CAN-FD帧,并且能返回CAN-FD帧。
上记解释参照自CANOe帮助文档
4. 配置 Diagnostic Layer参数
Send test present : CANOe是否自动发送3E 服务,用于Session保持
S3 Client time : CANOe 自动发送3E服务的间隔
S3 Server time : 下位机程序 未收到 任何诊断请求,保持在Default以外的Session的最大时间
P2 Server : 下位机程序 收到Request 到 开始回复 Response 的时间间隔
P2 Client : 上位机程序 发送完Request 到 收到 回复 Response 的时间间隔
P2 extended Server : 下位机 发送完NRC78 到下一次回复Reponse的时间间隔
P2 extended Client : 上位机收到 NRC78 到 收到下一次回复 Response的时间间隔
Seed&Key DLL : 用于27服务解锁,调用。dll自动计算Key的值,该.dll文件由车厂或Tier1 提供
5. Additional Descriptions 不需要配置
6. 添加需要的诊断服务 (以$10 02 ProgrammingSession为例 )
a. 点击Basic Diagnostic ,打开 面板
b. 右键要添加的服务,选择[Add New Service]
c. 配置子服务的Req
Service Name : CAPL编程时会使用,手动发诊断数据不需要关注。
d.配置Response
按照期待的格式在 [Parameters] 中追加或删除参数。
7. 打开 Diagnostic Console
8. 点击[Start] ,在Diagnostic Console中发送刚才添加的诊断命令
■Cdd导入方式添加诊断帧
实际项目时,车厂或者Tier1会输入cdd文件,集成了所有用到的诊断命令。
通过cdd发送诊断帧的方式如下
1. 导入cdd文件
cdd导入后,相关参数都是配置好的,不需要手动修改。导入后配置如下
2. 可以看到,cdd导入后, Diagnostic console中已经有了诊断命令
3. 按照手动发送诊断帧的方式即可发送。
————————————————
版权声明:本文为CSDN博主「汪汪队睡大覚」的原创文章,已获作者发表许可。
阅读原文,关注作者博客