1. 程式人生 > 其它 >基於ODX診斷測試開發(1):ODX資料庫剖析 原創

基於ODX診斷測試開發(1):ODX資料庫剖析 原創

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)儲存記錄資料。便於承載從設計、開發、測試、生產及售後維護的全流程工作。


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進行通訊的方法)

PDX檔案


PDX檔案可作為各型別ODX檔案的容器,將相關ODX檔案打包為PDX檔案(.pdx),並且作為輸入物匯入診斷工具。


ODX包目錄檔案index.xml


ODX包目錄由一個CATALOG例項表示,它提供了儲存在相應PDX包中的所有檔案的列表。

元素“FILE”的內容代表PDX中包含的檔案,元素“CATEGORY”內容如下:

  1. ODX-DATA:適用於所有ODX檔案
  2. ODX-JOB:適用於java-files,class-files,jar-files,dll-files
  3. LIB:所有被JOB使用或匯入的檔案
  4. PROGRAMMING-DATA:用於控制器程式設計的bin/hex檔案

車輛資訊odx-v


odx-v檔案主要作為診斷儀訪問ECU的入口,包含兩個重要元素:

  1. Info-Component(該元素包含OEM、Vehicle-Model、Model-year、Vehicle-Type等)
  2. Vehicle-Information(該元素包含Vehicle-Connector、Physical-Vehicle-Link、Logical-Link等),診斷儀可以使用Logic-Link資訊在PDX包中尋找包含目標ECU的Base-Variant檔案,然後診斷儀就可以與ECU通訊了,當然也要確認ECU的變體資訊ECU-Variant。



通訊引數odx-c/odx-cs


odx-c 描述應用層、傳輸層、物理層適用的是哪版規範(如CAN匯流排對應的規範分別是14229、15765、11898),其中應用層(如P2、P2*等)、傳輸層(As、Bs、Br、Cs、Cr、STMin等)、物理層(ID等)分別對應一個odx-cs檔案。

  • 通訊引數規範引用:


2.4.2.通訊引數規範定義應用層、傳輸層、物理層適用的規範

2.4.3.傳輸層引數定義

為了減少資料冗餘,odx-c/cs引數為預設值,對於ECU差異性資料可以用元素SIMPLE-VALUE對應用的通訊引數重新賦值。

2.5.診斷層odx-d
odx-d檔案包含控制器的所有診斷資料,如服務、DTC、DID、RID、資料型別等資訊,odx-d元素分類如下:

1.PROTOCOL:定義了某種診斷層協議(如UDS/OBD)
2.FUNCTIONAL_GROUP:定義了多個ECU共同支援的服務或資料
3.BASE-VARIANT:代表一個具體ECU,每個ECU只有一個BASE-VARIANT,它繼承PROTOCOL和FUNCTIONAL-GROUP,可以對上面兩層的診斷服務與資料進行引用,也可以對繼承的服務和資料進行修改
4.ECU_VARIANT:各個ECU的具體實現,如BCM有多種配置,不同配置的BCM資料也存在差異
5.ECU-SHARED-DATA:是一個數據庫,由上述4層對其進行引用
2.5.1.層級繼承關係
odx支援值繼承,相較於其他資料庫ODX檔案更加靈活,各層級間繼承關係如下:

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.層級繼承關係示例


2.5.3.UDS請求報文示例

引用“DLC.UDS.ESD.Generic_UDS_Services.RQ.Req_Tester_Present”。

2.5.4.UDS肯定應答報文示例

引用“DLC.UDS.ESD.Generic_UDS_Services.PR.Pos_Resp_Tester_Present”。

2.5.5.UDS否定應答示例

引用“DLC.UDS.ESD.Generic_UDS_Services.DOP.ISO_NRC_definition”。

引用“DLC.UDS.ESD.Generic_UDS_Services.DOP.NRC_10”。

3.總結
ISO-22901是標準的ODX規範,各個OEM會按照自己的需求編寫企業級的AGL(Authoring Guide Line)檔案,用於定義ODX檔案結構,便於診斷資料工程師開發、維護ODX檔案,所以AGL檔案對ODX資料解析起著指導性作用。

北匯信息專注於汽車電子測試、與眾多OEM合作,在匯流排網路診斷測試開發相關領域積累了豐富的經驗。本篇文章簡單介紹了ODX資料結構,ODX協議規則還有很多,限於篇幅,不做一一介紹了,下篇系列文章將分享為了實現診斷相關的測試,ODX資料解析的過程和方法,敬請持續關注。
參考文獻
[1]ISO 22901-1

本文來自部落格園,作者:{北匯信息},轉載請註明原文連結:{https://www.cnblogs.com/polelink/}