科普系列:诊断路由类型简介及测试实践

2023-05-27 13:33:16

简介


当前车载以太网得到了大范围应用,但出于成本、可靠性等综合因素的考虑,CAN和LIN仍大范围应用于车载总线中,CAN和LIN之间的信息交互的需求仍然很大,承载着CAN-CAN,CAN-LIN之间信息路由的“网关”,可能不再是独立的物理实体(单独网关控制器),但对应逻辑实体依然发挥着十分重要的作用。


诊断路由的作用和路由方式的选择


在研发阶段的诊断测试过程中,我们一般将被测的诊断网段直连至诊断测试设备进行测试,但在成品汽车中,各电子部件之间通过线束直连在一起,而线束由胶皮或其他防护材料包裹,如果车辆已经生产完成或者已经售出,此时想对某个单独的样件进行诊断,我们拆下零件剪开线束再接到诊断仪上进行测试是不现实的。而如果我们给每部分定义不同的诊断ID,从一条预留出的用于诊断网段发送诊断请求,通过诊断ID判断是对哪个样件进行诊断请求并将该诊断请求通过网关路由到相应的ECU上,之后,样件的诊断响应再通过网关路由回我们预留的诊断线路上。这样,我们只需要预留一条总线,就可以对全车支持诊断功能的ECU进行诊断。而不同的零件的诊断请求和诊断响应通过网关路由的行为称之为诊断路由,如下图。

图 1诊断路由示例

对于需要路由的信息,我们一般有以下几种方式对其路由:

1)、直接报文路由

无论源网段的发送模式(事件、周期或者其他形式),网关在从源网段接收到报文后立即将报文路由到目标网段,如果没有收到源报文,则不需要路由。可以改变ID,但不可以改变报文中信号的值、Layout以及DLC,转发速率较快。

2)、周期报文路由

在网关路由功能激活状态下,需要周期性的将报文从源网段发送到目标网段的模式称之为周期报文路由。可以改变ID,但不可以改变报文中信号的值、Layout以及DLC。

3)、直接信号路由

在此模式下,可以更改报文中的 ID、DLC、信号的布局和长度。网关在从源网段接收到信号后立即路由到目标网段,如果没有收到源信号,则不需要向目标网段路由。

4)、周期信号路由

如果需要路由的信号来自多个报文,则可以使用周期信号路由模式。网关将从多个源报文导出的信号重新组合成一个新的目标报文,并以周期方式发送。

对于诊断报文,我们对其进行路由时不需要修改其数据场,同时大部分情况下我们不需要诊断报文在目标网段进行周期性发送(为维持当前会话周期性发送3E 80等情况除外),与此同时,诊断报文对顺序,时效性和报文完整度也有一定要求。因此这种情况下我们对诊断报文采用直接报文的形式进行录由是较为合理的。


诊断路由的测试环境


以使用CANoe和VN设备为例,进行诊断路由测试的环境如下:

图 2 诊断路由测试环境

CANoe:使用Vector公司的CANoe软件来模拟除了DUT以外的其他网络节点;仿真各节点的报文发送与接收;记录检测总线报文。

VN1640A:提供CAN总线和LIN总线的硬件接口,结合CANoe进行信号和报文的采集与输出

Power supply:对DUT和LIN总线提供供电电压和接地。

R:终端电阻

  1. 诊断路由常见的功能与测试

1)、网关诊断网段测试

一般情况下网关最多只有两个网段支持诊断(其中一条用于远程诊断),即我们使用网关本身的诊断请求ID通过不同的网段向网关进行诊断请求,应该有且只有两条网段发送时,DUT才会给予响应,使用其他网段对网关进行诊断请求网关应该不予响应。

网关是路由该网关下支持诊断功能的样件,对于网关自身的请求ID和诊断ID,一般不参与路由且只有规定的至多两路总线可以支持与网关本身进行诊断通讯。

2)、网关诊断路由的一致性测试

根据路由表仿真源网段报文,观察我们仿真的源网段的诊断报文是否按照路由表正确地路由(包括ID、DLC、数据场等)。

3)、网络数据映射功能

当我们通过诊断将一网段的数据映射功能打开时,此网段的数据能够全部映射到诊断网段,无论它是否在路由表中;当数据映射功能关闭时,此网段的数据停止映射。开启此功能可以很方便的通过OBD功能来读取其他网段上的应用报文、网络管理报文、诊断报文,方便工程师和售后维修人员对总线进行设置和维修。

4)、gatewaying-on-the-fly

在诊断消息需要多帧发送的时候,如果存在该功能,路由将在所有数据被接收前就开始转发(当达到指定阈值时),如果我们需要传输的数据量较大,使用该功能可以节省内存和时间。


CAN-LIN等带协议转换的路由


在传统网关的路由中经常涉及到不同传输协议间的路由,例如CAN FD-CAN,CAN-LIN等,我们以CAN-LIN的路由作为介绍。

由于CAN和LIN的传输协议不一致,网关在源网段以CAN的传输层协议接收数据后,在LIN的网段按照LIN传输层协议发送数据。CAN和LIN的报文虽然都是8字节,但由于传输层协议不同, CAN和LIN网段的每帧报文传输的数据内容都是不一致的。此外,由于CAN和LIN的传输速率不一样,CAN网段接收数据后存储在缓存中,在LIN网段按顺序发出。

因此,当我们在作为源网段的CAN上发送一条诊断请求消息时,CAN的诊断消息首先存储在网关的缓存中,等待LIN的调度表执行到0x3C的报文时再从缓存中发出到LIN总线上。

发送和接收过程如下图:

图 3 CAN-LIN诊断路由

其中,虚线箭头代表网关发出的LIN报文头。

小结

随着电子电器架构的升级换代,网关的“型态”和功能特性都呈现了新的变化。但如本文介绍的,其基础的、传统的功能特性会长时间地存在,对其验证测试是很重要的工作。

北汇信息紧跟“网关”技术发展态势,专注于汽车电子测试,通过与各OEM的合作,从源头掌握了各类型网关路由的策略和设计需求,积累了丰富的测试实践经验,覆盖了第一代和第二代及第三代架构下的网关。本文对传统网关中的诊断路由进行了简单的介绍,而后续文章我们将针对新一代“网关”,其新的功能特点、构成型态以及测试方案与大家继续探讨和分享。