本课程以中控和自动驾驶为例子,讲解芯片的结构。
公开课链接:https://aijishu.com/l/1110000000010703
有负责中控的信息娱乐域等,每一个域里面都有一个域控制器。通过以太网或者canbus和MCU相连,所有的信息通过网关来传递,远端服务器通过GBOX传递。
ARM在系统中的应用如上图。
上图是经典车载娱乐系统的子系统图解,车载系统与手机系统的区别在于仪表盘系统,可以是ARM的M系列或者R系列,新的芯片架构可以把两个功能放在一个里面,节省面积。同时带来的虚拟化的问题。另外仪表盘是ASIL B等级,但是娱乐系统是不要求安全等级的,是QM等级。问题是两个不同的安全等级放在一起,解决对策就是安全岛。
安全岛基本功能是由R系列,具有锁步处理器处理,在安全岛上等级达到ASIL B,监控其他系统。
最右面是多媒体域,视频与游戏等功能实现,需要GPU的参与,有编解码等子系统。SP部分解析视频内容。最上面是AIPU,实现语音,目标识别等,不是L3、L4,L5的自动驾驶功能,不会动驾驶部分,因此安全等级不用很高。
ISO26262本身分为两部分,功能认证和检测机制认证。Hardware metic检测错误出来。这两个都符合也不是一定满足ASIL B等级。例如,信息娱乐域不影响安全等级,可以把这部分分开。倒车系统有时间需要等级。讨论安全等级一定限制场景,流程,检测机制,线路等因素。
每个模块下面都有一个MMU600,内存管理单元,想法来自于服务器,实现全系统的硬件虚拟化。主设备后放置。一般来说,有两个功能,从虚拟地址到实地址的转换和从实地址到物理地址的转换。
实时性在安全岛上有特殊的设置,自动驾驶要考虑信息安全,子系统和全系统的配合。
最后讲解,自动系统的有哪些应用。哪些场景需要多少的性能和功耗。
(1) 功能安全设计
安全岛,可靠性高的处理器,监控外围电路,独立的电源和电压域,不能和其他混在一起,相关逻辑在必要时候有冗余设计。两份硬件来比较,看每份输出是否一致,有限状态。设计IP时候需要注意内部子模块在接口上是否看到。
推荐ECC检测机制,检测内存机制。
仪表盘的级别只需要ASIL B,不包含安全岛。可以运行复杂场景。覆盖率达到单点90%以上。显示屏不动的背后,display,GPU,总线等出现问题,常用解决手段是读display buffer进行CRC校验,有效时间内不动认为有错误。自顶向下的方法。
不推荐虚拟和信息娱乐域混合。
所有的CPU是透明的,具有一致性不会因内存缓存出现差异。例如总线错误发生错误后,地址访问失败无法区别,进行处理和排除干扰。虚拟机比仪表盘要慢,不适合混在一起。另外软件隔离也能更好地沟通。唯一合在一起的DDR控制。
(2) 功能安全特性
芯片内部传输用ECC校验保护。硬件备份检测错误。
锁步:两块内存,MEMORY用ECC检测。逻辑错开几拍进行比较,有覆盖率要求。
周期性软件测试,永久测试用DFT测试,LBIST,MBIST检测。
在线内存检测,某段时间内没有传输,检测读写动作。不用中断,1%的影响。
FMEA FMEDA报告,瞬时错误,很难用上述方法检测。失效模式和失效模块,分成上百个模块,根据门数,根据失效概率来计算。
应用场景:倒车,设计几个模块,经过DMA330的IP,通过总线放在BUFFER中,最终放在display上。利用R52计算指令,某段时间内看输出是否变化。通过警报灯来提示。
应用场景:仪表盘,数字输出有问题,A55是否有问题,统计是否载一定范围内。R52只检测合理范围内,通过警告来提示。
(3) 硬件虚拟化系统。
针对中控。自动驾驶不需要。
关键部件, MMU600AE。
性能问题。
(4) 系统安全相关
使用系统缓存解决。大页表,经常访问表项和中间项。车上虚拟器是固定的。不像服务器那样产生碎片化问题,不会随时释放。
MMU-600安全机制与虚拟化软件支持问题,虚拟机分为两层。物理硬件共享机制,支持硬件虚拟化,支持双份。穿透模式,映射表通过MMU来配置,效率很高。
系统的信息安全等级,防止软件被黑,TrustZone系统(系统的设备是不被信任的,加一个防火墙,只有定义表对象才可以访问和修改,CPU要切换到EU3上才能访问秘钥)
(5) 自动驾驶芯片架构,可能全系统ASIL D等级,碰发动机控制等系统,一个个场景会非常复杂,把上述检测机制全都加入IP里面,通用场景下可以做到等级。
大小核设计,APP不是多线程,单线程大核。