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

    文章

    10855

    浏览量

    211610
  • 交换机
    +关注

    关注

    21

    文章

    2638

    浏览量

    99551
  • 应用程序
    +关注

    关注

    37

    文章

    3267

    浏览量

    57684
收藏 人收藏

    评论

    相关推荐

    智能汽车时代:ECU测试如何高效进行?

    ECU(电子控制单元)是用于控制车载设备和系统的集成电路或计算机,被称为汽车的大脑中枢,它负责管理和控制着车辆系统的运行,如发动机控制、安全气囊、刹车系统、防抱死系统等等,因此保证ECU的正确运行
    的头像 发表于 11-14 17:04 219次阅读
    智能<b class='flag-5'>化</b><b class='flag-5'>汽车</b>时代:<b class='flag-5'>ECU</b>测试如何高效进行?

    ECU调校对汽车性能的影响

    在现代汽车技术中,发动机控制单元(ECU)扮演着至关重要的角色。它不仅控制着发动机的燃油喷射和点火时机,还管理着进气和排气系统,以及与驾驶性能相关的其他多个方面。ECU调校,即对ECU
    的头像 发表于 11-05 10:25 303次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    Hypervisor是一种在嵌入式系统中实现虚拟技术的关键组件,它能够在同一硬件平台上并行运行多个操作系统或应用程序,提供资源隔离、管理和优化。通过引入时空域隔离的
    发表于 10-09 19:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二章读后感

    非常感谢社区提供的阅读机会,拿到书后,就迫不及待的的开始阅读了。 社区还有签名留念呢,值得纪念。 《嵌入式Hypervisor:架构、原理与应用》的第一、二章读者提供了关于Hyper
    发表于 10-09 18:22

    汽车 ECU 设计中的有源整流及其优势

    电子发烧友网站提供汽车 ECU 设计中的有源整流及其优势.pdf》资料免费下载
    发表于 09-10 10:21 0次下载
    <b class='flag-5'>汽车</b> <b class='flag-5'>ECU</b> 设计中的有源整流及其优势

    小鹏汽车与大众汽车达成电子电气架构技术战略合作

    小鹏汽车与大众汽车集团共同宣布,继小鹏汽车日期2024年4月17日有关小鹏汽车与大众汽车集团签
    的头像 发表于 07-22 09:49 959次阅读

    ECU汽车处理架构虚拟和软件定义汽车

      现代汽车是工程技术的奇迹,其特点和功能在几年前是无法想象的。但在光鲜亮丽的外表下,隐藏着日益增长的复杂性,这给汽车行业的未来带来了重大挑战:对车载计算日益增长的需求及其对电子控制单元(EC
    的头像 发表于 06-26 16:56 781次阅读

    关于ECU 和 MCU ,你了解多少?

    关于MCU和SoC的区别,有一些争议;同时ECU和MCU的区别,也有一些争议。如果按照芯片工程师的理解,可以把SoC和MCU都理解单片机;那虚拟原型技术既可以
    的头像 发表于 05-11 08:10 3177次阅读
    关于<b class='flag-5'>ECU</b> 和 MCU ,你了解多少?

    英特尔汽车行业打造芯片级增强版硬件虚拟功能

    借助英特尔市场领先的芯片级增强版硬件虚拟功能,英特尔汽车事业部旨在为行业提供具有卓越性能和超高效率的软件定义汽车(SDV)的
    的头像 发表于 03-18 10:30 827次阅读
    英特尔<b class='flag-5'>为</b><b class='flag-5'>汽车</b>行业打造芯片级增强版硬件<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>功能

    鸿道Intewell新型操作系统国产智能汽车发展提供基础软件平台替代方案

    在硬件特点日趋同质的情况下,车域融合的关键是软件,Intewell通过虚拟技术虚拟出多个独立系统,运行不同车载业务,通过Intewel
    的头像 发表于 03-15 09:50 480次阅读
    鸿道Intewell新型操作系统<b class='flag-5'>为</b>国产智能<b class='flag-5'>汽车</b>发展<b class='flag-5'>提供</b>基础软件平台替代方案

    应用分享 | 高性能电源在汽车ECU地漂测试中的应用

    ,小编将详细大家解读地漂的定义和危害,以及如何使用高性能电源进行地漂测试。 地漂的定义及危害 地漂是一种汽车各控制器接地负电位之间存在电压差的现象。蓄电池是汽车内部能提供持续电能的主
    发表于 03-11 17:29 1221次阅读
    应用分享 | 高性能电源在<b class='flag-5'>汽车</b><b class='flag-5'>ECU</b>地漂测试中的应用

    一般的汽车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管理程序分离不同的操作系统,对实时行为和功能安全的不同要求。安全临界漏斗离子(如显示)和本地ADAS函数),这是ASIL需求运行的基础。
    发表于 01-31 14:58 1851次阅读
    <b class='flag-5'>汽车</b>设备<b class='flag-5'>虚拟</b><b class='flag-5'>化</b><b class='flag-5'>架构</b>