本文为UDS诊断服务的第二篇,主要介绍UDS诊断服务中数据传输单元。该部分所涉及的诊断服务如图1所示。 图1 数据传输单元 老套路,针对经常使用的UDS诊断服务进行介绍。 ReadDataByIdentifier服务 (0x22) 该服务用于读取一个或者多个被标识的数据记录值,通常是标识是DID(DataIdentifier),该服务没有子服务。 该服务的数据格式含义如图2所示,其中…表示可以为无效数据(AA),也可以是另外的多个DID,格式跟前面的一样。 图2 0x22服务数据格式 0x22服务的消息请求的格式如图3所示。 图3 0x22服务数据示例 WriteDataByIdentifier服务(0x2E) 该服务用于写入一个被标识的数据记录值,通常是标识是DID(DataIdentifier)。作用刚好与0x22相反,该服务没有子服务。 该服务的数据格式含义如图4所示。 图4 0x2E服务数据格式 0x2E服务的消息请求的格式如图5所示。 图5 0x2E服务数据示例 ReadMemoryByAddress服务(0x23) 该服务与0x22相似,用于读取ECU内部的数据,不同的是0x23服务用于读取指定地址的存储的数据。另外0x23服务也没有子服务。 该服务的数据格式含义如图6所示。 图6 0x23服务数据格式 0x23服务的消息请求的格式如图7所示。 图7 0x23服务数据示例 WriteMemoryByAddress服务(0x3D) 该服务用于对固定的地址写数据,与0x23刚好相反。并且该服务也没有子服务。 该服务的数据格式含义如图8所示。 图8 0x3D服务数据格式 0x3D服务的消息请求的格式如图9所示。 图9 0x3D服务数据示例 至此将数据传输单元常用的诊断服务介绍完毕,下篇介绍已存数据传输单元。 |
|