1.ODX簡介
由ASAM組織提出的診斷數據交互格式,全稱為Open Diagnostic Data Exchange,包含ODX2.0.1和ODX2.2.0規范,兩個版本之間不兼容。ISO收錄了其中ASAM ODX2.2.0規范,即ODX規范ISO-22901,主要用于描述整車以及ECU的診斷數據,方便供應商與OEM、產品開發與售后間的數據交互。ODX使用統一建模語言(UML)圖描述,數據交互格式使用可擴展標記語言(XML)存儲記錄數據。便于承載從設計、開發、測試、生產及售后維護的全流程工作。
2.ODX文件類型
ODX2.2.0(ISO-22901)將ODX文件分為如下類型:
- odx-c/-cs:通訊參數,如會話層、傳輸層時間參數以及邏輯地址等通訊相關信息
- odx-d:ECU診斷層規范(包含ECU所有診斷服務以及診斷使用的數據)
- odx-v:車輛信息(-v文件可以包含整車所有控制器拓撲結構,診斷儀可以通過logic link選擇需要診斷的ECU)
- odx-e:ECU配置(產線ECU配置信息)
- odx-f:ECU編程數據(ECU刷寫相關數據,如checksum和簽名信息等)
- odx-fd:功能字典(車輛功能信息庫,如中控鎖功能包含四個車門功能信息)
- odx-m:多ECU功能規范(定義了同時和多個ECU進行通訊的方法)
2.1.PDX文件
PDX文件可作為各類型ODX文件的容器,將相關ODX文件打包為PDX文件(.pdx),并且作為輸入物導入診斷工具。
2.2.ODX包目錄文件index.xml
ODX包目錄由一個CATALOG實例表示,它提供了存儲在相應PDX包中的所有文件的列表。
元素“FILE”的內容代表PDX中包含的文件,
元素“CATEGORY”內容如下:
- ODX-DATA:適用于所有ODX文件
- ODX-JOB:適用于java-files,class-files,jar-files,dll-files
- LIB:所有被JOB使用或導入的文件
- PROGRAMMING-DATA:用于控制器編程的bin/hex文件
![pYYBAGLg3QuAGr8GAAJT-uLYGpM105.png](https://file.elecfans.com/web2/M00/57/73/pYYBAGLg3QuAGr8GAAJT-uLYGpM105.png)
2.3.車輛信息odx-v
odx-v文件主要作為診斷儀訪問ECU的入口,包含兩個重要元素:
- Info-Component(該元素包含OEM、Vehicle-Model、Model-year、Vehicle-Type等)。
- Vehicle-Information(該元素包含Vehicle-Connector、Physical-Vehicle-Link、Logical-Link等),診斷儀可以使用Logic-Link信息在PDX包中尋找包含目標ECU的Base-Variant文件,然后診斷儀就可以與ECU通訊了,當然也要確認ECU的變體信息ECU-Variant。
![pYYBAGLg3SCAYV_3AAFx_hhldvE532.png](https://file.elecfans.com/web2/M00/57/73/pYYBAGLg3SCAYV_3AAFx_hhldvE532.png)
![pYYBAGLg3S2AIlxnAADauKlPwaI199.png](https://file.elecfans.com/web2/M00/57/73/pYYBAGLg3S2AIlxnAADauKlPwaI199.png)
2.4.通信參數odx-c/odx-cs
odx-c描述應用層、傳輸層、物理層適用的是哪版規范(如CAN總線對應的規范分別是14229、15765、11898),其中應用層(如P2、P2*等)、傳輸層(As、Bs、Br、Cs、Cr、STMin等)、物理層(ID等)分別對應一個odx-cs文件。
![poYBAGLg3T-AQ16DAABoyxIl2CE514.png](https://file.elecfans.com/web2/M00/56/D5/poYBAGLg3T-AQ16DAABoyxIl2CE514.png)
2.4.1.通信參數規范引用
![poYBAGLg3WSAH0OEAAEswHM2mu0401.png](https://file.elecfans.com/web2/M00/56/D6/poYBAGLg3WSAH0OEAAEswHM2mu0401.png)
2.4.2.通信參數規范定義應用層、傳輸層、物理層適用的規范
![pYYBAGLg3XSALxHHAAFF7Ci_Too795.png](https://file.elecfans.com/web2/M00/57/73/pYYBAGLg3XSALxHHAAFF7Ci_Too795.png)
2.4.3.傳輸層參數定義
![pYYBAGLg3YKAcgPUAAF2uueeUK0261.png](https://file.elecfans.com/web2/M00/57/73/pYYBAGLg3YKAcgPUAAF2uueeUK0261.png)
為了減少數據冗余,odx-c/cs參數為默認值,對于ECU差異性數據可以用元素SIMPLE-VALUE對應用的通信參數重新賦值。
![poYBAGLg3Y-AEtUbAAEbYlPtbbc417.png](https://file.elecfans.com/web2/M00/56/D6/poYBAGLg3Y-AEtUbAAEbYlPtbbc417.png)
2.5.診斷層odx-d
odx-d文件包含控制器的所有診斷數據,如服務、DTC、DID、RID、數據類型等信息,odx-d元素分類如下:
![poYBAGLg3Z-ADjclAACI7Sh7CGc970.png](https://file.elecfans.com/web2/M00/56/D6/poYBAGLg3Z-ADjclAACI7Sh7CGc970.png)
- PROTOCOL:定義了某種診斷層協議(如UDS/OBD)
- FUNCTIONAL_GROUP:定義了多個ECU共同支持的服務或數據
- BASE-VARIANT:代表一個具體ECU,每個ECU只有一個BASE-VARIANT,它繼承PROTOCOL和FUNCTIONAL-GROUP,可以對上面兩層的診斷服務與數據進行引用,也可以對繼承的服務和數據進行修改
- ECU_VARIANT:各個ECU的具體實現,如BCM有多種配置,不同配置的BCM數據也存在差異
- ECU-SHARED-DATA:是一個數據庫,由上述4層對其進行引用
2.5.1.層級繼承關系
odx支持值繼承,相較于其他數據庫ODX文件更加靈活,各層級間繼承關系如下:
![pYYBAGLg3bKASz9AAAC4jnrxLfU620.png](https://file.elecfans.com/web2/M00/57/74/pYYBAGLg3bKASz9AAAC4jnrxLfU620.png)
- ECU-SHARED-DATA可被其它層繼承,但不能繼承其它層;
- PROTOCOL可繼承ECU-SHARED-DATA;
- FUNCTIONAL-GROUP可繼承PROTOCOL和ECU-SHARED-DATA;
- BASE-VARIANT可繼承 FUNCTIONAL-GROUP、ECU-SHARED-DATA、PROTOCOL;
- ECU-VARIANT可繼承ECU-SHARED-DATA、BASE-VARIANT。
2.5.2.層級繼承關系示例
![pYYBAGLg3c6AGgFmAAEZ6MH_Q0w400.png](https://file.elecfans.com/web2/M00/57/74/pYYBAGLg3c6AGgFmAAEZ6MH_Q0w400.png)
![pYYBAGLg3diAX4TkAAEzhcY-fOI384.png](https://file.elecfans.com/web2/M00/57/74/pYYBAGLg3diAX4TkAAEzhcY-fOI384.png)
2.5.3.UDS請求報文示例
![pYYBAGLg3emAH3UpAAETT22CixU363.png](https://file.elecfans.com/web2/M00/57/74/pYYBAGLg3emAH3UpAAETT22CixU363.png)
引用“DLC.UDS.ESD.Generic_UDS_Services.RQ.Req_Tester_Present”。
![pYYBAGLg3fmAKPHGAAE50DC99P4997.png](https://file.elecfans.com/web2/M00/57/74/pYYBAGLg3fmAKPHGAAE50DC99P4997.png)
2.5.4.UDS肯定應答報文示例
![pYYBAGLg3haAXwzfAAEGjVqtSSs330.png](https://file.elecfans.com/web2/M00/57/75/pYYBAGLg3haAXwzfAAEGjVqtSSs330.png)
引用“DLC.UDS.ESD.Generic_UDS_Services.PR.Pos_Resp_Tester_Present”。
![pYYBAGLg3puAaEI6AAFIUuZbfVg073.png](https://file.elecfans.com/web2/M00/57/76/pYYBAGLg3puAaEI6AAFIUuZbfVg073.png)
2.5.5.UDS否定應答示例
![poYBAGLg3q6AY5L9AAErcp5JRhs189.png](https://file.elecfans.com/web2/M00/56/D8/poYBAGLg3q6AY5L9AAErcp5JRhs189.png)
引用“DLC.UDS.ESD.Generic_UDS_Services.DOP.ISO_NRC_definition”。
![poYBAGLg3ryAQExVAAEqDzwMDGk540.png](https://file.elecfans.com/web2/M00/56/D8/poYBAGLg3ryAQExVAAEqDzwMDGk540.png)
引用“DLC.UDS.ESD.Generic_UDS_Services.DOP.NRC_10”。
![poYBAGLg3seAMvUwAADDK-FNApw023.png](https://file.elecfans.com/web2/M00/56/D8/poYBAGLg3seAMvUwAADDK-FNApw023.png)
3.總結
ISO-22901是標準的ODX規范,各個OEM會按照自己的需求編寫企業級的AGL(Authoring Guide Line)文件,用于定義ODX文件結構,便于診斷數據工程師開發、維護ODX文件,所以AGL文件對ODX數據解析起著指導性作用。
北匯信息專注于汽車電子測試、與眾多OEM合作,在總線網絡診斷測試開發相關領域積累了豐富的經驗。本篇文章簡單介紹了ODX數據結構,ODX協議規則還有很多,限于篇幅,不做一一介紹了,下篇系列文章將分享為了實現診斷相關的測試,ODX數據解析的過程和方法,敬請持續關注。
參考文獻
[1]ISO 22901-1
發布評論請先 登錄
相關推薦
Oracle數據庫的多功能集成開發環境
![Oracle<b class='flag-5'>數據庫</b>的多功能集成<b class='flag-5'>開發</b>環境](https://file1.elecfans.com/web3/M00/05/F0/wKgZO2eF-8qAREl7AAAlkoIDMh0655.png)
MySQL數據庫的安裝
![MySQL<b class='flag-5'>數據庫</b>的安裝](https://file1.elecfans.com/web3/M00/05/E2/wKgZPGeF2XWAe83fAAAW9lhgvGk652.jpg)
云數據庫是哪種數據庫類型?
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)
基于ODX的工程診斷儀 - DST.Tester
![基于<b class='flag-5'>ODX</b>的工程<b class='flag-5'>診斷</b>儀 - DST.Tester](https://file1.elecfans.com/web3/M00/04/4A/wKgZPGdyVraAXKuAAAAfdgoHycU569.png)
數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例
數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—通過拼接<b class='flag-5'>數據庫</b>碎片恢復SQLserver<b class='flag-5'>數據庫</b>](https://file1.elecfans.com/web1/M00/F4/07/wKgaoWcjE32AbQdWAAJD_hojvJc119.png)
在嵌入式開發領域,有哪些好用的國產工具?
數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—SQL Server<b class='flag-5'>數據庫</b>出現823錯誤的<b class='flag-5'>數據</b>恢復案例](https://file1.elecfans.com/web2/M00/07/F4/wKgaombs78mANJ1GAAPeSoXHVPE244.png)
![](https://file1.elecfans.com/web2/M00/F6/9B/wKgZomaCcmaAFQWqAAY0Sq99NLs219.png)
數據庫數據恢復—raid5陣列上層Sql Server數據庫數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—raid5陣列上層Sql Server<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復案例](https://file.elecfans.com/web2/M00/A2/AD/pYYBAGRLbSSAHhFWAAI9vWNRQec919.png)
評論