概述以经典can来描述。

一.什么是UDS

UDS:unified Diagnostic Service, 统一诊断服务。

usd是一个在整个汽车系统上经常使用的设备维护协议。其主要遵循:ISO-15765、ISO-14229,其主要协议模式脱胎于OBD(On-board diagnostic)诊断协议。经常应用在整车的各种ECU上面。是一个在整车ECU应用层开发常用的协议之一

二.uds用途

目前市面上的新车都具有用于车外诊断的诊断接口,这使得我们可以用电脑或诊断工具(业内称为诊断仪Tester)连接到车辆的总线系统上。因此,UDS中定义的消息可以发送到支持UDS服务的控制器(业内称ECU)。这样我们就可以访问各个控制单元的故障存储器或用新的固件更新ECU的程序。除此之外,UDS还用于下线检测时把一些信息(如VIN码)写入到汽车的各个零部件中。这些功能也是UDS最为核心的功能。

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

三.uds重点描述

uds通讯模式:由客户端发起请求,服务端响应客户端请求。客户端可以使用功能id和多个服务端进行通讯,即一对多模式。客户端也可以使用物理ID单独跟某个服务端进行通讯,即一对一模式。

uds安全访问:安全访问主要是防止设备被非法访问读取重要信息和篡改设备数据,如读取汽车VIN、刷写flash程序等受限的诊断服务。

  1. 客户端client
          诊断设备(诊断仪Tester),发出诊断请求

  2. 服务端server
          整车上的电控单元(ECU),响应诊断服务请求,每一个具备uds诊断功能的ecu,都具有三个特殊的can id,分别为功能寻址和物理寻址:功能寻址(一对多通信,仅仅支持单帧通讯)整车上规定每个ECU功能寻址 can id 相同,一般设置为0x7DF。物理寻址(一对一通讯,支持网络层所有类型通讯),即请求can id,响应can id。,整车上每个ECU的物理寻址can id 都是唯一的。
    客户端(Tester)可以通过功能id向多个服务端(ECU)发出同一功能的诊断请求,即客户端(Tester)与服务端ECU)之间一对多的诊断通信。客户端(Tester)与服务端(ECU)通过物理ID实现一对一的诊断通信。
          客户端(Tester)向 服务端(ECU) 发出的请求报文可能采用任意一种通信方式,但 服务端(ECU) 发送给客户端(Tester)的响应报文必须采用物理通信,即服务端(ECU)以can id为响应id响应报文发送给客户端(tester)

  3. 安全访问
          分为锁定状态和解锁状态。ECU 上电后,自动进入锁定状态,此状态禁止执行受限的诊断服务。服务端(ECU)进入解锁状态需要通过执行安全访问服务(SID = 0x27,SID是UDS应用层功能)完成密码核查。
    通过密码核查后,ECU 的安全状态变为解锁状态,客户端(Tester)可以请求受限诊断服务(受限诊断服务:需要安全状态在解锁状态才允许执行的诊断服务)。

  4. uds协议栈
           uds协议栈主要分为网络层和应用层两大部分。
          网络层:ISO 14229 并不仅仅是为了CAN总线设计的,最大容量达到4095个字节 ,但是经典can数据链路层最大内容纳8字节。如果uds发送或接受数据超过CAN链路层容纳数据长度,那就需要对uds数据进行拆分或组合,而uds网络层就是为此而生,网络层分为单帧和多帧,单帧(SF)就是一帧can报文8字节内就可以把uds数据处理完毕。
    多帧就是一帧can报文8字节内处理不完,需分为首帧(FF),流控帧(FC),连续帧(CF)来处理。网络层还有时间参数,如N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs。后续网络层会详细讲解
           应用层:应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请求都将有由服务器端产生的与之相对的响应。
           唯一的例外在于:例如使用了功能id寻址方式,或者该请求/指示没有指定生成响应/确定的少数情况下。为了减轻不必要的消息对系统造成的压力,在个别场合即使服务器处理请求诊断服务失败了也不发送否定响应(抑制响应)。
          应用层协议是与会话层协议并行执行,这样,即使客户端等待上一个请求的响应时,也将会保持正确的会话层校时功能(例如:发送一个TesterPresent以使其他服务器的诊断会话持续下去;具体实施细则取决于所使用的数据链路层)。

基于UDS协议栈的网络层和应用层讲解,点击下方链接:
UDS(二)网络层

UDS(三)网络层时间参数

UDS(四)应用层

UDS(五)应用层10/3E

UDS(六)应用层11/27

UDS(七)应用层28/85

UDS(八)应用层22/2E

