摘要:本文介绍汽车ODX数据库的概念和优点,以及ODX数据库的设计要点。
1 ODX数据库是什么
目前,国内大部分主机厂在进行汽车诊断开发时,规范文件几乎均是纸质文档传递。这些纸质规范文件由诊断开发设计师进行制作,并释放给下游开发商,如生产线EOL设备及售后诊断仪开发商、控制器供应商等。这些开发商使用的诊断数据库格式大多不同(如word、excel、pdf、xml等),从纸质文档到软件数据库的转换耗时耗力,且理解及转换容易出现错误。
ASAM(自动化及测量系统标准协会)组织将上述问题统一,提出标准的诊断数据库格式ODX(Open Diagnostic Data Exchange),即开放的诊断数据交换格式。这是一种描述车辆ECU诊断数据的标准数据模型,它基于XML可扩展标记语言,通过UML统一建模语言图表进行详细说明。目前,ODX数据库已形成国际标准ISO 22901-1,其以标准格式说明和交换诊断数据,且数据可重复使用,大大降低整车厂分享诊断数据的成本。
诊断开发的软件架构主要包括4个部分:诊断应用软件、诊断基础模块、诊断接口及数据库,如图1所示。其中,诊断应用软件根据软件不同五花八门;诊断基础模块和诊断接口目前已形成国际标准,连同ODX数据库,这3个国际标准组成了目前诊断软件开发的最基本架构。
2 ODX数据库的创建步骤
每一个车型的每一个控制器都需要建立一个ODX数据库,此数据库可用于测试人员进行单件、集成、整车的诊断测试及功能测试,也可用于各个控制器的供应商进行诊断开发、试制试验人员进行故障排查、EOL设备开发人员以及售后诊断仪开发人员进行设备的底层软件开发工作。
ODX数据库的创建步骤如下。
1)根据基础诊断规范编写ODX数据库的系统架构、继承关系及数据定义准则,编写相关诊断服务的格式、服务、子功能、相关参数等信息。例如:诊断故障码,Dataldentifier,InputOutputIdentifier,RoutineIdentifier,数据单位等。
2)根据各个控制器的诊断规范,在基础诊断规范的ODX数据的基础上,编写各个控制器的诊断数据。可将整车规范中有但是各个控制器规范中不支持的服务及参数在此屏蔽掉,并将各个控制器规范相对于系统级诊断规范增加的内容在此加入至各个控制器的ODX数据库中。将各个控制器的ODX数据库完成后,合并到一起形成整车的ODX数据库。
3)根据该车型的应用程序及程序刷新安全算法编写算法文件(例如java文件),并将其嵌入至此车型各个控制单元的ODX数据库中。
3 ODX数据库的创建实例
以某车型ODX数据库编辑为例,笔者编写时根据实际情况将数据库分成6层:时间参数、共享数据类型、协议层类型、功能组类型、电控单元基本变量类型、电控单元变量类型。每一层所描述的参数见表1。
在这些层级中,越上层的层级表示的越是整车通用的诊断参数,例如各种诊断服务、时间参数等。越下层的层级在继承上层所有参数的基础上,还可以增加或者修改每个控制器独有的诊断参数,例如每个控制器的诊断故障码、功能配置等。
各层级之间的应用和继承关系如图2所示,其中箭头所示即是上下层之间的继承关系。