UDS与Doip 知识框架整理

UDS(Unified Diagnostic Service)

1、概念

由ISO14229协议规定,使用诊断测试仪(客户端)控制车载电子单元(ECU,服务端),实现电子喷油喷射、自动变速和防抱死制动系统工作等等。

简单的意思就是外部设备与ECU的通信协议,可以与ECU进行交互,但是不是传输数据的链路,传输数据的协议由ISO15765协议规定。

下文中服务器指下位机或者ECU。

  • 诊断数据:
    测试人员修改可以位于电子控制单元存储器中的数据,诊断数据包括模拟输入和输出,数字输入和输出,中间值和各种状态信息。诊断数据示例包括车速、油门角度、后视镜位置、系统状态等。

三种类型为诊断数据定义的值:
1、电流值:电子控制单元正常操作当前使用的值;
2、存储值:在特定时刻(例如,当故障发生或
定期);本副本在电子控制单元的控制下制作;
3、静态值:例如VIN。

服务器不保留诊断数据,测试人员可以只保留请求的当前值。

  • 诊断程序:

它是一种嵌入在电子单元内部的一种程序,通过客户端的请求可以开启相应的服务。

  • 诊断服务:

客户端请求服务器进行信息交换,目的是需要从服务器获取诊断数据,或者对服务器进行某种操作,

  • 诊断会话:
    服务器中的状态,其中启用了一组特定的诊断服务和功能。意思就是某种特定的诊断操作需要进入特定的会话才能正确执行,否则就会出现该会话模式不支持该操作的提示。

比如常见的刷APP程序,需要在编程会话模式中才可以执行,要不然随便一刷就刷掉原始代码了,不安全。刷APP代码需要在Boot Software中进行。

Boot Software:在ECU上电或复位后立即执行,其主要目的是以检查有效的应用程序是否可用以执行,而不是将控件转移到重编程软件,意思就是如果重编程软件(也成为APP程序)不可以执行,则直接不进行跳转,只在Boot软件中。

在一些NXP的芯片中,自带固件,会扫描一些区域是否有可执行文件,会跳到相应的区域去执行。比如可以执行不带Boot软件的APP程序。

  • 诊断故障代码:DTC(diagnoise trouble Code)

由车载诊断系统识别的故障状态的数字通用标识符,就是车载故障的编码。

  • ECU:电子控制单元,一个功能模块的控制器,比如车门ECU、车窗ECU、调速ECU。

2、UDS框架图

  • 可以通过多种通讯手段进行诊断(数据交互),比如CAN、IP和Lin等,DoCAN即Diagnosis on CAN,不同的通讯协议对应着不同的定义说明,在不同14229协议中比如14229-5,定义了车载以太网,即diagnosis on internet

  • 应用层服务通常被称为诊断服务。应用层服务是用于基于客户机-服务器的系统,在车辆车载服务器执行测试、检查、监视或诊断等功能。客户端(通常称为外部测试设备)使用应用层
    请求在一个或多个服务器上执行诊断功能。服务器,通常是一个功能,它是ECU的一部分,使用应用层服务提供诊断服务的响应数据返回到客户端。

  • 客户端通常是一个外部测试人员,在同一车辆系统中可能有多个客户端。诊断应用层的服务访问点提供许多服务,这些服务都具有相同的一般结构。

  • 服务标识符:Service Identifier(SI)
    0x10-0x3E、0x83-0x88、0xBA-0xBE 请求服务
    0x50-0x7E、0xC3-0xC8、0xFA-0xFE 积极响应

  • 7F 否定响应服务标识符

  • 请求分为物理请求和功能请求,物理请求像单个设备请求诊断,功能请求类似广播请求。

  • 功能请求不回复部分否定响应。

  • 否定响应分为:SNS(不支持该服务)、SNSIS(该会话不支持该服务)、SFNS(不支持该子函数)、SFNSIAS(在该会话不支持该子函数功能)和ROOR(请求超出范围)
    注意:否定响应中 78表示等待。比如 0x7F 0x27 0x78

  • 通用服务器响应流程
    首先进行多个否定响应的判断
    0x21:服务器忙
    0x11:不支持该服务
    0x7F:在该会话模式不支持该服务
    0x33:在服务器未解锁的状态访问,
    0x31:不支持该服务的子功能
    然后正确解析服务,并执行操作

3、接下来介绍具体的服务

3.1、诊断以及通信管理功能

3.1.1 诊断会话模式:0x10

诊断会话在服务器中启用一组特定的诊断服务或功能。服务器始终仅存在一个活动的诊断会话。服务器应始终启动默认值开机时进行诊断会话。如果没有启动其他诊断会话,则默认诊断只要服务器通电,会话就应该一直在运行。

在不同的会话模式,可以进行特定的诊断功能,比如在扩展会话模式,可以禁止通讯,其他模式下就不可以。

  • 子功能服务标识符:01 默认会话
    服务器中的默认诊断会话,并且不支持任何诊断应用程序超时处理规定(例如,不需要TesterPresent服务来保持该会话处于活动状态)。
    服务器在发送DiagnosticSessionControl肯定响应消息后,应停止当前诊断会话,并在此后启动新请求的诊断会话。

  • 子功能服务标识符:02 编程会话

此diagnosticSession主要的功能就是对下位机进行编程,俗称刷APP程序

如果服务器在引导软件中运行programmingSession,则只能通过ECUReset(0x11)服务保留programmingSession。
如果服务器在APP中运行编程会话,则服务器会复位,然后在引导程序中运行编程会话。
可以执行擦除代码,刷写代码等服务(0x31 0x34 0x36)

  • 子功能服务标识符:03 扩展会话

该DiagnosticSession可用于启用支持功能调整所需的所有诊断服务。 它也可以用于启用诊断服务,这些服务不专门与功能调整相关。

  • 子功能服务标识复:04 安全系统诊断会话

可以执行所有与诊断相关的服务功能函数。

诊断仪发送10 03,然后服务器返回50 03 ,代表成功进入扩展模式,可以进行一些操作,比如安全访问,禁止DTC,禁止通信等。

CAN通讯一次只能发送8个字节,第一个字节代表有效字节数,00 32 01 F4 需要看具体的参数意义。

其否定响应码主要有 12 13 22
12:不支持该子函数,比如在默认会话模式 就不支持直接跳转到编程会话,否则返回否定响应
13:消息长度错误
22:当前状态不支持该会话模式,比如在无BootLoader的APP程序中,执行10 02,就会返回22。

如果执行该指令需要的时间较长,则下位机(服务器)就会先返回78,让诊断仪等待,然后再返回正确的响应数据。

3.1.2 0x11 ECU复位
3.1.3 0x27 安全访问服务
3.1.4 0x28 通信控制服务
3.1.5 0x3E
3.1.6 0x85 控制DTC设置服务

二、数据传输功能单元

三、存储数据传输单元

四、协程功能单元

五、上传下载功能单元

DoIP

