0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

8位及16位的MCU怎么还没被淘汰?

MCU开发加油站 来源:MCU开发加油站 作者:MCU开发加油站 2022-08-19 14:27 次阅读

互联网时代,MCU无处不在,它被应用于许多领域,比如移动电话、汽车、家电、玩具、物联网设备等等。很多人都知道MCU有8位、16位和32位,一般来说,位数越多MCU处理性能越强。

6569a326-1f86-11ed-ba43-dac502259ad0.png

图① MCU由中央处理器CPU)、存储器和外围功能组成

有的人会疑惑既然都已经有32位MCU了,8位及16位的MCU怎么还没被淘汰?其实MCU并不是单一地看位数大小来决定它的好坏。

首先我们需要先明白MCU中“位”的含义。“位”是一个二进制数字,在一个8位单片机中,数据以8位的形式存储,称为字节(在某些情况下,称为八位元)。一个8位内存寄存器可以存储28个可能值中的一个。根据所使用的整数表示形式,实际值的范围不同。例如,对于无符号二进制数,范围是0到255(28减1) ,使用2的补码表示,范围是 -128(- 1 x27)到127(27-1)。虽然8位单片机中的数据总线是8位宽的,但是地址总线宽度可以不同。地址总线宽度通常为12位到16位。例如,16位宽地址总线的结果是直接可寻址内存空间为65,536(216)字节(称为64kb)。但是这些分类只是开始暗示特定的8位 mcu 的实际功能(图2)。

6578f57e-1f86-11ed-ba43-dac502259ad0.png

图② 8位处理器可以提供广泛的性能能力

8位MCU应用广泛,但与16位MCU和32位MCU相比,性能有限。当8位不够时,设计师可以向32位MCU求助,这可以带来相当大的性能冲击。它们可以支持高端代数操作和浮点数学操作。虽然8位MCU通常仅限于MHz的处理速度,但32位单元的时钟速率可以达到GHz范围,尽管数百个MHz单元更为常见。

提高性能的代价是增加32位 mcu 的编程复杂性,包括多个状态寄存器、复杂的中断管理、多层固件执行特权等等。这就是为什么32位单位如此强大的部分原因。他们可以快速处理数以千计的复杂计算,以满足需要大量数据处理的应用,例如图像处理或高速系统的实时控制。此外,32位处理器的较大内存地址空间往往需要缓冲高带宽的数据流。

通常与32位 mcu 相关的较高时钟速度也会导致能量消耗的增加。一般来说,32位 mcu 可以通过交换更高的能量消耗来支持更高强度的计算。但是在8位和32位之间的选择并没有那么简单。例如,32位单片机可以比8位单片机更快地完成一系列计算,然后进入睡眠模式的时间更长。那么,32位 mcu 是否更节能呢?这种可能性很大,但未必准确。8位mcu可以减少总能量消耗,帮助延长便携式设备的电池寿命。

回到 ICE 的类比,在4个圆柱体(8位)和8个圆柱体(32位)之间有一个中间地带,通常6个圆柱体(16位)的设计可以提供正确的效率和性能组合。

8位 mcu 的性能本质上是有限的,只能通过添加外围设备在一定范围内进行改进。使用32位 mcu 的系统可以提供更高的性能,但是与其他解决方案相比,可能会过度消耗并消耗更多的功耗。

这时候16位 mcu 就脱颖而出了,它们可以结合8位单元的简单性,同时提供增强的性能,而不需要过多的功耗。特别是在不需要大规模多线程和适度内存需求的应用程序中,16位 mcu 可以提供最佳的中间解决方案(图3)。

659a2ba4-1f86-11ed-ba43-dac502259ad0.png

图③:16位 mcu 与8位设备相比,配有专门的电机控制外围设备、数字变流技术、低功耗电池供电设计、高级模拟集成和硬件安全性能提高。(图片: 微芯片

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

外围设备的可用性以及它们所在的位置可能是推动选择8位、16位或32位的重要因素。向8位单片机添加外部通信外设也是一种选择。但是,外围芯片的加入往往会降低使用8位单片机的成本效益。使用一个集成了通信功能的32位单元可以节省成本。向上移动规模发现32位 mcu 通常包含更多的功能,并且能够比8位和16位设备更有效地处理多个外围功能。

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

在复杂度的另一端,处理来自传感器或其他来源的模拟信号并不一定受益于使用32位或16位 mcu。8位 mcu 可以包括内置的模数转换器adc) ,支持8位、10位、12位甚至16位速率。

