摘要:该文总结了(STC)51,STM8,Arduino,ESP8266/ESP32,STM32,树莓派等单片机的优缺点及使用情况,重点对比了ESP32和STM32的性能和使用范围。在今后一段时间里ESP32和STM32仍旧会被广泛应用。当然更需要根据不同的使用情况,选择更加适合的单片机。
1、51单片机/STC单片机:(低成本,寄存器编程)
最经典,使用最为广泛的8位单片机,广泛应用于低端市场。
主要优势:1、价格十分低是最大的优点,自从国产化之后,价格很低。2、开发资料十分丰富。3、完整的按位逻辑操作系统。
主要缺点:1、运行速度慢,性能与stm32单片机等相比相差很多,适用于对性能要求不高的场合。2、通信接口,定时器,中断等外设不如stm32丰富,片上资源较少,使用十分注意内存的使用。
STC公司(南通国芯微电子有限公司),已经占有了全球80%以上的51单片机的市场份额。近几年STC公司对51单片机进行了改进,所以运行速度、外设、稳定性等都有了很大的提升,而价格仍旧非常低。
2、STM8:(低成本,库函数编程)
STM8和51都是8位单片机,同样应用于低端市场,支持寄存器开发和库函数开发。与51单片机相比,stm8外设更多,在正常使用情况下stm8比51更有优势。但在恶劣环境中,51单片机比stm8抗干扰能力更强。
3、Arduino:(在国外很流行,国内开源环境不好)
主要优点:1、Arduino最大的优势就是开源,软硬件完全开放,技术上不做任何保留。能根据现有丰富的库进行更改就能做复杂的项目。
2、上手速度很快,学习者不需要懂单片机硬件和寄存器原理。
3、代码可读性高,指令简单,只需要有一点C语言基础就能上手。
缺点:1、正版Arduino板价格稍贵。
2、适合用于DIY项目。
3、在国内误导下由于该开发板上手很快,中学生都能玩的转,被挂上低端玩具的名头。实际上该开发板性能碾压51和stm8。稳定性需要进一步确认。
4、ESP8266和ESP32:(性能很强,广泛用于物联网)
乐鑫聚焦物联网领域好多年了,先是推出了ESP8266这样的低价wifi芯片,安信可又推出了基于该芯片的wifi模组,使得基于wifi的物联网行业进步了一大块。要知道,传统的wifi模组,即便是最便宜的也要几十块钱。而ESP8266的出现,直接把价格控制在10元左右。2016年,乐鑫推出了ESP32,它的性能相比ESP8266又向前迈进了一大步,价格20元左右,同价格区间内几乎看不到对手。
外设对比 |
性能对比 |
||||
外设 |
ESP8266 |
ESP32 |
模块 |
ESP8266 |
ESP32 |
GPIO |
9个 |
24个 |
CPU核心数 |
单核 |
双核 |
I2C |
任意IO |
任意IO |
主频 |
80M/160MHz |
240Hz |
SPI |
支持 |
支持 |
蓝牙 |
无 |
蓝牙4.2 |
串口 |
1个 |
3个 |
WiFi速度 |
72.2Mbps |
150 Mbps |
以太网MAC |
支持 |
||||
PWM |
任意IO |
||||
DAC转换 |
支持 |
||||
ADC转换 |
支持 |
||||
CAN总线 |
CAN2.0 |
根据表中可见ESP32可用引脚比ESP8266更多,且性能上升了不止一倍,有了ESP32一般都不用ESP8266了。ESP32总结下来:
优点:1、双核处理器能够多线程实时处理
2、高速主频240MHZ,对比STM32F1的72MHZ和STM32F4的168MHZ,速度快很多,而且价格上比STM系低很多。
3、自带蓝牙和Wifi,不用另外购置模块,降低了成本。
4、编程上可以使用arduino环境,编程难度比STM32低很多,开源项目很多,开发速度很快。
缺点:引脚数量过少仍旧是ESP32的弊端之一
在小吃机开发中需要大量的IO口来检测开关状态,同时需要大量引脚控制电机,因此选择了STM32。
但ESP32的性能、物联网开发以及价格上的优势都在STM32之上。
5、STM32:(目前国内主流的控制单片机)
STM32是一种基于ARM架构的32位微控制器。
优点如下:
1、通讯接口十分丰富,如USART,I2C,SPI,CAN,以太网通讯等。
2、可用GPIO数量非常多,可以控制大量设备。
3、定时器数量很多,中断系统也十分完善,能实现非常复杂的逻辑。
4、多路ADC和DAC功能,可用于读取大量传感器等。
5、可运行Free RTOS,RT thread,UCOS等实时操作系统,可用于控制复杂系统。
6、可连接SD卡,LCD屏,有摄像头接口,可读取USB功能等。
缺点:
1、目前国际芯片形势不好,价格一直在上涨。但STM32F1系列价格相较于STM32F4系列价格会低很多,如果不需要以太网、摄像头和DACD等功能时可以考虑F1系列。
2、上手有一定难度,需要一定的时间。
(目前小吃机购买使用的stm32)STM32F407ZGT6:
STM32:ARM内核32位微控制器。F:代表stm32子系列。407:ARM Cortex-M4内核,高达1MB闪存/192+4KB RAM,包含以太网,USB,和摄像头等接口。Z:144针脚。G:1MKb 闪存(大容量)。T:LQFP封装类型。6:工作温度范围-40~85℃。
命名规则:
STM32 |
F |
407 |
Z |
G |
T |
6 |
B |
xx |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1、产品系列:
STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU;
2、产品类型:
F:通用快闪(Flash memory);L:低电压(1.65~3.6V);F类型中F0xx和F1xx系列为2.0~3.6V;F2xx和F4xx系列为1.8~3.6V;W:无线系统芯片,开发版。
3、产品子系列:
050:ARMCortex-M0内核;051:ARMCortex-M0内核;
100:ARMCortex-M3内核,超值型;101:ARMCortex-M3内核,基本型;102:ARMCortex-M3内核,USB基本型;103:ARMCortex-M3内核,增强型;105:ARMCortex-M3内核,USB互联网型;107:ARMCortex-M3内核,USB互联网型、以太网型;108:ARMCortex-M3内核,IEEE802.15.4标准;151:ARMCortex-M3内核,不带LCD;152/162:ARMCortex-M3内核,带LCD。
205/207:ARMCortex-M3内核,不加密模块。(备注:150DMIPS,高达1MB闪存/128+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)
215/217:ARMCortex-M3内核,加密模块。(备注:150DMIPS,高达1MB闪存/128+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)
405/407:ARMCortex-M4内核,不加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)。
415/417:ARMCortex-M4内核,加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KB RAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)。
4、管脚数:
F:20针脚;G:28针脚;K:32针脚;T:36针脚;H:40针脚;C:48针脚;U:63针脚;R:64针脚;O:90针脚;V:100针脚Q:132针脚;Z:144针脚;I:176针脚;
5、Flash存存容量:
4:16KBflash;(小容量);6:32KBflash;(小容量);8:64KBflash;(中容量);B:128KBflash;(中容量);C:256KBflash;(大容量);D:384KBflash;(大容量);E:512KBflash;(大容量);F:768KBflash;(大容量);G:1MKBflash;(大容量)
6、封装:
T:LQFP;H:BGA;U:VFQFPN;Y:WLCSP/WLCSP64;
7、温度范围:
6:-40℃-85℃;(工业级);7:-40℃-105℃;(工业级)
8、内部代码:
“A” or blank;A:48/32脚封装;Blank:28/20脚封装;
9、包装方式:
TR:带卷;XXX:盘装;D:电压范围1.65V–3.6V且BOR无使能;无特性:电压范围1.8V-3.6V且BOR使能;
6、树莓派:(复杂计算,如图像识别等)
树莓派是一种微型电脑,主要运行Linux操作系统,连上屏幕、鼠标和键盘就是一个电脑了,可以进行复杂计算,例如图像处理等。有操作系统就意味着可以直接在系统上进行编程,而单片机需要在电脑上编译烧录。
缺点就是:相较于单片机价格很贵。工业控制上,进行大量计算时性能有所不足,直接在电脑上计算可能更好。更适合小型智能化设备。
总结:
1、51和stm8更适合低端市场,如遥控器、小家电、小玩具中。当然STC公司经过升级的stc51单片机也可以考虑使用在工业控制中。
2、Arduino所有硬件和软件全部免费,有丰富的开源项目,且对开发者要求不高,可以快速上手。但由于国内专业人士的偏见,Arduino目前不适合商用(个人看法)。
3、esp32性能极强,性价比很高,自带蓝牙和WiFi,而且各种接口和外设都十分丰富,但是数量上却力不从心。如果需要控制的东西较少,在esp32的IO口允许范围内,绝对是最好的选择。也可以运行实时操作系统。
4、stm32各种接口和外设都十分全面,基本囊括了目前所有需要,且定时器、中断、PWM通道等数量极多,可用于大量开关和传感器的监测,以及大量控制电机等。而且可以运行实时操作系统,工控领域也应用广泛。而且stm32型号很多,可根据需要选择适合的型号,各种型号程序之间的移植也不复杂,方便程序的借鉴使用。相比于esp32,stm32只有单核心,且即使是stm32f4系列主频也只有168MHz,性能上不如esp32,如果需要WiFi时另外需要购买模块。
另外,工业控制中,当工况恶劣时,PLC控制更具有优势。当然除了这六种还有其他类型单片机,由于尚未接触,故不做论述。