【AutoSar_UDS服务】0x31服务_例程控制

1 术语解释

1.1 缩略语

缩写描述解释
DTCDiagnostic Trouble Code诊断故障码
DcmDiagnostic Communication Manager诊断通信管理
DemDiagnostic Event Manager诊断事件管理
SIDService identify服务标识符
NRCNegetive reponse code否定响应码

2 功能简介

2.1 功能概述

例程,就是指的一段写好的具有一定功能的代码模块,通过例程控制服务,可以控制(开始、停止)这段代码。ISO14229-1里对例程的接口已经定义好了,即可以控制例程的开始、结束和获取结果。

例程有两种,一种是完全有例程控制服务对例程的开始和结束进行控制,该例程开始之后会持续执行,由客户端对其进行控制,服务端仅负责接受和执行请求;另一种是由客户端请求例程开始执行,但例程结束由服务端控制,可以是在诊断响应之前就结束,也可以在给出诊断响应之后再结束。

那么,例程都用来做什么?最常见的应用场景如车钥匙学习,四轮胎压学习,ESP制动液注入,车窗防夹标定,存储器擦除,数据校验,StayInboot,程序升级前检测刷写条件是否满足,一些需要测试的功能检测,功能控制等等。

客户端使用RoutineControl 0x31服务来执行已定义的步骤序列并获得相关结果。该服务具有很大的灵活性,但典型的用法可能包括擦除内存、重置或学习自适应数据、运行自测、覆盖正常的服务器控制策略以及控制服务器值随时间变化的功能,包括预定义的序列(例如,关闭车顶)等等。通常,当用于控制输出时,此服务的用途更加的复杂,而UDS 服务 0x2F inputOutputControlByIdentifier用于相对简单的(例如,静态)输出控制,请参考【AutoSar_UDS服务】0x2F服务_IO控制

RoutineControl 0X31服务(一个例程)包含以下三个子服务:

  • start a routine(开始例程): 服务端在接收到开始例程的请求后,应立即开始执行指定的例程,根据例程设计的不同,服务端应该在执行例程之后给出响应,有些例程如擦除寄存器、数据校验等,需要立即执行并且在执行完给出结果的,则需要在执行完给出肯定或者否定响应,而有些如钥匙学习、胎压学习等需要由客户端发送请求来控制(控制过程比较长),则在正常开始例程之后给出肯定响应,如不正常则给出否定响应;
  • stop a routine(停止例程): 服务端在接收到停止例程的请求后,应立即停止指定的例程;
  • request routine results(请求例程结果): 一般例程,在前面的两个指令的响应里,就会带有例程执行的结果。但是有一些由于例程的特殊性无法在响应里给出结果,所以需要单独请求例程执行的结果。

注: 一个例程对应一个2字节的RID,以上子服务需要在此RID中配置,且每个子服务都可以配置相应的入参和出参, 因为涉及到控制ECU,所以一般例程服务都需要在特定的会话和安全等级下执行

3 请求响应定义

3.1 请求格式

在这里插入图片描述

3.2 肯定响应格式

在这里插入图片描述

3.3 否定响应格式

否定响应使用通过的格式: 7F + SID + NRC, 0x31服务主要支持一下NRC码:
在这里插入图片描述
注 : 存在这么多的NRC的情况下,NRC的判定也是有顺序和流程的。

4 请求响应实例

Tester Dcm 10 03 50 03 27 01 57 01 【seed】 27 02 【key】 57 02 31 01 02 01 02 01 为RID 71 01 02 01 32 31 02 02 01 71 02 02 01 30 31 03 02 01 71 03 02 01 30 33 ... 8F Tester Dcm

5 参考资料

  1. ISO 14229-1:2013(E)
  2. Specification of Diagnostic Communication Manager AUTOSAR CP R20-11
  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
autosar_sws_timesyncovercan是AUTOSAR标准中定义的基于CAN总线的时间同步服务。 在汽车电子系统中,不同的控制单元(ECU)需要按照统一的时间基准进行操作,以确保各个控制单元之间的协调和同步。autosar_sws_timesyncovercan就是为了满足这个需求而被定义的。 autosar_sws_timesyncovercan使用了CAN总线作为通信的介质,通过CAN总线将时间同步消息发送到各个控制单元。通过时间同步消息,各个控制单元可以获取精确的时间信息,并根据这个时间信息进行各种操作,例如数据传输、事件触发等。 autosar_sws_timesyncovercan实现了基于Master-Slave架构的时间同步机制。其中,Master节点负责发送时间同步消息,而Slave节点则负责接收并进行时间同步。Master-Slave架构确保了整个系统中所有控制单元之间的时间保持一致。 autosar_sws_timesyncovercan定义了不同的时间同步模式,包括周期同步模式和非周期同步模式。周期同步模式适用于需要周期性执行任务的应用场景,而非周期同步模式适用于一次性任务的应用场景。 autosar_sws_timesyncovercan还规定了时间同步消息的格式和传输方式,确保消息的可靠性和准确性。同时,还定义了时间同步相关的接口和API,方便控制单元的开发和集成。 总之,autosar_sws_timesyncovercan是一种以CAN总线为基础的时间同步服务,通过统一的时间基准来协调和同步汽车电子系统中的各个控制单元,实现系统的高效运行和协作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值