OBD-II PID

OBD-II PID是車上診斷系統（OBD）參數ID的簡稱，是在診斷工具上向車輛請求資料用的編碼。 国际汽车工程师学会（SAE）標準 J1979（電子診斷測試模式）中定義了許多OBD-II PID。所有北美的道路車輛及卡車都要支援一部份的OBD-II PID，主要是在有強制排氣（英语：vehicle emissions control）檢測（英语：vehicle inspection）的州。制造商也定義針對個別車輛的PID。目前沒有強制摩托車要支援OBD-II PID，不過也有許多的摩托車支援。 在1996年時，輕型商用車（重量小於8,500磅 [3,900公斤]）首先強制要支援OBD-II PID，之後是中型商用車（重量在8,500—14,000磅 [3,900—6,400公斤]之間）在2005年強制支援。輕型商用車及中型商用車都要可以透過由SAE J1962定義的標準數據鏈路連接器（英语：Data link connector (automotive)）進行存取。 依加州空氣資源局（CARB）的加州法規（CCR） sections 1971.1 title 13，美國2010年之後生產的重型商用車（重量大於14,000磅 [6,400公斤]）可以透過SAE standard J1939-13（英语：SAE J1939）（圓型的診斷用連接頭）支援OBD-II的診斷機能。有些北美的重型卡車使用SAE J1962 OBD-II診斷連接器，這也是一般轎車常用的連接器，知名的有麥克貨車及富豪卡車，不過CAN識別符是29位元，不是一般轎車的11位元。 在最新的OBD-II標準SAE J1979中，有列出十種診斷服務。2002年以前的J1979，將這些服務稱為模式（modes）。其說明如下： 汽車制造商不一定要實現所有的服務，製造商可以在#9以上增加製造商定義的服務（例如服務22是由Ford/GM的SAE J2190所定義，而服務21是因Toyota而定義) ，這些服務可以提供其他的資料，例如混合动力电动汽车（HEV）中牽引電池的電壓。 非OBD的统一诊断服务從0x10開始，避免和ID範圍重疊。 下表中所列的是依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是最低位元。 服務02的PID和服務01相同，意義也相同，不過資訊是在產生凍結頁框時的資料。 需要在訊息的資料區中傳送頁框號碼。 在公式欄中，字母A, B, C,.....表示資料位元組的第一位元組、第二位元組、第三位元組......的十進位。若有問號，表示有衝突或是不完整的資料 上表中有部份的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 這個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沒有明確說明。 這個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 × 256 + B ) / 10 − 40 {\displaystyle (A\times 256+B)/10-40} （高位元組為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使用，目前沒有針對彈性燃料車（英语：flexible-fuel vehicle）的定義。 大部份的在使用的OBD-II PID都是非標準的，針對大部份現今的車輛，OBD-II界面中支持的非標準PID功能比標準PID功能還多，各家的非標準PID只有少部份的重疊。 在公眾領域中非標準PID的資訊相當有限。有一個以美國為主的設備工具研究所（英语：Equipment and Tool Institute）（ETI）有維護一些廠商的非標準PID，只提供給其會員。ETI的年費和公司在北美車輛工具及設備的營業額有關： 就算是ETI，也沒有所有非標準PID的文件。ETI表示 有些車廠拒絕用ETI來提供資訊給相關工具廠商。他們比較想和每一家工具廠商個別作生意。這些公司會要求你和他們簽合約。其費用是變動的，以下是2015年4月13日的年費： 在車內的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（英语：ELM327）：OBD-II介面上常見的微控制器 Basic Information | On-Board Diagnostics (OBD). US EPA. 16 March 2015 [24 June 2015]. （原始内容存档于2016-04-06）.  Escape PHEV TechInfo - PIDs. Electric Auto Association - Plug in Hybrid Electric Vehicle. [11 December 2013]. （原始内容存档于2020-06-14）.  Extended PID's - Signed Variables. Torque-BHP. [17 March 2016]. （原始内容存档于2016-03-23）.  OBD2 Codes and Meanings. Lithuania: Baltic Automotive Diagnostic Systems. [11 June 2020]. （原始内容存档于2020-06-15）.  OBD2 Freeze Frame Data: What is It? How To Read It?. OBD Advisor. 2018-02-28 [2020-03-14]. （原始内容存档于2019-08-03） （美国英语）.  ETI Full Membership FAQ. The Equipment and Tool Institute. [29 November 2013]. （原始内容存档于2017-03-10）. ： state: showing cost of access to OBD-II PID documentation Special OEM License Requirements. The Equipment and Tool Institute. [13 April 2015]. （原始内容存档于2017-05-03）.  E/E Diagnostic Test Modes. Vehicle E E System Diagnostic Standards Committee. J1979 (SAE International). 2017-02-16. doi:10.4271/J1979_201702.  Digital Annex of E/E Diagnostic Test Modes. Vehicle E E System Diagnostic Standards Committee. J1979-DA (SAE International). 2017-02-16. doi:10.4271/J1979DA_201702.  Wagner, Bernhard. The Lifecycle of a Diagnostic Trouble Code (DTC). KPIT. Germany. [2020-08-29]. （原始内容存档于2021-06-11）.