KWP2000
KWP2000是Keyword Protocol 2000的簡稱,是車上診斷系統(OBD)上的网络传输协议。此協定包括了OSI模型的應用層。此通訊協定已成為國際標準化組織的ISO 14230標準。KWP2000也包括了OSI模型的對話層,其中包括如何開始、維持及中止通訊對話。
常用的實體層
KWP2000中的一種實體層和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 排放相關系統的要求
參考資料
- ^ Smith, Craig. The Car Hacker's Handbook: A Guide for the Penetration Tester. No Starch Press. 2016: 22 [10 May 2018]. ISBN 9781593277031 (英语).