8位和16位微控制器在哪里?为什么没有接管32位?


9

在选择32位微控制器的成本与性能之间的权衡方面,真正的临界点是什么?

换句话说,随着ARM体系结构的兴起和统治,为什么我们仍然使用8位和16位微控制器?它们还便宜吗?

我了解到,非常低端的设备不需要更大,更复杂的体系结构所提供的资源。但是,如果成本似乎趋于相同范围,仍然使用它们的真正动机是什么?


1
能量消耗?
莱昂·海勒2014年

7
我看到Digikey上最便宜的32位µC约为0.64美元,最便宜的8位为0.35美元。如果您是一家将要构建一百万个简单小部件的大公司,那将是一个很大的不同。
塞缪尔

乍一看,我倾向于表示同意,但请看一下我在建议的答案中提出的观点。
Bruno Morais 2014年

2
在DigiKey上甚至看不到批量定价都不是一个明智的指南,因为对于正在批量生产的小型低功耗嵌入式应用中的微型微控制器,没有人从DigiKey购买它们,而且他们购买模具的可能性不大。用于焊接到板上的芯片封装。一个8位的微控制器总是比同等构造的32位的微控制器更小,更简单,因此更便宜,功耗更低。是的,对于许多人来说,利润率下降到了微不足道的地步,但按批量计算,节省的一分钱的一分之一还是值得的。
约翰·U

这是我在Electronic Design网站上看到的相关文章:8位还是32位?选择下一个设计的MCU
Garth Wilson

Answers:


17

也许在一年前,低端的8位和最便宜的32位微控制器之间有很大的不同。情况不再如此。

根据Digi-Key的批量定价,您可以以SOT-23-6封装的2500数量购买35ȼ的8位PIC10F200 。采用SOIC-8封装时,您可以获得2500的36位32位CY8C4013SXI-400(ARM Cortex-M0)。(就制造商实际支付的价格而言,Digi-Key的批量定价并不现实,这可能要少得多,但我认为将类似数量的不同产品之间的价格进行粗略比较是有效的。)

因此,OP是正确的,它们正在融合。

那么为什么不更多地使用32位芯片呢?就像我在第一段中所说的那样,这个价格点和大小均等仅发生在去年或18个月。在拥有足够的芯片来提高竞争力之前,他们还有很长的路要走。

Digi-Key提供的6875 ARM芯片中,只有四只存货,批量定价不到1美元。 。同时,有数百种8美元以下的芯片供工程师选择。

但是可以说,至少有几十个低端的32位微控制器可用。是否会自动从8位中选取它们?

首先,您必须让工程师意识到它们。变革总是有很多阻力。有待学习的新事物-从硬件角度,学习如何将新芯片集成到电路中。有一些新工具,例如在线编程器,新编译器等。对于固件工程师来说,学习如何使用一套全新的外设和定时器(主要是寄存器布局和位含义)。

32位是不错的选择,但是除非有人需要进行大量的计算,否则有什么意义?如果只有四个GPIO引脚,则使用32位寄存器在内部对其进行访问比使用8位寄存器没有优势。

我认为功耗将始终倾向于8位微控制器。

例如,PIC10F200在睡眠模式下在4 MHz和2v时消耗175 µA的电流,而在100 nA时消耗100 nA的电流。CY8C4013SXI-400在睡眠模式下在4MHz,2v和1uA下运行时消耗约800μA电流。(CY8C4013SXI的数据表没有提供4 MHz或2v的数字,因此我不得不做一些估算-数据表说它在6 MHz和3.3v时消耗2 ma的电流。)

因此,ARM唤醒时消耗的电流是其4.5倍,睡眠时消耗的电流是其10倍。看起来似乎不多,但区别在于在纽扣电池上运行3个月或一年。(我假设两个微控制器都主要在进行定时,更新端口等,并且没有进行真正的繁重计算。如果是这种情况,那么8位微控制器必须在长时间内执行大量的多字节算术运算时间,它失去了一些优势。)

有趣的是,ARM消耗的电流大约是8位器件的四倍,而内部寄存器和数据路径的宽度是四位器件的四倍。我不认为这是巧合。对于CMOS,功耗大约与要切换的晶体管数量成正比,而ARM显然对每条指令执行的工作更多。

