UDS 协议中6大类26个服务项
文章目录
- 诊断与通信管理(10 - 14)
- 数据传输(22 - 2E)
- 1. $22 - 按标识符读取数据(Read DataByIdentifier)
- 2.$23 - 按地址读取内存(Read Memory By Address)
- 3.$24 - 按标识符读取缩放数据(Read Scaling DataByIdentifier)
- 4.$28 - 通信控制(Communication Control)
- 5.$2A - 按周期标识符读取数据(Read Data By Periodic Identifier)
- 6.$2E - 按标识符写入数据(Write DataByIdentifier)
- 7. $2F - 按条件过滤读取数据(Read Data By Filter Condition)
- 存储数据传输(31 - 34)
- 输入输出控制(34 - 37)
- 远程激活例程(38 - 39)
- 上传下载(40 - 44)
诊断与通信管理(10 - 14)
1. $10 - 诊断会话控制(Diagnosis Session Control)
服务描述:用于启动、停止或切换诊断会话模式,不同模式具有不同权限和功能,如默认会话提供基本诊断功能,编程会话用于软件更新等操作。
示例:
请求数据:$10 01(01 表示启动默认会话)
响应数据:$50
数据内容解释:请求数据中 “$10”是服务标识符,“01”指定启动默认会话的操作。响应数据“$50” 表示会话启动成功。
正响应编码:$50
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 10 11 | 服务不支持 |
$7F 10 31 | 请求序列错误 |
注意事项:切换会话时要确保车辆电气系统稳定,高权限会话可能需要额外安全认证。
2. $11 - ECU 重置(ECU Reset)
服务描述:重置电子控制单元(ECU),包括硬复位(类似断电重启)和软复位(通过软件指令),用于恢复 ECU 到初始状态或解决故障。
示例:
请求数据:$11 01(01 表示硬复位)
响应数据:$51
数据内容解释:“$11”是服务代码,“01”表示执行硬复位操作,“$51” 表示复位成功。
正响应编码:$51
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 11 11 | 服务不支持 |
$7F 11 31 | 复位类型不支持 |
注意事项:在车辆行驶过程中执行复位操作可能导致车辆暂时失去控制功能,需谨慎。
3. $12 - 清除诊断信息(Clear Diagnostic Information)
服务描述:清除存储在 ECU 中的诊断故障码(DTC)和相关冻结帧数据等。
示例:
请求数据:$12
响应数据:$52
数据内容解释:请求数据 “$12”表示清除诊断信息的指令,“$52” 表示清除操作成功。
正响应编码:$52
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 12 11 | 服务不支持 |
$7F 12 31 | 没有清除权限 |
注意事项:清除诊断信息可能会导致后续故障排查困难,如果故障未完全修复,可能丢失重要信息,操作需谨慎。
4. $14 - 按故障码清除诊断信息(Clear Diagnostic Information - By DTC Number)
服务描述:根据指定的故障码清除相关诊断信息。
示例:
请求数据:$14 P0300(假设 P0300 是要清除的故障码)
响应数据:$54
数据内容解释:“$14”是服务指令,“P0300”是指定的故障码,“$54” 表示清除指定故障码相关信息成功。
正响应编码:$54
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 14 11 | 服务不支持 |
$7F 14 31 | 指定故障码不存在 |
注意事项:确保指定的故障码准确无误,避免误删其他有用信息。
数据传输(22 - 2E)
1. $22 - 按标识符读取数据(Read DataByIdentifier)
服务描述:根据特定的数据标识符(DID)从 ECU 读取数据,如传感器数据、系统参数等。
示例:
请求数据:$22 010C(假设 010C 是车速传感器数据的 DID)
响应数据:$62 30(假设 30 是编码后的车速数据值)
数据内容解释:“$22”是读取数据服务指令,“010C”是车速数据的标识符,“$62” 表示正响应,“30” 是读取到的车速数据。
正响应编码:$62 + 数据
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 22 11 | 服务不支持 |
$7F 22 31 | 无效的 DID |
注意事项:不同 ECU 的 DID 定义可能不同,需要参考相应的技术文档。
2.$23 - 按地址读取内存(Read Memory By Address)
服务描述:从指定的内存地址读取数据,可用于深入获取 ECU 内部存储的数据。
示例:
请求数据:$23 1000 0010(从内存地址 1000 开始读取 16 字节数据)
响应数据:$63 [读取到的数据内容(十六进制表示)]
数据内容解释:“$23”是服务指令,“1000”是起始内存地址,“0010”是要读取的字节数,“$63” 表示正响应,后面是读取到的数据。
正响应编码:$63 + 数据
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 23 11 | 服务不支持 |
$7F 23 31 | 无效的内存地址 |
注意事项:对内存地址的操作需谨慎,不当操作可能导致 ECU 故障。
3.$24 - 按标识符读取缩放数据(Read Scaling DataByIdentifier)
服务描述:读取具有缩放关系的数据,常用于传感器数据校准相关操作。
示例:
请求数据:$24 020A(假设 020A 是某个校准数据的 DID)
响应数据:$64 15 02(假设 15 02 是缩放后的数据值)
数据内容解释:“$24”是服务指令,“020A”是校准数据的标识符,“$64” 表示正响应,“15 02” 是读取到的缩放数据。
正响应编码:$64 + 缩放数据
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 24 11 | 服务不支持 |
$7F 24 31 | 无效的缩放 DID |
注意事项:在进行校准相关操作时,要确保数据的准确性和符合校准标准。
4.$28 - 通信控制(Communication Control)
服务描述:控制 ECU 的通信功能,如禁止或允许某些类型的通信消息,以满足特定的诊断或操作需求。
示例:
请求数据:$28 03(假设 03 表示禁止非诊断通信)
响应数据:$68
数据内容解释:“$28”是通信控制服务指令,“03”是控制参数,“$68” 表示通信控制操作成功。
正响应编码:$68
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 28 11 | 服务不支持 |
$7F 28 31 | 不支持指定的通信控制类型 |
注意事项:不当的通信控制可能影响整个车辆网络通信,导致其他系统异常。 |
5.$2A - 按周期标识符读取数据(Read Data By Periodic Identifier)
服务描述:以周期性的方式读取特定标识符的数据,可用于实时监测关键参数。
示例:
请求数据:$2A 030F 0005(假设 030F 是要读取数据的周期标识符,0005 表示周期为 5 秒)
响应数据:$6A [数据内容(每个周期返回的数据)]
数据内容解释:“$2A”是服务指令,“030F”是周期数据标识符,“0005”是周期时间,“$6A” 表示正响应,后面跟着按周期读取到的数据。
正响应编码:$6A + 数据
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 2A 11 | 服务不支持 |
$7F 2A 31 | 无效的周期标识符或周期时间 |
注意事项:设置合适的周期,避免过度占用通信资源或导致数据更新不及时。
6.$2E - 按标识符写入数据(Write DataByIdentifier)
服务描述:根据指定的 DID 向 ECU 写入数据,如修改配置参数、校准值等。
示例:
请求数据:$2E 010D 35(假设 010D 是某个可写参数的 DID,35 是要写入的值)
响应数据:$6E
数据内容解释:“$2E”是写入数据服务指令,“010D”是目标数据标识符,“35”是要写入的值,“$6E” 表示写入成功。
正响应编码:$6E
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 2E 11 | 服务不支持 |
$7F 2E 31 | 写入权限不足或指定的 DID 不可写 |
注意事项:写入数据可能改变 ECU 的运行状态,要谨慎操作,确保写入的数据正确且符合要求。
7. $2F - 按条件过滤读取数据(Read Data By Filter Condition)
服务描述:根据特定的过滤条件从 ECU 中读取数据。例如,可以按照数据的范围、数据变化率等条件来过滤读取的数据。
示例:
请求数据:$2F [过滤条件参数,如数据范围 0 - 100]
响应数据:$6F [符合条件的数据内容]
数据内容解释:“$2F”是服务指令,请求数据中的过滤条件用于指定要读取的数据特征,“$6F” 表示正响应,后面跟着符合条件的数据。
正响应编码:$6F + 数据
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 2F 11 | 服务不支持 |
$7F 2F 31 | 无效的过滤条件 |
注意事项:过滤条件的设置需要准确,不同 ECU 对于条件的处理方式可能不同,需要参考相关文档。
存储数据传输(31 - 34)
1. $31 - 请求下载(Request Download)
服务描述:用于请求从外部设备向 ECU 下载数据,如软件更新文件、地图数据等。
示例:
请求数据:$31 [下载请求参数(包括文件大小、版本等信息,具体格式依协议而定)]
响应数据:$71
数据内容解释:“$31”是下载请求服务指令,请求数据中的参数告知ECU要下载的数据特征,“$71” 表示 ECU 准备好接收下载数据。
正响应编码:$71
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 31 11 | 服务不支持 |
$7F 31 31 | ECU 没有足够的内存来存储下载数据 |
注意事项:下载过程中要保证通信稳定,避免数据丢失或损坏,下载的数据要与 ECU 兼容。
2.$32 - 请求上传(Request Upload)
服务描述:请求从 ECU 向外部设备上传数据,如故障日志、车辆行驶数据等。
示例:
请求数据:$32 [上传请求参数(指定要上传的数据类型、范围等)]
响应数据:$72
数据内容解释:“$32”是上传请求服务指令,请求参数告知ECU要上传的数据内容,“$72” 表示 ECU 准备好执行上传操作。
正响应编码:$72
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 32 11 | 服务不支持 |
$7F 32 31 | 不允许上传数据 |
注意事项:确保接收设备有足够的存储空间和处理能力来接收上传的数据。
3.$33 - 传输数据(Transfer Data)
服务描述:在下载或上传过程中传输数据块。
示例:
请求数据:$33 [数据块内容(具体格式依协议而定)]
响应数据:$73
数据内容解释:“$33”是传输数据服务指令,“$73” 表示数据块传输成功。
正响应编码:$73
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 33 11 | 服务不支持 |
$7F 33 31 | 数据传输错误,如数据丢失、校验错误等 |
注意事项:在数据传输过程中需要对数据进行完整性和准确性校验。
4.$34 - 请求传输退出(Request Transfer Exit)
服务描述:结束数据下载或上传操作。
示例:
请求数据:$34
响应数据:$74
数据内容解释:“$34”是请求传输退出服务指令,“$74” 表示操作成功。
正响应编码:$74
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 34 11 | 服务不支持 |
$7F 34 31 | 数据传输未完成或处于错误状态 |
注意事项:确认数据传输已完成或正确中止,避免数据丢失或损坏。
输入输出控制(34 - 37)
1. $34 - 请求执行器测试(Request Actuator Test)
服务描述:用于控制 ECU 对相关执行器进行测试操作。例如,对喷油嘴、电磁阀等执行器进行功能测试。
示例:
请求数据:$34 [执行器标识和测试参数,如喷油嘴 1 测试参数]
响应数据:$74
数据内容解释:“$34”是服务指令,请求数据中的执行器标识和测试参数用于指定要测试的执行器和测试方式,“$74” 表示执行器测试操作启动成功。
正响应编码:$74
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 34 11 | 服务不支持 |
$7F 34 31 | 无效的执行器标识或测试参数 |
注意事项:在进行执行器测试时,要确保车辆处于安全状态,有些测试可能会影响车辆的正常运行,如喷油嘴测试可能会导致燃油喷射异常。
2. $35 - 请求短期调整(Request Short Term Adjustment)
服务描述:对 ECU 的某些输出进行短期调整,例如临时调整发动机怠速、灯光亮度等。
示例:
请求数据:$35 [调整参数(如调整发动机怠速参数值)]
响应数据:$75
数据内容解释:“$35”是短期调整服务指令,请求数据中的参数指定调整内容,“$75” 表示调整操作成功。
正响应编码:$75
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 35 11 | 服务不支持 |
$7F 35 31 | 调整参数无效或超出范围 |
注意事项:短期调整可能影响车辆性能和排放,应在合适条件下进行,并注意调整后的恢复。 |
3.$36 - 请求长期调整(Request Long Term Adjustment)
服务描述:对 ECU 的参数进行长期调整,如更改燃油喷射策略的长期参数、变速箱换挡逻辑等。
示例:
请求数据:$36 [调整参数(如长期燃油喷射参数值)]
响应数据:$76
数据内容解释:“$36”是长期调整服务指令,请求数据中的参数指定长期调整内容,“$76” 表示调整操作成功。
正响应编码:$76
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 36 11 | 服务不支持 |
$7F 36 31 | 长期调整权限不足或参数无效 |
注意事项:长期调整需要更谨慎,可能需要专业设备和技术人员操作,且要考虑对车辆整体性能的影响。 |
4.$37 - 请求校准数据传输(Request Transfer Of Calibration Data)
服务描述:用于传输校准数据,如传感器校准参数、执行器校准参数等。
示例:
请求数据:$37 [校准数据(包括数据类型、值等信息)]
响应数据:$77
数据内容解释:“$37”是校准数据传输服务指令,请求数据包含校准数据内容,“$77” 表示传输成功。
正响应编码:$77
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 37 11 | 服务不支持 |
$7F 37 31 | 校准数据格式错误或不被识别 |
注意事项:校准数据的准确性至关重要,传输前需确保数据来源可靠且格式正确,避免因错误校准数据导致系统故障。
远程激活例程(38 - 39)
1. $38 - 请求例程控制(Request Routine Control)
服务描述:激活或执行 ECU 内部的特定诊断例程,如自诊断测试例程、特定功能模块的检测例程等。
示例:
请求数据:$38 01(假设 01 表示启动某个特定的自诊断例程)
响应数据:$78
数据内容解释:“$38”是例程控制服务指令,“01”指定要启动的例程,“$78” 表示例程启动成功。
正响应编码:$78
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 38 11 | 服务不支持 |
$7F 38 31 | 指定的例程不存在或不可用 |
注意事项:例程执行可能需要一定时间,在此期间车辆状态可能会改变,需确保车辆处于安全状态,并且要了解例程执行对车辆系统的影响。
2.$39 - 按故障码请求例程控制(Request Routine Control - By DTC Number)
服务描述:根据故障码激活相关的诊断例程,以便针对性地排查和解决与该故障码相关的问题。
示例:
请求数据:$39 P0300(假设根据故障码 P0300 启动相关例程)
响应数据:$79
数据内容解释:“$39”是按故障码请求例程控制指令,“P0300”是指定故障码,“$79” 表示相关例程启动成功。
正响应编码:$79
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 39 11 | 服务不支持 |
$7F 39 31 | 指定故障码相关的例程不存在 |
注意事项:要确保故障码准确无误,否则可能启动错误的例程,导致诊断 | |
结果不准确或对车辆系统造成不必要的影响。 |
上传下载(40 - 44)
1. $40 - 启动诊断会话(Start Diagnostic Session)
服务描述:类似于 $10,但可能是特定设备或协议版本下的诊断会话启动方式,用于建立诊断通信。
示例:
请求数据:$40 01(假设 01 表示特定方式启动会话)
响应数据:$80
数据内容解释:“$40”是启动会话服务指令,“01”指定启动方式,“$80” 表示会话启动成功。
正响应编码:$80
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 40 11 | 服务不支持 |
$7F 40 31 | 启动条件不满足,如安全限制等 |
注意事项:参考 $10 的注意事项,同时要注意特定启动方式可能需要的特殊条件。 |
2.$41 - [假设是某种特殊的下载模式相关服务,比如安全下载启动(Secure Download Start)]
服务描述:用于启动一种安全机制下的下载流程,可能涉及到加密、认证等操作,以确保下载数据的完整性和安全性,常用于对车辆关键系统软件更新的场景。
示例:
请求数据:$41 [安全参数(如加密密钥索引、认证令牌等)]
响应数据:$81
数据内容解释:“$41”是特殊下载启动服务指令,请求数据中的安全参数用于建立安全下载环境。“$81” 表示安全下载启动成功,ECU 准备接收安全下载相关的数据。
正响应编码:$81
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 41 11 | 服务不支持 |
$7F 41 31 | 安全参数错误或不匹配,如密钥错误、认证失败等 |
注意事项:安全参数的设置和管理至关重要,任何错误都可能导致下载失败或安全漏洞。在操作前需确保安全参数的准确性和保密性,并且此服务通常需要严格的授权和操作流程。
3. $42 - 读取诊断故障码信息(Read Diagnostic Trouble Code Information)
服务描述:读取存储在 ECU 中的故障码以及相关的详细信息,如故障发生次数、出现时间、故障状态等。
示例:
请求数据:$42
响应数据:$82 [故障码信息(例如:P0101 - 3 次 - 2024 - 01 - 01 10:00:00 - 当前存在)]
数据内容解释:“$42”是读取故障码信息指令,“$82” 表示正响应,后面跟着故障码及相关详细信息,这里示例了故障码 P0101 出现 3 次,首次出现时间和当前故障状态。
正响应编码:$82 + 故障码信息
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 42 11 | 服务不支持 |
$7F 42 31 | 没有存储的故障码信息 |
注意事项:故障码信息有助于准确诊断故障,但要注意信息的时效性和准确性,某些情况下故障码可能是历史遗留且故障已经消失。
4. $43 - 清除诊断故障码信息(Clear Diagnostic Trouble Code Information)
服务描述:清除 ECU 中的故障码信息,与 $12 类似,但可能在功能或应用场景上有更具体的区别。
示例:
请求数据:$43
响应数据:$83
数据内容解释:“$43”是清除故障码信息指令,“$83” 表示清除操作成功。
正响应编码:$83
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 43 11 | 服务不支持 |
$7F 43 31 | 清除权限不足或清除条件不满足 |
注意事项:同 $12 的注意事项,即清除前要确保故障已彻底解决,以免丢失诊断线索。 |
5. $44 - 读取诊断会话状态(Read Diagnostic Session Status)
服务描述:获取当前诊断会话的状态信息,如当前处于何种会话模式、会话剩余时间、是否有正在执行的操作等。
示例:
请求数据:$44
响应数据:$84 [会话模式:默认会话 - 剩余时间:无限制 - 正在执行操作:无]
数据内容解释:“$44”是读取会话状态指令,“$84” 表示正响应,后面跟着会话状态的详细信息。
正响应编码:$84 + 状态信息
负响应编码及原因(表格形式):
负响应编码 | 原因 |
---|---|
$7F 44 11 | 服务不支持 |
$7F 44 31 | 无法获取会话状态信息 |
注意事项:有助于监控诊断过程,及时发现异常情况,如会话意外中断或超时等问题。 |
原文地址:https://blog.csdn.net/weixin_44399845/article/details/143763662
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!