EB(Elektrobit)- 基于虚拟机(VM)的车载以太网连接

1
 汽车以太网的进化

图1. 汽车以太网的不同阶段

1)阶段1

汽车以太网专注于物理层,100Mbps,单个ECU

2)阶段2

a、时间敏感网络
b、专业验证
c、智能以太网交换机

3)阶段3

a、不同的速度等级,甚至更多的TSN
b、网络信息安全,功能安全(ASIL等级)
c、高性能计算机(HPC) - 通过虚拟机(VM)虚拟化“单个ECU”
2
 虚拟机(VM)的网络需求
2.1 汽车计算控制单元的进化
图2. 从单个ECU到HPC
1)单个ECU 
一个操作系统(单核或多核),并且可以独占访问硬件(CPU,内存,I / O,以太网控制器);
2)HPC - 高性能计算机
a、HPC使用虚拟机管理程序可安全地并行运行多个操作系统;
b、虚拟机管理程序具有对硬件的独占访问权,并提供虚拟机(VM)作为硬件的隔离虚拟副本;
c、虚拟机允许运行未经修改的操作系统,就像直接在真实硬件上执行一样。
2.2 HPC虚拟化的好处

图3. 虚拟化的三个受益点
1)ECU的整合 - 用单个强大的SoC来代替多个MCU:性能控制器可在单个设备上整合多个车载应用程序(来自不同供应商的软件);
2)网络分离 - 不断增长的C2X互联性能需要车内网络和车外连接做好安全分离;
3)混合关键级系统 - 并行使用实时和通用操作系统,安全分离和隔离;
2.3 虚拟机的网络需求

1)单个ECU

通过以太网交换机连接单个ECU,每个ECU带有一个以太网控制器。

图4. 单个ECU与以太网交换机的连接

2)高性能计算机(HPC)

a、高性能计算机(HPC)将多个单个ECU作为VM组合在一个设备中;
b、对于HPC以太网硬件“EthX”,存在不同的变体;
图5. HPC与以太网交换机的连接
3)VM通信需求
a、VM与网络(VM-Net)以及VM之间(VM-VM)需要以透明的方式进行通信
b、VM通信应支持服务质量(QoS)
c、VM通信应为所有VM提供同步的时基
d、VM通信应确保通信接口不受干扰(Safety)
e、应保护VM通信不受其他VM的读/写访问和抑制(Security:完整性、可用性、保密性)
3
用于连接到汽车以太网的HPC硬件变体
图6. 三种HPC硬件变体
1)变体V01:单个以太网接口

a、HPC仅带有一个以太网硬件接口,需要在多个VM(虚拟机)之间共享;

b、在这种情况下,以太网控制器通常提供一些扩展,例如多个接收和传输队列。

2)变体V02:多个以太网接口

a、HPC带有两个或更多的以太网硬件接口;

b、在外部以太网交换机上需要多个端口;

3)变体V03:HPC内部集成有以太网交换机硬件

a、 提供内部端口(主机端口),即VM的基于缓冲区描述符的接口;

b、 提供连接其他ECU的外部端口(网络端口);

3.1  变体V01:单个以太网接口

图7. 变体V01a和变体V01b

1)V01a:Linux虚拟机中的虚拟交换机
a、附加的虚拟机“ VM Swt”作为虚拟交换机,运行Linux,并提供Linux以太网驱动程序和以太网网桥。
b、VM Swt拥有对以太网硬件的独占访问权,往返网络的数据通过Eth DMA传输到VM Swt;
c、Linux网桥(内核模式)在网桥端口之间转发数据,往返于VM的数据通过复制CPU转发。

2)V01b:虚拟机管理程序里的虚拟交换机

1)虚拟交换机模块正在虚拟机管理程序或在专用(安全)内核上执行的AUTOSAR操作系统中运行;
2)虚拟交换机模块包含一个以太网驱动程序,并具有对以太网硬件的独占访问权限;
3)Eth-DMA用于向VMs和网络转发数据,RT-DMA用于在VM之间转发数据;
3)V01c:虚拟机管理程序和可扩展的以太网硬件里的虚拟交换机

图8. 变体V01c

a、提供具有二级分类器的多个接收队列;
b、传入帧被归类处理(例如目标MAC地址),并为每个VM分类到一个专用的Rx队列(固定分配);
c、共享QoS的发送队列;
与变体V01b相同,但优化了RxU路径:
a、Eth-DMA通过为每个VM使用专用的Rx队列直接完成单播帧的接收;

b、仍然需要通过vSwt模块(Eth-DMA,然后是RT-DMA)接收多播帧;

图9. 序列A(左)和序列B(右)
序列A:
1)接收从网络到VM1的单播
2)虚线显示的控制路径
序列B:
1)从VM1到VM2的数据传输
2)虚线显示的控制路径
3.2 变体V02:多以太网接口

图10. 变体V02:多以太网接口


1)高性能计算机(HPC)带有两个或多个以太网硬件接口
2)在一个外部以太网交换机上需要多个端口
3)虚拟机监视器给每个VM(1:1)分配一个专用的以太网控制器;
4)虚拟机之间的通信通过外部以太网交换机进行
5)如果虚拟机的数量高于可用的以太网接口,一些虚拟机可以通过使用变体V01共享以太网接口;
3.3  集成以太网交换机的HPC

图11. 集成以太网交换机的HPC

1)虚拟机监视器给每个VM分配一个专用的主机端口。
2)交换核心在主机端口(内部流量)之间,主机端口和网络端口之间以及网络端口之间转发数据。
3)交换机的配置和控制是通过运行在Hypervisor或(安全)内核上的AUTOSAR OS中的交换机驱动程序模块完成的
4)也有一些硬件变体不提供完整的交换机核心,但特定的硬件加速器用于数据包处理(例如可编程数据包转发引擎),可用于重新创建交换机。
5)如果VM的数量大于可用的主机端口,则某些VM可以使用变体V01共享一个主机端口。
3.4 HPC硬件变体对比
图12. 三种变体的特点对比
4
 操作系统虚拟化
图13. 操作系统层级的虚拟化

1)操作系统层级的虚拟化提供多个相互独立的用户空间实例(容器)共享同一个Linux内核。

——  在Container中运行的进程只能看到Container的内容以及分配给Container的设备;

——  容器通常更快,但不如硬件虚拟化安全。可作为替代品(例1)或除VMs外(例2)。

2)容器相关的连接类型:

——  网桥:容器获得一个虚拟以太网接口,该接口连接到主机的网桥上,获得自己的MAC和IP地址(在网络上作为单独的物理机出现,如果容器在网络上看不到,可以使用NAT)。

——  主机:容器直接使用主机已有的接口,即使用主机的MAC和IP地址,一般用于汽车SoC。

5
  小结

1)HPC高性能计算机提供虚拟化支持ECU整合,网络分离,混合关键性系统,并成为E / E架构的关键部分。

2)根据HPC的硬件功能,可以使用不同的变体通过汽车以太网将虚拟机和高性能计算机的容器连接起来。

3)为了确保与VM的高速连接,数据路径的优化至关重要。

参考文献

1.  Automotive Ethernet for Virtual Machines - EB(Elektrobit)

(0)

相关推荐