基于CANoe的Basic Diagnostics ECU (UDS)

基于CANoe的Basic Diagnostics ECU UDS

  • 1. CANoe 支持的Diagnostic数据库
  • 2. 添加Basic Diagnostics ECU (UDS)
  • 3. 编辑Basic Diagnostics ECU (UDS)
  • 4. 在CAPL里调用Basic Diagnostics ECU (UDS)

前几天有个小兄弟咨询如何添加UDS数据库的问题,今天就整理下如何添加和维护UDS数据库,以及如何在CAPL中使用。

1. CANoe 支持的Diagnostic数据库

基于CANoe的Basic Diagnostics ECU (UDS)_第1张图片
其中:

  1. ECU Diagnostic Description (CDD, ODX/PDX, MDX) 是需要Vector公司的 CANdelaStudio 开发的,而且是需要 License 的。
  2. Basic Diagnostics ECU (UDS & KWP) 可以通过 Basic Diagnostic Editor 编辑和维护,这个是CANoe的一个免费组件,但是不支持按 Bit 解析,最小可以定义的参数为 8bit .

所以一般我会选择Basic Diagnostics ECU (UDS) 实现基本的UDS 服务,毕竟免费的。

2. 添加Basic Diagnostics ECU (UDS)

2.1 在CANoe界面里,依次选择 Configuration --> Diagnostic/ISO TP…
基于CANoe的Basic Diagnostics ECU (UDS)_第2张图片
2.2 在CAN channel上右键选择 Add Basic Diagnostics ECU (UDS)
基于CANoe的Basic Diagnostics ECU (UDS)_第3张图片
之后会出现如下界面:
基于CANoe的Basic Diagnostics ECU (UDS)_第4张图片
2.3 配置UDS参数
根据自己的需求配置Physical & Functional request ID, Response ID 以及TP 参数。
基于CANoe的Basic Diagnostics ECU (UDS)_第5张图片

3. 编辑Basic Diagnostics ECU (UDS)

在CANoe界面里,依次选择 View --> Basic Diagnostics
基于CANoe的Basic Diagnostics ECU (UDS)_第6张图片
基于CANoe的Basic Diagnostics ECU (UDS)_第7张图片
以**$10 DiagnosticSessionControl_Process**为例,

  1. $10 DiagnosticSessionControl_Process右键选择 Add New Service
  2. 更改 Service NameDiagnosticSessionControl_01(在CAPL里会用到)
  3. 更改 diagnosticSessionType 为 0x1($10 01
  4. 更改 Response 的数据长度为4 bytes(32bit).
  5. 选择 Commit
    基于CANoe的Basic Diagnostics ECU (UDS)_第8张图片
    基于CANoe的Basic Diagnostics ECU (UDS)_第9张图片

4. 在CAPL里调用Basic Diagnostics ECU (UDS)

/*@!Encoding:936*/
includes
{
  
}

variables
{
  diagRequest DiagnosticSessionControl_01 dr_Session_01;
}

on start
{
  diagSetTarget("BasicDiagnosticsEcu");
}

on key 'a'
{
  /*Physical request 0x700*/
  diagSendRequest(dr_Session_01);
}

on key 'b'
{
  /*Functional request 0x7DF*/
  diagSendFunctional(dr_Session_01);
}

其中 DiagnosticSessionControl_01 是之前定义的Service Name
BasicDiagnosticsEcu 是之前定义的 Ecu Name

你可能感兴趣的:(Canoe学习笔记,经验分享,程序人生)