下载链接
The parameter dataIdentifier (DID) logically represents an object (e.g., Air Inlet Door Position) or collection of objects. This parameter shall be available in the server's memory. The dataIdentifier value shall either exist in fixed memory or temporarily stored in RAM if defined dynamically by the service dynamicallyDefineDataIdentifier. In general, a dataIdentifier is capable of being utilized in many diagnostic service requests including 0x22 (readDataByIdentifier), 0x2E (writeDataByIdentifier), and 0x2F (inputOutputControlByIdentifier). A dataIdentifier is also used in various diagnostic service responses (e.g., positive response to service 0x19 subfunction readDTCSnapshotRecordByDTCNumber).
IMPORTANT — Regardless of which service a dataIdentifier is used with, it shall consistently
represent the same thing (i.e., a given object with a given size / meaning / etc.) on a given ECU.
早期KWP2000/Can协议培训,主要从物理层,链路层方面讲解这两种协议在汽车通信中的物理属性,电气属性,帧结构,交互方式,应答方式等,应用层中只提到了几个常见的应用,如系统进入,读版本信惠,读故障码,清除故障码,读数据流等。在实际通讯数据中,以上应用功能均用到了各种恃定格式的命令,以及命令组合;有些复杂恃殊功能甚至用到了更多的命令组合。这些特定格式的命令组合即为今夫我们要讲的SID、PID应用。
在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制订了相关的标准和协议。其中,欧洲汽车领域广泛使用的一种车载诊断协议标准是KWP2000 (Keyword Pro-tocol 2000),该协议实现了一套完整的车载诊断服务,并且满足E-OBD(European On Board Diagnose)标准。KWP2000最初是基于K线的诊断协议。由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。而CAN (Controller Area Network)网络由于其非破坏性的网络仲裁机制、较高的通讯速率(可达1 M bps )和灵活可靠的通讯方式,在车载网络领域广受青睐,因此,近年来欧洲汽车领域广泛采用了基于CAN总线的KWP2000,即ISO 15765协议,而基于K线的KWP2000物理层和数据链路层协议将逐步被淘汰。
TP2.0 的应用层的数据是根据大众KWP2000 定义的,命令定义及数据流格式相同,编程时用统一的数据转换函数。