金桔
金币
威望
贡献
回帖0
精华
在线时间 小时
|
写了四篇关于UDS的文章之后,感觉有点疲劳了,换换脑子,写写ODX,下周再写UDS。
ODX的全称是Open diagnostic data exchange , 它是ASAM制定的标准架构诊断仪(MVCI ,Modular Vehicle Communication Interface )所使用的数据文件。MVCI的大体结构如下图所示:

MVCI的结构
MVCI诊断仪的核心是D-Server,即Diagnostic Server。ASAM为MVCI的三个部分进行了标准化,分别是
1、D-Server向应用软件提供的API
标准化了编写诊断测试工具时所需要的函数接口。
2、VCI向D-Server提供的D-PDU API
VCI即我们常用的诊断头,根据ASAM的定义,传输层以下的功能应该全部实现在VCI上,VCI向D-Server提供标准化的函数接口,VCI的驱动安装在计算机上,所以计算机上的诊断仪软件就可以直接操作VCI了(通常以动态链接库dll文件的形式提供接口)。VCI向下连接ECU,向上连接计算机。
3、诊断文件ODX
ODX是格式标准化的诊断文件,有了它之后,我们在诊断不同的车,或者不同的ECU时,只需要加载适配这个车型或ECU的ODX文件即可,而无需对诊断仪做任何改变。ODX另一个重要的作用是,它统一了诊断文件的格式,所以诊断文件在研发、测试、生产、售后等部门中传递交换的时候,不需要进行格式转换。
目前ASAM发布的ODX版本有两个,分别是2.0.1和2.2.0,我在工作中使用的还是2.0.1版本,所以我在专栏中的文章都是基于此版本的。
ODX文件用途举例:
工程师使用诊断仪,点击读取发动机转速的服务,假设这个测量值用ID XX YY表示,则诊断仪将这个服务解析为22 XX YY,并通过VCI发给ECU。ECU得到诊断指令后,返回62 XX YY 0B B8,D-Server知道了发动机转速是0B B8,但是工程师并不知道这个值是什么意思,所以D-Server需要借助ODX文件中的信息,将0B B8翻译成对人类友好的信息格式,包括单位等。经过D-Server的运算,向工程师返回3000 rpm这个数值。
ODX文件在物理上的存在形式就是XML文件,我们可以直接用文本编辑器或者XML工具把它打开,但是这种方法的可阅读性非常差,除非对ODX文件极其了解,非专业人士很难看明白。
今天先简单写点吧,如果有同行对此感兴趣,请告知,我再详尽写一写。
原文地址:https://zhuanlan.zhihu.com/p/34218403 |
|