《UDS协议从入门到精通》系列——图解0x31:例行程序控制


Tip📌:本文描述中但凡涉及到其他UDS服务的,均提供专栏内文章链接跳转方式以便快速了解他们。

学习UDS基础知识以及其他相关内容?>>>>>>>>> 返回专栏总目录 《UDS协议从入门到精通(UDS速查手册)》<<<<<<<<<

  博主已开通同名公众号,通过文末或主页二维码关注博主,将为你推送最新、最细、最硬核的车载系统知识和嵌入式开发知识!公众号主页设有交流群作为同行江湖朋友们相互交流学习的驿站。

一、简介

  所谓“例程”,简单理解你可以认为就是个函数或者一段执行逻辑,而“例程控制”就是控制这段执行逻辑的启动、停止或者获取其执行结果,这就是0x31-例行程序控制服务的作用。每个“例程”都有一个唯一的标识,称为Routine ID(RID),以便在0x31服务的请求中区分请求执行的是哪一个”例程“。<

UDS(Unified Diagnostic Services)是一种用于汽车电子控制单元(ECU)的诊断通信协议UDS协议定义了一系列服务,每个服务都有一个唯一的标识符,称为SID(Service Identifier)。NRC(Negative Response Code)是UDS协议中用于表示服务请求失败或拒绝的代码。 UDS 31服务是“请求下载”(Request Download)服务,用于请求从ECU下载数据。NRC 0x10表示“General Reject”(通用拒绝),这是UDS协议中的一种NRC,表示请求的服务被通用拒绝。 以下是UDS 31服务的详细说明: ### UDS 31服务:请求下载(Request Download) 请求下载服务用于请求从ECU下载数据。请求下载服务的请求报文格式如下: - **地址长度(Address Length)**: 1字节 - **内存地址(Memory Address)**: 根据地址长度决定 - **内存大小(Memory Size)**: 根据地址长度决定 ### NRC 0x10:通用拒绝(General Reject) 通用拒绝NRC 0x10用于表示请求的服务被通用拒绝。这种拒绝通常是由于以下原因之一: 1. **无效的服务标识符**:请求的服务标识符不被支持或无效。 2. **服务当前不可用**:请求的服务在当前状态下不可用。 3. **安全访问**:请求的服务需要安全访问,但安全访问未通过。 4. **其他原因**:其他未明确列出的原因。 ### 示例 假设我们向ECU发送一个请求下载服务的请求报文: ``` 34 00 00 00 10 00 01 00 02 ``` - **34**: 请求下载服务的SID - **00**: 数据格式标识符 - **00 00 10**: 内存地址 - **00 01 00 02**: 内存大小 如果ECU返回以下响应: ``` 7F 34 10 ``` - **7F**: NRC响应标识符 - **34**: 请求的服务ID - **10**: NRC 0x10,表示通用拒绝
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载系统攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值