当前位置: 首页 > news >正文

UDS介绍

首先要有网络网络七层的概念:

学习链接: 七层网络模型-CSDN博客


UDS网络层/TP层(ISO 15765-2)的解读 - 知乎 (zhihu.com)

概念:

        UDS(Unified Diagnostic Services,统一的诊断服务。

        标准名是《道路车辆 统一的诊断服务》

        英文名是《Road vehicles—Unified diagnostic services》

        在ISO 14229中规定,它是从ISO 14230-3(KWP2000)和ISO 15765-3协议衍生出来的。这些ECU控制车辆的各种功能,包括电控燃油喷射系统(EFI),发动机控制系统,变速箱,防抱死制动系统(ABS),门锁,制动器等。

除CAN总线以外,UDS也可在不同的汽车总线(例如 LIN, Flexray, Internet 和K-line)上实现。

关键缩略词

 缩写释意
SIDService Identifier诊断服务ID是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。如果是肯定的响应(Positive Response),首字节回复[SID+0x40],举例子就是请求0x10,响应0x50;请求0x22,响应0x62。如果是否定的响应(Negative Response),首字节回复0x7F,第二字节回复刚才询问的SID如果是肯定的响应(Positive Response),首字节回复[SID+0x40],举例子就是请求0x10,响应0x50;请求0x22,响应0x62。如果是否定的响应(Negative Response),首字节回复0x7F,第二字节回复刚才询问的SID

协议栈总览:

       UDS标准栈

协议

网络层概述

uds只涉及第一第二,第五第七层。

OSI
物理层定义终端之间的电气、机械等特性和标定;包括电压、频率、数据速率、最大传输距离。
数据链路层在物理线路上提供可靠的数据传输;例如物理地址、网络拓扑、线路规划、差错报告、数据帧有序传输;需要解决帧的破坏、丢失和重复的问题,线路使用权的竞争问题,流量调节和出错处理问题。
网络层

网络层最主要的目的就是把数据转换成能适应CAN总线规范的单一数据帧从而进行传输,如果将要传输的报文长度超过了CAN数据帧的长度,则需要将报文信息进行拆分后传输,每次至多可以传输4095个字节长度的报文。

网络层协议数据单元(N_PDU)有四种类型,即单帧(SF)、首帧(FF)、连续帧(CF)、流控制帧(FC),用于建立对等实体间的通信。

传输层(TP层

使收发的数据帧所包含的字节总数,扩容到4095个字节。

不管发送或接收是成功或是出错,都需要上报给应用层。

会话层
表示层在物理线路上提供可靠的数据传输;例如物理地址、网络拓扑、线路规划、差错报告、数据帧有序传输;需要解决帧的破坏、丢失和重复的问题,线路使用权的竞争问题,流量调节和出错处理问题。
应用层USD应用层由ISO 14229标准定义。诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response),而UDS就是为不同的诊断功能的request和response定义了统一的内容和格式。

基 于UDS的DOIP/DOCAN框架

 DoI P

是Diagnostic communication over Internet Protocol 的简称,顾名思义,我们以太网协议,承载UDS数据,实现诊断通信的这种方式称为DoIP相比DoCAN中CAN网络的封闭性,DoIP由于Ethernet的互联互通,可以实现车与车、车与人的远距离诊断通信。由ISO13400 系列标准定义。通过网络协议进行诊断通信,由ISO13400 系列标准定义。即DoIP是在以太网网络上传输UDS诊断数据的传输协议。DoIP带宽高,适合传输大量数据的场景,如车上的OTA软件升级。DoIP报文也是基于TCP或UDP,但在其报文的Payload起始段添加了DoIP报头(首部),用来区分不同的DoIP报文类型,实现不同的功能。DoIP报文的结构如下图所示:

在这里插入图片描述

DOIP协议体系参考协议总览‘

  • 网络层协议IP
  • 传输层协议TCP/UDP
  • 对网关的要求(网关如何集成到现有网络总)
  • 对测试设备的要求(如何发现车辆并建立通信)

支持DoIP的车辆网络架构图如下

在这里插入图片描述

 从这张图上可以看出:汽车内部必须有一个DoIP的总网关,它作为和外部的诊断设备DoIP通信的唯一接口。

DOCAN

UDS定义的是诊断服务,属于应用层的内容,实现诊断通信的底层总线技术有很多,比如CAN,LIN,Ethernet,Flexray等,由于法规强制的OBD接口是CAN总线的,所以绝大多数场景中诊断都是基于CAN实现的。这就带来了一个问题,classical CAN总线物理层的每一帧只能传输8个字节,CAN FD第帧最多能传输64个字节,那么如果UDS产生的一条诊断命令超过了8个字节,在CAN总线上一帧是承载不了的,就需要进行分包,这也是DoCAN(Diagnose over CAN)要解决的最主要的问题。

参考:基于CAN总线实现的UDS诊断(DoCAN) - 知乎 (zhihu.com)

目前并非最终版本,工作中遇到了再回来修改添加

相关文章:

UDS介绍

首先要有网络网络七层的概念: 学习链接: 七层网络模型-CSDN博客 UDS网络层/TP层(ISO 15765-2)的解读 - 知乎 (zhihu.com) 概念: UDS(Unified Diagnostic Services,统一的诊断服务。 标准名是《…...

ASP.NET Core MVC 从入门到精通之初窥门径

随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生&#xff0c…...

英码科技智慧环卫:构建宜居城市新篇章

随着城市化进程的加快,城市环境卫生问题日益凸显。如何提高城市环境卫生管理水平,提升城市品质,成为了各级政府和社会各界关注的焦点。智慧环卫作为一种结合现代信息技术的环境卫生管理方式,正在逐渐成为解决城市环境卫生问题的有…...

在Spring Boot微服务使用HashOperations操作Redis Hash哈希散列

记录:403 场景:在Spring Boot微服务使用RedisTemplate的HashOperations操作Redis Hash哈希散列。 版本:JDK 1.8,Spring Boot 2.6.3,redis-6.2.5 1.微服务中Redis配置信息 1.1在application.yml中Redis配置信息 spring:redis:host: 192.1…...

innobackupex备份mysql产生returned OS error 124

解决使用innobackupex备份mysql产生returned OS error 124 xtrabackup 报错Too many open files 故障处理 一、背景 客户反馈数据库备份失败。 二、环境描述 [rootmes-node1 ~]# mysql -V mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper [root…...

明明有index.jsp文件访问的时候却显示404

重建一下项目...

人工智能前沿——「全域全知全能」人类新宇宙ChatGPT

🚀🚀🚀OpenAI聊天机器人ChatGPT——「全域全知全能」人类全宇宙大爆炸!!🔥🔥🔥 一、什么是ChatGPT?🍀🍀 ChatGPT是生成型预训练变换模型(Chat G…...

eslint-plugin-import - import/order

eslint-plugin-import是什么? 该插件目的在于支持ES6以上的导入/导出语法,并防止文件路径和导入名称拼写错误的问题。 import/order是什么? 按照约定的规则对引入的模块进行排序。 import/order常用规则介绍 groups 约定引入模块顺序的…...

selenium知识点大全

selenium知识点大全 在使用selenium之前必须先配置浏览器对应版本的webdriver。 1. 初始化浏览器对象 from selenium.webdriver import Chrome# 创建浏览器对象,并且打开一个空的页面 browser Chrome()# 关闭浏览器 browser.close()2. 访问指定网页 from selen…...

Biotin-PEG-SH生物素-聚乙二醇-巯基结构式;SH-PEG-Biotin

Biotin-PEG-SH 生物素-聚乙二醇-巯基 中文名称:生物素-聚乙二醇-巯基 英文名称:Biotin-PEG-SH Biotin-PEG-Thiol 性状:粘稠液体或者固体粉末,取决于分子量 溶剂:溶于水和DCM、DMF等大部分有机溶剂 分子式&#x…...

【防止恶意用户注册】-- 手机在网状态 API 的防欺诈应用解析

简介 手机在网状态 API 支持传入手机号码,查询手机号在网状态,返回在网、在网不可用、不在网(销号/未启用/停机)等多种状态,查询手机号在网状态之后,可以根据具体的业务需求来进行不同的处理。 本文主要介…...

Python json 数据提取 jsonpath 详解

一、JsonPath JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java。也就是独立的可以配合多种语言进行匹配的目标值的一种类库,和…...

TCP和UDP的区别以及应用场景

区别 首先UDP协议非常简单,头部只有8个字节: 校验和为了提供可靠的UDP首部和数据而设计,防止收到在网络传输中受损的UDP包。 再对比下TCP协议: 传输层有两个传输协议分别是 TCP 和 UDP,在内核中是两个完全独立的软件…...

高铁轮毂表面缺陷的<视觉显著性>超像素图像检测方法

内容:提出一种基于视觉显著性注意机制的超像素自适应检测方法; 设计视觉显著性注意机制滤波器用于粗略定位出缺陷空间范围,结合超像素分块图像分割方法消除光照不均匀引起的噪声干扰,有效地完成缺陷区域的边界分割和实时特征提取&…...

纺织工业库房如何有效防潮?恒温恒湿真的有效吗?

纺织工业库房中的设备或存放的货物对温度或湿度的变化又非常敏感,温度或湿度的波动可能会产生一些问题。 针对库房环境温湿度的监测,若采用人工检测的方式,很难管控精准且工作效率低;其次,人工综合成本高。那么该如何实…...

SDK之动态链接库开发—基本概念

动态链接库(Dynamic Link Library,简称 DLL)是一种在运行时加载的库,可用于在多个应用程序之间共享代码和数据。与静态链接库相比,动态链接库的主要优劣势如下: 优势: 空间效率更高&#xff0…...

spring生命周期、IOC工作流程、AOP过程,循环依赖、BeanFactory和FactoryBean

1、生命周期 划分为5个阶段: 创建前准备阶段、创建实例阶段、 依赖注入阶段、 容器缓存阶段、销毁实例阶段。一、创建前准备阶段:这个阶段主要的作用是,Bean 在开始加载之前,需要从上下文和相关配置中解 析并查找 Bean 有关的扩展…...

小黑子—Java从入门到入土过程:第六章

Java零基础入门6.0Java系列第六章1. 面向对象综合练习1.1 文字版格斗游戏参数占位,格式化输出回顾关于printf和print和println的区别1.2 对象数组练习1.2.1 练习一1.2.2 练习二1.2.3 练习三1.2.4 练习四1.3 键盘录入回顾1.4 复杂对象数组练习1.4.1 复杂练习一1.4.2 …...

python实战应用讲解-【numpy数组篇】常用函数(二)(附python示例代码)

目录 Python numpy.flipud() Python numpy.insert() Python numpy.ravel() Python numpy.shapes() Python numpy.roll() Python numpy.rot90() Python numpy.append() Python numpy.flipud() Python numpy.flipud()函数将数组(每列中的项)按上下方向翻转,但保留形状。…...

windows10 java 创建合约

a. 安装Nodejs 主要是方便使用npm 命令 并配置环境变量 b.使用 npm 可以便捷地安装Solidity编译器solcjs npm install -g solc c.找个目录 创建一个solidity文件 如 // SPDX-License-Identifier: GPL-3.0pragma solidity >0.8.2 <0.9.0;/*** title Storage* dev Store…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...