診斷文件ODX(七) - DATA-OBJECT-PROP (DOP)

在《診斷文件ODX(六) - 診斷服務中的參數類型簡介》中,我介紹了在ODX文件中定義診斷服務(service)時使用的8種參數類型。其中最常用的一種參數類型是“VALUE”。

診斷儀的作用不僅是完成診斷請求的發送和診斷響應的接收,還要將診斷請求中的用戶友好的值轉換爲數據幀上的值,或者反向轉換。舉個簡單的例子,診斷儀向用戶提供了一個改寫ECU某個參數的界面,而這個界面是要求用戶寫入一個 0 ~ 655.35km/h的速度值,但這個數據在最終的診斷命令中佔了兩個字節,故取值範圍是00 00 ~ FF FF(16進制,轉換成10進製取值範圍爲 0 到65535,和用戶輸入的值的關係是相差100倍),當我輸入100km/h時,實際在診斷命令中發送的數值應該是100*100再轉換成16進制,即0x2710。而這個轉換過程就依賴於“VALUE”參數所引用的數據對象。

“VALUE”參數引用DOP數據對象

“VALUE”參數能夠引用三種數據對象,分別是DATA-OBJECT-PROP(簡稱DOP)、STRUCTURE、END-OF-PDU-FIELD。其中後兩者是由DOP派生而來,DOP是最常見的數據對象。

在規範中,DOP的文字描述比較晦澀,在這裏以一個DOP的定義爲例,來簡單介紹一下這種數據對象的用法。

DOP定義的一個例子

DOP描述瞭如何從數據流中提取出某個數據項,並利用某種計算方法 (COMPU-METHOD)將提取出的數據項轉化爲物理表達。在完成轉換之後,還可以引用某個單位(UNIT)來進一步描述數據信息。

DOP的DIAG-CODED-TYPE元素:

該元素與診斷服務中的PARAM中BYTE-POSITION 和 BIT-POSITION共同使用,用於從數據流中提取數據。BYTE-POSITION 和 BIT-POSITION定義了數據的起始位置,而DIAG-CODED-TYPE元素中則包含了數據長度。該元素還包含一個BASE-DATA-TYPE屬性,用於描述提取的數據類型,比如INT32、UINT32等。

DOP的PHYSICAL-TYPE元素:

該元素定義了數據的物理表達方式,即最終呈現給診斷儀使用者的數據。它也包含一個BASE-DATA-TYPE屬性,用於描述數據類型。

DOP的COMPU-METHOD元素:

COMPU-METHOD元素定義了某種計算方法,用於將從數據流中提取的編碼值(由DIAG-CODED-TYPE元素描述)轉化爲呈現給診斷儀使用者的數據(由PHYSICAL-TYPE元素描述)。在規範中總共定義了多種計算方法,常用的包括:

identical(編碼值與物理值相同)、Linear(編碼值與物理值呈線性關係)、Scale Linear(分段線性關係)、rational function(編碼值與物理值呈有理函數關係)、Scale rational function(分段有理函數關係)、Texttable(用於將編碼值轉換爲文字表達)。

DOP的INTERNAL-CONSTR元素:

該元素用於定義編碼值的取值範圍。

DOP的UNIT-REF元素:

該元素用於引用一個單位,用於詳細描述物理值,比如速度、溫度等單位。

總結,DOP元素的用途就是將診斷命令中的編碼值和呈現給用戶的物理值進行相互轉換,這麼短的篇幅無法完全講清楚,但是知道了這個東西被定義出來的目的是什麼,再看規範是很容易理解的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章