热门问题
时间线
聊天
视角
OBD-II PID
来自维基百科,自由的百科全书
Remove ads
OBD-II PID是車上診斷系統(OBD)參數ID的簡稱,是在診斷工具上向車輛請求資料用的編碼。
國際汽車工程師學會(SAE)標準 J1979(電子診斷測試模式)中定義了許多OBD-II PID。所有北美的道路車輛及卡車都要支援一部份的OBD-II PID,主要是在有強制排氣檢測的州。製造商也定義針對個別車輛的PID。目前沒有強制摩托車要支援OBD-II PID,不過也有許多的摩托車支援。
在1996年時,輕型商用車(重量小於8,500磅 [3,900公斤])首先強制要支援OBD-II PID,之後是中型商用車(重量在8,500—14,000磅 [3,900—6,400公斤]之間)在2005年強制支援[1]。輕型商用車及中型商用車都要可以透過由SAE J1962定義的標準數據鏈路連接器進行存取。
依加州空氣資源局(CARB)的加州法規(CCR) sections 1971.1 title 13,美國2010年之後生產的重型商用車(重量大於14,000磅 [6,400公斤])可以透過SAE standard J1939-13(圓型的診斷用連接頭)支援OBD-II的診斷機能。有些北美的重型卡車使用SAE J1962 OBD-II診斷連接器,這也是一般轎車常用的連接器,知名的有麥克貨車及富豪卡車,不過CAN識別符是29位元,不是一般轎車的11位元。
Remove ads
模式
在最新的OBD-II標準SAE J1979中,有列出十種診斷服務。2002年以前的J1979,將這些服務稱為模式(modes)。其說明如下:
汽車製造商不一定要實現所有的服務,製造商可以在#9以上增加製造商定義的服務(例如服務22是由Ford/GM的SAE J2190所定義,而服務21是因Toyota而定義) ,這些服務可以提供其他的資料,例如混合動力電動汽車(HEV)中牽引電池的電壓[2]。
非OBD的統一診斷服務從0x10開始,避免和ID範圍重疊。
Remove ads
標準PID
下表中所列的是依SAE J1979定義的標準OBD-II PID。也列出每個PID的預期回應,以及回應和實際物理量之間的關係。不是所有車輛都會支援每一個PID,也有一些PID是廠商定義的,不在OBD-II標準中。
服務01和02基本上是相同的,不過服務01會提供目前的資訊,而服務02會提供上一次出現診斷錯誤碼時的資訊。但PID 01和PID 02是例外,PID 01隻出現在服務01,而PID 02隻出現在服務02,若服務02的PID 02為零,表示沒有凍結的頁框資料,其他服務02的資料都沒有意義。
若用位元編碼表示(Bit-Encoded-Notation)時,像C4表示是資料位元組C的第4位元。每一個位元都有0到7的編號,7是最高位元,而0是最低位元。
A | B | C | D | ||||||||||||||||||||||||||||
A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Remove ads
Remove ads
服務02的PID和服務01相同,意義也相同[4],不過資訊是在產生凍結頁框[5]時的資料。
需要在訊息的資料區中傳送頁框號碼。
Remove ads
- 在公式欄中,字母A, B, C,.....表示資料位元組的第一位元組、第二位元組、第三位元組......的十進位。若有問號,表示有衝突或是不完整的資料
Remove ads
上表中有部份的PID無法用簡單的公式來說明。以下是這些PID的細部說明。
這個PID的請求會回傳4位元組的資料(Big-endian。每一個位元的排序順序是由MSB到LSB。表示接下來的32個PID,並且說明支援哪些PID。
例如,若汽車的回覆是BE1FA813,可以解碼如下
因此,支援的PID有:01、03、04、05、06、07、0C、0D、0E、0F、10、11、13、15、1C、1F及20
Remove ads
這個PID的請求會回傳4位元組的資料,分別標示A B C、D。
第一個位元組(A)包括二部份的資訊。位元A7(位元組A的MSB)表示MIL(檢查發動機警示燈)是否點亮。位元A6到A0表示發動機控制器顯示的診斷故障碼。
第二至第四位元組(B, C和D)表示特定在線測試的可進行程度(availability)及完整性(completeness)。可用程度會用設定位元1來表示,而完整性會用清除位元0來表示。
以下是常見的B位元組定義,是以測試為基礎的內容。
第三位元組及第四位元組的定義會依發動機是火星塞點火(奧托發動機或汪克爾發動機)或柴油發動機而不同。第二位元組的bit 3會說明如何定義位元組C和D,0表示是火星塞點火(奧托發動機或汪克爾發動機),1表示是壓縮點火(柴油發動機)
火星塞點火監控時的位元組C和D (奧托發動機或汪克爾發動機):
柴油發動機監控時的位元組C和D:
- NMHC可以表示甲烷之外的碳氫化合物(Non-Methane HydroCarbons),不過J1979沒有明確說明。
Remove ads
這個PID的請求會回傳4位元組的資料。 第一個位元組會是0,第二個到第四個位元組會提供特定在線測試(on-board test)可進行程度(availability)及完整性(completeness)。和PID 01相同,第三和第四個位元組的定義會依發動機類型(B3)而不同,B3為0表示是火星塞,為1表示是壓縮點火。可進行程度(availability)是用位元1表示,而完整性(completeness)是用位元0表示。
以下是共用的位元組B的定義,以測試為基礎。
針對火星塞點火監控的位元組C和D(奧托發動機或汪克爾發動機):
柴油發動機監控時的位元組C和D:
- NMHC可以表示甲烷之外的碳氫化合物(Non-Methane HydroCarbons),不過J1979沒有明確說明。
這個PID的請求會回傳9位元組的資料。 第一個位元組是位元編碼,表示支援的尾氣溫度感測器:
第一個位元組的位元編碼如下:
剩下的位元組是16位元的整數,表示攝氏下的溫度,範圍從-40到6513.5(比例0.1),其轉換公式為(高位元組為A,低位元組是B)。只有有支援的感測器對應的值是有意義的。
PID 79的結構相同,但是是針對bank 2的感測器。
此服務的請求會回傳一串已設定的DTC。會用ISO 15765-2的協定進行封裝。
若DTC不超過二個(4位元組),會用ISO-TP單一頁框格式(SF)回覆。若三個或三個以上的DTC,會分為多個頁框傳送,實際的頁框數會依通訊格式以及定址方式而定。
每個診斷錯誤碼為二個位元組。診斷錯誤碼的文字敘述如下。診斷錯誤碼的第一個字會由第一個位元組的前二個位元決定:
DTC碼的第二個字會由第一個位元組的下二個位元決定:
DTC碼的第三個字是一個數字,定義如下:
DTC碼的第四個字及第五個字定義方式類似,不過是用B7-B4和B3-B0位元。所產生的五個字元需類似U0158之類的字元,而且可以在OBD-II DTC表上找到。最後三個字允許使用十六進制的數字(0-9, A-F),不過常見的還是使用十進制的數字(0-9)。
會提供有關催化劑bank、氧氣偵測器bank、蒸發泄漏偵測系統、排氣再循環及第二側空氣系統的使用追蹤資訊。
每一個元件或是系統的分子針對偵測特定誤動作的監控,追蹤該監控所有條件成立的次數 每一個元件或是系統的分母針對該特定條件,車輛運作的次數
資料的個數需在訊息的一開始就說明(第一個位元組)
所有使用中性能追蹤的資料會包括二個位元組,依次數送出(每個訊息有二個資料,因此長度為4)
此服務提供有關NMHC 催化劑監控、NOx 催化劑監控、NOx吸收器監控、PM過濾器監控、排氣感測器監控、GR(排氣再循環)及/或VVT(可變氣門正時)監控, 提昇壓力監控及燃料系統監控的使用性能資訊。
所有的資料都有2個位元,以以下的順序排列(每一個訊息有二個資料,因為是4個位元):
有些PID的解讀方式比較特殊,是有枚舉的型式,這類PID沒有位元定義,也沒有單位。
這種PID的請求會回覆二個位元組的資料。 第一個位元組表示燃料系統#1。
其他的值無效。
第二個位元組表示燃料系統#1,定義完全相同。
這種PID的請求會回覆一個位元組的資料,表示第二側空氣狀態。
其他的值無效。
此種PID請求會回覆一個位元組的資料,說明電子控制器使用的OBD標準。以下是數值以及其對應的標準。
服務01 PID 51會回傳數值,對應車輛的燃料型態。燃料型態一個位元組,數值和燃料對應如下:
其他的值保留供ISO/SAE使用,目前沒有針對彈性燃料車的定義。
非標準的PID
大部份的在使用的OBD-II PID都是非標準的,針對大部份現今的車輛,OBD-II界面中支持的非標準PID功能比標準PID功能還多,各家的非標準PID只有少部份的重疊。
在公眾領域中非標準PID的資訊相當有限。有一個以美國為主的設備工具研究所(ETI)有維護一些廠商的非標準PID,只提供給其會員。ETI的年費和公司在北美車輛工具及設備的營業額有關:
就算是ETI,也沒有所有非標準PID的文件。ETI表示[6][7]
有些車廠拒絕用ETI來提供資訊給相關工具廠商。他們比較想和每一家工具廠商個別作生意。這些公司會要求你和他們簽合約。其費用是變動的,以下是2015年4月13日的年費:
通用汽車 $50,000 豐田 $5,000 鈴木 $1,000 BMW $25,500,每次更新要加$2,000,每年更新一次
CAN(11位元)通訊格式
在車內的CAN網路中會有查詢PID以及PID回覆的訊息。標準OBD查詢以及回覆會用機能式的地址。診斷讀取器會用CAN ID 7DFh送出查詢訊息,此位址是廣播位置,並且會接受從7E8h到7EFh的回覆。回覆OBD查詢的電子控制器也會接收7DFh廣播位置的訊息,並且接收7E0h到7E7h範圍內指定ID的訊息。其回應的ID是指定ID值加8,範圍從7E8h到7EFh。
此作法可以允許最多8個電子控制器,每一個都可以回覆OBD的查詢。診斷讀取器可以用ECU回覆的ID繼續和特定的電子控制器通訊。特別是多頁框的通訊需要特定ID電子控制器的回覆。
CAN也可以傳送標準OBD訊息以外的資訊,實體位址會用這些特殊模組的CAN訊息(例如720h是福特汽車的組合儀表),也會有專屬的頁框以及傳送資料。
機能性的PID查詢會用ID 7DFh的CAN訊息送出,其資料為:
車輛會用訊息ID來回應PID查詢,其ID編輯和回應的模組有關。一般而言發動機及主發動機控制器會用ID 7E8h回應,其他設備,像是混合控制器或是Prius裡的電池控制器,會用07E9h、07EAh、07EBh等ID回應。設備回應的訊息ID會比其設備接收的訊息ID多8。回應值的長度會變動,但回應訊息固定都是8個位元。 各位元組的定義為:
相關條目
- 發動機控制器
- ELM327:OBD-II介面上常見的微控制器
參考資料
延伸閱讀
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads