聊聊诊断协议——UDS
文章目录
- 前言
- 一、车载诊断功能是什么?
- 二、诊断协议框架
- 总结
前言
随着技术不断提高,驾驶员对车辆的要求也在不断提高,因此车身控制器的数量也在与日俱增。控制器实现的功能:安全功能(防抱死系统等)、驾驶功能(助力转向等)、影音娱乐(车载娱乐系统,抬显系统),当然也包括今天索要分享的内容:诊断功能。
一、车载诊断功能是什么?
诊断功能的作用在上文已谈到:起初是为了快速界定车身发生故障部位,现完善和扩充很多功能(定义DID读取车辆运行状态信息、Software update刷写)。它的经典模型如下:
Tester与车辆直接通信(直接通信方式),Tester发送请求(Request)到车身控制器,控制器基于收到的诊断请求给予响应(Response)。因全球有诸多OEM以及供应商,为了避免社会资源浪费,需定义通用的诊断协议。诊断协议中定义诊断服务的类型、诊断请求和响应的格式、ECU响应的机制等等。
今天我想跟大家聊聊UDS这个诊断协议(ISO 14229),全名:Road vehicles — Unified diagnostic services (UDS)。目前为止有7个子类:
注:上图标红的内容,当某一天一种新的总线引用到车载网络中,UDS协议照样适用在新的总线,不会因为时间推移,需求变更而被淘汰。
---ISO 1429-1中主要定义诊断服务类型(如2013版中定义26个诊断服务,也预留给用户自定义的内容)、诊断服务请求的格式、ECU收到诊断请求响应机制和格式;
---ISO 14229-2定义诊断功能实现过程中通信参数;
---ISO 14229-3、ISO 14229-4、ISO 14229-5、ISO 14229-6、ISO 14229-7是UDS协议在不同车载总线(车载通信介质)的具体应用和相应限制。比如ISO 14229-5定义了UDSonIP的具体应用和相应限制:
车载以太网通信过程中,是TCP搭建链接。在做会话模式切换以及Reset重启,搭建好的TCP链接会断开,再进行通信,需要重新搭建TCP链接(其实质是连接IP地址和Port端口的Socket)。
如果将UDS协议与计算机经典七层模型做一个Map:
每个层级对应不同的总线协议。这里以CAN总线为例,做个简单分享:
1、在物理层以及数据链路层,对应的协议ISO 11898。定义CAN总线电气特性,物理Pin脚。硬件工程师需重点关注这方面的内容;
2、传输层对应的协议是ISO 15765-2,定义数据传输的规则。里面详细解释CAN单帧和多帧数据传输规则:
(1)多帧中首帧First Frame、流控制Flow Control、连续帧Consecutive Frame标识符,格式在协议中都做了详细定义(在后续文章中会分享这个协议内容);
(2)协议定义不同的寻址方式格式
3、会话层映射ISO 14229-2,定义了通信参数;
4、表示层中定义OEM Specific数据内容(DID);
5、应用层14229-1配合ISO 14229-5,共同规范UDS协议在CAN总线的应用。
UDS协议定义了26服务类型:
如上图,是以UDS 2013版为例,列举了26服务的类型。但在OEM诊断需求规范中,不会每个控制器都用到这26个服务,是根据新款车型控制器需求,基于UDS协议根据所需定义控制器的诊断需求规范。服务是1 byte的长度,除了上述的26服务,UDS也预留一些位给用户自定义:
UDS也定义了请求和响应的格式
诊断请求以Service ID来识别,肯定响应的规则是SID+40,否定响应的标识符是7F,后+SID表示否定那个服务,再+NRC告诉工程师为何给你否定响应。
截至目前,ISO 14229发布了2006/2013/2020三个不同版本。经常用的是06版和13版。现对这两个版本做一个简单区分:
1、在功能寻址情况下,如果出现7E/7F两个NRC,06版协议定义ECU必须给响应,13版为了降低总线负载,不用响应;
2、在13版UDS协议中对NRC优先级做了响应规定,而06版没有;
3、13版协议中ECU刷写做了描述,而06版没有。
2020版UDS协议多了Service 29:
通过安全认证,才能获取通信权限,更加好的保护数据安全。
总结
如上是对ISO 14229协议进行汇总总结,对比了不同版本的协议主要区别。
聊聊诊断协议——UDS相关推荐
- 基于CAN总线的汽车诊断协议UDS (网络层 ISO 15765)
上个月一个同事Z跳槽去了德赛西威,Z之前是完全不懂诊断的MCU工程师,去德赛后做诊断开发,让我感觉到,汽车嵌入式行业,CAN和诊断工程师还是比较稀缺的.之前我和Z共同负责一个项目,我负责CAN网络和诊 ...
- 基于CAN总线的汽车诊断协议UDS(上位机开发网络层及错误代码解析)
UDS协议栈的开发和测试对于刚刚接触UDS协议的开发人员来说,不但需要阅读大量的标准文档,短时间内很难理解透彻,标准协议栈代码的编写更加困难,刚入门又没有快捷简单的测试工具帮助加快理解和验证,使得UD ...
- 车载诊断协议UDS——DTC 判定机制以及DTC Status个人见解
UDS协议是描述车载诊断内容的通用协议,诊断的功能伴随着ECU整个生命运行周期一直在运行.当控制器(ECU)运行过程中出现需求规范中所定义的故障类型,控制器通过相应的判定机制来判断这个故障是否达到一定 ...
- 车载诊断协议UDS——诊断刷写(Software Update)
刷写,顾名思义就是两个动作:刷和写: 刷是擦除ECU芯片内存上原有的数据: 写是重新在ECU芯片内存上写入新的数据(Application or Calibration Data--): 在控制器量产 ...
- 基于CAN总线的汽车诊断协议UDS的开发重点
一.意义 为了指导开发工程师,正确的使用诊断模块,快速开发出满足车厂要求的诊断功能. 二.诊断模块介绍 此诊断模块根据ISO-14229-1文档,并结合部分车厂的文档进行开发,使用面向对象的思路进行设 ...
- UDS,ISO14229,ISO15765,ISO15031,J1939车辆诊断协议入门系列
(图片来源于网络) 目录 摘要 1. 基础概念 1.1 诊断的概念 1.2 诊断的目标 1.3 诊断的实现 1.4 诊断是分层的 2. 项目应用 3. 协议栈开发 摘要 回想当年刚进去汽车行业,做新能 ...
- 什么是UDS诊断协议
UDS (Unified Diagnostic Services) 是一种用于在汽车电子控制单元(ECU)之间进行诊断和通信的标准协议.它是一种底层协议,主要用于诊断和编程各种汽车系统,例如发动机.变 ...
- 【车载开发系列】UDS诊断协议总括篇
[车载开发系列]UDS诊断协议总括篇 UDS诊断协议总括篇 [车载开发系列]UDS诊断协议总括篇 一.UDS诊断协议简介 为什么要设计UDS诊断协议 二. UDS诊断协议详细 1)诊断通信管理功能单元 ...
- 汽车诊断协议,(K线/CAN总线、kwp2000、ISO14230、ISO1575...)
相信像我这样的小白第一次接触汽车诊断协议肯定有点懵逼,什么鬼kwp2000,那什么又是ISO-14230,ISO-15765,ISO-14229,UDS,UDSonCAN???它们到底是什么关系,还有 ...
最新文章
- 宁波海关连续查获走私白糖1700余吨
- win7 ghost 纯净版最新系统下载
- Flowable 数据库表结构 ACT_RU_IDENTITYLINK
- DJS_130小型计算机,我收藏的中国第一台计算机djs-130的操作系统纸带
- EASYUI 表单(FORM)用法
- 从零开始学前端:伪元素和盒子模型 --- 今天你学习了吗?(CSS:Day13)
- Apache 不记录指定文件类型的日志——LAMP环境搭建
- 围成一圈的排列组合问题_行测技巧:巧解环形排列组合
- 递归 人理解循环 神理解递归
- Linux iptables防火墙详解(一)——iptables基础知识
- 多核服务器装SQL2005,提示SQL server服务无法启动
- 3位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律
- 【考研计算机网络】 冲刺笔记
- cisco 链路聚合 (自用)
- 用CAD看图软件查找文字需要怎么做
- iOS微信分享提示“未验证应用”的解决,配置 Universal Link
- SpringBoot分布式项目实现Session共享
- 软件项目工作量评估法——功能点估算(FPA)(一)初识
- windows通知栏中显示 微信等应用软件 的通知
- 谈谈C++中的swap函数
热门文章
- Springboot 报错Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
- 变化。。。。。随风而变
- 凉爽的夏天=凉爽的心
- 学计算机的网名,小学生可爱网名 好听的学生网名
- for in与for of的区别
- Android 滑动侧边栏(Sliding Menu)第一种实现 - 1 手动滚动+自动滚动
- 中南民族大学计算机科学学院袁磊,刘晶 - 中南民族大学 - 计算机科学学院
- 苹果13适配充电宝推荐,苹果官方推荐的充电宝
- MATLAB实现多目标粒子群优化算法(MOPSO)
- 小希的迷宫 HDU - 1272---并查集+思维