多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起

首页 > 实用技巧 > 作者:YD1662023-11-27 11:09:48

让我们回头看看上面的中控芯片结构图。最重要的是红色框内的安全岛,由R52和紧耦合内存,中断控制器,总线,内存控制器,以及DMA控制器,硬件锁,SRAM等组成。理想情况下,每一个模块都需要是Asil-B/D的。如果做不到,那么至少R52,紧耦合内存和硬件锁做到。由它们构成安全的基石,用来轮询其余模块是否发生故障。同时,这个安全岛还可以作为系统控制器,来控制其余模块的电源,电压和时钟状态;否则,还需要一个Asil-B/D的电源管理的有限状态机来做这件事情,具体可以参考CMN600AE里时钟,P/Q通道和重置信号的设计。

作为信息娱乐域的处理器,多媒体,加解密,总线,中断控制器,调试系统等均无需安全等级,出错不影响驾驶。需要安全等级的是仪表盘,Asil-B级。由于我们这里已经做了隔离设计,所以不需要考虑信息娱乐域的大小核以及其他主设备对其产生的影响。内存控制器虽然是共享的,但只要做好了类似CMN600AE的QoS,保留出相应的资源,也不用担心被低优先级阻塞。

黄色框内作为仪表盘处理器的A55,很难被替换成R52,因为图形处理器通常需要支持MMU的操作系统。此处的操作系统,可以是Asil-B/D级的QNX等,也可以是Asil-B/D级虚拟机之上建立的实时操作系统。另一方面,A55虽然有ECC和RAS机制,但并不支持锁步,很难做到通用场景下的Asil-B等级。至于同样被隔离的图形处理器G31,更没有安全设计。那怎么把仪表盘做到Asil-B?一旦发生故障,比如仪表盘画不出正确的图层,或者干脆不响应,我们可以把A55和G31排除在安全状态之外,让R52驱动外置LED灯告知驾驶员错误信息。这样,就把问题归到了怎样用Asil-D级的安全岛探测错误。这个就相对要简单多了。可以计算每一帧r的CRC,看看是不是连续几帧不变;也可以定期让A55响应中断或者喂狗,又或者同时采用。

在这里,我们引入了一个概念,出错处理。在失效发生后,系统需要在失效容忍时间间隔(FTTI)内进入安全状态。所谓的安全状态,可以是之前的正常运行状态,也可以是应急的处理状态。之前仪表盘的错误警告LED就是一种应急处理的安全状态。

对于锁步设计,最简单的做法就是重置整个逻辑。如果是处理器,那就需要重启相应的处理器核心。而这个重启,必须在失效容忍时间间隔内完成,否则,还是要被视作失效。通常,这个最短容忍时间是10毫秒到100毫秒,和系统应用场景有关。

对于简单的微控制器,100毫秒甚至10毫秒重启并不困难。但对于一个复杂的处理器,重启就是麻烦事了。如果按照传统的开机流程,那几秒钟是需要的,没法符合要求。那我们就只剩下两条路,第一个是使用虚拟机。如果发生失效的并不是Hypervisor所运行的处理器核,可以只重启某个虚拟机来实现加速。对于重要的高实时任务,还可以两个虚拟机跑同一个业务,互为备份,一个出问题那立刻切另外一路;也可以用一个虚拟机待机,看其余哪个虚拟机重启,立刻开始接手那个虚拟机的业务。如果是Hypervisor所运行的处理器核重启,那优化重启过程,保存当前上下文环境至内存,并且尽量调整驱动启动步骤,做到最先使用的主设备优先初始化。可以参考手机上的Suspend To Ram机制,手机基本上可以做到休眠时全芯片下电,数据保留在DDR,唤醒时处理器起来调用显示模块,先显示之前保存的图层,再启动图形处理器渲染新的帧,做到无明显感觉。利用这种机制,对于仪表盘失效,可以先告警,然后在毫秒级的时间内完成相应子系统重启。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(29)

再来看看媒体部分的安全设计问题。上图中是倒车后视的子系统,图像信号处理是C71(Asil-B),R52(Asil-D),总线NIC450(QM),DMA330(QM),SRAM(带ECC),显示模块D71(QM)。子系统要求做到Asil-B等级。由于并不是所有模块都做到了Asil-B,我们需要对其做失效树分析。真正出现失效的场景,在于显示画面冻结在某一帧。瞬时错误引起的一些问题,比如某帧画面有坏点,并不构成失效。因此,我们要做的事情就变成两件:先用R52从显示模块获取每一帧的CRC,看看是不是连续多帧都不变,如果出错,立刻亮灯告警,这个计算必须在失效容忍时间间隔内完成;其次,开机或者周期性运行LBIST/MBIST,看看是不是存在永久错误,有的话也需要告警。只要图像的源头C71有Asil-B,R52高于Asil-B,我i们可以放松对其余几个模块探测瞬时错误的要求。

接下来我们看辅助驾驶的芯片框架图,和中控不同,辅助驾驶需要感知和决策,是一个复杂的实时运算过程,没有办法通过安全岛监测来达到高等级安全,只能通过处理器本身来保证。所以这里的处理器全部换成了带冗余设计的A76AE和A65AE。虚拟化在这个系统里并不是必须,MMU600AE仅仅是为了虚实地址转换。由于没有采用虚拟机,各个处理单元之间的数据隔离可以靠CMN600AE的MPU来完成。没有经过CMN600AE的设备,需要在和总线之间添加MPU来实行地址保护,并且所有的MPU配置要保持一致。另一方面,使用MPU也限制了分区不能太多,否则就需要映射到内存。到底使用虚拟机还是MPU进行隔离需要看应用来决定。另外,如果需要片间互联,那所有主设备都应该通过NoC AE形成子网连到CMN600AE。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(30)

这个框架的计算流是这样的:C71(Asil-B)把数据从传感器收集,做固定的图像信号处理,把结果放到DDR;A65AE读取数据,进行车道检测等传统的矢量运算。相对于大核,A65AE提供了高能效比的运算能力,适合多路并行计算。

也可以把任务丢到图形处理器来运算,延迟稍大,能效比也很高。如果涉及神经网络运算,那A76AE会把任务调度到AI加速器上,同时在算子不足的情况下负责部分计算。也可以调度到图形处理器,不存在算子不支持的问题。当然,对于神经网络计算,能效比还是赶不上专用加速器。A76AE作为大核,具有很高的单线程性能,可以用来做决策。

CMN600AE作为桥梁,连接了所有设备,并提供高带宽,硬件一致性以及系统缓存。受布局布线的限制,还是需要NoC把带宽和延迟需求不高的设备通过子网连到CMN600AE。

最后划一下重点。汽车芯片的关键是实时性,功能安全,电气,虚拟化。功能安全最复杂,需要IP级就开始支持。如果不符合,那需要场景分析做分解,用最少的代价实现安全。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(31)

今天是《半导体行业观察》为您分享的第2209期内容,欢迎关注。

上一页45678末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.