微控制器
首先介绍一下微控制器,微控制器(MCU,Microcontroller Unit)是一种嵌入式系统的核心器件,通常集成了中央处理器(CPU)、存储器(RAM和ROM)、输入输出接口(I/O)以及外设(如定时器、串口、ADC/DAC等),是一个高度集成的小型计算机,通常可以独立运行程序。
单片机
单片机,又名单片微控制器,是一种在单个芯片上集成了处理器、存储器和输入/输出接口的微型计算机。通常用于简单的控制任务,如传感器数据的采集和处理。
单片机通常没有操作系统(或运行的是简单的实时操作系统,例如RTOS),这是因为它设计的初衷是低功耗、低成本和特定任务处理,程序是直接运行在硬件上的。程序的主函数(main()
)会从单片机复位后直接开始执行,所有的功能都由程序设计来实现。
图示是一个具有40个引脚的单片机,其内部集成了 CPU、存储器和输入/输出接口等,有的微型计算机可以根据需要更换电路板上的CPU、存储器和输入/输出接口部件,从而提升性能和扩展功能;而单片机是无法更换CPU、存储器和输入/输出接口的(因为它们都做在一块集成电路内部),如果要进行复杂的控制,可以选用功能强大的单片机。
STM32、ESP32
STM32 和 ESP32 都是单片机,在本质上没有区别,但是功能和性能不同。
Arduino
Arduino是一个开源的电子原型平台,包含硬件(开发板)和软件(Arduino IDE)。硬件中包含微控制器,一般是基于 AVR 微控制器或者 ARM 微控制器,比普通的单片机性能更好,也有包含 ESP32 的单片机。
树莓派
树莓派是一个低成本的小型单板计算机(SBC),可以运行Linux系统。单板计算机(SBC)和单片机类似,是一种将 处理器(CPU)、内存(RAM)、存储(如 SD 卡或 eMMC)、输入输出接口(I/O)、电源管理等 集成在单一电路板上的计算机。
总结
特性 | STM32 | ESP32 | Arduino | 单片机 | 树莓派 |
---|---|---|---|---|---|
类型 | 微控制器 | 微控制器 | 开发平台 | 硬件核心 | 单板计算机 |
主控芯片 | ARM Cortex-M | Xtensa LX6/LX7 | AVR/ARM/ESP32 | 8051/ARM等 | Broadcom SoC |
系统 | 无操作系统(裸机/RTOS) | 无操作系统(裸机/RTOS) | 无操作系统 | 无操作系统(裸机/RTOS) | Linux |
应用范围 | 工业/高性能控制 | 物联网 | 教育/创客 | 广泛嵌入式应用 | 教学/边缘计算 |
开发难度 | 高 | 中等 | 低 | 依种类而定 | 高 |
实时性 | 高 | 高 | 较低 | 高 | 低 |