APP下载

智能网联趋势下车辆网关路由缓存研究与应用

2021-04-30张晓光陶英轩黄金山

汽车文摘 2021年5期
关键词:报文网关以太网

张晓光 陶英轩 黄金山

(一汽奔腾轿车有限公司,长春130012)

主题词:智能网联汽车 CAN 网关 缓存区 以太网

略缩语

CAN Controller Area Network OSI Open Systems Interconnection SOC System-On-a-Chip MCU Micro-Controller Unit RAM Random Access Memory

ID Identity Document DLC Data Length Code

1 前言

伴随着车辆智能网联化发展,CAN 总线和以太网相结合的融合网络将成为车辆主流电气架构[1],其中网关传递的路由信息也爆发式增长,而出于成本角度考虑,低成本网关将放弃SOC 架构[2],采用MCU 集成CAN 控制器和外延Ethernet-Switch 芯片电路的技术方案,以实现融合网络通信。由于MCU 内部CAN控制器的硬件接收缓存区和硬件发送缓存区很小,当CAN网络上短时间内出现大量报文时,接收硬缓存区就会存满,如不能及时处理,接收报文将丢失;同样当目标总线负载率过高,硬件发送缓存区就将形成积压报文,使缓存区溢出,这样就会导致漏发报文[3]。为此,本文基于融合网络车载网关,提出设计软件路由缓存区方法,保证路由信息被及时接收与发送[4],并在奔腾品牌某车型上进行了实际应用。

2 CAN总线通信原理

CAN 总线,是一种基于ISO 国际标准化的串行通信总线,传输速率可达500 kbit/s[5],在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的考虑,应用于汽车内各种电子控制系统中,实现准确的数据采集及执行器功能控制。1986年德国博世公司开发出面向汽车的CAN通信协议。CAN总线通信协议逐渐标准化,逐渐形成并完善了CAN 协议ISO 11898-1:201,使得不同开发商的ECU 可实现无障碍通信。CAN 总线的高性能和高可靠性已被汽车行业所认同,并成为汽车电气系统的主要通信手段,对汽车电气功能的快速发展提供了信息通道保障。

3 车载以太网通信原理

车载以太网协议是一组多个不同层次上的协议簇,是一个5层的协议系统,从上到下分别是应用层、传输层、网络层、数据链路层、物理层。5 层结构对应于OSI参考模型[6],并且提供了各种协议框架下形成的协议簇及高层应用程序,区别于传统以太网,车载以太网的协议架构按照图1进行分层。

图1 车载以太网协议分层[1]

物理层(或称Physical Layer)是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。

数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层数据可靠地传输到相邻节点的目标机网络层。

网络层负责将多个网络连接到一起,形成互联网络,进行互联网络间寻址、路由、数据报封装、分片和重组以及某些类型的差错处理和诊断功能。

传输层代表着高层与低层之间的过渡,其下是主要基于硬件、面向数据传递的低层,其上是更为抽象、面向软件应用和功能的高层。

应用层定义了应用协议,实现用户应用和其它高层功能。应用层处于协议栈的最顶端,它使用下方各层提供的服务,而不向任何层提供服务。

4 融合网络拓扑结构

为满足车辆智能网联大数据量的传输特性,网关与TBOX以及IC等将采用以太网方式连接,与车内其它ECU 控制器将采用CAN 总线方式连接,进而搭建融合网络拓扑结构。本文以奔腾品牌某车型进行说明,该车型包含7路CAN,2路以太网,如图2所示。

图2 奔腾品牌某车型融合网络拓扑

5 网关路由方式

5.1 CAN到CAN报文路由

对于报文路由,网关将整个报文打包进行转发,对报文的ID、周期和内容不进行改变或重组,网关收到报文后立即进行转发,收不到报文就停止转发,如图3所示,其中T0~T5 代表6个不同的报文发送周期。

图3 报文路由示意

5.2 CAN到CAN信号路由

对于信号路由,网关将根据路由表从源总线中收取相关报文,从报文中提取需要的信号,然后对其进行打包重组,按照路由表定义的报文ID、周期进行发送(该报文定义为网关的自组报文),无论是否收到源总线的报文,网关都将自组报文发送至目标总线,如图4所示。

图4 信号路由示意

5.3 CAN到以太网信号路由

网关将10 ms 周期内接收到的所有需要上传的CAN总线报文,按照报文重组格式重新打包成以太网帧,传输给互联-Ethernet网络上的T-BOX单元。

5.4 以太网到CAN信号路由

互联-Ethernet 上的T-BOX 单元将接收到的远程控制信息按照一定格式,打包成以太网帧,通过以太网传输给网关,网关再进行CAN 报文拆解,分发给各网段。

6 网关路由任务

网关将对CAN到CAN、CAN到以太网、以太网到CAN、以太网到以太网之间的信息进行报文与信号转发功能。其中奔腾某品牌车型路由任务统计如下:网关CAN接收报文最大负载出现在EV-CAN,需要接收10 ms 周期13 条报文、100 ms 周期18 条报文、250 ms周期7 条报文、1000 ms 周期49 条报文。CAN 到互联-Ethernet发送报文10ms周期20条报文、20 ms周期12条报文、100 ms周期38条报文、250 ms周期14条报文、1000 ms 周期63 条报文;互联-Ethernet 到CAN 接收报文100 ms 周期8 条报文;互联-Ethernet 到信息-Ethernet,为二层直接转发。详见表1。

表1 奔腾某车型路由任务统计

7 网关工作主流程设计

基于网关路由任务,对网关提出的实时性(报文路由1 ms 转出)、报文完整性要求,设计出网关主流程,如图5所示。

图5 网关主流程

当某子网节点发送报文后,CAN收发器将进行滤波,将数据存储到CAN 控制器接收硬缓存区中,并产生接收中断[7]。接收中断将打破网关主流程,并开启中断流程-报文存储发送进程。报文存储发送进程按照路由表进行筛选,将筛选报文直接放到目标发送硬缓存区中,如发送缓存区已满,则将数据存储到软件缓存区中。对于存储在软件缓存区中的数据,网关主流程按照每1 ms周期进行数据处理,将处理好的数据存储到发送硬缓存区中,等待CAN 发送器发送[8]。以太网发送流程同CAN流程。

8 网关缓存区设计

按照主流程设计思路,设计报文缓存区、网管报文缓存区、诊断报文缓存区、CAN到以太网缓存区、以太网到CAN 缓存区[9]。其中以太网到以太网,因为是数据链路层直接转发,所以并不涉及软件缓存区[10]。为了保证网关的实时性和可靠性,以及节省RAM 空间,需要对缓存区大小上进行考量。

8.1 缓存区最小单元设计

针对CAN总线报文格式,计算出存入一条报文需要的最大内存空间为[11]:

式中σ为单条报文存储空间,单位为Byte。

因为嵌入式处理器的存储器是以1 Byte 即8 bit为单位设计的,所以式(1)中的bit 数要向上取整成8的整数倍,11取整成16,4取整成8,得到结果为:

由此可知,最小的缓存区大小为11 Byte,即存下一条最大报文的大小。

8.2 缓存区大小设计

8.2.1 对于应用报文缓存区的计算

根据本文章节6,网关的最大CAN 路由接收负载出现在EV 子网,分别为10 ms 周期13 条报文、100 ms周期18 条报文、250 ms 周期7 条报文、1000 ms 周期49条报文。如未设置报文发送段间隔,那么极限情况下,报文将出现排队无间隙情况。也就是当控制器上电初始化完成后,第一时间将有:

式中Num为报文总数;Num1为10 ms周期报文数量;Num2为20 ms周期报文数量;Num3为100 ms周期报文数量;Num4 为250 ms 周期报文数量;Num5 为1000ms周期报文数量。

按照式(2)计算,将有86条报文等待传输,当总线波特率为500 kbit/s时,每帧报文传输时间为0.25 ms,计算得出这些报文将连续传输21.5 ms,同时10 ms周期报文将发送2轮,即总计将有110条报文排队发送,预计发送时间27.5 ms。因此在此28 ms内,网关将出现最大负载量即接收110条报文。考虑网关主程序为1 ms周期对缓存内数据进行处理,假设目标总线负载率为40%,那么网关将每1 ms可处理报文数量为2条,28 ms 内将处理56 条报文,也就是有110-56=54 条报文将被缓存起来。

式中ε1为所需缓存大小。

按照式(3)计算,计算出EV-CAN 接收缓存区的大小为:54×11=594 Byte。

8.2.2 对于CAN到以太网缓存区的计算

网关需要发送10 ms 周期20 条报文、20 ms 周期12条报文、100 ms周期38条报文、250 ms周期14条报文、1000 ms周期63条报文。当控制器上电初始化完成后,按照式(2)计算,第一时间将有20+12+38+14+63=147 条报文等待传输。按照式(3)计算CAN 到以太网需要接收缓存区的大小为:147×11=1617 Byte。

8.2.3 对于以太网到CAN缓存区的计算

网关需要发送10 ms 周期8 条报文。按照式(3)计算,以太网到CAN需要接收缓存区的大小为:8×11=88 Byte。

8.2.4 对于诊断报文缓存区的计算

按照总线波特率为500 kbit/s 时,每帧报文传输时间为0.25 ms[12]。当目标控制器反馈流控STmin 为0 ms时[13],而又不开启禁用通信诊断指令的前提下[14],需最大传输数据量为1 kByte(奔腾某车型防夹数据的写入)。那么网关将在250 ms 内将收取诊断仪传输的1 kByte 数据,考虑网关主程序为1 ms 周期对缓存内数据进行处理,假设目标总线负载率为40%,那么网关将每1 ms 可处理报文数量为2 条,而能够在250 ms内转发0.5 kByte数据,即还有0.5 kByte数据需要缓存。因此按照式(3)计算出诊断报文接收缓存区的大小为500 Byte.

8.2.5 对于网络管理报文缓存区的计算

按照AUTOSAR 简单网络管理规范[15],根据奔腾某车型网络架构,最大节点出现在舒适CAN,子节点数量为8 个,即100 ms 内将有8 条报文录入网关。按照式(3)计算出舒适-CAN 接收缓存区的大小为:8×11=88 Byte。

8.2.6 小结

按照以上计算,将在网关MCU内设计7路CAN接收缓存区,分别为6 个594 Byte 大小的应用报文软件缓存区,1 个500 Byte 大小的诊断报文软件缓存区,7个88 Byte 大小的网络报文软件缓存区;在网关MCU内设计1个CAN 到以太网缓存区,大小为1617 Byte;在网关MCU内设计1个以太网到CAN缓存区,大小为88 Byte。

9 实际验证测试

奔腾某车型依据上述路由软件缓存设计方法,进行了网关的实际开发。通过各路CAN 数据实际的读取分析,网关并无丢帧现象。以舒适CAN(CAN2)中BCM1_2 转录到信息CAN(CAN3)为例,转发时效性控制在1.6 ms以内,时间参数远远小于规范中定义的2 ms要求,如图6所示。

10 结束语

本文以奔腾某车型的实际应用为例,阐述了智能网联车辆的网络架构发展以及关键零件-网关的路由软件缓存区设立的必要性与方法,可以得出以下结论和启示。

图6 BCM1_2转录报文时序

(1)随着智能网联快速发展,网络数据吞吐量将越来越高,使得传统的CAN总线已逐渐无法满足智能车辆需求,将出现CAN总线与车载以太网并存的融合网络。

(2)网关将对CAN 到CAN、CAN 到以太网、以太网到CAN、以太网到以太网之间的信息进行转发,且路由吞吐量将大幅度增加。

(3)在路由吞吐量大幅度增加情况下,网关丢帧、转发不及时性等问题将凸显,单独设计网关路由软件缓存区将成为解决上述问题的方法,进而使汽车智能网联化能够在低成本车辆上得到应用,达到降低汽车零部件的成本,提高了社会效益目的。

猜你喜欢

报文网关以太网
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
避免饥饿的CAN 总线高优先级反转算法
大规模低轨卫星网络移动性管理方案
一种主从冗余网关的故障模式分析与处理
基于报文类型的限速值动态调整
网络智能平台和云服务为以太网注入新动力
三大因素驱动创新提速以太网快步迈入“灵活”时代