技术热线: 4007-888-234

8位MCU、16位MCU和32位MCU?位越多越好吗?

更新时间: 2021-12-07
阅读量:8559

MCU中的位越多越好吗?这类似于问:内燃机(ICE)中的气缸越多越好吗?外设和其他功能很重要,而不仅仅是位(或bit)。对于MCU,总功耗、外围设备的可用性、延迟需求和其他因素都很重要,而不仅仅是位数。

MCU无处不在。它们存在于手机、玩具、车辆、白色家电、可再生能源系统、物联网(IoT)设备等等中。MCU对于控制从电机到闪烁LED的硬件功能至关重要。MCU的基本架构包括一个中央处理单元、一些存储器和外围功能(图1)。MCU从传感器、开关和其他设备获取输入,并按照预编程指令的规定控制外围设备的功能,例如显示器、执行器和电机的驱动器。根据所控制功能的复杂性和各种输入所需的处理量,MCU有8位、16位和32位可供选择。一般来说,位数越多,处理潜力越大。

mcu-structure-en.jpg

“位”是“二进制数字”。在8位MCU中,数据以8位为一组存储,称为字节(或在某些情况下,八位字节)。一个8位内存寄存器可以存储可能的28个值之一。根据所使用的整数表示,实际值的范围会有所不同。例如,对于无符号二进制数,范围是0到255(2^8减1),使用二进制补码表示,范围是-128(-1X2^7)到127(2^7–1)。虽然8位MCU中的数据总线是8位宽,但地址总线的宽度可能会有所不同。12到16位的地址总线宽度很常见。例如,一条16位宽的地址总线会产生65536(2^16)个字节(称为64KB)。但这些分类只是开始暗示特定8位MCU的实际功能(图2)。

8-bit-processors.png

8位MCU用途广泛;它们提供简单的编程、能源效率和小封装尺寸(有些只有六个引脚)。但这些MCU通常并非设计用于实现网络和通信功能。最常见的网络协议和通信软件堆栈是16位或32位。某些8位设备可以使用通信外设,但16位和32位MCU通常是更有效的选择。尽管如此,8位MCU通常用于各种控制、传感和接口应用。

一、32位更强大

虽然8位MCU用途广泛,但它们的性能同样受到限制。当8位不够用时,设计人员可以求助于32位MCU,它可以带来相当大的性能冲击。32位MCU的应用范围很广,它们可以支持高端代数运算和浮点数学运算。虽然8位MCU通常仅限于数MHz的处理速度,但32位单元的时钟速率可达到GHz范围,尽管数百MHz单元更为常见。

提高性能的同时也增加了32位MCU的编程复杂性,包括多个状态寄存器、复杂的中断管理、多层固件执行权限等。这是32位单元如此强大的部分原因。它们可以为需要大量数据处理的应用程序快速处理数千个复杂的计算,例如图像处理或高速系统的实时控制。此外,32位MCU通常需要更大的内存地址空间来缓冲高带宽数据流。

通常与32位MCU相关的更高时钟速度也会导致能耗增加。一般来说,32位MCU可以通过牺牲更高的能耗来支持更密集的计算。但是在8位和32位之间的选择并不是那么简单。例如,32位MCU可以比8位MCU更快地完成一系列计算,然后进入更长时间的睡眠模式。那么,32位MCU是不是更节能呢?这是可能的,但不一定是真的。8位MCU可以降低整体能耗,并有助于延长便携式设备的电池寿命。选择并不简单,必须根据具体情况确定最佳能耗解决方案。

二、介于中间MCU

回到ICE的类比,在8bit(8位)和32bit(32位)之间有一个中间地带;通常,16bit(16位)设计可以提供恰到好处的效率和性能组合。8位MCU的性能本质上是有限的,只能通过添加外设在有限的范围内提高。使用32位MCU的系统可提供更高的性能,但与替代解决方案相比,可能会过大并消耗更多功率。

这就是16位MCU的用武之地,它们可以结合8位单元的简单性,同时提供增强的性能而不会造成过多的功率损失。特别是在不需要大量多线程和适度内存需求的应用中,16位MCU可以提供最佳的中间解决方案(图3)。

16-bit-MCUs.jpg

外围设备可能是关键。一些16位MCU具有数学协MCU,支持密集的数学计算,类似于一些32位单元在相同的时钟速度下。而且,有许多支持16位MCU的通信堆栈。例如,如果实施正确,以太网、控制器局域网(CAN)、通用串行总线(USB)和Zigbee都是可以在16位MCU上高效运行的通信协议。与许多32位解决方案相比,使用16位MCU可以提供更简单的电路板实现。

三、MCU外设

外设的可用性及其驻留位置可能是推动选择8位、16位或32位的重要因素。可以选择向8位MCU添加外部通信外设。但是,添加外围芯片通常可以消除使用8位MCU的成本效益。使用已经集成了通信功能的32位单元会更便宜。向上扩展会发现32位MCU通常包含更多功能,并且可以比8位和16位设备更有效地处理多个外围功能。

涉及更大数量和快速计算的应用程序受益于16位和32位MCU的使用。可以从16位或32位MCU受益的示例包括FFT计算、高质量音频或视频、高分辨率图像处理和各种边缘计算应用。此外,机器学习和人工智能实现通常需要32位,通常带有特定于应用程序的加速器。

另一方面,处理来自传感器或其他来源的模拟信号不一定受益于使用32位或16位MCU。8位MCU可以包括支持8位、10位、12位甚至16位速率的内置模数转换器(ADC)。

8位MCU可以支持一些加密功能以提高安全性。但这些功能通常是在硬件中实现的,这会增加成本或软件,从而增加了相对低功耗MCU的负担。如果更高级别的安全功能很重要,那么使用16位或32位MCU可能是明智的。

四、哪个MCU更好?

那么,比特越多越好吗?不,不一定。这是一个复杂的决策过程(图4)。成功的设计确定了以最具成本效益的方式提供所需性能的MCU架构。对于电池供电的设备,应选择最节能的方式。

8aba1799dc14457581217e5a800f67e6.jpg

确定最佳MCU不一定是一个简单的问题。有时,这不仅仅是关于当今的性能要求;随着时间的推移,可能需要提供具有增长潜力的解决方案来处理更具挑战性的应用需求。例如,安全需求可以不断发展。适应未来对新的或增加的安全功能的需求的能力可能是一个重要的应用考虑因素。

如果特定应用需要大量随机存取存储器(RAM),与8位甚至16位设备相比,使用32位MCU通常会提供更多的RAM。在比较各种MCU替代方案时,延迟是另一个需要考虑的因素。使用8位、16位或32位MCU可能“同样出色地”执行某些功能。但是,如果应用程序需要低延迟,则可能需要具有更快时钟速率的16位或32位MCU的速度。

以上就是英锐恩单片机开发工程师分享的“8位MCU、16位MCU和32位MCU?位越多越好吗?”。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。