欢迎大家来到IT世界,在知识的湖畔探索吧!
- 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.
欢迎大家来到IT世界,在知识的湖畔探索吧!
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、 功能要求越低,开发与测试人员投入时间降低,人力成本降低;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/96866.html