UDS(九)应用层14/19

UDS(十)应用层34/36/37

UDS(一)入门概述相关推荐

  1. 容器编排技术 -- Kubernetes入门概述

    容器编排技术 -- Kubernetes入门概述 简介 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powe ...

  2. 【JavaSE】入门概述(1~41)

    1.Java视频及配套资料下载指南 2.Java基础学习导读 Java语言的三个层面 基本语法:变量.运算符.流程控制.数组 面向对象:把数据及对数据的操作方法放在一起,作为一个相互依存的整体--对象 ...

  3. Java0基础学习笔记、心得-day01(Java入门需知、Java入门概述、Java语言相关知识、JDK与JRE关系,常用DOS命令、JDK的下载安装与HelloWorld案例实现与常见问题。)

    一.Java入门需知  * 1.你为什么要学习编程?--兴趣.职业.薪资?  * 2.具体Java开发岗位薪资可以参考-智联招聘 前程无忧 BOSS直聘等APP  * 3.如何进入IT行业:前端工程师 ...

  4. Linux 入门概述

    一.Linux入门概述 1.1 概述 Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Un ...

  5. IoT入门概述与物联网安全基础

    IoT入门概述与物联网安全基础 写在前面的话 IoT入门概述 IoT概述 物联网安全基础 物联网通信协议 物联网的基本架构 通信的上行和下行 物联网通信协议 传输协议与通信协议 IoT通信协议 物联网 ...

  6. SpringCloud学习一(回顾之前学的微服务知识点、springcloud入门概述、服务提供者和消费者)

    一.回顾之前,如何学习springcloud 回顾之前的知识? JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot Dubbo ...

  7. SpringClound——SpringClound入门概述——史上最烂

    SpringClound--微服务概述--史上最烂 SpringClound--SpringClound入门概述--史上最烂 SpringCloud--Eureka--史上最基本 SpringClou ...

  8. 【Redis7学习日记】—— 入门概述配置篇

    一.Redis入门概述 1.1 Redis 是什么? Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Valu ...

  9. 004-React入门概述

    一.概述 参考地址:https://reactjs.org/docs/try-react.html 1.1.本地快速体验 <!DOCTYPE html> <html><h ...

  10. 2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)

    文章目录 引言 相关教程直通车: day01_Flink概述.安装部署和入门案例 今日目标 Flink概述 什么是批处理和流处理 为什么需要流计算 Flink的发展史 Flink的官方介绍 Flink ...

最新文章

  1. 设计模式 之美 -- 工厂方法模式
  2. Qt利用avilib实现录屏功能_利用“别名”实现Sendmail的邮件群发和邮件备份功能...
  3. 使用android SDk帮助文档(英文) 下载中文SDK帮助文档(中文)
  4. 完课率最高 | 带学吴恩达《机器学习》课程和作业,带打Kaggle全球顶级大赛!...
  5. 塔拉 孤岛危机2_2月15日新作密集周Xbox游戏热度排行公布《Apex英雄》登顶《除暴战警3》战役模式名列前3...
  6. Python程序设计读者群成立通知
  7. Java程序实现密钥库的维护
  8. 构建springboot微服务聚合工程
  9. 系统优化的方法有哪些
  10. ubuntu 安装搜狗拼音输入法
  11. 目标追踪论文之狼吞虎咽(2):在线被动攻击学习
  12. 家里在计算机在线考试作弊,计算机在线考试系统能监考
  13. Ubuntu16.04 安装搭建RED5流媒体服务器
  14. Vue中使用swiper构建简易轮播图
  15. 程序员小说 Out Of Memory (三)
  16. 计算机页面新建,电脑PS如何新建多个画布并使其显示在一个界面
  17. Python使用Turtle画国旗系列,Python相关方法的梳理和总结
  18. MFC中App与Dlg区别
  19. 手机扫描身份证识别AND行驶证识别
  20. javascript特效模拟marquee

热门文章

  1. Talib.MAVP中的periods参数意义
  2. 前端学习2-JavaScript
  3. 启动计算机按住del不放,电脑黑屏bios界面都进不去怎么办
  4. vivo打开开发者选项
  5. 怎么在计算机服务关闭无线网络,家里电脑WIFI怎么关掉?(怎么在电脑上操作把WIFI关掉)...
  6. office word 使用快捷键ctrl c ctrl v提示文件未找到:MathPage.WLL
  7. JetBrain的哪款产品能够编写C++和C的代码啊?
  8. jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
  9. 样本不均衡 Weighted cross entropy and Focal loss
  10. 什么是java socket