码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【车载开发系列】UDS诊断---诊断会话控制($0x10)


    【车载开发系列】UDS诊断—诊断会话控制($0x10)

    UDS诊断---诊断会话控制($0x10)

      • 【车载开发系列】UDS诊断---诊断会话控制($0x10)
        • 一.概念定义
        • 二.三种会话模式
          • 1)默认会话
          • 2)编程会话
          • 3)扩展会话
        • 三.会话模式切换
        • 四.报文格式
          • 1)请求报文
          • 2)肯定响应
          • 3)否定响应

    一.概念定义

    SID$0x10就是诊断会话控制服务DiagnosticSessionControl的意思。它包含3个子功能。ECU上电时,进入的是默认会话模式(Default),如果没有收到诊断会话请求,ECU需自动进入第一个默认会话模式(01h),在同一个时刻,只能有一个诊断会话模式被激活,所以这里的会话模式更像是一个容器,其他所有的服务都将在这个“容器”当中执行。诊断工具通过此服务使ECU进入不同的诊断会话模式。

    二.三种会话模式

    在诊断会话控制服务中包含默认会话,编程会话和Extended扩展会话3个子功能。
    为什么设计三个会话模式呢?因为权限问题。默认会话权限最小,可操作的服务少;扩展模式通常用于解锁高权限诊断服务,例如写入数据/参数、读写诊断码;编程模式用于解锁bootloader相关的诊断服务,即程序烧录。

    子功能会话模式
    01默认会话模式
    02编程会话模式
    03扩展会话模式
    1)默认会话

    子服务代码是01。顾名思义,就是ECU在刚启动时保持的状态,当ECU复位的时候也是会返回默认会话,不需要超时处理。

    2)编程会话

    子服务代码是02。刷写程序时用的,超时或者刷写失败时会跳转回默认会话,即ECU从底层软件跳转到应用软件。
    编程会话从字面上就很好理解,如果需要对ECU进行程序刷写操作,就需要进入编程会话才能执行相关操作。

    3)扩展会话

    子服务代码是03。通常诊断用的大部分功能以及特殊功能都在这个会话模式下进行。
    扩展会话模式主要是用来写入一些信息如VIN和序列号等,以及控制ECU执行一些特殊请求如控制应用通信和故障信息的更新等

    三.会话模式切换

    默认会话模式 可以直接切换到扩展会话模式,但是不能直接切 换到编程会话模式,如果想进入编程会话模式, 则必须先进入扩展会话模式。同样,编程会话模式不能直接进入扩展会话模式,只能进入默认会话模式。
    ECU复位以及 S3 定时器超 时将导致 ECU 进入默认会话模式。
    在这里插入图片描述

    四.报文格式

    1)请求报文

    参数“DiagnosticSessionType”定义了要求启动哪种会话。01-03分别对应着三种会话模式。
    在这里插入图片描述

    2)肯定响应

    定时器 P2server 的数值以 1ms 计算。
    定时器 P2server 的数值以 10ms 计算
    在这里插入图片描述
    时间参数有两个,P2server_max和P2
    server_max,每个参数占用两个字节,所以一共占用四个字节。虽然每个参数都是两个字节,但是其单位(精度)是不一样的,P2参数的单位是10ms,也就是说P2的结果需要把后面两个字节的数值乘以10才是实际的时间。
    P2server_max=50ms=0x0032
    P2server_max=5000ms=50010ms=0x01F4*10ms

    3)否定响应

    在这里插入图片描述

  • 相关阅读:
    听GPT 讲Istio源代码--pilot
    五分钟快速搭建一个实时人脸口罩检测系统(OpenCV+PaddleHub 含源码)
    麻雀搜索算法matlab代码
    腾讯云 服务器 宝塔面板部署Laravel项目全过程
    深入解剖线程池(ThreadPoolExecutor)
    有赞的考题越来越难了
    国庆要闻回顾 | OpenAI 拟研发 AI 手机;9月以太坊上NFT销售量创2021年2月以来最低记录...
    数据库改造(Oracle->PostgreSQL)
    【接口测试】Jmeter接口实战-TCP及Websocket接口,打通接口测试...
    JS对闭包的理解
  • 原文地址:https://blog.csdn.net/Last_Impression/article/details/128006975
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号