N位微控制器的特性是什么?


9

我听说过8位微控制器和16位微控制器。我什至听说过7位微控制器和1位微控制器。

这些组的一般属性是什么?如何选择用于项目的类型?


4
我从未听说过7位微控制器。抱歉,如果您对我在electronics.stackexchange.com/q/32097/4512上发布的评论感到困惑。那真是个玩笑。
奥林·拉斯罗普

4
大!奥林,我想警告您这个问题是可以预期的!:-)
stevenvh 2012年

Answers:


11

还有4位和32位微控制器。PC中使用64位微处理器。

数字是指寄存器的宽度。寄存器是微控制器的核心。许多操作都使用寄存器来移动数据或进行算术或逻辑运算。这些操作在ALU(算术和逻辑单元)中进行。

在此处输入图片说明

某些操作仅使用1个参数,例如清除寄存器或对其进行递增。但是,许多人会接受两个论点,这导致了ALU的典型的上下颠倒裤子代表。和是自变量,ALU将基于当前操作生成结果两个参数的运算可以是“将15加到寄存器R5并将结果存储在存储器地址0x12AA”。这要求在常量“ 15”(来自程序存储器),寄存器文件和数据存储器之间存在路由。该路由通过数据总线发生ABC。有一条内部数据总线连接寄存器,内部RAM和ALU,对于微处理器和某些微控制器,有一条外部数据总线连接到外部RAM。除了少数例外,数据总线的宽度与寄存器和ALU的宽度相同,它们共同决定了它是哪种类型的微控制器。(8088是一个例外,它内部具有16位总线,而外部只有8位。)

4位控制器具有4位寄存器,该寄存器只能表示16个不同的值,从0到十六进制0xF。数量不多,但是足以与数字时钟中的数字一起使用,而这正是使用它们的领域。

几十年来,8位控制器一直是业界的主力军。您可以用8位存储0到255之间的数字。这些数字还可以表示字母和其他字符。这样您就可以处理文本了。有时2个寄存器可以组合成一个16位寄存器,最多允许65535个数字。在许多控制器中,大数字必须在软件中进行处理。在这种情况下,甚至可以使用32位数字。
大多数8位控制器都有一个16位程序计数器。这意味着它可以寻址最大64kBytes的内存。对于足够的许多嵌入式应用程序,有些甚至只需要几KB。
例如,一个停车场监视器,您必须记录汽车数量并在LCD上显示,这通常是使用8位控制器执行的操作。:-)

下一步是16位。由于某些原因,他们从来没有成功过8位或32位成功者。我记得摩托罗拉HC12系列的价格过高,无法与32位控制器竞争。

32位是当今的主流。使用32位程序计数器,您可以寻址4GByte。ARM是流行的32位控制器。有数十家制造商提供各种尺寸的ARM。它们是功能强大的控制器,通常板上具有许多特殊功能,例如USB或完整的LCD显示驱动器。
ARM通常需要大型软件包,以适应具有大量Flash的大型裸片,或者因为不同的功能需要大量I / O引脚。但是此软件包说明了ARM提供的可能性。

在此处输入图片说明

是一款16针ARM,封装尺寸仅为2.17mm x 2.32mm。



1
过去有各种各样的宽度。如果我没记错的话,PDP-8是12位,而CDC 6600是60位,具有6位字节。如今,我们看到了几乎4(2 ^ N)位的宽度。
奥林·拉斯罗普

该ARM CPU的部件号是什么?
Rocketmagnet 2012年


5

简单的答案:一个N位微控制器具有一条数据路径和ALU,可以处理N位块中的数据。

长答案:短答案在95%的时间内是正确的。长答案令人困惑。一些CPU / MPU的部分大部分为N位,而某些部分为M位。例如,它可能是一个带整数乘法器的8位CPU,可处理16位数据。英特尔系列的CPU(从当前的i7到8088)通常可以组合使用各种8位和16位寄存器来获得16位或32位。然后,营销人员获得这些数字,并决定在其营销材料中使用它们,最终得到称为16位等的8位MPU。

