网关主要功能是通过报文路由转发、报文过滤与信号重组等工作实现信息的交换,包括不同通信协议间的交互,如Ethernet、FlexRay、CAN、CANFD、LIN。传统的网关按照实现方式可分为独立网关和集成网关,集成网关指集成路由功能的仪表或车身控制器,使用集成网关时,其网络拓扑相对简单;独立网关主要实现路由功能,网络拓扑相对复杂。近几年E/E架构逐渐向域控方向发展,新的域控制器,通常也具备网关路由的功能。
目前,典型的网络拓扑主要有以下三种:
图1传统网络架构及网关
图2基于域控制器的网络架构及网关
图3混合网络架构及网关
以上基于域节点的网络架构的CentralGateway和DomainGateway直接通过以太网点对点连接,域节点间的信息交互通过L2的Switch和L3的IPRouter实现。除了基本的路由功能,网关通常还具有以下属性和功能:
由于网关功能多样和复杂,且部分功能具有功能安全要求,需要通过测试来保证最终软件的成熟度。针对网关的不同功能需要做相应的测试,本文重点探讨基本的路由功能测试。
网关路由类型介绍
网关路由的类型可以分为3种:信号路由、报文路由、TP路由(诊断路由)。以下针对这三种路由类型分别做介绍。
AUTOSAR架构下定义了信号和信号组的Updatebit,对于有Updatebit的信号和信号组,只有在其Updatebit置位的情况下网关才对其进行转发,并在目标网段更新Updatebit,当源网段信号丢失时网关转发的信号的Updatebit持续不置位,指示接受该信号的控制器信号超时。而针对非AUTOSAR架构,部分OEM定义了Timeoutflag,指示源网段信号超时。
图4信号路由
图5报文路由
图6TP路由
下图以CAN-LIN的TP路由为例介绍带协议转换的TP路由,由于CAN和LIN的传输协议不一致,网关在源网段以CAN的传输层协议接收数据后,在LIN的网段按照LIN传输层协议发送数据。CAN和LIN的报文虽然都是8字节,但由于传输层协议不同,CAN和LIN网段的每帧报文传输的数据内容都是不一致的。此外,由于CAN和LIN的传输速率不一样,CAN网段接收数据后存储在缓存中,在LIN网段按顺序发出。
图7CAN-LIN2.1TP路由
由于带协议转换的TP路由需要在源网段接收到数据后先存储到缓存中,因此需要占用较多的内存资源,但同时这也是并行刷写的实现基础,网关在高带宽的网段接收到诊断数据后先行存储,然后按照低带宽网段的传输协议,并行分发到各个低带宽网段,在此过程中最大效率的利用了高带宽网段的带宽,提高整车的刷写效率。
网关路由测试实践
对于具备多种路由形式的网关,为了验证是否满足设计需求,应该根据每种路由类型设计测试规范和测试场景,本节将探讨路由测试的痛点与积累的经验。
信号路由测试
为了实现信号路由自动化测试,北汇通过定制开发,实现了从ARXML文件中提取信号路由信息并将信号路由和信号组路由加以区分,定义了标准的路由表模板,也可基于OEM给定的通信矩阵或路由模板进行定制适配。下图为支持Updatebit的信号路由的自动化测试报告。
图8信号路由自动化测试报告
报文路由测试
报文路由测试与信号路由测试一样,都面临路由条目众多的问题,此外针对于事件型报文路由和周期型报文路由,由于路由机制不同,对应的测试策略需要分别制定。
图9路由自动化测试工程
TP路由测试
针对报文透传,除了测试路由一致性外,还需要考虑在各种应用场景(EOL、刷写、标定等)下,网关需保证不丢帧不乱序。
图10带有协议转换的TP路由测试
总结
随着以太网通信技术的应用、OTA的推广以及电子电器架构的更新换代,网关的“形态”和功能都呈现了新的变化。