【AutoSar_UDS服务】0x3E服务_会话保持

本文详细介绍了汽车诊断中的0x3E服务,即会话保持功能,包括其功能概述、请求响应格式、时间参数S3Client和S3Server的作用,以及ISO14229标准的应用。重点讨论了如何通过发送请求保持诊断会话,以及与之相关的诊断错误代码和响应策略。

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

1 术语解释

1.1 缩略语

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

2 功能简介

2.1 功能概述

此服务用于向一个(或多个)服务器指示客户端仍连接到车辆,并且先前已激活的某些诊断服务和/或通信将保持活动状态。
此服务用于将一个或多个服务器保持在除defaultSession之外的诊断会话中。
这可以通过定期传输testpresent请求消息来完成,也可以在没有其他诊断服务的情况下完成,以防止服务器自动返回
defaultSession。
当在诊断会话中保留单个服务器或多个服务器(而不是defaultSession)时,适用于使用此服务的详细会话要求可以在ISO 14229的实现规范中找到。

既然讲到会话保持这个服务了,那么就得了解一下会话层的两个时间参数了,这两个时间参数主要用在保持在某一个会话模式下,因为某些服务必须在特定的服务下才能执行,这个时候就要用到0x3E服务了,就会涉及到这两个参数:

  • S3 Client:诊断工具为了保持非默认会话模式而发送 $3E 服务请求报文的时间间隔,最小值2000ms
  • S3 Server:有时也称为S3Timeout,表示ECU未接收到任意诊断报文时维持在非默认会话下的时间间隔,默认5000ms,如果该参数超时,那么当前会切换到defaultSession。

在这里插入图片描述

3 请求响应定义

3.1 请求格式

如果想要抑制肯定响应,子服务的bit7置1即可,即0x80。
在这里插入图片描述

3.2 肯定响应格式

在这里插入图片描述

3.3 否定响应格式

否定响应使用通过的格式: 7F + SID + NRC, 0x3E服务主要支持一下NRC码:
在这里插入图片描述

4 请求响应实例

Tester Dcm 10 03 50 03 27 01 57 01 【seed】 27 02 【key】 57 02 5s内发送会话保持 3E 00 7E 00 Tester Dcm

5 参考资料

  1. ISO 14229-1:2013(E)
  2. Specification of Diagnostic Communication Manager AUTOSAR CP R20-11
<think>好的,我现在需要回答用户关于AUTOSAR3E服务会话维持)的实现或配置的问题。首先,我应该回忆一下AUTOSAR的基础知识,特别是诊断通信管理(DCM)和UDS服务相关的部分。 用户提到的3E服务对应于ISO 14229-1标准中的TesterPresent服务,主要用于保持诊断会话的活动状态,防止超时。接下来,我需要确认在AUTOSAR架构中,如何配置和实现这个服务。 根据引用[4],3E服务AUTOSAR中由DCM模块处理,配置可能涉及DCM模块的参数设置,比如会话类型、时间参数等。另外,否定响应码(NRC)的处理也需要配置,比如当请求格式错误时返回7F加上相应的NRC。 我需要检查是否需要配置DcmTesterPresentService的启用,以及会话层的相关时间参数,如P2Server_max和S3Server。这些参数通常在DCM模块的配置中设置,可能通过工具如AUTOSAR配置工具(如DaVinci Configurator)进行配置。 另外,用户可能想知道如何调用3E服务,例如周期性地发送请求来维持会话。这部分可能涉及应用层的调用,比如在SWC中周期触发诊断请求,或者由测试工具定期发送3E 00报文。 还需要考虑安全会话的情况,如果当前处于安全会话(如27服务解锁后),3E服务是否需要包含安全级别参数,比如子功能01或02。引用[4]中的例子显示,在安全会话中可能需要发送带有子功能01的3E请求,并处理seed和key的交换。 可能还需要参考AUTOSAR的规范文档,如Specification of Diagnostic Communication Manager,确认配置参数和流程是否符合标准。此外,配置工具中的具体步骤,比如ComGwMapping或信号路由,可能与DCM的配置相关,但需要更详细的信息。 最后,用户可能对实际配置步骤或代码实现感兴趣,比如Dcm模块的配置参数和示例代码结构。但由于AUTOSAR通常使用配置生成代码,示例代码可能只是配置的一部分,而不是手动编写的。 总结,回答需要涵盖3E服务的配置步骤、相关参数、会话管理和安全处理,并结合引用中的信息,特别是引用[4]中的实例和NRC码,以及可能的工具配置方法。</think>关于AUTOSAR3E服务会话维持)的实现与配置,其核心涉及诊断通信管理模块(DCM)的配置和会话状态机的控制。以下是具体实现要点: ### 1. **服务功能与触发条件** - **功能定义**:3E服务(TesterPresent)用于阻止诊断会话超时,通过周期性发送请求(如$3E\ 00$)维持当前会话状态[^4]。 - **触发条件**:需在非默认会话(如编程会话、扩展会话)中启用,且需配置会话超时参数$S3Server$(例如$5000ms$)[^4]。 ### 2. **关键配置项** 在AUTOSAR配置工具(如DaVinci Configurator)中需设置: ```xml <DCM模块配置> <DcmDspSessionControl> <SESSION_TYPE>EXTENDED_DIAGNOSTIC</SESSION_TYPE> <P2_SERVER_MAX>50</P2_SERVER_MAX> <!-- 单位ms --> <S3_SERVER>5000</S3_SERVER> <!-- 会话超时时间 --> </DcmDspSessionControl> <DcmDspService> <SERVICE_ID>0x3E</SERVICE_ID> <SUPPRESS_RESPONSE>FALSE</SUPPRESS_RESPONSE> </DcmDspService> </DCM模块配置> ``` ### 3. **安全会话处理** 若处于安全会话(如通过$27$服务解锁),需在3E请求中指定子功能: - **子功能01**(需携带安全密钥): ```c /* 应用层调用示例 */ SendDiagnosticRequest(0x3E, 0x01, &security_key); ``` - 若密钥验证失败,DCM返回否定响应码$NRC=0x35$(invalid key)。 ### 4. **通信信号映射** 需在`ComGwMapping`中配置信号路由,确保3E服务请求能正确传递至DCM模块[^3]: ```xml <COM配置> <ComGwMapping> <SOURCE>CAN_IF</SOURCE> <DESTINATION>DCM</DESTINATION> <PDU_REF>Diagnostic_PDU</PDU_REF> </ComGwMapping> </COM配置> ``` ### 5. **会话状态机控制** DCM内部通过状态机管理会话生命周期: $$ \text{Session State} = \begin{cases} \text{Default} & \text{if } 3E \text{未激活} \\ \text{Extended} & \text{if } 3E \text{持续接收} \end{cases} $$ 当超时时间$S3Server$耗尽,状态机自动回退到默认会话
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值