1. DID参数定义
参数dataIdentifier (DID)逻辑上表示一个对象(例如,进气门位置)或对象的集合。这个参数应该在服务器的内存中可用。如果由服务dynamallydefinedataidentifier动态定义,则dataIdentifier值要么存在于固定内存中,要么临时存储在RAM中。一般来说,很多诊断服务请求都可以使用dataIdentifier,包括0x22 (readDataByIdentifier)、0x2E (writeDataByIdentifier)和0x2F (inputOutputControlByIdentifier)。dataIdentifier还用于各种诊断服务响应(例如,对服务0x19子函数readDTCSnapshotRecordByDTCNumber的积极响应)。
唯一不适用的情况是动态定义的数据标识符,因为它们不是在ECU中预定义的,而是由客户端使用服务0x2C(dynamiclyDefineDataIdentifier)定义的。表C.1中定义了数据标识符值。
DID数据参数定义
Byte Value | 代名词 | 描述 |
0x0000 – 0x00FF | ISOSAE保留 | 该数值范围由本文件保留,以供将来定义。 |
0x0100 – 0xA5FF | 特定车辆制造商 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xA600 – 0xA7FF | 保留供立法使用 | 这一数值范围是为未来的立法要求而保留的 |
0xA800 – 0xACFF | 特定车辆制造商 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xAD00 – 0xAFFF | 保留供立法使用 | 这一数值范围是为将来的立法要求而保留的。 |
0xB000 – 0xB1FF | 特定车辆制造商 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xB200 – 0xBFFF | 保留供立法使用 | 这一数值范围是为未来的立法要求而保留的 |
0xC000 – 0xC2FF | 特定车辆制造商 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xC300 – 0xCEFF | 保留供立法使用 | 这一数值范围是为未来的立法要求而保留的 |
0xCF00 – 0xEFFF | 特定车辆制造商 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xF000 – 0xF00F | 拖拉机拖车的网络配置数据应用程序数据标识符 | 该值应用于请求独立于其功能的所有拖车系统的远程地址。 |
0xF010 – 0xF0FF | 车辆制造商特定 | 该值范围应用于参考车辆制造商特定的记录数据标识符和服务器内的输入/输出标识符。 |
0xF100 – 0xF17F | 识别选项车辆制造商规格数据标识符 | 该数值范围应用于车辆制造商特定的服务器/车辆识别选项。 |
0xF180 | 引导软件标识数据标识符 | 该值应用于参考车辆制造商指定的ECU引导软件识别记录。记录数据的第一个数据字节应为报告的模块数。模块编号之后会报告引导软件标识。启动软件识别结构的格式应为ECU规范,并由车辆制造商定义。 |
0xF181 | 应用软件标识数据标识符 | 此值应用于参考特定的车辆制造商 ECU应用软件编号。记录数据的第一个数据字节应该是报告的numberOfModules。模块编号后面是应用软件标识。 应用软件识别结构的格式应是ECU特有的,并由车辆制造商定义。 |
0xF182 | 应用程序数据标识数据标识符 | 此值应用于参考特定的车辆制造商ECU应用数据识别记录。记录数据的第一个数据字节应该是报告的numberOfModules。在模块编号之后报告应用程序数据标识。应用程序数据识别结构的格式应是ECU特有的,并由车辆制造商定义。 |
0xF183 | 引导软件指纹数据标识符 | 该值应用于参考车辆制造商指定的ECU引导软件指纹识别记录。记录数据内容和格式应为ECU专用,并由车辆制造商定义 |
0xF184 | 应用软件指纹数据标识符 | 该值应用于参考车辆制造商指定的ECU应用软件指纹识别记录。记录数据内容和格式应为ECU专用,并由车辆制造商定义。 |
0xF185 | 应用程序数据指纹数据标识符 | 该值应用于参考车辆制造商指定的ECU应用数据指纹识别记录。记录数据内容和格式应为ECU专用,并由车辆制造商定义。 |
0xF186 | 活动诊断会话数据标识符 | 该值应用于报告服务器中的活动诊断会话。这些值由DiagnosticSessionControl服务中的diagnosticSessionType子函数参数定义。 |
0xF187 | 车辆制造商备件零件号数据标识符 | 该值应用于参考车辆制造商的备件编号。记录数据内容和格式应为特定于服务器的,并由车辆制造商确定。 |
0xF188 | 车辆制造商ECU软件编号数据标识符 | 该值应用于参考车辆制造商ECU(服务器)软件编号。记录数据的内容和格式应是特定于服务器的,并由车辆制造商定义。 |
0xF189 | 车辆制造商ECU软件版本号数据标识符 | 该值应用于参考车辆制造商ECU(服务器)软件版本号。记录数据内容和格式应是特定于服务器的,并由车辆制造商定义。 |
0xF18A | 系统供应商标识符数据标识符 | 该值应用于参考系统供应商名称和地址信息。记录数据的内容和格式应是特定于服务器的,并由系统供应商定义。 |
0xF18B | ECU制造日期数据标识符 | 该值应用于参考ECU(服务器)的制造日期。记录数据内容和格式应为无符号数字、ASCII或BCD,并按年、月、日排序。 |
0xF18C | ECU序列号数据标识符 | 该值应用于参考ECU(服务器)序列号。记录数据内容和格式应为特定于服务器的数据。 |
0xF18D | 支持的功能单元数据标识符 | 该值应用于请求服务器中实现的功能单元。 |
0xF18E | 车辆制造商套件装配零件号数据标识符 | 当备件编号仅指定服务器时(例如用于尾部),该值应用于参考套件(为生产而整体购买的组装零件,如驾驶舱)的车辆制造商订单号。记录数据内容和格式应为服务器专用,并由车辆制造商定义。 |
0xF18F | ISOSAE保留标准化 | 本文件应保留该值范围,以供未来定义标准化服务器/车辆标识选项。 |
0xF190 | VIN数据标识符 | 该值应用于参考VIN编号。记录数据的内容和格式应由车辆制造商规定。 |
0xF191 | 车辆制造商ECU硬件编号数据标识符 | 读取服务应使用该值来参考车辆制造商特定的ECU(服务器)硬件编号。记录数据内容和格式应为特定于服务器的,并由车辆制造商定义。 |
0xF192 | 系统供应商ECU硬件编号数据标识符 | 该值应用于参考系统供应商特定的ECU(服务器)硬件编号。记录数据的内容和格式应由系统供应商具体规定。 |
0xF193 | 系统供应商ECU硬件版本号数据标识符 | 该值应用于参考系统供应商特定的ECU(服务器)硬件版本号。记录数据内容和格式应为特定于服务器的,并由系统供应商定义。 |
0xF194 | 系统供应商ECU软件编号数据标识符 | 该值应用于参考系统供应商特定的ECU(服务器)软件编号。记录数据的内容和格式应是特定于服务器的,并由系统供应商定义。 |
0xF195 | 系统供应商ECU软件版本号数据标识符 | 该值应用于参考系统供应商特定的ECU(服务器)软件版本号。记录数据内容和格式应为特定于服务器的,并由系统供应商定义。 |
0xF196 | 排气法规或类型批准数字数据标识符 | 该值应用于参考排气法规或型式认证编号(适用于需要型式认证的系统)。记录数据内容和格式应为特定于服务器的数据,并由车辆制造商定义。有关任何适用要求,请参阅相关法规。 |
0xF197 | 系统名称或工程类型数据标识符 | 该值应用于参考系统名称或发动机类型。记录数据内容和格式应为特定于服务器的数据,并由车辆制造商定义。 |
0xF198 | 维修车间代码或测试仪序列号数据标识符 | 该值应用于参考维修厂代码或测试仪(客户端)序列号(例如,用于指示用于重新编程服务器内存的最新服务客户端)。记录数据内容和格式应由车辆制造商具体规定。 |
0xF199 | 编程日期数据标识符 | 该值应用于参考服务器上次编程的日期。记录数据内容和格式应为无符号数字、ASCII或BCD,并按年、月、日排序。 |
0xF19A | 校准维修车间代码或校准设备序列号数据标识符 | 该值应用于参考维修厂代码或客户序列号(例如,指示客户用于重新校准服务器的最新服务)。记录数据的内容和格式应是特定于服务器的,并由车辆制造商定义。 |
0xF19B | 校准日期数据标识符 | 该值应用于参考服务器上次校准的日期。记录数据内容和格式应为无符号数字、ASCII或BCD,并按年、月、日排序。 |
0xF19C | 校准设备软件编号数据标识符 | 该值应用于参考客户端内用于校准服务器的软件版本。记录数据内容和格式应由车辆制造商具体规定。 |
0xF19D | ECU安装日期数据标识符 | 该值应用于参考ECU(服务器)安装在车辆上的日期。记录数据内容和格式应为无符号数字、ASCII或BCD,并按年、月、日排序。 |
0xF19E | ODX文件数据标识符 | 该值应用于引用服务器的ODX(开放诊断数据交换)文件,用于解释和扩展服务器数据。 |
0xF19F | 实体数据标识符 | 该值应用于参考实体数据标识符,以进行保密数据传输。 |
0xF1A0 – 0xF1EF | 识别选项车辆制造商特定 | 该数值范围应用于车辆制造商特定的服务器/车辆识别选项。 |
0xF1F0 – 0xF1FF | 识别选项系统供应商特定 | 该值范围应用于系统供应商特定的服务器/车辆系统识别选项。 |
0xF200 – 0xF2FF | 周期数据标识符 | 该值范围应用于参考定期记录数据标识符。这些可以是静态定义的,也可以是动态定义的。 |
0xF300 – 0xF3FF | 动态定义的数据标识符 | 此值范围应用于动态定义的数据标识符 |
0xF400 – 0xF4FF | OBD数据标识符 | 该值范围是为ISO 15031-5中定义的OBD/EOBD PID保留的。 |
0xF500 – 0xF5FF | OBD数据标识符 | 该数值范围是为了表示未来定义的OBD/EOBDPID而保留的。 |
0xF600 – 0xF6FF | OBD监视器数据标识符 | 该值范围是为ISO 15031-5中定义的车载OBD/EOBD监测结果值保留的。 |
0xF700 – 0xF7FF | OBD监视器数据标识符 | 该数值范围是为了表示未来定义的车载OBD/EOBD监测结果值而保留的。 |
0xF800 – 0xF8FF | OBD信息类型数据标识符 | 该值范围是为ISO 15031-5中定义的OBD/EOBD信息类型值保留的。 |
0xF900 – 0xF9FF | 转速表数据标识符 | 此数值范围是为ISO 16844-7中定义的转速表DID保留的。 |
0xFA00 – 0xFA0F | 气囊展开数据标识符 | 此数值范围是为ISO 26021-2中定义的车载烟火装置的寿命终止激活而保留的。 |
0xFA10 | EDR设备数量 | 该值应用于报告能够报告EDR数据的EDR设备的数量。 |
0xFA11 | EDR标识 | 该值应用于报告EDR识别数据 |
0xFA12 | EDR设备地址信息 | 该值应用于根据ISO 26021-2中为数据标识符0xFA02定义的格式报告EDR设备地址信息。 |
0xFA13 – 0xFA18 | EDR条目 | 该范围应用于报告单个EDR条目。每个DID应代表单个EDR条目,0xFA13代表最晚的EDR条目。 |
0xFA19–0xFAFF | 安全系统数据标识符 | 此值范围被保留以表示与安全系统相关的DID。 |
0xFB00 – 0xFCFF | 保留供立法使用 | 这一数值范围是为将来的立法要求而保留的。 |
0xFD00 – 0xFEFF | 系统供应商特定 | 该值范围应用于参考服务器内系统供应商特定记录数据标识符和输入/输出标识符。 |
0xFF00 | UDS版本数据标识符 | 该值应用于参考服务器中实现的UDS版本。该DID的扩展字节参数 |
0xFF01 – 0xFFFF | ISOSAE保留 | 该数值范围由本文件保留,以供将来定义。 |
2. scaling Byte扩展字节参数定义
参数scalingByte(SBYT)由一个字节(高位和低位半字节)组成。scalingByte高半字节定义数据类型,用于表示数据标识符(DID)。scalingByte低位半字节定义用于表示数据流中参数的字节数。
定义scalingByte(高Nibble)参数。
高Nibble的编码 | 代名词 | 描述 |
0x0 | 无符号数字(1到4字节) | 这种编码使用通用的二进制加权方案来通过离散的增量步长来表示值。一个字节提供256个步骤;两个字节字段65536步等。 |
0x1 | 有符号数字(1到4字节) | 这种编码使用二补二进制加权方案,通过离散的增量步长来表示值。一个字节提供256个步骤;两个字节产生65536步等。 |
0x2 | 位映射报告带外掩码 | 位映射编码使用单个位或小的位组来表示状态。有效性掩码用于指示特定应用程序的每个位的有效性。BitMappedReportedWithOutMask编码表示有效掩码不是参数定义本身的一部分。需要一个单独的EscalangByteExtension(见C.3.1)来报告有效性掩码 |
0x3 | 位映射报告带掩码 | 位映射编码使用单个比特或小组比特来表示状态。BitMappedReportedWithMask编码表示有效掩码包含在参数定义本身中。对于表示状态的每个比特位,都需要一个对应的掩码比特位作为参数定义的一部分。掩码表示每个比特位对于特定应用的有效性。这种类型的位映射参数为表示数据的每个状态字节包含一个有效掩码字节。因为有效性掩码是参数定义的一部分,所以不需要单独的scalingByteExtension。 |
0x4 | 二进制编码十进制 | 传统的二进制编码十进制编码用于表示每个字节的两个数字。上半字节用于表示最高有效位(0-9),下半字节表示最低有效位(0-9)。 |
0x5 | 状态编码变量(1字节) | 这种编码使用二进制加权方案来表示多达256种不同的状态。例如,一个参数表示IgnitionSwitch的状态。代码“00”、“01”、“02”和“03”可能分别表示点火开关关闭、锁定、运行和启动。表示形式始终限制为一个字节。 |
0x6 | ASCII(每个缩放字节有1到15个字节) | 传统的ASCII编码用于表示MSB=逻辑为“0”的多达128个标准字符。另外128个自定义字符可能用MSB=逻辑“1”表示。 |
0x7 | 签名浮动点 | 浮点编码用于需要用浮点或科学表示法表示的数据。应根据ANSI/IEEE Std 754-1985使用标准IEEE格式。 |
0x8 | 包 | 数据包包含多个数据值,通常是相关的,每个值都有唯一的缩放比例。不包括单个值的缩放比例信息。 |
0x9 | 公式 | 公式用于根据原始数据计算值。公式标识符在定义formulaIdentifier编码的表中指定。 |
0xA | 单位/格式 | 单位和格式用于以更方便用户的格式显示数据。在定义FormulaIdentifier编码的表中指定了单位标识符和格式标识符。 注:如果使用组合的单位和/或格式,例如mV,则每个单位/格式的一个标定字节(和标定数据)应包含在标定数据标识符正响应中。 |
0xB | 状态和连接类型(1字节) | 这种编码特别用于输入和输出信号。数据字节中编码的信息指定了高级物理布局、电气等级和功能状态。建议将此选项用于数字输入和输出参数。 |
0xC – 0xF | ISOSAE保留 | 本文件保留以供将来定义。 |
定义scalingByte(低位Nibble)参数
低Nibble的编码 | 代名词 | 描述 |
0x0 – 0xF | 参数字节数 | 此值范围指定由参数标识符引用的数据流中的数据字节数。参数的长度由缩放字节(s)定义,其前面总是有一个参数标识符(一个或多个字节)。如果参数标识符后面有多个缩放字节,则参数标识符引用的数据的长度是缩放字节中低块内容的总和。 例如,VIN由单字节参数标识符标识,后面跟着两个缩放字节。长度计算最多可达17个数据字节。两个低半字节的内容可以具有加起来多达17个数据字节的值的任何组合。 注:对于以公式或单位/格式编码的高半字节的scalingByte,该值为0x0。 |