ODX data model for diagnostics
DIAG-LAYER
提供tester与ECU诊断通讯的信息,如诊断参数,诊断服务等。所有ECU特定通讯参数被包含在ODX中,tester完全由数据驱动,当测试另外一个新ECU时,软件不需要改动,只加载相应的ODX data即可。
为了避免诊断数据的重复冗余,比如,某个ECU根据高低配置,有几个变种,它们的诊断数据部分可能不同,ODX将这些数据分为了5个层次,从上到下依次为:
PROTOCOL,
FUNCTIONAL-GROUP,
BASE-VARIANT,
ECU-VARIANT.
ECU-SHARED-DATA类似与lib的机制,为其他4层提供服务。
实现策略
实现分层数据模型,达到各层数据的抽象,这种特殊继承方式叫值继承,并且底层对象(specialized)可以覆盖(overriding)上层对象(general);
创建框架支持ECU 变种和base变种;
定义D-server应用可见的对象,如DIAG-SERVICE(下面讲);
UML表示的诊断层次模型图:
例子
下图是一个这些分层的diag 层数据的例子;
⎯ a protocol (ISO 15765);
⎯ two base variants (a body control module BCM and a door control module DCM);
⎯ two variants of the BCM and one variant of the DCM;
⎯ a library to collect globally defined PIDs (parameter identifiers);
⎯ a functional group definition to allow functional communication to the complete DOORS system
(functional addressing).
Diag layer的共性
DIAG_LAYER集合了以下组件:
- REQUEST 对象;
- POS-RESPONSE, NEG-RESPONSE, GLOBAL-NEG-RESPONSE 响应对象;
- ADMIN-DATA and COMPANY-DATA 对象;
- FUNCT-CLASS对象,用来分类DIAG-COMM包含的对象,语义由用户自定义;
- DOP-BASE and TABLE,DIAG-DATA-DICTIONARY-SPEC:包含数据元素,用来解析诊断消息;
- DIAG-COMM对象:DIAG-SERVICE和SINGLE-ECU-JOB的抽象,被暴露给D-server;
- ADDITIONAL-AUDIENCEs
- STATE-CHARTs
- LIBRARYs;
- SUB-COMPONENTs
UML视图如下:
DIAG-Layer数据模型包括众多对象,建议从DIAG-SERVICE 对象(XML中,称为元素)入手,作为诊断服务数据的根节点,其结构如下
对象都是可以复用的,一个对象链接到另一个对象可以通过reference形式(links in XML),
值继承
值继承属于ODX中核心概念,让对象继承的技术用于诊断数据模型:
- 多个ECU或ECU变种对诊断数据的复用;
- 抽离出各个ECU项目中不同的数据并说明,而不是重复相同数据,从而减少数据量;
- 提供了数据安全和可集成性;
值继承是不同诊断层的一种关系,比如在类 PROTOCOL, FUNCTIONALGROUP,
BASE-VARIANT, ECU-VARIANT and ECU-SHARED-DATA之间,意味着包含在DIAG-LAYER A的数据对象,通过在DIAG-LAYER B中建立到A的值继承关系,也可以被包含进B中。
diag layer的一种类型(PROTOCOL, FUNCTIONAL-GROUP, BASE-VARIANT, ECU-VARIANT
or ECU-SHARED-DATA)只能继承diag-layer的其他指定类型,比如,一个diag layer不能继承其他diag layer的同种类型,它们之间继承关系如下图所示:
较高层次的diagnostic layer被认为“more general”,较低层的被认为“more special”,
只有下面的类对象遵从值继承:
⎯ DIAG-COMM (its specializations);
⎯ DIAG-VARIABLE;
⎯ GLOBAL-NEG-RESPONSE;
⎯ DOP-BASE (its specializations);
⎯ TABLE;
⎯ FUNCT-CLASS;
⎯ VARIABLE-GROUP;
⎯ ADDITIONAL-AUDIENCE;
⎯ STATE-CHART;
⎯ UNIT-GROUP.
下表2展示了可能的值继承关系
值继承规则及优先级
这里不做详细说明,参考ISO22901-1 章节7.3.2.4.3,7.3.2.4.4,7.3.2.4.5