ISO 14229-1 $3E服务

本文介绍了ISO 14229-1标准中的3E服务,主要用于保持诊断在线状态。3E服务的子功能包括00和80,其中00需要响应,80则不需要,两者都能确保从节点维持诊断会话。在执行刷写任务时,会话通常会保持,不一定需要额外发送3E服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


摘要

项目开发中正好用到3E服务,虽然知道它的作用是保持诊断在线,但具体还没深究过,今天总结一下,以防忘记。


要点

1.报文很简单,sub-function有00和80;
2.00需要响应,80不需要响应,效果一样,从节点都能知道诊断是在线的或者说都能保持在当前会话下;
3.如果是执行刷写任务,则会话是一直保持的,需不要通过发送3E;

参考资源链接:[UDS诊断规范ISO14229-1:2013中文版-汽车CAN总线](https://wenku.youkuaiyun.com/doc/63zmy0fxob?utm_source=wenku_answer2doc_content) 在开发基于UDS ISO14229-1:2013标准的汽车诊断服务时,掌握如何通过CAN总线发送诊断请求至关重要。这里将介绍发送诊断服务请求的详细步骤,并提供实际代码示例,以确保符合标准要求。 首先,确保你已经获取并熟悉了《UDS诊断规范ISO14229-1:2013中文版-汽车CAN总线》这份技术文档。这份文档详细描述了UDS协议的服务请求格式,以及如何通过CAN总线发送和接收诊断信息。 1. **确定服务标识符(SID)**:每一个诊断服务都有一个对应的SID。例如,读取数据块服务(0x22)用于获取车辆的特定信息。你需要确定你要执行的服务对应的SID。 2. **构建诊断请求消息**:诊断请求消息由以下部分组成: - 初始诊断帧:包含CAN标识符(通常以0x3E8开始),用于指定目标设备。 - 服务标识符(SID):8位请求类型。 - 参数:根据不同的服务,可能需要附加的参数。 - 校验和:用于错误检测。 3. **发送请求**:使用CAN接口发送构建好的诊断请求消息。以下是一个发送读取数据块服务请求的伪代码示例: ```python def send_diagnostic_request(can_interface, target_id, sid, parameters): # 构建初始诊断帧和消息 diagnostic_message = [ 0x3E8, # CAN标识符 sid, # 服务标识符 *parameters # 其他参数 ] # 发送消息 can.send(can_interface, target_id, diagnostic_message) ``` 4. **接收响应**:期望接收到来自目标设备的诊断响应消息,并进行处理。响应消息通常包含SID、数据以及校验和。 5. **错误处理**:如果接收到了错误响应,根据错误代码进行相应的错误处理。 通过上述步骤,你将能够根据UDS ISO14229-1:2013标准发送基本的诊断服务请求。为了更深入地理解和掌握诊断协议栈的开发,建议深入学习《UDS诊断规范ISO14229-1:2013中文版-汽车CAN总线》文档,其中不仅包含了服务请求的构建和发送,还涵盖了详细的协议要求和开发指南,对于开发和测试人员来说是一份宝贵的资源。 参考资源链接:[UDS诊断规范ISO14229-1:2013中文版-汽车CAN总线](https://wenku.youkuaiyun.com/doc/63zmy0fxob?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智驾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值