[UDS诊断 03- 诊断会话控制(0x10)]-深度解读

  1. 诊断会话      
       诊断会话模式由诊断服务层用于访问受限于特定会话的不同诊断服务。节点需要支持若干
会话模式,如下所示:
诊断会话定义
       非默认会话启动时,控制器应启动 S3 _server 定时器。如果在这个时间范围内没有从任何一方
发送诊断报文,则正在进行的诊断会话将停止,控制器将重启默认会话。控制器接收“TesterPresent”请求报文或其他任何诊断请求报文时,S3_server计时器应重置。
会话管理时间参数
会话管理时间参数
       Tester应持续发送诊断服务“TesterPresent”,用于保持非默认会话激活。如果需要,其他有效的诊断服务也可以保持非默认会话。 对于非可编程控制器,应该在控制器上电后的初始时间内进行初始化,然后过渡到默认会话。它应该符合诊断会话的以下转换原则:
会话状态转换
状态转换 1(从默认会话到默认会话) 当控制器在默认会话模式下,测试设备请求启动默 认会话时,控制器应该完整的重新初始化默认会话。 在激活的会话期间,控制器应重置所有激活/启动/更改的设置/控制。这不包括编入非易失性存储器的长期变化。
状态转换 2(从默认会话到非默认会话): 当控制器从默认会话转换到非默认会话时,控制 器只应停止在默认会话期间通过 ResponseOnEvent(0x86)服务在控制器中配置的事件(类似 stopResponseOnEvent)。
状态转换 3(从非默认会话到非默认会话): 当控制器从非默认会话转换到非默认会话时(包括当前激活的诊断会话),控制器应(重新)初始化诊断会话,这意味着:
    (1)应该停止通过 ResponseOnEvent(0x86)服务在控制器中配置的每个事件。
    (2)安全性应重新锁定。 请注意,安全访问的锁定应将任何依赖于安全访问的激活诊断功能重置为未锁定状态(例如,激活 inputOutputControl 的一个 DID)。
    (3)应保持新会话中支持并且不依赖安全访问的所有其他激活的诊断功能。 例如,任何已配置的定期调度器在转换时都应保持激活状态从一个非默认会话到另一个或相同的非默认会话,并且不会影响 CommunicationControl(0x28)和 ControlDTCSetting(0x85)服务的状态。
状态转换 4(从非默认会话到默认会话): 当控制器从默认会话以外的任何诊断会话转换 到默认会话时,控制器应通过 ResponseOnEvent(0x86)服务停止控制器中配置的每个事件, 并启用安全性。 任何其他在默认会话中不支持的诊断功能都将被终止。 例如,任何已配置的 周期性调度或输出控制应被禁用,并且 CommunicationControl 和 ControlDTCSetting 服务的 状态应被重置,这意味着正常通信在会话切换时,应重新启用默认会话。 在激活的会话期间, 控制器应重置所有激活/启动/更改的设置/控制。 这不包括编入非易失性存储器的长期变化。
      详细会话状态转换依据如下状态图:
诊断会话状态图
注:只有一种例外情况必须单独处理:控制器复位或上电后,应保留一个时间窗(20ms),在此 时间窗口之间,控制器可以接收10 02并进入编程会话。
 2. 请求报文格式
诊断会话个控制请求报文
诊断会话控制肯定响应
3. 支持的否定响应码
诊断会话控制支持的否定响应码

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值