UDS与DoIp整理相关推荐

  1. 如何使用DiVa测试UDS On DoIP

    随着汽车以太网的快速发展,很多ECU都使用了DoIP进行诊断和刷写,那如何使用DiVa测试 UDS On DoIP呢? 使用DiVa进行UDS On CAN测试大家都很熟悉了,UDS On DoIP测 ...

  2. UDS诊断 - DOIP和以太网协议关系

    DoIP技术:UDS诊断服务,通过TCP/IP及以太网来进行车辆诊断,协议定义在ISO 13400. ISO13400涉及到的主要分布在传输层.网络层.数据链路层.物理层四层中. 物理层: ISO13 ...

  3. DoIP, uds等

    DoIP(一)--基础概念_老孟_的博客-CSDN博客_doip DoIP技术:UDS诊断服务,通过TCP/IP及以太网来进行车辆诊断,协议定义在ISO 13400. ISO13400涉及到的主要分布 ...

  4. 风丘科技为您提供电动汽车热管理方案

    热管理技术作为汽车节能.提高经济性和保障安全性的重要措施,在汽车研发过程中具有重要作用.传统燃油汽车的热管理系统主要包括发动机.变速器散热系统和汽车空调,而电动汽车的热管理系统在燃油汽车热管理架构的基 ...

  5. Vue 跨域下载或读取文件

    image.png 下载文件 export async function download(file_url, file_name) {let res = await Axios({method: & ...

  6. IPETRONIK电动汽车热管理方案

    热管理技术作为汽车节能.提高经济性和保障安全性的重要措施,在汽车研发过程中具有重要作用.传统燃油汽车的热管理系统主要包括发动机.变速器散热系统和汽车空调,而电动汽车的热管理系统在燃油汽车热管理架构的基 ...

  7. 经纬恒润Adaptive AUTOSAR解决方案 INTEWORK-EAS-AP

    概述 随着汽车电子软件规模的不断扩大,Classic AUTOSAR(以下简称CP)的软件架构和方法论已被越来越多的OEM和供应商认可.与此同时,CP也面临着很大的挑战,无法满足汽车对高级自动驾驶,高 ...

  8. UDS诊断看这篇就够了,吐血整理

    传送门 ==>> AutoSAR入门和实战系列总目录 1 简介与概述 不同诊断通信协议的开发,调整,实施和维护会给车辆制造商,系统供应商和ECU供应商带来不必要的成本.为了解决此问题,将不 ...

  9. CANoe.DiVa操作指南——基于DoIP使用CANoe.DiVa用于UDS一致性测试

    文章目录 前言 一.数据输入端--诊断数据库 二.测试设置端--CANoe.DiVa设置 三.测试运行端--CANoe运行环境搭建 总结 前言 时间犹如指间滑落的细沙,不经意间已来到而立之年.自己慢慢 ...

  10. 在Wireshark中过滤UDS和OBD诊断ISO13400(DoIP)数据

    目录 0 WireShark简介 1如何在WireShark中添加诊断数据的"源地址"和"目标地址"列信息 2过滤诊断数据 3 解析以太网诊断DoIP数据 4 ...

最新文章

  1. 读《程序员的思维修炼》有感
  2. SQL必知必会——插入数据(十五)
  3. forward 和redirect的区别
  4. java 11:数组作为函数参数,数组做为函数返回值
  5. java判断优先级代码,Java如何查看线程的优先级?
  6. HTML5 Canvas save 保存恢复状态
  7. Upload LABS Pass-2
  8. python自带模块可以控制鼠标吗_python自带模块模拟鼠标和键盘操作
  9. 算法之路(5)--括号匹配问题(Valid Parentheses)[leetcode]
  10. 测试一段C代码的执行时间(windows系统和ubuntu系统)
  11. 推荐系统之基于用户行为数据的协同过滤(Collaborative Filtering)
  12. 41-MybatisPlus
  13. Laya之微信小游戏入门
  14. 企业微信与帆软BI内网服务器集成
  15. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
  16. java命令行输出hello_J2SE基础之命令行中编写第一个 Hello World
  17. iOS AppStore上架流程图文详解​
  18. pyecharts应用代码实例3-3:数据地图在线生成器【基于Streamlit的纯Python网站】
  19. 众至统一安全管理平台GuardIt AllInOne,一站式、轻量化、低成本、快接入
  20. java 分班_java培优分班考试试题

热门文章

  1. pp助手苹果版本_PP助手下线,最新ios免越狱旧版APP手机下载方法!
  2. linux常用下载工具
  3. linux和cisco有关系吗,如何在Linux环境下安装Cisco RTMT
  4. 病毒库的备份及***隐藏地址
  5. Quartz配置TerracottaJobStore-012
  6. SpringBoot2集成Quartz配置独立数据源
  7. 2015最新安卓例子自定义控件等分类源码免费下载
  8. 项目立项,项目经理需要做什么
  9. 倒车雷达c语言编程,汽车倒车雷达系统的设计与实现(论文c1)
  10. 跑腿 php,啦啦外卖跑腿小程序配置详情