0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虚拟化技术为为汽车ECU提供基础架构

星星科技指导员 来源:瑞萨电子 作者:Vito Colagiacomo 2022-04-26 14:51 次阅读

1.ECU整合趋势和虚拟化的力量

随着信息娱乐和 ADAS 等新功能被添加到汽车中,每辆车中安装的 ECU 数量也在增长。越来越多的 ECU 会产生一些不良副作用:设备管理复杂、重量和功耗只是其中的一部分。

为了阻止这种趋势,汽车行业正在寻求从独立的面向功能的方法转变为集成方法,其中单个 ECU 提供多种功能。

poYBAGJnlo2AJUJUAAC6Rkv6dw8614.png

图 1:ECU 整合旨在从单功能 ECU 方法(左)转向多功能 ECU(右)

在尝试向多功能 ECU 迁移时,会出现新的挑战:每个功能可能需要在不同的操作系统上运行,并且 CPU、内存和外围设备等硬件资源必须在它们之间共享。此外,需要确保功能之间的隔离和“不受干扰”。

幸运的是,这正是虚拟化技术帮助提供基础架构的地方,该基础架构允许多个“客户”操作系统(也称为虚拟机或 VM)以安全、独立和隔离的方式执行。

2. 汽车以太网

ECU 中实现的功能变得越来越复杂,需要灵活的互连和更高的数据传输速率。汽车以太网正在成为车载网络解决方案的首选。以太网具有巨大的未来潜力,因为它提供了带宽、轻型布线(例如非屏蔽单双绞线)、庞大的生态系统和可靠的软件基础设施。此外,交换式以太网提供了极大的可扩展性,时间敏感网络 (TSN) 扩展提供了改进的同步、低延迟和可靠性。

当多功能 ECU 使用虚拟化来运行多个操作系统时,一种常见的解决方案是处理各种 VM,就好像它们连接到同一个物理以太网网络一样。

如果只有一个以太网接口,则管理程序提供了在 VM 之间共享接口的机制,并且通常在软件中实现虚拟网络交换机。由于这种软件实现会产生开销,因此硬件制造商正在为其设备添加硬件辅助虚拟化功能,以便在无需管理程序干预的情况下实现共享。

在这篇博客中,我们描述了一个概念验证 (POC),我们在其中比较了让两个 VM 共享一个集成硬件交换机和一个软件交换机的好处。

三、硬件说明

此 POC 基于车载计算机 3 板 (VC3),配备 Renesas R-Car H3 SoC 和 TSN 以太网交换机 (R-Switch2)。以太网交换机在通过 PCIe 连接到 R-Car 的 FPGA 上实现。

R-Switch2 有四个外部端口(1G-T1 连接器)和一个内部端口(命名为 CPU 端口或 tsngw)暴露给 R-Car SoC 中的 CPU。R-Switch2 和 CPU 之间的接口允许在 R-Car 上运行的操作系统成为以太网帧的来源或目的地。

R-Switch2 和 CPU 之间的数据通过多个队列进行交换。每个队列由一个描述符列表表示,这些描述符驻留在主内存中,由运行在 CPU 上的软件设置:

RX 队列中的描述符告诉 R-Switch2 硬件应将 CPU 的传入以太网帧复制到主存储器的哪个位置

TX 队列中的描述符告诉 R-Switch2 硬件 CPU 将其希望发送的帧放置在何处,以便硬件知道应该从主存储器中的哪个位置获取数据

如果在 CPU 上运行管理程序,则可以将队列分配给特定的客户操作系统以进行独立的数据处理。

四、软件说明

对于这个概念证明,选择 Xen v4.14 作为管理程序。开发了额外的前端和后端驱动程序来共享 R-Switch2 硬件,作为典型 Xen 桥接网络的替代方案(更多信息在这里)。Xen(也称为域)上运行着两个客户操作系统:

dom0:一个特权域,可以直接访问大多数 R-Car 外围设备和 R-Switch

domU:无特权的域,不能直接访问任何特定的硬件设备。但是,domU 可以访问两个 R-Switch2 队列(一个 RX 和一个 TX)

下面的图 2 显示了这种配置。

pYYBAGJnlo6AInMqAABTm_fjqtk189.png

图 2 此 POC 的软件配置

前端和后端驱动程序之间的通信仅用于以下情况:

在初始化时,前端发送请求以保留两个 R-Switch2 队列(1 TX 和 1 RX)

在运行时,前端使用此通信通道通过后端通知 R-Switch2 硬件 TX 队列已准备好进行处理。每当 domU 的 RX 队列中有新数据可用时,后端也使用它来通知前端

请注意,在为 domU 设置队列所需的初始握手之后,前端驱动程序只需直接访问由 R-Switch2 硬件处理的相同队列即可传输和接收帧,而来自 dom0 端的干预最少。与其他用于虚拟机的 SW 网络解决方案相比,这是一个优势,其中 domU 的帧通常与后端驱动程序共享,并由 dom0 中的网络堆栈重新路由。

例如,当 domU 想要通过网络传输一些帧时,使用共享 R-Switch2 解决方案所涉及的步骤如下(如图 3 所示):

domU 将数据写入自己的 TX 队列

domU 通知 R-Switch2 硬件(通过后端)队列已准备好进行处理

R-Switch2 硬件直接从 domU 队列中获取数据

poYBAGJnlo6AR7zoAACd4491OtI525.png

图 3 来自 domU 的数据包传输示例(R-Switch2 共享)

另一方面,当使用 Xen 桥接网络时,从 domU 传输帧所涉及的步骤是(参见图 4):

domU 将要传输的数据写入内存

内存与 dom0 中的后端共享

后端将数据包转发到 Xen Bridge

数据包通过 dom0 网络堆栈路由,最终到达网络接口驱动程序

驱动程序将数据包的数据复制到 NIC 队列中

网卡从内存中访问数据

pYYBAGJnlo6AFsCfAADOAehdTv8594.png

图 4 来自 domU(Xen 桥接网络)的数据包传输示例

5.性能与比较

系统的性能是通过生成来自/到 domU 的恒定比特率 UDP 流并同时测量 dom0 和 domU 上的 CPU 负载来测量的。

即使网络帧是从 domU 传输/接收的,我们也测量 dom0 的 CPU 使用率的原因是,我们希望在软件中实现虚拟交换机的情况下看到更高的负载,因为 domU 数据包需要重新路由通过 dom0 的网络堆栈。

然后将此 POC 中实施的解决方案与 Xen 桥接网络进行比较,这是一种常见的软件解决方案,可实现虚拟交换机并允许在同一网络上连接多个虚拟机。

结果如图 5 和图 6 所示,证实了我们的假设。使用 R-Switch2 共享方案时,dom0 CPU 负载比 Xen Bridged 网络低约 50%,而 domU CPU 负载几乎相同。

poYBAGJnlo-AWmgJAAChfVj4rUM878.png?itok=X-KsoTtL

图 5 domU 接收测试期间的 CPU 负载(1 Gbps 的恒定数据速率)

pYYBAGJnlpCAXqOKAACaJehaAoA489.png?itok=e6IB9KnY

图 6 domU 传输测试期间的 CPU 负载(600 Mbps 的恒定数据速率)

R-Switch2 情况下的剩余 dom0 CPU 负载是由来自/到 domU 的事件通知引起的,即当有新的传入数据可用时,dom0 通知 domU,或者 dom0 将来自 domU 的请求转发给 R-Switch2 HW 以开始处理 TX队列。

对于像 Xen Bridge 这样的基于软件的交换机,dom0 有额外的任务来路由 domU 数据包,这可能成为系统的瓶颈。在我们的解决方案中,domU 数据包的路由由集成网络交换机在硬件中完成,从而释放 CPU 资源并提高两个域之间的隔离度。

六,结论

集成的硬件交换机可以简化软件交换机甚至是冗余的,从而为应用程序处理而不是内务管理任务释放资源。评估表明,使用硬件辅助虚拟化可节省超过 50% 的宝贵 CPU 资源。事实证明,瑞萨 R-Switch2 支持多个接收和传输队列在通过虚拟化整合 ECU 的环境中具有明显优势。此功能与对 L2 和 L3 路由和 TSN 扩展的硬件支持一起,使其成为实现未来 ECU 的完美选择。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10453

    浏览量

    206585
  • 交换机
    +关注

    关注

    19

    文章

    2440

    浏览量

    95675
  • 应用程序
    +关注

    关注

    37

    文章

    3136

    浏览量

    56418
