文章目录

  • 前言
    • 为什么需要有不同的诊断会话模式呢?
  • 诊断请求发送
    • 发送格式
  • 诊断响应
    • 正响应格式
    • 负响应格式

前言

在UDS协议中,我们首先接触到的是诊断和通信管理功能单元(Diagnostic and communication management functional unit)模块。在这个模块里面,DiagnosticSessionControl是我们第一个需要掌握的内容。按照ISO 14229上面的划分,我们可以将诊断会话模式分为两大类;一类是DefaultSession;另一类是OtherSession。该服务的作用是:用于在服务器中启用不同的诊断会话。对于具体的项目来说,存在着多个Session会话模式。也同样是符合上述的分类方式。

为什么需要有不同的诊断会话模式呢?

因为在DefaultSession的模式下,部分诊断服务不支持。如果需要使用某些服务,则需要处于非DefaultSession模式下。具体有哪些服务在DefaultSession不支持,请查看下方的表格。

诊断请求发送

发送格式

具体的格式如下。我的理解是:当我们需要进入到某个会话模式,需要发送请求(10 xx)。xx可以是00 至FF之间的任意一个十六进制的数。在ISO文档里面,已经存在着一些被定义的会话模式。而这些已经定义好的,是在UDS协议中通用的。当然,协议中也留有保留位给到主机厂自定义。

关于ISO的具体的会话模式定义如下:

诊断响应

正响应格式

具体的格式如下。对于其中的两个参数做一个说明:
参数1:diagnosticSessionType(此参数是请求消息中子功能参数的位的回显,即发送01,回复01)
参数2:sessionParameterRecord(此参数记录包含服务器报告的特定于会话的参数值,该数据需要结合项目实际出发。)
关于参数(DiagnosticSessionControl Response Service Id)则是我们如何判别正负响应的重要依据。
图中给到的是正相应,Service ID 是相对应的服务ID 增加0x40(即0x10 服务的正相应应为0x50)。

负响应格式

具体格式如下。这是在ISO协议中定义的,在平时的过程中,我们只需要着重关注后面三个参数。
参数1:Negative Response Service Id(固定不变为7F)
参数2: Request Service Id (相对应分诊断服务(10服务则返回10服务))
参数3:responseCode(错误返回码 / NRC码)

针对于不同的服务,协议定义了在该服务下可支持的NRC码。10 服务下支持的错误码如下:

跟我学UDS(ISO14229) ———— 0x10(DiagnosticSessionControl)相关推荐

  1. 跟我学UDS(ISO14229) ———— 0x11(ECUReset)

    0x11(ECUReset)服务的主要作用是使用ECUReset服务来请求服务器重置.该服务根据嵌入在ECUReset请求消息中的resetType参数值的内容,请求服务器有效地执行服务器重置. 在服 ...

  2. 跟我学UDS(ISO14229) ———— 0x19 服务参数介绍

    相关链接:跟我学UDS(ISO14229) ---- 0x19(ReadDTCInformation) 目录 DTCStatusMask 工作状态 bit 作用说明 切换逻辑 DTCExtendedD ...

  3. 跟我学UDS(ISO14229) ———— 0x2C(DynamicallyDefineDataIdentifier)

      客户端请求动态定义数据标识符,这些数据标识符随后可以由 0x22(ReadDataByIdentifier) 服务读取.该服务的目的是为客户端提供将一个或多个数据元素分组为数据超集的功能,可以通过 ...

  4. 跟我学UDS(ISO14229) ———— 0x2A(ReadDataByPeriodicIdentifier)

      客户端请求调度服务器中的数据以进行定期传输.该服务允许客户端从服务器请求由一个或多个 PeriodicDataIdentifiers 标识的数据记录值的定期传输.dataRecord 的格式和定义 ...

  5. 跟我学UDS(ISO14229) ———— 0x14(ClearDiagnosticInformation)

      该服务允许客户端从服务器清除诊断信息(包括 DTC,捕获的数据等).完全处理该服务后,服务器应发送肯定响应.即使没有存储任何DTC,服务器也应发送肯定的响应. 如果服务器支持内存中 DTC 状态信 ...

  6. 跟我学UDS(ISO14229) ———— NRC码

     在ISO 14229 中,负响应代码范围可以划分为3个范围:    0x00:   服务器内部实现的 positiveResponse 参数值:    0x01 ~ 0x7F:与通信相关的否定响应代 ...

  7. 跟我学UDS(ISO14229) ———— 0x3E(TesterPresent)

    该服务用于向一个或多个服务器指示客户端仍连接到车辆,并且先前已激活的某些诊断服务和/或通信将保持活动状态.按照我的理解就是,当你进入到某一个模式(非DefaultSession/安全解锁)下,你需要发 ...

  8. UDS——ISO14229

    目录 一.前言 二.诊断服务标识符 三.服务响应执行规则 四.诊断流程 五.定时参数 六.诊断和通信管理功能 七.数据传输功能 八.故障信息功能 九.示例 一.前言 诊断服务按类划分为6个功能单元,包 ...

  9. UDS协议-0x10(诊断会话控制)

    UDS诊断协议是一种汽车诊断技术,通过收发车辆ECU的请求信号,即可做出相应的响应. 命令 0x10 (诊断会话控制) Diagnostic Session Control 0x10命令用于确定模式, ...

最新文章

  1. DeepLabV3+语义分割实战
  2. 【MySQL】数据库1 (数据库+基本操作介绍)
  3. 【转载】从30岁到35岁,为你的生命多积累一些厚度
  4. .Net 4.0并行库实用性演练
  5. ASP.NET Core on K8S深入学习(7)Dashboard知多少
  6. 你碰到过的最难调试的 Bug 是什么样的?
  7. 2017. 网格游戏
  8. 第十六节:ES6新增的 Set 和 WeakSet 是什么东西?
  9. 比亚迪汽车发布品牌全新标识 取消了椭圆型边界
  10. 开始学习 refactoring:improving the design of existing code
  11. [转载] python打包程序在win10不能运行、点击无反应_Windows10平台用PyInstaller打成exe程序后不能运行请高手指点...
  12. 泛微oa部署linux步骤,泛微OA流程搭建操作流程
  13. CommandName与CommandArgument
  14. ansys命令流力磁耦合仿真
  15. 蓝牙的原理,蓝牙耳机怎么连接手机
  16. python画球面投影_球面投影图片 python opencv实现[附代码]
  17. matlab 三角波脉冲轨迹叠加,求解:两同频三角波叠加后的相位差(有程序,有图)...
  18. excel 添加换行符,去除换行符:
  19. 无需Avatarify 无需剪辑工具 一键生成多人版 “蚂蚁呀嘿“视频
  20. 【攻防世界web】NewsCenter

热门文章

  1. logicaldoc_开源文档管理系统LogicalDOC入门
  2. 关于Bpm系统的流程设计器
  3. 又被拒了?替你猜透面试官的真实想法!
  4. JS基于原型链的继承和基于类的继承学习总结
  5. 搞定! iTunes 不能添加铃声进去
  6. WordPress文章收藏插件:WP Favorite Posts
  7. 收藏 | 数据分析师面试指南——自我定位篇
  8. 一套键鼠操控多台电脑--Mouse Without Borders 设置教程(转载)
  9. HotSpot虚拟机的介绍
  10. Release版本只在iOS9.2及以下闪退