当前位置: 首页 > 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…...

BG3ModManager:博德之门3模组管理终极解决方案

BG3ModManager&#xff1a;博德之门3模组管理终极解决方案 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 你是否曾经为《博德之门3》的模组管理而烦…...

避开这5个坑,你的癫痫脑电AI模型准确率能翻倍:从数据标注到特征工程实战

避开这5个坑&#xff0c;你的癫痫脑电AI模型准确率能翻倍&#xff1a;从数据标注到特征工程实战 在医疗AI领域&#xff0c;癫痫脑电信号分析一直是个充满挑战的课题。许多开发者满怀信心地构建模型&#xff0c;却在验证阶段遭遇性能瓶颈——准确率停滞不前&#xff0c;误报率居…...

5分钟快速掌握Windows右键菜单终极管理神器ContextMenuManager

5分钟快速掌握Windows右键菜单终极管理神器ContextMenuManager 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是不是经常在右键文件时&#xff0c;面对几十个…...

高考解析几何“秒杀”技巧:用极点极线快速搞定椭圆定点定值难题

高考解析几何“秒杀”技巧&#xff1a;用极点极线快速搞定椭圆定点定值难题 解析几何作为高考数学的压轴题型&#xff0c;常常让考生望而生畏。面对复杂的计算和抽象的条件&#xff0c;如何在有限时间内快速找到突破口&#xff1f;极点极线理论作为高等几何中的重要工具&#x…...

深度解析Scarab:空洞骑士模组管理器的专业实现与架构设计

深度解析Scarab&#xff1a;空洞骑士模组管理器的专业实现与架构设计 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 空洞骑士模组管理器Scarab为玩家提供了高效、专业的模组…...

Windows Cleaner终极指南:3分钟彻底解决C盘爆红问题!

Windows Cleaner终极指南&#xff1a;3分钟彻底解决C盘爆红问题&#xff01; 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 还在为Windows系统越用越慢而烦恼吗&…...

基于双线性插值的AMG8833热成像分辨率提升方案与嵌入式实现

1. 项目概述&#xff1a;从8x8到15x15&#xff0c;一次软件驱动的热成像分辨率革命如果你玩过基于AMG8833这类低成本红外热成像传感器的项目&#xff0c;大概率会对它那8x8的“马赛克”图像印象深刻——64个像素点&#xff0c;勉强能看出个温度轮廓&#xff0c;但细节&#xff…...

跨平台鼠标控制库ez-cursor-free:原理、实现与自动化实战

1. 项目概述与核心价值如果你是一名开发者&#xff0c;尤其是经常需要处理跨平台UI自动化、游戏脚本或者桌面应用交互的开发者&#xff0c;那么你一定对“鼠标控制”这个基础但又充满细节的环节感到过头疼。不同的操作系统&#xff08;Windows, macOS, Linux&#xff09;提供了…...

ESP32-S2 Reverse TFT Feather开发板深度解析:从核心硬件到物联网项目实战

1. 项目概述&#xff1a;为什么选择ESP32-S2 Reverse TFT Feather&#xff1f;如果你正在寻找一款能让你快速搭建物联网设备原型&#xff0c;尤其是那些需要一块漂亮屏幕来交互或显示信息的项目&#xff0c;那么ESP32-S2 Reverse TFT Feather绝对是一个值得你花时间研究的开发板…...

从零构建Next.js全栈应用:实战解析服务端渲染与API路由

1. 项目概述与核心价值最近在社区里看到不少朋友在讨论一个叫“panaverse/learn-nextjs”的项目&#xff0c;作为一个在Web开发领域摸爬滚打了十多年的老码农&#xff0c;我立刻来了兴趣。这个项目名直译过来就是“Panaverse的Next.js学习项目”&#xff0c;听起来像是一个学习…...