收藏 人收藏

    评论

    相关推荐

    一般的汽车ECU处理器是32位的吗?具体的RAM和Flash有多大呢?

    现在一般的汽车ECU处理器是32位的吗,具体的RAM和Flash有多大呢?现在汽车ECU处理器位数发展到多少了?相应配备的RAM和Flash有多大?
    发表于 02-02 06:08

    请问汽车ECU通信如何实现?

    汽车ECU通信如何实现?
    发表于 02-01 07:09

    汽车ECU一般采用芯片架构?使用什么系统?

    汽车ECU一般采用芯片架构,使用什么系统?
    发表于 02-01 06:09

    什么是“软件定义汽车”?各大车企的软件定义汽车战略

    要实现软件定义汽车,除了电子/电气架构的升级,用于软硬件分离解耦的集成ECU(电子控制单元)也是必不可少的。另外还提到,为此需要一种称为“虚拟机(hypervisor)”的
    发表于 12-22 11:11 291次阅读
    什么是“软件定义<b class='flag-5'>汽车</b>”?各大车企的软件定义<b class='flag-5'>汽车</b>战略

    一文带你了解汽车区域架构的优势!

    在域架构中,ECU 可根据不同功能分为不同的域。而区域架构则是一种按照 ECU汽车内的位置分类的新方法,并由中央网关来管理通信。这种物理
    的头像 发表于 09-15 17:20 416次阅读
    一文带你了解<b class='flag-5'>汽车</b>区域<b class='flag-5'>架构</b>的优势!

    汽车ECU高边开关设计方案

    比如针对本文介绍的智能高低边开关,典型的应用场景是汽车ECU中,用于提供包括加热,配电,驱动泵等;
    发表于 09-14 09:22 582次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>ECU</b>高边开关设计方案

    UDS诊断协议27服务通过采用种子于密钥的方式ECU提供了一种保护机制#诊断自动测试

    自动测试ecu
    北汇信息POLELINK
    发布于 :2023年08月29日 08:51:16

    本机NVMe/FC支持提供性能增长路径虚拟基础架构

    电子发烧友网站提供《本机NVMe/FC支持提供性能增长路径虚拟基础架构.pdf》资料免费下载
    发表于 08-28 09:23 0次下载
    本机NVMe/FC支持<b class='flag-5'>提供</b>性能增长路径<b class='flag-5'>虚拟</b>基础<b class='flag-5'>架构</b>

    本机NVMe/FC支持为虚拟基础架构提供了性能增长路径

    电子发烧友网站提供《本机NVMe/FC支持为虚拟基础架构提供了性能增长路径.pdf》资料免费下载
    发表于 08-23 10:59 0次下载
    本机NVMe/FC支持为<b class='flag-5'>虚拟</b>基础<b class='flag-5'>架构</b><b class='flag-5'>提供</b>了性能增长路径

    CAN总线在汽车ECU中的作用

    CAN作为汽车ECU之间广泛应用的通信总线,有一些和应用相关的基础问题。
    的头像 发表于 08-19 09:38 2995次阅读
    CAN总线在<b class='flag-5'>汽车</b><b class='flag-5'>ECU</b>中的作用

    汽车电子电气架构为什么要做中央集成?

    汽车电子电气架构是指汽车中的各类传感器、电子控制单元(ECU)、线束拓扑和电子电气分配系统的整合,它决定了汽车的信息交互和复杂功能的实现。
    发表于 08-18 10:02 582次阅读
    <b class='flag-5'>汽车</b>电子电气<b class='flag-5'>架构</b>为什么要做中央集成?

    汽车架构变化趋势有哪些

    汽车架构变化趋势 在分享中央计算软件架构之前,我们先简单说明一下汽车架构变化趋势,总的来说,主要包含以下阶段:   分布式架构ECU 数量
    的头像 发表于 08-07 14:41 1087次阅读
    <b class='flag-5'>汽车架构</b>变化趋势有哪些

    Armv8-R架构中的虚拟概念和可能性

    本指南介绍了Armv8-R架构中的虚拟概念和可能性。我们用四个例子来解释这些概念,其中大部分是基于汽车行业的应用程序。这些示例可以帮助您理解和熟悉
    发表于 08-02 09:27

    如何使用神经网络的虚拟ECU校准

    Classical ECU Functions 经典ECU函数 What is an ECU Function ? 什么是ECU函数? ) Mapping Input Sign
    的头像 发表于 06-12 10:44 286次阅读
    如何使用神经网络的<b class='flag-5'>虚拟</b><b class='flag-5'>ECU</b>校准

    求助,是否有使用LIN堆栈将S12 ECU重新编程LIN从站的示例代码

    嗨,是否有使用 LIN 堆栈将 S12 ECU 重新编程 LIN 从站的示例代码。
    发表于 05-29 06:48