网站首页 > 技术文章 正文
- What is UDS?
Standing for Unified Diagnostic Services, UDS is a group of services that were put together and developed as a framework. Most cars follow the UDS standard to implement on-board diagnostics.
So What first is Diagnostics? It is a set of routines that run inside a car internally to check if ECUs are working properly etc. They also have services that make EOL testing easy, giving information needed by a service engineer at a service centre. It is a very very useful tool helpful to diagnose what's going on.
CAN总线与LIN总线是典型的车载网络总线。其两者的区别在于诊断时,CAN总线诊断遵循UDS协议,而LIN总线诊断在遵循UDS协议的基础上,还遵循LIN2.2协议。今天就向大家详细介绍一下关于LIN的诊断
首先,LDF是实现LIN诊断的充分条件
CAN总线诊断只需要有控制器(ECU)、诊断数据库(cdd&pdx等等)与诊断仪(Tester),通过请求ID与响应ID进行诊断。而LIN总线在此基础上,还必须通过LDF进行调度,以经典ID(0x3c与0x3D)进行LIN诊断。如下对比图所示。
其次,NAD的应用。
LIN网络拓扑是“一主多从”的结构,通过NAD区分从节点。从上图中可以看出,CAN一般以Request/Response ID区分从节点。而LIN则是以NAD进行区分,利用一个ID实现多个从节点诊断服务;此方式节约了ID的使用,但是浪费了一个Byte,造成数据有效载荷降低。
LIN总线有两种诊断方式:
1) 主节点将从节点的诊断信息进行存储,当诊断仪发出诊断信息时,主节点将存储的诊断信息输出给诊断仪,此时的主节点具有存储卡的功能。
2) Tester将诊断命令发给主节点,主节点将诊断信息转发给对应的从节点进行通信交互,此时主节点的作用类似于网关路由。两种方式对比如下图所示:
最后,LIN的3个诊断级别。
诊断级别1的控制器一般由简单的元件(如传感器等)组成,故障均由主节点进行读取、分析与保存。支持的诊断服务只有节点配置服务,传输层以单帧(SF)的形式就可以满足需求了。此处,看官有疑问:什么是节点配置服务?
节点配置服务是LIN诊断服务的一种,目的是为了区分同一个网络的不同节点。上文提及的NAD是区分现有的LIN网络拓扑的节点,当引入新节点时,需要利用节点配置服务避免NAD和PID(Production Identification)发生冲突,实现“即插即用”。
节点配置ID | 服务名称 |
0~0xAF | Reserved |
0xB0 | Assign NAD |
0xB1 | Assign frame identifier |
0xB2 | Read by Identifier |
0xB3 | Conditional Change NAD |
0xB4 | Data Dump |
0xB5 | Assign NAD via SNPD |
0xB6 | Save Configuration |
0xB7 | Assign frame identifier range |
0xB8~0xFF | Reserved |
节点配置服务类型如表1所示。当引入新的从节点时,一般利用主节点发送B0服务,给从节点分配新的NAD—06;主节点再发出3D,如果新从节点修改NAD成功,则会给出响应。如下图所示:
诊断级别2的控制器是诊断级别1的控制器上的扩展。支持传输层的全部功能,对于服务层不仅支持节点配置服务,还支持节点标识(产品ID和序列号)与读写参数服务(22与2E)。当节点同时支持诊断级别1的控制器与诊断级别2的控制器时,在LIN2.2中规定不必强制遵守诊断级别2。
如果将诊断级别2比作游戏的普通玩家,那么诊断级别3就是人民币玩家了。对于ISO14229-1中所有的诊断服务,诊断级别3是全部支持的,如在线刷写功能(诊断级别2不支持此功能)。诊断级别3中,每个从节点都需要有唯一的NAD,同时必须支持多帧传输。
诊断级别的总结如表2所示。
诊断级别 | 1 | 2 | 3 | UDS服务号[hex] |
传输协议层需求 | ||||
仅单帧传输 | + | |||
完整传输协议 (包括多帧) | + | + | ||
需要的配置服务 | ||||
Assign frame identifier range | + | + | + | 0xB7 |
Read by identifier | + | + | + | 0xB2 |
Assign NAD | 可选 | 可选 | + | 0xB0 |
Conditional change NAD | 可选 | 可选 | 可选 | 0xB3 |
Positive response on supported configuration services | + | + | + | Service+0x40 |
Read data by identifier | 0x22 | |||
Hardware and software version | + | + | 0x22 | |
Hardware part number (OEM specific) | + | + | 0x22 | |
Diagnostic version | + | + | 0x22 | |
Read by identifier (Parameters) | + | + | 0x22 | |
Write by identifier (Parameters) | 如果支持 | 如果支持 | 0x2E | |
Read by identifier (Sensor and actuator data) | + | 0x22 | ||
I/O control by identifier | + | 0x2F | ||
Read and clear DTC (Fault memory) | + | 0x19,0x14 | ||
Routine control | 如果支持 | 0x31 | ||
Other diagnostic services | 如果支持 | … | ||
Flash刷写服务 | ||||
Flash programming services | 可选 | / |
相信看到这里,各位应该明白了LIN诊断的一些基本概念,其实LIN诊断划分等级的目地就是为提高性价比:
1、 等级越低,芯片要求与控制器协议栈要求也就越低,开发成本降低;
2、 功能要求越低,开发与测试人员投入时间降低,人力成本降低;
- 上一篇: UDS基础知识介绍
- 下一篇: UDS之29服务:认证服务
猜你喜欢
- 2024-12-14 鉴源实验室:车载ECU嵌入式设备的诊断测试 - 会话和安全控制
- 2024-12-14 AUTOSAR学习笔记之服务层介绍
- 2024-12-14 大众汽车为所有ID.系列引入OTA无线更新
- 2024-12-14 纯电动汽车整车控制器软件设计
- 2024-12-14 AUTOSAR BSW介绍
- 2024-12-14 AUTOSAR概述
- 2024-12-14 什么是AUTOSAR(一)——AUTOSAR概述
- 2024-12-14 UDS网络层介绍
- 2024-12-14 CAN编程介绍
- 2024-12-14 想要快速进阶车载测试!这些基础问题你一定要知道
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)