诊断文件ODX(三)

ODX本身存在的物理形式就是xml文件,但是从逻辑上来说,ODX文件却分为很多种类,不同种类的ODX文件对于诊断仪来说用途是不一样的。理解这些ODX文件的种类及其之间的关联,对于理解这种构造诊断数据的方式来说非常重要。

基于2.0.1版本的ODX文件,共分为5大类:

Diag-Layer-Container

Comparam-Spec

Multiple-ECU-Job-Spec

Vehicle-Info-Spec

Flash

Diag-Layer-Container是诊断文件的核心内容,它定义了所有的诊断服务及其使用的数据类型。

Comparam-Spec定义了诊断仪和ECU通信使用的参数信息,主要包括两类,一类是时间参数,比如接收或发送帧时的timeout,另一类是控制诊断仪行为的参数,比如出错之后诊断仪需要重新发送几次命令。

Multiple-ECU-Job-Spec中定义了同时和多个ECU进行通信的方法。

Vehicle-Info-Spec定义了车型信息以及车型的网络拓扑结构,即这个车中有哪些ECU,如何与这些ECU建立logical link进行诊断通信。

Flash相对独立,它就是ECU的软件或参数文件。

其中的Diag-Layer-Container又分为5小类:

PROTOCOL

FUNCTIONAL-GROUP

BASE-VARIANT

ECU-VARIANT

ECU-SHARED-DATA

它们之前存在着继承引用关系,从而减少数据冗余。下图是规范中举的一个反映这5种文件之间继承关系的例子。

最上层是PROTOCOL,它定义了某种诊断应用层协议,比如UDS或OBD。

下面是FUNCTIONAL-GROUP,定义了某些多个ECU共同支持的诊断服务或数据。

BASE-VARIANT代表了一个具体ECU的位置,在每个车型中,每个ECU只有一个BASE-VARIANT文件,它继承PROTOCOL和FUNCTIONAL-GROUP,可以对上面两层中的诊断服务和数据进行引用,也可以对继承的服务和数据进行更改。

ECU-VARIANT是各个ECU的具体实现。比如,在一个PDX包中,只有一个发动机的BASE-VARIANT文件,但是,发动机可以有1.4,1.6,1.8,2.0等等不同配置,而不同配置的发动机ECU则有不同的诊断数据,体现在ECU-VARIANT中。

ECU-SHARED-DATA是一个数据库,定义了通用的数据类型,由上述4种文件对其进行引用。

诊断仪启动后,与某个ECU建立连接的过程大致如下所述:

诊断仪从Vehicle-Info-Spec文件中获取该车型所支持的ECU列表,当用户从诊断仪界面选择某个ECU时,诊断仪利用Vehicle-Info-Spec中存储的logical link 信息寻找代表该ECU的BASE-VARIANT文件,有了BASE-VARIANT文件,诊断仪就可以和ECU进行通信了,然后诊断仪会询问ECU所使用的EV文件名字和版本,并在PDX包中寻找这个EV文件。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181106G1PBYP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券