聊聊MCU的困惑
不知道有没有人心中有这种困惑:
什么是MCU? MCU和MPU有什么区别? MCU和SOC有什么关系? MCU和单片机有什么关系?
相关名词概念缩写:

要搞清楚这些呢,这一切还是要从处理器说起。 我们平时见到的所有处理器,都是属于微处理器架构。 这些微处理器根据不同的功能和性能,大概可以分成4类:

通用高性能微处理器: 也就是我们平时说的CPU,用在个人电脑和服务器上,AMD和INTEL这2个典型代表芯片,应该说得上是目前地表最强的处理器了。
嵌入式微处理器: 也就是文档里面会看到的MPU,性能虽然比不上 通用高性能微处理器 ,但芯片集成度高,外设功能很丰富,主要用在移动设备和多媒体相关应用。
数字信号处理器: 简称DSP,这一类处理器性能比较弱,但是同时功耗也降下来了。DSP比较擅长做数学运算,应用在需要大量实时计算的场合,比如音频编解码。德洲仪器TI的通用DSP应该具有典型代表性。
微控制器: 英文缩写称MCU,江湖人称单片机。顾名思义这类处理器,就是用来做信号控制,也可以做一些简单的运算,它低成本,低功耗,对性能要求不高的地方都可以用得上。比如智能家居,工业控制,物联网等等应用非常的广泛。
MCU最大的一个特点就是没有MMU,没有MMU就不能运行像linux一样的操作系统。 MMU:内存管理器,主要负责物理地址和虚拟地址的相互转换。
所以从目前来看有没有MMU是MCU和MPU最大的区别。
AP和BP的叫法主要是从手机行业里流行起来的。 因为传统的手机系统里面主要由AP和BP两个处理器组成。 AP : 负责运行操作系统和多媒体应用的处理器,通常是MPU类型的处理器。 BP : 负责射频通信的处理器,通常是MCU或DSP类型的处理器。
SOC : 片上系统,就是芯片上有一个系统。把一个系统的核心功能集成到一个芯片上。这个系统并没有明确规定是何种系统,可以是手机系统、通信系统等等 。
比如: 蓝牙SOC:nRF52832,集成了MCU和BLE。 手机SOC:高通骁龙888,集成了AP(MPU+GPU)和BP。
单片机 :单芯片微型计算机。就是把计算机缩小之后,集成到一个芯片上。一个芯片就是一个计算机。麻雀虽小,五脏俱全。一个芯片上有CPU、内存、定时器、中断控制、输入输出等设备。
计算机本身就是一种系统,所以单片机是一种典型的SOC。
那么单片机和MCU之间到底有何恩怨? 从严格意义上讲: 单片机是站在芯片的角度定义了一种计算机系统的形态。 MCU是站在处理器的角度定义了一种处理器类型。
但是我发现单片机这个说法只在国内流行,国外几乎看不到它的存在。 为了搞清楚它们之间的关系,我翻遍几个主流大厂商的官网,都是以MPU和MCU进行分类。



那目前市面上有没有界限比较模糊的处理器产品?
最近几年随着芯片技术的发展和市场需要,也确实出现了一些比较独特的产品:
全志F1C100S:多媒体处理器 ARM9核心,集成32MB DDR,支持SD/EMMC接口,支持linux系统。 成本大约10块钱(浮动)。
恩智浦RT1170:跨界处理器 Cortex-M7+M4双核心,集成2MB SRAM,无FLASH,支持SD/EMMC接口,不支持linux。 成本大约60块(浮动)。
我相信随着芯片技术的不断发展,MCU与MPU的界限以后会越来越模糊。 这些名词术语也会消失在芯片发展历史的洪流之中。

