上回系列文章《基于ODX診斷測試開發(1): ODX數據庫剖析》簡單介紹了ODX文件類型及各個文件層級結構,本期我們來詳細介紹下ODX數據庫如何解析。
在展開正文之前,先說明一下,此文介紹的解析ODX數據庫的目的所在。針對涉及診斷功能類(如DTC等)測試的項目,實現過程大致為兩步:先通過CANoe-CAPL完成通用的診斷功能測試腳本的開發;當針對具體ECU實施測試時,依據該ECU的診斷數據表,完成上述通用腳本的參數配置,可以手動配置(效率較低)或通過解析診斷數據表完成自動配置。過往項目中,診斷數據表既有Excel表格也有ODX格式。為此,北匯開發了診斷數據表的解析模塊(支持Excel和ODX格式),實現對測試腳本參數的自動配置,從而提高效率。
01 ODX實現方式
ODX使用統一建模語言UML類圖來描述的,ODX數據又是通過XML文件格式來儲存的。我們知道類包含屬性和方法,同時具有封裝、繼承、多態等特點。那么如何將UML映射為XML呢?ISO22901-1規范做出如下規定:
規 定
將UML類映射為XML的元素;
如果UML中類的屬性有《attr》標記,則將該屬性映射為XML元素的屬性;如果UML中類的屬性無《attr》標記,則映射為XML元素的子元素。如果UML屬性有《content》標記,則映射為XML元素的內容;
如果類B通過Aggregation和composition和類A建立聯系,則類B映射為XML 類A元素的子元素;
如果類B通過association和類A產生關聯,則在XML中通常以引用的方式實現,如《snref》,《snpathref》或《odxlink》;
UML類圖中的繼承關系,在XML中以《PARENT-REF》的方式實現;
注:Aggregation、composition和association為UML類圖之間的關系,在這里不做詳細介紹。
圖1和圖2就是根據以上規則,將UML轉化為XML的例子。
圖1
圖2 02 ODX繼承-值繼承
值繼承屬于ODX中的核心概念,面向對象繼承的概念用于診斷數據模型具有如下優點:
多個ECU變體對診斷數據的復用;
對于ECU應用于多個項目的情況,可以提取公共數據,ECU變體中只保留不同的數據,從而減少數據冗余;
提供了數據安全和可集成性。
在上一期我們簡單介紹了下ODX繼承,為了避免數據的重復冗余,ODX將診斷層分為了5個層級。如圖3所示,其中,Protocol具有一般性,ECU Variant具有特殊性,ECU Shared Data類似一個library,可以為其他層提供數據和服務。
圖3
我們知道,ODX中的繼承關系,在XML中以《PARENT-REF》的方式實現的,如果繼承的數據中有部分數據不適用,可以通過《NOT-INHERITED-DIAG-COMM》去除不適用的數據。從圖4的例子中可以看出,該ECU不支持level3和level4解鎖等級。
圖4
03 ODX解析思路簡介
當我們拿到一份ODX或者PDX(PDX是將一系列ODX文件打包)時,如何開展解析工作呢?
首先找到ECU的Base Variant文件。
在Base Variant中查找繼承關系。
在Base Variant文件中查找對應的ECU變體即ECU Variant。
在ECU Variant文件中查找對應的診斷服務和數據。
圖5 04 ODX解析實踐
根據章節3的ODX解析思路,獲得的解析結果見圖6、7和8。其中ECU Shared Data作為library,提供了通用的診斷服務,見圖6;而ECU變體BCM 88890251 A除了繼承Base Variant的通用診斷服務,還增加了多個DID、RID、IO Control,同時去除了19 15、27 05和27 06這些不適用的服務。圖8展示了ODX中包含的多種數據類型,這里不再詳細介紹。
圖6
圖7
圖8
05 總結
相較于傳統的Excel格式的診斷數據交換的不便性,ODX統一了診斷文件的格式,在研發、測試、生產和售后等部門傳遞交換時,不需要進行格式轉換,因此,很多OEM開始使用ODX。目前,北匯已經開發基于ODX的診斷自動化測試方案,感興趣的小伙伴可以一起交流。
審核編輯 :李倩
-
自動化
+關注
關注
29文章
5645瀏覽量
79732 -
數據庫
+關注
關注
7文章
3853瀏覽量
64750 -
ecu
+關注
關注
14文章
893瀏覽量
54798
原文標題:基于ODX診斷測試開發(2): ODX數據庫解析
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
在一個穩固的基礎上高效的開發汽車診斷功能
CANoe:網絡和ECU開發、測試和分析的專業工具
用PowerBuilder做數據庫開發
基于ODX診斷測試開發(2): ODX數據庫解析
詳細介紹下如何解析ODX數據庫
基于ODX的工程診斷儀 — DDS
![基于<b class='flag-5'>ODX</b>的工程<b class='flag-5'>診斷</b>儀 — DDS](https://file.elecfans.com/web2/M00/36/06/pYYBAGIwCtaABdEoAAFCPNLdFKc861.png)
11月11日在線研討會預熱 | ODX診斷數據庫轉換工具 — VDC(ODX)
![11月11日在線研討會預熱 | <b class='flag-5'>ODX</b><b class='flag-5'>診斷</b><b class='flag-5'>數據庫</b>轉換工具 — VDC(<b class='flag-5'>ODX</b>)](https://file.elecfans.com/web1/M00/DE/FE/pIYBAGAc6YSAAbSlAAbR3x4F45I201.jpg)
11月11日在線研討會 | Excel診斷調查問卷與ODX轉換和應用
![11月11日在線研討會 | Excel<b class='flag-5'>診斷</b>調查問卷與<b class='flag-5'>ODX</b>轉換和應用](https://file.elecfans.com/web1/M00/DE/FE/pIYBAGAc6YSAAbSlAAbR3x4F45I201.jpg)
ODX 診斷數據庫轉換工具 — DDC
![<b class='flag-5'>ODX</b> <b class='flag-5'>診斷</b><b class='flag-5'>數據庫</b>轉換工具 — DDC](https://file.elecfans.com/web1/M00/DE/FE/pIYBAGAc6YSAAbSlAAbR3x4F45I201.jpg)
11月11日在線研討會 | Excel診斷調查問卷與ODX的轉換及應用
![11月11日在線研討會 | Excel<b class='flag-5'>診斷</b>調查問卷與<b class='flag-5'>ODX</b>的轉換及應用](https://file.elecfans.com/web1/M00/DE/FE/pIYBAGAc6YSAAbSlAAbR3x4F45I201.jpg)
YTJM-ODX-220TP-30S常開單向傾斜滾珠開關參數介紹
![YTJM-<b class='flag-5'>ODX</b>-220TP-30S常開單向傾斜滾珠開關參數介紹](https://file.elecfans.com/web2/M00/54/3F/pYYBAGLSM1CAHKFKAAAdaP5DBkA561.png)
在嵌入式開發領域,有哪些好用的國產工具?
ODX診斷數據庫轉換工具 - DDC
![<b class='flag-5'>ODX</b><b class='flag-5'>診斷</b><b class='flag-5'>數據庫</b>轉換工具 - DDC](https://file1.elecfans.com/web3/M00/04/6B/wKgZO2dzYpCAeeE_AAAZKgGWPnE390.png)
評論