汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考

目录

1.OEM面临的难点

2.Hypervisor的难点思考

2.1 VMs部署到物理内核上的实现方式

2.2 VM调度机制

3.小结


1.OEM面临的难点

为什么汽车ECU在逐渐倡导虚拟化,主要原因是整车电子电气架构从分布式往集中式演进,OEM希望将以前多个ECU的功能聚合到一个ECU中;

并且近几年国际大厂推出的MCU性能越来越强大,从硬件层面有了实现虚拟化的基础。不过光有硬件还不行,软件也得跟上;因此,除了在功能层面上面的软件实现,现有又新增了对虚拟化的软件实现需求。

在此之前,OEM在整合多个供应商软件时候,都是以单个大功能(如BMS)独享整个MCU资源为前提;

现在突然要将这些软件功能放到一个ECU,共享MCU的资源,同时还要保证功能的隔离和资源不会冲突,想想头都大了。

我们以最粗暴的方式来形容这个过程,以前做集成的时候,会把Bootloader和App两个hex文件合成一个完整hex,然后刷进ECU里,

现在就是要把这些不同功能的hex文件合并成一个大的hex文件,刷进高性能的MCU里,如下图:

假设MCU里面只有三个核,但是有5个不同类别的应用需要集成;为实现功能隔离、资源共享,借鉴座舱系统SOC的Hypervisor思想,如果能在MCU应用一二,也就可以实现上述要求,如下图:

因此个人认为,Hypervisor软件是实现电子电气架构演进的关键路径。

据调研,目前市面上对于CP AUTOSAR下的虚拟化解决方案有Vector的veHypervisor、ETAS的RTA-HVR、EB的Embedded Hypervisor,不过应该都还达不到量产阶段。

2.Hypervisor的难点思考

据目前的资料整理,当前基于MCU的Hypervisor均属于Type-1,即Hypervisor直接运行在MCU裸板上。Type-1和Type2区别如下:

在Type-1 hypervisor下可以布局的方案如下图:

一般来说,Hypervisor是需要运行在最高异常等级下,例如R52内核MCU就需要hypervisor在EL2等级运行,英飞凌TC1.8更直接,直接就提供了名为hypervisor的运行模式。

 那么这就引出了第一个问题:VMs部署到物理内核上的实现方式?

2.1 VMs部署到物理内核上的实现方式

 我们还是以上图为例,假设Power Control这个虚拟ECU(下文称VM)在最初设计时就需要两个内核来处理通信任务和高实时性任务,这就会和BCM VM或者Gateway VM至少共享一个物理内核,因此在布局上就可以如下图所示:

那么部署成功后,每个VM占用物理内核的调度应该是怎么样的呢?

2.2 VM调度机制

根据英飞凌官网介绍,目前主要有两类的调度机制:固定优先级和时间切片;如下图:

  • 固定优先级:高优先级可以抢占低优先级的VM

  • 时间切片调度:每个VM在固定的时间槽内占用物理内核

 从实现角度来说,使用固定的时间切片看起来比较容易实现。

假设有4个VM,占用一个物理内核的时间片分别为100us、200us、300us和400us;这样刚好就能简单组成一个完整的调度周期为1ms。

调度没有问题了,那如果这期间产生了中断,又该如何处理?

3.小结

本文主要讲解了OEM面临新的电子电气架构下的集成难点,引入了hypervisor以及VM调度机制,下一篇我们将继续讲VM之间的通信、中断处理、在safety和security上面的思考

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: ECU 在总线故障(bus-off failure)时的行为如何测试呢? 要测试 ECU 在总线故障时的行为,需要使用特定的测试设备和软件,例如 CAN 分析仪和车辆诊断工具。这些工具可以帮助您模拟总线故障并监测 ECU 如何应对故障。您可以通过读取 ECU 中的故障码和监测数据来评估 ECU 在故障情况下的行为。如果您不熟悉这些工具的使用,建议您寻求专业的技术支持。 ### 回答2: ECU在总线断开故障期间的行为可以通过以下方式进行测试。 1. 确保ECU与总线正常通信:使用诊断工具或示波器检测ECU与总线之间的通信是否正常。如果ECU无法与总线通信,可能是因为总线断开故障导致的。 2. 检测错误传输计数器:总线断开故障可能会导致ECU的错误传输计数器增加。通过读取ECU中的错误计数器,可以确定是否发生了总线断开故障。 3. 监测CAN错误帧:在总线断开故障期间,ECU发送的CAN消息可能会出现错误帧。可以使用CAN分析工具来捕获并分析ECU发送的CAN消息,以确定是否存在错误帧。 4. 监测ECU的故障恢复行为:当ECU经历总线断开故障后,通常会尝试重新建立与总线的连接。可以通过观察ECU在故障恢复期间的行为,如重新发送消息、等待其他节点响应等,来确定ECU在总线断开故障期间的行为。 5. 重现总线断开故障:为了更准确地测试ECU在总线断开故障期间的行为,可以模拟总线断开故障,断开ECU与总线的连接,并监测ECU的响应和恢复行为。 总体而言,通过诊断工具、CAN分析工具、故障模拟器等设备,结合对ECU的监测和分析,可以对ECU在总线断开故障期间的行为进行有效的测试。 ### 回答3: ECU(Electronic Control Unit,电子控制单元)在总线故障(bus-off failure)期间的行为是可以通过以下几种方法进行测试: 1. 观察LED指示灯状态:在ECU上通常会有一个LED指示灯,用于显示总线通信的状态。当ECU处于总线故障状态时,LED指示灯可能会闪烁或显示特定的代码,用来表示总线已进入断开状态。 2. 通过故障诊断工具:使用专门的故障诊断工具,例如汽车诊断仪,可以通过连接到ECU的诊断接口,读取ECU的故障码。在总线故障期间,诊断仪可能会显示与总线通信相关的故障码,以及ECU的状态信息。 3. 监测总线通信信号:使用示波器或逻辑分析仪等仪器,通过监测总线上的通信信号来判断ECU在总线故障期间的行为。在正常情况下,ECU应该能够发送和接收总线上的数据。如果ECU处于总线故障状态,可能无法发送数据或接收到有效数据。通过监测总线上的信号变,可以得到关于ECU行为的信息。 总之,根据实际情况,可以使用LED指示灯、故障诊断工具或监测总线通信信号等方法来测试ECU在总线故障期间的行为。这些方法可以提供关于ECU以及总线通信状态的有用信息,以便进行故障排查和修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecurity_zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值