8位 mcu 可用于支持一些加密功能,以提高安全性。但是这些功能通常是在硬件上实现的,这增加了成本,或者软件增加了相对低功耗处理器的负担。如果高级安全功能很重要,那么使用16位或32位单片机可能是明智的。

所以说,选择多少位 mcu 是个复杂的决策过程(图4),它需要参考多种应用因素,选型需要根据具体情况才能确定最佳的能耗方案。

65c3192e-1f86-11ed-ba43-dac502259ad0.png

图④ 8位与32位单片机的比较

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343615
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • 二进制
    +关注

    关注

    2

    文章

    705

    浏览量

    41250

原文标题:8位、16位和32位,如何选择合适的MCU?

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IAR的unsigned long为什么只有16数?

    刚刚接触STM8,使用的环境是IAR For STM8 V1.301。 里面定义了一个unsigned long的变量,实际运行的时候发现数据类型是16的,造成溢出。 unsigne
    发表于 04-11 08:23

    STM32WLE5JC SPI数据长度设置为8,但接收数据缓存却是16,为什么?

    在STM32WLE5JC单片机中SPI数据长度设置了8,并且相应的接收FIFO也设成了8,但最后收发数据是却是16
    发表于 04-07 07:32

    关于PSSI_DMA 16到32的问题求解

    的数据高16写入了和低16一样的数据,比如我的PSSI数据1ff,那么pData32_rec则为01ff01ff,而我想要的是0x00
    发表于 03-18 08:00

    请问8mcu和32mcu的区别?

    8mcu和32mcu的区别?
    发表于 02-01 06:49

    Ad9265不管怎么调节信号输入的大小,16中的第7输出始终为0,8,9,10,11始终输出为1是为什么?

    请问现在Ad9265芯片已经工作(处于非SPI控制模式,DCO输出正常),但是不管怎么调节信号输入的大小,16中的第7输出始终为0,8,9,10,11
    发表于 12-21 07:37

    AD5544的18数据由2bit地址16位数据位组成,采用标准SPI的时候一次传输8数据该如何传输呢?

    AD5544的18数据由2bit地址16位数据位组成,采用标准SPI的时候一次传输8数据
    发表于 12-19 08:08

    AD7794只能接收到16数据,还有8接收不到是哪里出了问题?

    AD7794是24精度的ADC转换芯片,现在的问题是:我只能接收到16数据,还有8接收不到,想问一下是哪个地方设置有问题呢?
    发表于 12-19 07:56

    816、32单片机中的“XX”指的是什么?

    816、32单片机中的“XX”指什么?
    发表于 10-26 06:43

    求助,关于16数移位到8寄存器的移位操作的问题

    移位操作后面 0XFF有什么好处?高8不是自动补零了么?另外,低8放到一个8的变量中,
    发表于 10-25 07:18

    为什么51单片机的地址总线是16的,但它却是8机?

    为什么51单片机的地址总线是16的,但是它却是8机?
    发表于 10-17 08:28

    STM32怎么外扩8的SRAM?

    手上没有16的,可以外扩8的吗
    发表于 10-13 08:02

    SPI与从机通信问题,从机指令不是816的原因?

    读取从机数据,从机指令为5的一个数据,但是看到stm32寄存器只能8或者16的发送,请教一下该怎么解决这个问题。从机只有识别到有效的输
    发表于 09-27 07:35

    stm8上面的int变量是16还是32的?

    用stvd编译器,那么int是16还是32
    发表于 09-25 07:39

    多点液检测# 液检测

    检测
    jf_86482833
    发布于 :2023年09月18日 21:44:15

    基于STM 8MCU的LoRa无线通信芯片组

    ASR6505是基于STM 8MCU的无线通信芯片组 ASR6505是一种通用的LoRa无线通信芯片组,集成了LoRa无线电收发器、LoRa调制解调器和一个8
    发表于 05-31 10:04