车载lin通信协议栈_浅谈LIN诊断

CAN总线与LIN总线是典型的车载网络总线。其两者的区别在于诊断时,CAN总线诊断遵循UDS协议,而LIN总线诊断在遵循UDS协议的基础上,还遵循LIN2.2协议。今天就向大家详细介绍一下关于LIN的诊断。

首先,LDF是实现LIN诊断的充分条件。

CAN总线诊断只需要有控制器(ECU)、诊断数据库(cdd&pdx等等)与诊断仪(Tester),通过请求ID与响应ID进行诊断。而LIN总线在此基础上,还必须通过LDF进行调度,以经典ID(0x3c与0x3D)进行LIN诊断。如下对比图所示。

a23e7a673175068a5b4dae3d7e0e030a.png

VS

8e25f8ae4389d574fc466db02cbd818d.png

其次,NAD的应用。

LIN网络拓扑是“一主多从”的结构,通过NAD区分从节点。从上图中可以看出,CAN一般以Request/Response ID区分从节点。而LIN则是以NAD进行区分,利用一个ID实现多个从节点诊断服务;此方式节约了ID的使用,但是浪费了一个Byte,造成数据有效载荷降低。

接着,LIN诊断方式。

LIN总线有两种诊断方式:

1)  主节点将从节点的诊断信息进行存储,当诊断仪发出诊断信息时,主节点将存储的诊断信息输出给诊断仪,此时的主节点具有存储卡的功能。

2)  Tester将诊断命令发给主节点,主节点将诊断信息转发给对应的从节点进行通信交互,此时主节点的作用类似于网关路由。两种方式对比如下图所示:

2f0b92fb8d7314b96f659b37a107cb2a.png

最后,LIN的3个诊断级别。

诊断级别1的控制器一般由简单的元件(如传感器等)组成,故障均由主节点进行读取、分析与保存。支持的诊断服务只有节点配置服务,传输层以单帧(SF)的形式就可以满足需求了。此处,看官有疑问:什么是节点配置服务?

85a5ab9305926a95932248ae8c307dc6.png

节点配置服务是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

节点配置服务类型如表1所示。当引入新的从节点时,一般利用主节点发送B0服务,给从节点分配新的NAD—06;主节点再发出3D,如果新从节点修改NAD成功,则会给出响应。如下图所示:

714eda35108e92f03cf15e1991189e75.png

诊断级别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

可选

/

表2

相信看到这里,各位应该明白了LIN诊断的一些基本概念,其实LIN诊断划分等级的目地就是为提高性价比:

1、  等级越低,芯片要求与控制器协议栈要求也就越低,开发成本降低;

2、  功能要求越低,开发与测试人员投入时间降低,人力成本降低;

如后续有任何疑问,欢迎及时联系我们哟!

相关精彩推荐:

CCP协议栈移植操作方法

CANoe与Matlab/Simulink联合仿真

Step by Step学习CANoe三大工具链(上)

Step by Step学习CANoe三大工具链(下)

漫谈ECU刷写:关于vFlash的那些Freestyle

浅谈Visual Sequences在自动化仿真中的运用

CANoe+VT系统模拟4种常见传感器

b1113b26ba125d511b56721fe2714d2d.gif

6f0b56d3d0d83aab831cc847120e56b8.png

怿星一意,专注车载

引领汽车科技新高度

7594c9d15076ca0d6ca6fb9b8455b43d.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值