比这更奇怪。一些营销人员会提高MPU的指令大小。Microchip PIC是一个很好的例子。如果您不小心,可能会将其与数据路径中的位数混淆。


Microchip的基准和中档处理器分别具有12位或14位指令字。两者均归为8位处理器,因为数据总线为8位。一家中国公司(义隆微电子)使用称为EM78的13位指令字对14位PIC进行了改进。对于所有这些,数据以字节为单位寻址,而程序存储器以字为单位寻址,但是程序存储器有时被广告为这么多字节长,这给可以编程的实际指令数增加了数值!
tcrosley 2012年

4

“ N位”是什么意思?

抱歉,如果第一段的内容太低了,但希望它能对以后的读者有所帮助:以M为底的以N个数字表示的数字只能和一样大。例如,使用9个小数(以10为基)的数字,您最多只能记下10 ^ 9或0到999,999,999的数字。使用8个二进制(基数2)数字(“ Binary digIT”是一个“位”),您可以存储2 ^ 8 = 256个数字。MN

微控制器或处理器之所以称为“ N位”,是因为控制器和处理器具有基本的数据宽度。每个寄存器可能是N位,每条指令可能是N位,数据总线可能是N位,存储器可能用N位寻址。尤其是在较低级别,此规则有例外:例如,一个8位控制器可能具有12位内存总线,但是您可能会猜想,当您的寄存器仅包含8位时,这很难使用。但是,所有处理器都具有基本的本机数据类型宽度。考虑以下代码:

uint32_t x,y,z;  // Declare 3 32-bit variables
z=x + y;         // Add two of them to store in the third

如果只能添加8位数字,您将如何执行此操作?您需要将每个变量分解为4个8位数字,分别进行加法和携带,然后将它们合并以获得结果。这至少需要16条指令!但是,在32位处理器上,这是一条与一样简单的指令mul r0, r1, r2。从这个简单的示例可以看出,较大的处理器位宽度可以更快地处理更多数据。

历史笔记

整个历史的趋势是从较小的位宽到较大的位宽。早在1970年代初,英特尔发布了第一个单芯片控制器4004。它是一个4位处理器。由于晶体管又大又耗电,而且设计具有革命性和复杂性,因此可以将所有这些压缩到芯片上。此后不久,他们发布了8位处理器8008。几乎没有使用4位处理器,但是有很多8位控制器,PIC和AVR是仍在使用的现代示例。比其他任何类型的处理器都可以制造更多的8位处理器!它们仍然是处理小型,简单且成本敏感的任务的最受欢迎控制器。下一个明显的过渡是向16位控制器,但是这些还没有他们的8位或32位弟兄所能及。代替,到了32位处理器(如ARM设计并在几年前设计到PC CPU中的处理器)的跃迁。尽管现在在PC中很重要,但我还没有意识到任何重要的64位微控制器。

8位与32位

到目前为止,最受欢迎的类型是8位和32位处理器。32位处理器变得越来越流行。每年左右,一些贸易杂志都会发表标题为“ 8位元死了吗?”的文章。32位处理器正变得越来越流行,功能更强大且更便宜,仅剩下三个理由选择8位处理器:

  1. 惯性 -如果您有8位处理器的代码和使用经验,则可能无法通过将所有内容转换为32位体系结构来获得足够的投资回报。
  2. 低功耗 -控制器中的每个晶体管都会耗散功率,虽然尺寸不再是问题,但32位处理器的确具有更多晶体管,因此在关闭状态下会耗散更多电流。这仅是极端的纽扣电池供电设计中的问题。
  3. 低成本 -如果您只需要十几条汇编指令和2个IO引脚,那么即使是8位处理器也可能会显得过高。在低端,最便宜的8位控制器的批量价格不到0.40美元,但最便宜的32位处理器的价格仍为0.80美元左右,但比8位替代产品功能强大得多。如果您要为接下来的一百万个“快乐的一餐”构建一个带有一个闪烁的LED的玩具,那么这是一个令人信服的价格折扣,如果没有的话,那并没有真正的改变。

