当前位置:首页 » 《关注互联网》 » 正文

CANoe之UDS诊断自动化测试(一):CANoe诊断界面介绍1(无CDD文件也可以做诊断自动化)

23 人参与  2024年04月12日 12:10  分类 : 《关注互联网》  评论

点击全文阅读


 系列文章目录

CANoe之UDS诊断自动化测试(一):CANoe诊断界面介绍1

CANoe之UDS诊断自动化测试(二):CANoe诊断界面介绍2

CANoe之UDS诊断自动化测试(三):手动创建诊断服务(无CDD文件)  

  持续更新中.......................................


目录

前言

CANoe诊断模块介绍

 1.Diagnostics/ISO TP Configuration窗口

加载CDD文件

设置传输层参数

设置诊断层参数


前言

     对于汽车测试行业的小伙伴来说,我们接触最多的就是CANoe软件,最基本的操作就是进行在线数据采集和离线数据分析,当然再进一步就是进行一些仿真测试,比如测试ECU的功能性能等。当我们在进行ECU测试时,还有一项最重要的测试项目,那就是诊断测试。本文基于CANoe软件,结合ISO 14229协议,通过操作和理论协议相结合的方式来介绍UDS诊断测试,只需一篇文章就可以掌握诊断协议并实现UDS诊断自动化测试。特别是无CDD文件的情况下也能实现UDS诊断自动化测试

UDS(Unified Diagnostic Service,统一诊断服务)也就是ISO 14229,提供了诊断服务的基本框架,是面向整车所有ECU单元的诊断协议。UDS诊断服务包括6大类共26种服务,主要应用包括诊断/通信管理、数据处理、故障信息读取、在线编程及功能/元件测试等,


CANoe诊断模块介绍

首先打开CANoe软件,在主界面中点击“Diagnostics”,即图中红色框就可进入诊断模块,诊断界面如下图所示。


 1.Diagnostics/ISO TP Configuration窗口

加载CDD文件

CDD文件:用于诊断的数据库文件,由CANdelaStudio工具制作,可以加载到CANoe软件中,用于诊断参数的解析。值得一提的是CANoe软件也自 带 了CANdelaStudio的插件,但是如果只有CANoe的license的话只能使用CANdelaStudio进行查看CDD文件,并不能编辑。

 进入诊断界面后,点击“Diagnostic/ ISO TP”进入诊断TP层参数配置。 首先加载CDD文件。(如果我们在测试之前已经制作好了CDD文件,则直接可以将CDD文件导入CANoe),具体操作如下图:

(制作CDD文件需要使用CANdelaStudio,此工具license比较贵,如果我们当前没有CANdelaStudio的license无法制作CDD文件,使用CANoe自带的“Basic Diagnostic Editor(基本诊断编辑器)”模板也是可以实现诊断测试的,,后续会介绍此方式)​​​​​

 选择电脑本地的CDD文件,添加成功后如下图所示,CANoe会自动显示加载的“ECU Qualifier(CDD文件名称)”以及文件保存地址,ECU Qualifier指当前CDD文件在CANoe中的标识符名称,使用CAPL发送诊断时会用到此标识符。在同一个ECU中,CDD文件的标识符名称必须是唯一的,即下图中的“Test”。点击OK即可加载完成。

  需要注意的是,加载CDD文件后, 会自动弹出“Fault Memory (故障记忆)”和 “Session  Control (会话控制 )” 两个窗口(如下图,具体功能下文会介绍),如果使用CANoe自带的“Basic Diagnostic Editor(基本诊断编辑器)”模板(无CDD文件),则以上两个窗口置灰不可操作。

设置传输层参数

添加好CDD文件后,点击“Transport Layer”打开“Configure Transport Layer (CAN)”界面,对其传输层参数进行设置,主要包括“Addressing(诊断地址信息)”和“Additional ISO TP protocol parameters(TP协议参数)”。如下图所示,具体值依据诊断信息表进行设置,定义可参考ISO 15765-1标准。

Addressing(诊断地址信息):包括请求地址、物理寻址和功能寻址,一般以0x7开头,ECU所支持的诊断服务其物理寻址都支持;功能寻址只支持10 11 28 3E 85 22 14 19 这几个服务 (即31、2e、2F、34、36、37不支持)。

Additional ISO TP protocol parameters(TP协议参数):

     STmin:接收方发送流控帧之后,发送方发送的连续帧之间的时间最小间隔。

     Block size:接收方发送流控帧之后,发送方被允许连续发送的最大帧数目。,如果该值为0,则表示发送连续帧数目没有限制。

      FC delay:CANoe收到首帧或者连续帧后,延迟回复流控帧的时间。

      Max. length:最大传输数据长度,一般取最大值4095(3bit DLC最大值)。

最后一列“Mixing of CAN 2.0 and FD frames”表示是否兼容CAN帧和CAN-FD帧。其中:

gnore为两者不兼容,例如配置为CAN帧时,CANoe不接受CAN-FD帧,配置为CAN-FD帧时则不支持CAN帧;

Accecpt和Adapt都为兼容,两者不同之处在于当配置为CAN帧时,CANoe可以接受CAN-FD帧,前者返回的是CAN帧,但后者返回的是CAN-FD帧。

设置诊断层参数

点击“Diagnostic Layer”打开“Configure Diagnostic Layer (CAN)”界面,设置Tester Present参数,具体操作如下:

(1)勾选“Send tester Present”,选择“Manually defined”,填入会话保持诊断报文,一般为“0x3E 00”。

设置“S3 client time”值(会话保持报文发送周期)

UDS诊断之3E服务-会话保持:

这个服务的目的是确保诊断服务或者之前激活的通信还处在激活的状态,可以保持当前的非默认(Default Session)会话,通过周期地发送请求帧来阻止自动跳转回默认(Default Session)会话。

一般在实际应用中,比如在写DID的时候,可能会要求进入用户自定义的Session,还有可能会通过0x27服务进入一定安全等级,为了使这些服务在写DID的时候是在激活状态,就会使用0x3E使这些服务保持在激活状态,以完成写DID的操作。

此处添加好会话保持报文并勾选“Send tester Present”后,后续直接通过点击CANoe的“tester Prest on”功能,即可自动发送或者停止会话保持报文,实现会话保持功能。


(2)根据诊断信息表设置“Timing”参数(此表由OEM或者ECU开发提供)

S3 client time:诊断仪(CANoe)自动发送会话保持报文(3E服务)的周期;

S3 server time:停止发送会话保持报文(3E服务),ECU保持在非默认会话的最大时间;

P2 client:诊断仪(CANoe)发送完请求报文到收到回复的时间间隔;

P2 server:ECU收到请求报文到开始回复的时间间隔;

P2 extended client:诊断仪(CANoe)收到NRC 78到下一次回复的时间间隔;

P2 extended server:ECU发送完NRC 78到下一次回复的时间间隔;

注意:P2 client值必须大于P2 server值,同理P2 extended client必须大于P2 extended server。


(3)“Security Access”:Security DLL文件配置

Seed&Key DLL:用于27服务安全解锁。为了防止ECU数据被误改,许多诊断服务需要在不同的安全访问等级下访问,在CANoe中用户需要配置自定义的动态链接库(DLL)文件来提供解锁安全访问算法,该.dll文件由OEM或Tier1提供。

加载此文件后,需要解锁时只需在诊断控制台手动点击27服务即可完成解锁,如没有此.dll文件也可根据安全算法写CAPL脚本完成解锁(后续文章会介绍此方法)


未完待续


点击全文阅读


本文链接:http://zhangshiyu.com/post/94226.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1