微控制器不同于微处理器(例如台式机或笔记本电脑中的微处理器),因为它们通常具有大量的内置外围设备,并且还具有两个内部存储器(不仅像微处理器一样高速缓存)。
以下是许多微控制器中的一些外围设备:
- 使用PLL的可编程时钟(锁相环)
- 时钟监视器/看门狗定时器
- ADC(模拟到数字转换器),通常为10或12位
- 模拟比较器
- SPI(串行外围接口)
- I²C(IC间)接口
- DMA(直接内存访问)
- USB(通用串行总线)设备,主机或OTG(移动中)
- UART(通用异步接收器-发送器)
- 8、16或32位定时器/计数器RTCC(实时时钟日历)
- GPIO(通用I / O)端口,带有可选的漏极开路输出和可配置的上拉/下拉电阻
- 外部中断
- 具有优先级和子优先级的中断控制器
- PPS(外围引脚选择)可将各种外围设备映射到物理引脚
以下是较不常见的,但经常在高端32位微控制器(以及一些8位和16位微控制器)中找到:
- DAC(数模转换器)
- IC(输入捕获)模块
- 带PWM(脉冲宽度调制)的OC(输出比较)模块
- SQI(串行四路I / O)接口,通常与SPI结合使用
- I²S(IC间声音)接口,通常与SPI结合使用
- 乙太网路
- 图形控制器或GPU(图形处理单元)
- 具有真正RNG的加密引擎(随机数生成器)
- 可编程CRC(循环冗余校验)
- CAN(控制器局域网)接口
- PMP(并行主端口)
- EBI(外部总线接口)
- EEPROM用于长期数据存储
这就是为什么高端微控制器的数据表通常为500至1000页或更多的原因。
微控制器通常(但并非总是)拥有所有的存储器,包括程序存储和片上数据,而微处理器则使用外部存储器。伴随着这种差异,丰富的外围设备集是微控制器与微处理器的区别所在,后者通常不具有物理接口,只有外部总线和与存储器及外围设备接口的中断线除外。微处理器可能具有内部外设,例如WDT,计时器/计数器,加密引擎等。
上面的清单主要来自144引脚Microchip 32位PIC32MZ2048EFM144的数据手册,该数据手册具有DAC和EEPROM以外的所有这些功能。它还具有FPU(浮点单元)和一些DSP(数字信号处理)指令,以及2 MB的闪存和以200 MHz运行的512K或RAM。
高端微控制器将具有多个串行接口,例如多达六个SPI,六个I²C和六个UART,但是由于引脚限制,不能一次全部激活它们。同样,最多可能有六个模拟比较器,九个定时器/计数器,九个IC和九个OC,以及多达ADC 48通道。
一个非常低端的8位微控制器可能只有一个ADC通道,一个8位定时器而没有串行接口。
六引脚PIC10F322尺寸小巧(SOT-23封装),具有一组不同寻常的外设:
- 三通道ADC
- 两个PWM模块
- 两个8位定时器
- 可配置逻辑单元(CLC)
- 数控振荡器(NCO)
- 互补波形发生器(CWG)
但是没有UART,I²C,SPI等,但是其中任何一个都可以通过“位撞击” GPIO(通用I / O)引脚在软件中实现。
它只有512个14位字(896个字节)的闪存和64个字节的RAM。但是其“数据表”将近200页长,需要解释每个外围设备。
本回答来自Tom Crosley, Embedded systems programmer for over 40 years