随着越来越多的ARM供应商推出低端芯片,如果像Microchip这样的供应商进一步降低价格,我也不会感到惊讶。无论如何,由于价格大致相同,尺寸相似的封装,但可供选择的32位芯片数量少得多,我认为8位微控制器仍会存在一段时间-尤其是因为您已经数以万计的工程师熟悉它们。


对于实现了睡眠模式的功耗,您还必须考虑代码效率。如果MCU被触发器唤醒,然后执行一些代码并返回睡眠状态,则完成工作所需的时钟滴答数将非常相关。我认为,MCU的大部分电流消耗来自全速运行的振荡器。要完成与32位处理器相同的工作,8位处理器可能需要大约5倍的周期数,这仅仅是因为即使进行简单的算术运算,它们通常也远不如代码有效。
隆丁

(这并不是因为它们具有8位数据总线,而是主要是因为市场上所有主流的8位处理器都具有70年代和80年代的古老CPU内核设计。)
Lundin

1
@Lundin我在回答中说这话-如果8位代码必须在ISR中做很多花哨的数学运算,则它会失去一些优势。但是,如果只是设置一些标志或更新寄存器,则效率会更高。
tcrosley

5

三要点:

  • 价钱
  • 尺寸
  • 能量消耗

当您订购10,000个芯片时,50美分是一笔不小的数目。当您订购100,000芯片时,甚至更多。

您可以获得比32位芯片小得多的8位芯片,例如SOT23-6封装中提供的PIC10。

32位芯片的时钟速度通常更快,并且比其他8位芯片的功耗更高,因此功耗更高。电池耗电更快,电力系统必须提供更多电流(因此成本更高),等等。

毕竟,您为什么要买剑圣在隔壁喝一杯糖?


2
只需比较同一制造商的两款芯片,例如Microchip的PIC18F25K20和PIC32MX250F512。两种现代MCU。这两个数据手册都有Idd与时钟速度的关系。8位图形最高为5mA,32位图形最高为20mA。如果您考虑一下,那么8位操作将对8个锁存器起作用-32位操作将与32个锁存器相同(或等效)。这是必须操作的锁存器的4倍,因此是典型电流消耗的4倍。
Majenko 2014年

2
32位的空闲电流在〜0.5mA至7mA之间。闲置电流的8位图形以µA标度测量,最高为7µA-在正常室温下运行时仅为4µA ...!
Majenko 2014年

3
挖出一些数据表,寻找自己。
Majenko 2014年

2
假设所有芯片正在处理。事情花费的时间与芯片的速度无关,例如从外部传感器读取数据等。一个80MHz的32位CPU读取100KHz I2C器件的速度不会比16MHz的8位CPU快。
Majenko 2014年

3
不要忘记传统软件(尤其是需要认证的系统)和开发人员的熟悉程度,外围设备/ RAM /闪存组件的选择(具有更高性能处理器的微控制器设计将使用更多的芯片区域来存储内存;带有256字节RAM的Cortex-M似乎不太可能很快出现),以及封装/电压的选择。一个好的答案还应该解释为什么16位市场的表现不佳(以及像AVR这样的更现代的8位ISA),以及为什么4位市场似乎受到很大的限制(手表等)。
保罗·克莱顿

2

我为商业产品开发的uC应用程序几乎从未处理过大于8位的数据。因此,即使32位的价格与8位的价格相同,也没有任何好处。就像其他人所说的,我们去熟悉的地方,所以我们可以更快地将其淘汰。然而,我开发的最后一个却以各种方式将我曾经使用的PIC16推到了极限-但这并不是因为数据大小。如果我再做这样的事情,那么我真的应该学习ARM。


我猜想对于大多数小型微型应用程序,最大的所需数据大小将是16位或24位。大多数应用程序不需要处理大于8位的数据,但是它们需要做一些事情。另一方面,几乎每个曾经制造的8位微控制器(如果不是绝对的话)都有一个进位标志,这使得可以使用一系列操作来执行一个16位(甚至更大)的操作。
supercat 2014年

