在汽车控制器中,应用最多的主芯片是MCU和SOC,传统汽车是以MCU为主,智能汽车中由于功能越来越多,逐渐开始使用SOC,比如域控制器中常使用MCU+SOC的架构。那么MCU和SOC到底有什么区别呢?

  1. MCU的基本概念

MCU是MicroController Unit的缩写,表示微控制单元或微控制器,对这个术语有些人可能不太熟悉,其实它还有1个我们更熟悉的中文名称,那就是“单片机”,我们在大学中学习的51单片机,其实就是MCU的一种。

1.1单片机与微型计算机

单片机是Single Chip Microcomputer的中文翻译,全称是单片微型计算机,从名称上可以看出,它的架构源自于传统的微型计算机,传统微机主要分为5个部分:控制器、运算器、存储器、输入和输出设备。

控制器CU和运算器ALU是集成在一起的,称为CPU。存储器包括内部存储器(内存)和外部存储器(硬盘)。IO设备包括输入设备的键盘、鼠标和输出设备的显示器、喇叭等外部设备。

我们可以将其简化为三部分,CPU、存储器和IO设备,这三部分实际上是由很多个独立的芯片组成。

图片

微型计算机架构图-外部总线

这些芯片之间的通信都要通过外部的总线进行数据传输,有些在主板内通信,有些需要通过主板上的接插件与其它芯片连接,所以主板上会有很多个插槽和接插件,用于芯片间的数据通信。

图片

主板上有很多插槽和接插件

微机的这种结构的优点是每个设备可以单独配置更改,可以适配不同的硬件需求。

而单片机是将CPU、存储器、IO设备全部嵌入集成到同一颗芯片中,它们之间的通信是在芯片内部完成,芯片的内部就可以独立完成从程序存储到运算执行和输入输出整个流程,这种结构的优点是执行效率高,适合小型的专用系统。

图片

MCU(单片机)架构图-内部总线

1.2 MCU的基本组成及原理

MCU中的CPU,也就是中央处理器与微机中的CPU基本功能一样,是芯片的大脑,负责处理各种任务,发出各种指令。

MCU中的RAM相当于微机中的内存,用于快速的数据处理,RAM的大小决定了任务和数据处理的速度;

MCU中的ROM相当于微机中的硬盘,用来存储程序和固定的数据,目前主要使用FLASH,FLASH的大小决定了任务和数据处理的数量。

MCU的IO外设与微机相比差别较大,微机的IO设备基本固定,比如键盘、鼠标、显示器、喇叭等。而MCU用于嵌入式系统,IO设备也不同,一开始只有基本的GPIO,用于简单的输入输出,比如按键和LED灯。

随着用户需求的提高,集成通用的外设类型也逐渐增多,如A/D、PWM、UART、I2C、SPI等。此外,不同行业还有一些专用的外设,比如汽车控制器中的MCU中还会增加CAN控制器、液晶驱动、步进电机驱动等。

图片

MCU架构图-常见的外设

随着车辆的智能化和网联化的发展,汽车控制器要使用的外设资源越来越复杂,比如仪表上的液晶显示由传统的单色段码LCD升级为彩色TFT;中控由收音机升级为娱乐大屏;车联网增加了TBOX;架构变化增加了域控制器。

传统的MCU已经无法通过简单的IO外设升级来满足这些功能需求,必须要使用SOC了。

2.SOC的基本概念

SOC是System On Chip的缩写,表示“片上系统”,SOC是在一个芯片中集成多个电路模块,组合形成具有接近于完整计算机功能的电路系统。

单从概念上来看,它的硬件结构好像与MCU差不多,也是一个单片机。

但是SOC这个单片机与MCU这个单片机的目标不同,目标不同就导致SOC与MCU有质的不同。

MCU是专为简单控制任务而设计的单片集成电路,它的目标是追求简单、快速、高效;

所以只需要少量的模块和与这些模块相适应的系统资源。

而SOC称为片上系统,这里的系统就是指计算机系统,计算机系统是一个能运行操作系统、包含了大量的模块、能支持高性能计算的庞大而复杂的系统,为了能适配更多的模块,处理更多的任务,需要配套的内核和系统资源也完全不同,量变产生了质变。

2.1单核与多核

典型的MCU架构相对简单,通常是单一核心+基础组件,硬件资源有限,内存通常<10MB。比如集成单个ARM Cortex-M系列的处理器、使用SRAM和Flash作为存储单元,包含GPIO/ADC/PWM等基础外设。

而SOC是多核的异构架构,支持GB级内存扩展,硬件资源丰富。比如融合了CPU+GPU+NPU+DSP的多核处理器、具有支持DDR的高速内存控制器,包含蓝牙、WIFI等无线通信模块。‌‌

