KWP2000是Keyword Protocol 2000的簡稱,是車上診斷系統(OBD)上的網絡傳輸協議。此協定包括了OSI模型的應用層。此通訊協定已成為國際標準化組織的ISO 14230標準。KWP2000也包括了OSI模型的對話層,其中包括如何開始、維持及中止通訊對話。

常用的實體層

編輯

KWP2000中的一種實體層ISO 9141英語ISO 9141相同,ISO 9141在一條線(稱為K-line)上有雙向的串行通信,另外有一條選配的L-line,作喚醒功能使用。資料速度從1.2k 到10.4k 波特率,一個訊息的資料欄位可以到255位元組[1]

若KWP2000實現時有實體的K-line,會需要特別的喚醒程序:「五波特喚醒」(5-baud wakeup)及快速初始化(fast-initialisation)。這兩種喚醒方式都需要K-line信號的時序關鍵(timing critical)處理。

KWP2000也和控制器區域網路(CAN, ISO 11898)相容,最高速度可以到1 Mbit/s。CAN在現今的汽車中都有,不需要另外安裝實體的纜線,因此成為替代K-line的方案,而且越來越受歡迎。

KWP2000應用CAN時,最常配合的是ISO 15765的傳輸層/網路層。KWP2000配合CAN使用也不需要特殊的喚醒機能。

KWP2000也可以用CAN只實現其服務層及對話層(沒有標頭的長度標示、使用來源地址及目的地址,不用檢查碼。),或是實現所有內容(標頭及檢查碼都封裝在CAN的頁框內)。不過ISO 15765有其傳輸層/網路層,因此不需要用到OSI七層的內容。

ISO 14230

編輯

ISO 14230(道路車輛—診斷系統—Keyword Protocol 2000)的架構如下:

  • ISO 14230-1 實體層
  • ISO 14230-2 資料鏈結層
  • ISO 14230-3 應用層
  • ISO 14230-4 排放相關系統的要求

參考資料

編輯
  1. ^ Smith, Craig. The Car Hacker's Handbook: A Guide for the Penetration Tester. No Starch Press. 2016: 22 [10 May 2018]. ISBN 9781593277031 (英語).