1.前言
当前,车内通信技术越来越复杂,协议类型更加多样,不同总线及协议间的转换和路由等也更为复杂,网关作为通信枢纽的载体,其测试的复杂程度和重要性也越来越高。本文将分享网关路由测试开发过程中的经验和遇到的问题。
(相关资料图)
2.网关功能简介
网关主要功能是通过报文路由转发、报文过滤与信号重组等工作实现信息的交换,包括不同通信协议间的交互,如Ethernet、FlexRay、CAN、CAN FD、LIN。传统的网关按照实现方式可分为独立网关和集成网关, 集成网关指集成路由功能的仪表或车身控制器,使用集成网关时,其网络拓扑相对简单;独立网关主要实现路由功能,网络拓扑相对复杂。近几年E/E架构逐渐向域控方向发展,新的域控制器,通常也具备网关路由的功能。
目前,典型的网络拓扑主要有以下三种:
1)传统的EE架构,Central Gateway与所有ECU直连,独立完成整车所有的信息交互任务。
图1 传统网络架构及网关
2)基于Domain的EE架构,整车拓扑中除了Central Gateway还存在Domain Gateway,Domain Gateway参与下属节点间的信息交互,也承载了网关的功能。
图2 基于域控制器的网络架构及网关
3)混合的E/E架构,在从传统网络架构到基于域控制器的网络架构的过渡阶段存在的网络架构,兼具两种网络架构的特点。
图3 混合网络架构及网关
以上基于域节点的网络架构的Central Gateway和Domain Gateway直接通过以太网点对点连接,域节点间的信息交互通过L2的Switch和L3的IP Router实现。
除了基本的路由功能,网关通常还具有以下属性和功能:
1) 各功能域物理隔离:网关区分各个功能域,将不同的功能域区分开
2) 外部沟通媒介与网络安全防护:网关是整车与外部信息交互的媒介,因此网关需要过滤外部信息,避免整车内部网络被攻击
3) 网络休眠唤醒管理:网关依据整车休眠唤醒条件,协调各个网段间的休眠唤醒
4) OTA Master功能:实现整车远程刷写功能,获取ECU升级数据包并存储在本地,当满足刷写条件时,网关可作为刷写机,以既定的刷写流程将刷写数据传输给待升级ECU
5) 整车状态管理和能量管理:管理整车模式和用户使用模式
由于网关功能多样和复杂,且部分功能具有功能安全要求,需要通过测试来保证最终软件的成熟度。针对网关的不同功能需要做相应的测试,本文重点探讨基本的路由功能测试。
3.网关路由类型介绍
网关路由的类型可以分为3种:信号路由、报文路由、TP路由(诊断路由)。以下针对这三种路由类型分别做介绍。
1) 信号路由:从源网段接收到的一条或多条报文中的部分信号(或信号组)打包在新报文中,然后在目标网段上按照定义的方式发送出来。 信号从源网段到目标网段的路由过程中,信号所在报文的发送方式、信号在报文中的位置、信号所在报文的ID和信号所在报文的周期都可以改变,另外源网段和目标网段的通信协议也可以不一致。
2) AUTOSAR架构下定义了信号和信号组的Update bit,对于有Update bit的信号和信号组,只有在其Update bit置位的情况下网关才对其进行转发,并在目标网段更新Update bit,当源网段信号丢失时网关转发的信号的Update bit持续不置位,指示接受该信号的控制器信号超时。而针对非AUTOSAR架构 ,部分OEM定义了Timeout flag,指示源网段信号超时。
图4 信号路由
2)报文路由:从源网段接收到报文后转发到目标网段。根据目标网段的发送形式,报文路由又可以分为事件型报文路由和周期型报文路由。事件型报文路由在源网段收到报文后立即触发目标网段的发送;周期型报文路由在源网段和目标网段都有固定的周期,源网段接收到报文的周期和目标网段发送的报文周期没有必然关系。
图5 报文路由
3)TP路由:带有传输协议报文的路由称为TP路由。TP路由又可分为两种:不带协议转换的TP路由(一般称为报文透传)和带有协议转换的TP路由。前者在部分OEM的定义中和事件型报文路由未作区分,但实际两种路由的应用场景是不同的,事件型报文路由针对应用报文,要求转发延时低且最新的信号值最具重要性(latest value is the most important);报文透传对速率的要求不高,但要求先入先出(first in first out)和不丢帧。带有协议转换的TP路由主要特点是:可以实现协议转换(源网段和目标网段的协议可以不一致),且网关作为传输连接的一部分,在源网段的接收和转发均须符合传输层协议,不符合传输协议的不转发。
图6 TP路由
下图以CAN-LIN的TP路由为例介绍带协议转换的TP路由,由于CAN和LIN的传输协议不一致,网关在源网段以CAN的传输层协议接收数据后,在LIN的网段按照LIN传输层协议发送数据。CAN和LIN的报文虽然都是8字节,但由于传输层协议不同, CAN和LIN网段的每帧报文传输的数据内容都是不一致的。此外,由于CAN和LIN的传输速率不一样,CAN网段接收数据后存储在缓存中,在LIN网段按顺序发出。
图7 CAN-LIN2.1 TP路由
由于带协议转换的TP路由需要在源网段接收到数据后先存储到缓存中,因此需要占用较多的内存资源,但同时这也是并行刷写的实现基础,网关在高带宽的网段接收到诊断数据后先行存储,然后按照低带宽网段的传输协议,并行分发到各个低带宽网段,在此过程中最大效率的利用了高带宽网段的带宽,提高整车的刷写效率。
4.网关路由测试实践
对于具备多种路由形式的网关,为了验证是否满足设计需求,应该根据每种路由类型设计测试规范和测试场景,本节将探讨路由测试的痛点与积累的经验。
1. 信号路由测试
信号路由测试的难点在于信号路由的数量众多并且路由信息的提取困难。根据北汇过往项目经验来看,基于非域控架构(所有控制器都和中央网关直连)的信号路由数量大约有800+;基于域控的网络架构则更加复杂,每个域控制器都具有网关行为。在信号路由数量如此庞大的情况下手动验证已几乎不可能。此外,基于AUTOSAR架构的信号路由和信号组路由,通过人工方式更难获取相关的信息。
为了实现信号路由自动化测试,北汇通过定制开发,实现了从ARXML文件中提取信号路由信息并将信号路由和信号组路由加以区分,定义了标准的路由表模板,也可基于OEM给定的通信矩阵或路由模板进行定制适配。下图为支持Update bit的信号路由的自动化测试报告。
图8 信号路由自动化测试报告
2. 报文路由测试
报文路由测试与信号路由测试一样,都面临路由条目众多的问题,此外针对于事件型报文路由和周期型报文路由,由于路由机制不同,对应的测试策略需要分别制定。
图9 路由自动化测试工程
3. TP路由测试
针对报文透传,除了测试路由一致性外,还需要考虑在各种应用场景(EOL、刷写、标定等)下,网关需保证不丢帧不乱序。
针对带有协议转换的TP路由测试,测试难点在于针对各个通信协议其传输层机制不同,测试中需要按照各网段对应的传输层协议发送和接收数据。在支持并行刷写的TP路由测试中,需要考虑多个传输连接同时发送和接收数据。这种路由方式需同步关注缓存数量、缓存大小以及Upper_Link和Lower_Link网段传输层机制和参数。
图10 带有协议转换的TP路由测试
5.总结
随着以太网通信技术的应用、OTA的推广以及电子电器架构的更新换代,网关的“形态”和功能都呈现了新的变化。
北汇信息紧跟网关技术发展态势,专注于汽车电子测试,通过与各OEM的合作,从源头掌握了各类型网关路由的策略和设计需求,积累了丰富的测试实践经验,覆盖了第一代和第二代架构下的网关。后续文章我们将针对新一代“网关”,其新的功能特点、构成形态以及测试方案与大家继续探讨和分享。
参考文献
[1] AUTOSAR_SRS_Gateway
责任编辑:Rex_08