32位处理器变得越来越普及,但是由于这三个原因,几乎没有迹象表明8位处理器会像老式4位处理器那样消失。

以Arduino为例

考虑像Arduino这样的应用程序。

Arduino使用Atmel控制器,即8位ATmega32。ATmega以20 MHz运行,具有4k RAM,具有SPI,I2C和UART通信,一些硬件中断以及8个10位ADC。批量达100片时,该芯片的价格为3.90美元。

类似的32位芯片可能是Atmel的另一部分,即使用共享ARM Cortex-M3内核的32位AT-SAM3。该芯片的运行频率为64 MHz(快3倍,但请记住,ATmega需要16条指令来进行单个32位加法)。它具有16k的RAM,是ATmega的4倍。它具有I²C,MMC,SPI,SSC,UART甚至USB外设。它具有DMA(直接存储器访问,也使其更快,更高效),一组灵活而强大的中断,10个12位ADC和2个DAC。在所有类别中,它都仅超过ATmega。我试图找到一个具有类似功能集的32位控制器,这是我能做的最好的事情。这个芯片多少钱?数量为100时,它的价格为2.34美元:您可以用更少的钱获得更高的性能。应该是一个简单的决定。

那你的例子呢?

对于这里的示例情况,

进出停车场的汽车数量必须计算在内,并在液晶显示屏上显示。最多允许十辆车进入停车场。

您可以进行一些简单的数学运算,并带有小数字并在LCD上进行简单显示(或者说,实际上,由7段LED照明数字制成的大符号会更清晰,更便宜)。8位控制器可能完全可以胜任此任务。但是,如果您确实想要LCD怎么?8位控制器即使要驱动低分辨率的VGA显示器也很困难,而您可以轻松获得具有HDMI输出的32位控制器的开发板。如果您现在想在屏幕上显示它,但以后又想将其连接到公司局域网上的以太网电缆,并在公园办公室的主管的计算机上显示结果,该怎么办?您可以通过板载以太网通信总线轻松获得32位控制器,而使用8位控制器则无法做到。Xport,但其中包含一个32位处理器。

对于一次性项目,我每次都建议使用32位控制器。您的时间比8位和32位控制器之间的价格差异更有价值。


关于您提到的7位处理器,可能从来没有,也永远不会有这样的机器。从体系结构的角度来看,使用2的幂的位宽度更为明智。


在8bit与32bit的比较中:尽管32bit控制器比8bit控制器更便宜(单价)并且具有更多功能,但就PCB而言,它们的成本更高。
shimofuri 2012年

1

CPU的位大小与通常结合在一起的一些特征有关:

  1. 指令集的大部分可以在其上操作的最大操作数
  2. 通用寄存器最多的大小
  3. 可以在通用寄存器和存储器之间移动数据的最大可用总线的大小
  4. 可以在通用寄存器之间移动数据的最大可用总线的大小
  5. 用于通用数据计算的ALU的大小

对于某些处理器,所有这些数量都具有相同的值。对于其他人,它们可能具有不同的价值。Z80尽管包括一些16位寄存器,但其大多数指令集都使用8位寄存器,并且几乎所有以16位量运行的指令都需要额外的周期(唯一的例外是EX DE,HL);它是一个8位CPU。但是,不能仅用一种方法来很好地描述68008 N:它具有一条指令集,该指令集主要可以对32位量进行操作,并且它可以IIRC一次在寄存器之间32位之间移动数据,但是它的主要ALU是只有16位,其内存总线只有8位。根据所测量的内容,可以将其视为32位,16位或8位CPU。

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.