更典型的多核SOC,就是手机中使用的芯片,比如高通的骁龙865芯片,集成了1个Cortex-A77(2.84GHz)、3个Cortex-A77(2.42GHz)和4个Cortex-A55(1.8GHz),1个Adreno 650 GPU,共9个核。

图片

骁龙865——多核SOC

虽然典型的MCU是单核的架构,但是随着智能汽车的发展,数据融合的处理,很多MCU为了提升性能,处理复杂任务的能力,也开始采用多核设计,比如CPU+GPU的架构,虽然数量和性能上还是比SOC要小很多,但是导致单从处理器的数量上并不能完全区分MCU和SOC。

2.2实时性与操作系统

前面说了,MCU的目标是追求速度,也就是实时性要好。在芯片内部,实时性最好的方式就是直接操作寄存器,所以MCU中的软件很多是没有操作系统的,采用裸机编程的方式。即使是带有操作系统,也是自有的RTOS或轻量级的第三方RTOS(如FreeRTOS)。

而SOC的目标是要处理复杂的多任务需求,也就是算力要好。而操作系统就是适用于并行处理复杂的多任务需求。所以SOC通常使用标准驱动+第三方操作系统的编程方式。这个操作系统往往是比较大型的OS,比如QNX、Linux,Android。

图片

MCU与SOC的软件架构对比

大型操作系统的缺点是启动时间慢,由于上电后首先要加载完整的第三方的操作系统,如Linux,Android,启动时间需要几十秒甚至几分钟。即使是相对轻量化、实时性更好的QNX操作系统,也需要几秒钟。

而车载中对主要的控制器节点的启动时间要求比较高,比如网络管理要求控制器能被快速唤醒(如100ms)。

这个启动时间SOC是无法达到的,而MCU通常没有操作系统或者运行轻量级的实时系统,启动时间仅需‌数十毫秒‌,适用于高实时性场景,符合汽车启动实时性的要求。

另外,车辆中的控制器不仅对启动时间有要求,一些安全相关的功能对运行时间也有要求,比如自动刹车要求制动的执行时间小于200ms。

MCU由于专注于单一控制任务,比如某个传感器的数据采集,某个电机驱动等,执行效率高,运行速度快,可以满足执行速度。

而SOC虽然系统的主频(GHz)比MCU(MHz)更高,能处理复杂的算法,但是由于内部集成多核处理器和GPU等模块,‌复杂的架构导致任务调度的算法更复杂,单个任务的执行时间依赖于算法的调优,不能保证所有任务的快速执行。

通常启动时间要求快、而需要处理的任务又很多时,会采用MCU+SOC的架构。

图片

MCU+SOC架构框图

2.3 外设、算力与功耗

MCU外设数量有限,除了通用的GPIO、AD、PWM、定时/计数器等,还会针对不同领域增加LCD驱动、电机驱动、蜂鸣器驱动、CAN控制器等端口。

而SOC由于集成了CPU、GPU、DSP等多个核心模块,功能强大,除了基本的外设,还可以处理更多高速、复杂的外设,支持多种通信协议和接口,很多SOC支持3D图形、蓝牙、Wi-Fi、USB、摄像头、音频、视频,更高级的SOC还支持5G通信模块、AI模块。

此外,由于SOC的设计重点在于运算集成化,为降低成本、提高通用性,会将与运算性能无关的部分,如大容量存储和电源模块等置于芯片外部,由客户根据需求自行选型配置。

SOC的内存容量通常以GB为单位,还可外接大容量存储设备,如UFS,容量可达128GB或512GB。相比之下,MCU的存储器则以KB或MB为单位,比如内置2MB的PFlash。

除了外设不同外,芯片的功耗也不同,主频越高,算力越高,系统运行时的功耗也会越高。

MCU的典型功耗为微瓦级,而SOC功耗达瓦级,所以SOC的功耗管理更加复杂,芯片也更容易发热,需要软硬件协调处理。

图片

MCU与SOC对比

SOC通常具有强大的算力,例如其AI算力可达数十甚至上百TOPS,SOC中衡量CPU算力的常用单位是KDMIPS,‌在车载领域中,无论是智能驾驶还是智能座舱,它们对CPU的算力要求极高。比如行泊一体域控制器,要求芯片能支持并行处理5摄像头+5雷达(5V5R)或6摄像头+5雷达(6V5R)的传感器数据,这就要求CPU的算力至少达到20 KDMIPS。

3.小结

MCU的特点是软硬件架构简单,启动速度快,实时性好;SOC的特点是主频高,多核架构,可运行操作系统,算力高,能处理大量的复杂任务!

更多推荐