2

我希望ARM芯片将接管某些功能像“计算机”一样的大多数功能。另一方面,许多8位微控制器习惯于用相对简单的可编程逻辑器件或中等数量的门来完成工作,但实际上,使用8位微控制器可以以更低的成本和/或更少的电流来完成。简单的8位微型。在设计更复杂的应用程序时,使用32位微控制器通常要比使用8位微控制器容易,但是如果芯片的全部目的是例如监视和消除特定输入的信号,如果它变高,则开始输出200在某个输出上以1ms的间隔产生脉冲,然后以2ms的间隔产生100个脉冲,然后以3ms的间隔产生100个脉冲,然后暂停100ms,直到输入变低为止,这样做实际上可以更容易地设计代码在8位微型计算机上而不是在32位微型计算机上。8位和32位微控制器之间的成本差异在很多情况下可能不再足以证明为使项目“适合” 8位微控制器而花费额外的工程工作是合理的,但是在32位器件无法满足需求的情况下没有节省任何工程上的努力,甚至没有理由花一分钱。


我同意,但是要指出的是,保持和精通两个工具链需要进行自身的工程工作。
斯科特·塞德曼

2
@ScottSeidman:是的。另一方面,值得一提的是,某些8位单片机可以在加电时几乎立即开始运行代码,而我见过的32位单片机则需要更长的时间。
supercat 2014年

我想知道我们是否还会看到ARM许可使用8位平台。ARM实现具有一些出色的功能,例如不对整个外围设备和总线进行时钟控制的功能,这些功能可使8位ARMS在其他平台上运行时具有强大的吸引力。如果mfct制造符合CMSIS的库,我认为它们最终将淘汰大型公司。
Scott Seidman 2014年

@ScottSeidman:实际上,我希望看到的设计可以使外设的定时敏感部分(例如计时器,波特率发生器等)在恒定的时基下运行,该时基与CPU速度无关,但对于这种概念,我只看到了很少的支持。在硅片上并不难,但是我猜想合成工具缺乏有效地执行此类操作的方法。
supercat 2014年

@supercat我不确定其他微控制器,但是PIC32具有外围总线时钟的概念,可以将其设置为与主时钟不同的时钟速度。所以,你可以改变CPU的速度,例如以节省电力,并且仍然保持相同的PB时钟,这样你就不必重新编写所有的外围波特率等
tcrosley

1

虽然我同意CPU成本和功耗是主要原因,但我在这里尚未看到的另一个考虑因素是PCB空间。 对于许多嵌入式系统,例如电子浴室秤,并不需要太多的I / O,对于更大的总线尺寸没有好处,而对更快的处理也没有好处。然而,较小引脚的较小封装的好处在于,它使印刷电路板的布局和布线更简单,而且通常更小。如果将一块板设计为2层板而不是4层板,则可节省大量成本,而且8位处理器通常会采用较小的引脚数,因此比32位处理器更容易实现这种节省。位处理器,通常具有更多的引脚和物理上较大的封装。


您意识到这是一个2 1/2岁的问题,对吗?
奥林·拉斯洛普

@Olin另一种观点并没有伤害。
m.Alin

@OlinLathrop:是的,我的8位CPU驱动的时钟/日历工作正常。:)
Edward

0

即使在8位世界中,较新的类型也要花很长时间才能取代旧的类型-看到MCS51仍然活在其利基中,而MCS48仍然在意想不到的地方被发现。

在许多情况下,变革不会发生,因为它没有带来任何附加价值,并且伴随着学习一项新技术的成本,而这项新技术尚未被证明可以持久存在和/或有望成为一个不断发展的目标(这使得对于那些希望专注于MCU技术的人来说很有趣,但是对于那些想要专注于他们的应用程序而又不不断地修复和重新测试生产软件以适应今年的ARM产品的人来说,这很烦人。对于某些人来说,不再开发的组件已经过时,对于其他人来说,它最终变得稳定了,尽管它可能需要变通办法来植入错误,但它至少为这些错误提供了一个稳定的平台。熔岩流并不总是被分解为反模式-倾向于使山脉停留在地面上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.