UDS协议入门之10服务
前言
ISO-14229中按各服务的功能将uds协议划分为六大类:
- Diagnostic and Communication Management (诊断和通信管理)
- Data Transmission (数据传输)
- Stored Data Transmission (存储数据传输,用于操作DTC)
- InputOutput Control (IO控制)
- Routine Control (远程控制)
- Upload Download (上传下载)
其中,10(DiagnosticSessionControl)服务属于第一类,主要作用就是客户端向服务器请求控制诊断会话。
简介
10服务用于控制ECU在不同的诊断会话(session)间进行切换。诊断会话(session)可以看作是软件所处的一种状态,在不同会话下可以支持不同的诊断服务或功能。
正常情况下,ECU始终只有一个诊断会话处于活动状态,在ECU上电启动时,应自动进入默认诊断会话,如果运行期间没有启用其他诊断会话的话,就会一直处于默认会话。
服务格式
请求格式
DiagnosticSessionControl这个服务的SID是0x10,request固定为2个byte,第一个byte是SID,第二个byte的低7bit是sub-function,用于指示ECU将进入的session。
其中sub-function 值含义如下:
sub-function | 含义 |
---|---|
0x00 | ISOSAEReserved(保留) |
0x01 | defaultSession |
0x02 | ProgrammingSession |
0x03 | extendedDiagnosticSession |
0x04 | safetySystemDiagnosticSession |
0x05 – 0x3F | ISOSAEReserved(保留) |
0x40 – 0x5F | vehicleManufacturerSpecific(由整车厂自定义使用) |
ECU上电之后,默认处在defaultSession中,在这个session中很多诊断服务不可以执行,很多诊断相关的数据不能读取或写入。ProgrammingSession 编程会话通常只有bootloader去使用。
一般的诊断仪启动之后,会给ECU发送10 03,即让ECU进入 extendedDiagnosticSession(扩展会话)中,在这个session中有很多可执行的诊断服务。而如果要让ECU保持在non-defaultSession中,则需要诊断仪每隔固定的时间发送0x3E服务,ECU才会知道诊断仪有和自己通信的需求,从而保持在non-defaultSession中。
响应格式
肯定响应
第一个BYTE:对请求的echo,为SID+0x40
第二个BYTE:对请求的echo,为sub-function
后面几个BYTE为诊断会话参数,长度一般是四个字节,其具体含义如下:
前两个字节代表P2Server_max,即ECU在应用层上对诊断命令的默认响应时间,后两个字节代表P2*Server_max,即ECU在暂时无法处理当前诊断命令(具体表现为发送了NRC 0X78),在应用层上对诊断命令响应的最长时间。
否定响应
0x7F | 0x50 | NRC |
---|
第一个BYTE:固定为0x7F
第二个BYTE:对请求的echo,为SID+0x40
第二个BYTE:NRC。
UDS协议入门之10服务相关推荐
- UDS之浅谈10服务
一.服务概述 DiagnosticSessionControl(诊断会话控制)服务用于启用服务器中的不同诊断会话. 服务说明: ① 服务器中应该始终只有一个有效诊断会话 ② 服务器上电时应始终启动默认 ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.3 初步了解CDD(以10服务为例)
我们前一篇文章详细讲了诊断会话控制服务10服务,这篇文章来讲一下如何在CDD文件中配置这个服务和相关的诊断会话状态等内容. 具体包括: 服务属性设置 服务请求和响应格式设置 参数设置 否定响应码设置 ...
- UDS,ISO14229,ISO15765,ISO15031,J1939车辆诊断协议入门系列
(图片来源于网络) 目录 摘要 1. 基础概念 1.1 诊断的概念 1.2 诊断的目标 1.3 诊断的实现 1.4 诊断是分层的 2. 项目应用 3. 协议栈开发 摘要 回想当年刚进去汽车行业,做新能 ...
- HTTP协议入门——1.1版本
HTTP协议入门--1.1版本 基本概述 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. ...
- UDS协议发展历史(UDS是什么?)
诊断协议那些事儿 本文为诊断协议那些事儿专栏首篇文章,旨在介绍诊断的起源.发展历史,让读者对诊断有一个基本的认识,明确UDS到底是什么. 关联文章: UDS的应用场景 UDS的OSI模型 UDS服务列 ...
- 读取 DTC 信息服务 (0x19) – UDS 协议
总目录链接==>> AutoSAR入门和实战系列总目录 0x19读取 DTC 信息服务概述 读取 DTC 信息服务在 UDS 协议中用于从车辆或特定 ECU 或节点读取 DTC.UDS 协 ...
- 基于scapy uds协议包实践
一.UDS协议说明: 源自百度:UDS协议(Unified Diagnostic Services,统一诊断服务)是诊断服务的规范化标准,比如读取故障码应该向ecu发什么指令,读数据流又发什么指令.O ...
- 互联网协议入门及DNS原理入门
互联网协议入门及DNS原理入门 互联网协议入门 作者: 阮一峰 日期: 2012年5月31日 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信.上海的某一块网 ...
- internet 协议入门
前言 劳于读书,逸于作文. 原文地址:internet协议入门 博主博客地址:Damonare的个人博客 博主之前写过一篇博客:网络协议分析,在这篇博客里通过抓包,具体的分析了不同网络协议的传送的数据 ...
- 【Linux网络编程】网络协议入门
00. 目录 文章目录 00. 目录 01. 前言 02. 概述 03. 物理层 04. 数据链路层 05. 网络层 06. 传输层 07. 应用层 08. 附录 01. 前言 我们每天使用互联网,你 ...
最新文章
- Serverless 下的微服务实践
- 多面体的顶点方向以及分解定理以及多胞形凸组合
- [NSTaggedPointerString text]:unrecognized selector sent to instance
- 99% 的人都能看懂的「补偿」以及最佳实践
- div内容设float之后,div的自动高度适应
- 如何定制化SAP Fiori标准应用里UI字段的标签
- Tensorflow入门----占位符、常量和Session
- 解释Spring中IOC, DI, AOP
- 编写build.xml的12个原则
- [html][转]常用返回顶部代码
- C++常用的图像像素值读写的方法
- SIP协议详解eXosip源码库用法分析
- WINAPI中URLDownloadToFile头文件问题
- 认识机器视觉环形光源
- WordArt怎样把endnote的关键词生成词云
- 第二个项目前预演,完成了,(第6200小时的时候)
- Ext cookies设置、获取和清除
- 直播APP开发需要具备哪些功能?
- Kali扫描工具Recon-NG
- Android H265