基於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文件。


 

  • 通信參數規范引用:

 

  • 通信參數規范定義應用層、傳輸層、物理層適用的規范

 

 

  • 傳輸層參數定義

  

為了減少數據冗余,odx-c/cs參數為默認值,對於ECU差異性數據可以用元素SIMPLE-VALUE對應用的通信參數重新賦值。


診斷層odx-d


odx-d文件包含控制器的所有診斷數據,如服務、DTC、DID、RID、數據類型等信息,odx-d元素分類如下:


 

  • PROTOCOL:定義了某種診斷層協議(如UDS/OBD)
  • FUNCTIONAL_GROUP:定義了多個ECU共同支持的服務或數據
  • BASE-VARIANT:代表一個具體ECU,每個ECU只有一個BASE-VARIANT,它繼承PROTOCOL和FUNCTIONAL-GROUP,可以對上面兩層的診斷服務與數據進行引用,也可以對繼承的服務和數據進行修改
  • ECU_VARIANT:各個ECU的具體實現,如BCM有多種配置,不同配置的BCM數據也存在差異
  • ECU-SHARED-DATA:是一個數據庫,由上述4層對其進行引用

 

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

 

 

3.UDS請求報文示例

 

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

 

4.UDS肯定應答報文示例

 

  

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

 

 

5.UDS否定應答示例

 

  

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

 

 

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

 

 

 

總結

 


ISO-22901是標准的ODX規范,各個OEM會按照自己的需求編寫企業級的AGL(Authoring Guide Line)文件,用於定義ODX文件結構,便於診斷數據工程師開發、維護ODX文件,所以AGL文件對ODX數據解析起着指導性作用。

 

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


參考文獻
[1]ISO 22901-1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM