MCU,全称是 Microcontroller Unit,中文一般称为微控制器。MCU 是一种集成了中央处理单元(CPU)、内存(RAM 和 Flash 存储)、输入输出接口(I/O 接口)、定时器、串口、ADC(模数转换器)等外设的集成电路芯片。它通常用于执行特定的控制任务,因此也被称为单片机。
单片机(英语:Single-chip microcomputer,台湾作单晶片,全称单芯片微型计算机)与应用在个人计算机中的通用微处理器相比,它更强调自供应(不用外接硬件)和节约成本,集成程度更高,但因为规格已经包含,所能实现的功能也较专一。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单。由于其发展非常迅速,旧的定义已过时,所以在很多应用场合被称为范围更广的微控制器(英语:microcontroller unit,MCU)。
单片机的构成
单片机是由CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么CPU是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。
CPU的构成和工作原理
程序计数器
CPU读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC是按1递增设计的,也就是说,当CPU执行了0000地址中的指令后,PC会自动加1,变成0001地址。每执行一条指令PC都会自动加1,指向下一条指令的地址。可以说,PC决定了程序执行的顺序。
指令解码电路
指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。
运算电路
运算电路也称为ALU(Arithmetic and Logic Unit),是完成运算的电路。能进行加法、乘法等算术运算、也能进行AND、OR 、BIT-SHIFT等逻辑运算。运算是在指令解码电路的控制下进行的。通常运算电路的构成都比较复杂。
CPU内部寄存器
CPU内部寄存器是存储临时信息的场所。有存储运算值和运算结果的通用寄存器,也有一些特殊寄存器,比如存储运算标志的标志寄存器等。也就是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。
CPU的工作原理
让我们通过一个具体运算3+4,来说明CPU的操作过程吧。假设保存在内存中的程序和数据如下。
步骤1:当程序被执行时,CPU就读取当前PC指向的地址0000中的指令(该操作称为指令读取)。经过解码电路解读后,这条指令的意思是“读取0100地址中的内容,然后,保存到寄存器1”。于是CPU就执行指令,从0100地址中读取数据,存入寄存器1。
- 寄存器1: 0→3(由0变为3)
- 由于执行了1条指令,因此,PC的值变为0001
步骤2:由于PC的值为0001,因此CPU就读取0001地址中的指令,经解码电路解码后,CPU执行该指令。然后PC再加1。
- 寄存器2:0→4(由0变为4)
- PC:0001→0002
步骤3:由于PC的值为0002,因此CPU从0002地址中读取指令,送给指令解码电路。解码结果是:将寄存器1和寄存器2相加,然后将结果存于寄存器1。
- 寄存器1:3→7
- PC:2→3
于是3+4的结果7被存于寄存器1,加法运算结束。CPU就是这样,依次处理每一条简单的指令。
能记忆的内存
内存是单片机的记忆装置,主要记忆程序和数据,大体上分为ROM和RAM两大类。
ROM
ROM(Read Only Memory)是只读内存的简称。保存在ROM中的数据不能删除,也不会因断电而丢失。ROM主要用于保存用户程序和在程序执行中保持不变的常数。
大多数瑞萨 (Renesas)的单片机都用闪存作为ROM。这是因为闪存不仅可以象ROM一样,即使关机也不会丢失数据,而且还允许修改数据。
RAM
RAM(Random Access Memory)是可随机读/写内存的简称。可以随时读写数据,但关机后,保存在RAM中的数据也随之消失。主要用于存储程序中的变量。
在单芯片单片机中(*1),常常用SRAM作为内部RAM。SRAM允许高速访问,但是,内部结构太复杂,很难实现高密度集成,不适合用作大容量内存。除SRAM外,DRAM也是常见的RAM。DRAM的结构比较容易实现高密度集成,因此,比SRAM的容量大。
但是,将高速逻辑电路和DRAM安装于同一个晶片上较为困难,因此,一般在单芯片单片机中很少使用,基本上都是用作外围电路。
单芯片单片机是指:将CPU,ROM,RAM,振荡电路,定时器和串行I/F等集成于一个LSI的微处理器。单芯片单片机的基础上再配置一些系统的主要外围电路,而形成的大规模集成电路称为系统LSI。
MCU 的主要组成部分
MCU 的结构通常包括以下几个核心模块:
- CPU(中央处理单元)
- 存储器
- I/O 接口(输入输出接口)
- 定时器和计时器
- MCU 包含精确的定时器,用于生成时钟信号、管理时间事件或执行周期性任务。
- 定时器可以用于控制 PWM 输出(如 LED 亮度调节、马达速度控制)或实现精确的时间延迟。
- ADC 和 DAC
- 电源管理模块
- MCU 通常集成电源管理模块,以控制功耗,并根据应用情况进入低功耗模式或睡眠模式。
绝大多数现在的单片机都是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计数器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口——所有这些都被集成在单个集成电路芯片上。
单片机与通用型中央处理单元芯片不同在于前者一般很容易配合最小型的外部支持芯片制成工作计算机,这样就可以很容易的把单片机系统植入设备内部来控制设备了。近年来为了在指令和数据上使用不同的字宽,并提高处理器线速度,哈佛结构在微控制器和数字信号处理器也逐渐得到了广泛的应用。
传统的微处理器是不允许这么做的。它要完成单片机的工作,就必须连接一些其他芯片。比如说,因为芯片上没有数据存储器,就必须要添加一些 RAM 的存储芯片,虽然所添加存储器的容量很灵活,但是至少还是要添加。另外还需要添加很多连线来传递芯片之间的数据。与以上的情况相比,单片机的工作则相对独立,一个典型的微控制器只需要一个时钟发生器和很少的 RAM (SRAM) 和 ROM (EPROM, EEPROM) 就可以在工作了。同时,微控制器具有丰富的输入输出设备,例如模拟数字转换器、定时器、串口,以及其他串行通讯接口,比如 I2C 总线,串行周边接口,控制器局域网等。通常,这些集成在内部的设备可以通过特殊的指令来操作。
单片机时钟频率通常较同时代的计算机芯片低,但它价格低廉,能够提供充足的程序存储器、丰富的片上接口。某些架构的单片机生产厂商众多,例如 8051 系列、Z80 系列。一些现代的微控制器支持一些内置的高级编程语言,比如 BASIC 语言、C、C++等。
单片机的位数
根据总线或资料寄存器的宽度,单片机又分为 4 位、8 位、16 位和 32 比特单片机。4 位单片机多用于冰箱、洗衣机、微波炉、灯具等简单的家电控制中;8 位、16 位单片机主要用于一般的控制领域,例如遥控器手把、空调、发动机等,一般不使用操作系统;32 位用于网络操作、多媒体处理等复杂处理的场合,一般要使用嵌入式操作系统,例如电视、车机、监视器等产品。
MCU 的主要特点
- 单一任务:MCU 通常用于执行特定的控制任务,例如温度监控、马达控制、灯光控制等。
- 实时性:MCU 能够快速响应外部信号,适合需要快速处理的实时控制场景。
- 低功耗:相比单板计算机(SBC),MCU 的功耗更低,适合电池供电或低功耗应用。
- 低成本:MCU 的成本一般较低,特别适合大规模生产和部署。
MCU 的应用领域
由于 MCU 功耗低、实时性高且易于嵌入,常见的应用领域包括:
- 家用电器:如空调、洗衣机、微波炉,控制传感器、按键和显示模块。
- 工业自动化:用于传感器数据采集、马达控制、机器人控制等。
- 汽车电子:如发动机控制、车窗升降、车灯控制等。
- 消费电子:例如玩具、遥控器、智能家居设备。
- 医疗设备:如便携式医疗设备、血糖仪、心电图监测器。
- 物联网(IoT):如智能传感器、环境监测、无线传输模块等。
常见的 MCU 系列和品牌
MCU(微控制器)市场竞争激烈,许多公司推出了不同系列的 MCU,以满足各类嵌入式应用的需求。以下是一些主要的 MCU 品牌及其代表性系列,涵盖了不同架构和应用场景:
1. STMicroelectronics (意法半导体)
- STM32 系列:基于 ARM Cortex-M 内核,STM32 系列拥有广泛的产品线,覆盖了从低功耗到高性能的各个级别。
- STM32F 系列:高性能系列,适合复杂的嵌入式控制,广泛用于工业、消费电子和医疗设备。
- STM32L 系列:低功耗系列,适用于物联网(IoT)和电池供电设备,如 STM32L4 系列。
- STM32G 系列:高效能和高性价比系列,面向常规嵌入式应用。
- STM32H 系列:高性能 MCU,具备较高的计算能力,适合图形界面和音视频处理等需求。
- STM8 系列:8 位 MCU,适用于低成本、低功耗和简单控制的场景。
2. Microchip Technology (微芯科技)
- PIC 系列:Microchip 的 PIC MCU 主要分为 8 位、16 位和 32 位系列。
- AVR 系列:Microchip 收购 Atmel 后继续开发 AVR 系列 MCU,以高效率和易用性著称。
3. NXP Semiconductors (恩智浦半导体)
4. Renesas Electronics (瑞萨电子)
- RX 系列:32 位 MCU,具有较高的处理能力,适合消费电子和工业控制。
- RL78 系列:低功耗 8 位和 16 位 MCU,广泛用于家电、汽车电子和物联网应用。
- RA 系列:基于 ARM Cortex-M 的 MCU,具有丰富的安全功能和低功耗,适用于工业物联网。
- Synergy 系列:包含多个基于 Cortex-M 的 MCU 产品,适合高性能工业和嵌入式应用。
5. Texas Instruments (德州仪器)
- MSP430 系列:超低功耗 16 位 MCU,适合电池供电和传感器应用,广泛用于低功耗物联网、可穿戴设备和医疗。
- Tiva C 系列:基于 ARM Cortex-M4 内核,适合高性能嵌入式控制。
- C2000 系列:专为实时控制应用设计的 32 位 MCU,常用于电机控制和电源转换应用,适合工业自动化和汽车电子。
6. Espressif Systems (乐鑫科技)
- ESP8266 系列:内置 Wi-Fi 的 32 位 MCU,以其低功耗、低成本和 Wi-Fi 集成功能在物联网市场上非常流行。
- ESP32 系列:更强大的 MCU,支持 Wi-Fi 和 Bluetooth 双模连接,广泛应用于物联网、智能家居和便携式设备中。
7. Silicon Labs
- EFM8 系列:8 位 MCU,专为低功耗嵌入式控制应用设计,适用于物联网、智能家居。
- EFM32 Gecko 系列:32 位超低功耗 MCU,基于 ARM Cortex-M 内核,适用于医疗、工业和消费电子等需要长电池寿命的设备。
- Wireless Gecko 系列:带有无线连接功能(如 Zigbee、Bluetooth、Thread)的 MCU,广泛用于智能家居和物联网。
8. Nordic Semiconductor
- nRF52 系列:低功耗蓝牙(BLE)MCU,适用于物联网设备、可穿戴设备和智能家居。
- nRF91 系列:支持蜂窝 IoT(LTE-M 和 NB-IoT)连接的 MCU,适合广域物联网应用,特别是需要低功耗和远程连接的场景。
9. Cypress Semiconductor (赛普拉斯半导体,现为英飞凌的一部分)
10. Intel
总结
MCU 是一类专注于控制任务的微型计算芯片。它集成度高、成本低、功耗低且实时性强,广泛应用于家电、工业自动化、汽车电子和物联网等领域。与普通计算机相比,MCU 更适合那些要求简单控制和快速响应的嵌入式系统。