微控制器/微处理器和不同的位版本,有什么区别?


20

作为一般的工程爱好者,我每天都在学习有关微控制器世界的更多信息。曾经我不太了解微控制器的位版本的重要性。

我已经使用ATmega8几个月了,对于我来说,它似乎工作得很好。我知道诸如时钟速度,内存,IO引脚数量,通信总线类型等如何将一个微控制器与另一个微控制器区分开。但是我不太了解8位,16位和32位的重要性。我确实知道更高的版本允许设备存储更大的数字,但是,这又对我的决定有何影响?如果我要设计一种产品,那么在那种假设的情况下,我会决定8位处理器根本无法使用,而我需要更高的东西。

是否有理由相信,理论上ATmega8的32位版本(在其他所有条件都相同的情况下)将优于8位版本(如果可能的话)?

我可能在胡说八道,但是我想那是我困惑的结果。


Answers:


24

它不是可以存储的数字的宽度,而是可以在单个操作中使用的宽度。通常(但不是必须),这也与本机内存寻址的宽度具有一定程度的相关性,因此可以轻松地映射存储量,而无需进行诸如分段或存储区切换之类的繁琐工作。

当今的32位内核在大多数方面(灵活性,平面内存模型,当然还有性能)都优于8设计,但主要的例外是旧有系统,具有极大数量和价格压力的应用程序(否则定价往往与芯片内存大小(而不是核心宽度)以及工艺/密度的副作用。后者可以提供类似5v的操作,或者在某些情况下,如果试图证明CPU设计本身没有逻辑错误,则可能具有更大的辐射硬度或简单性优势。对许多爱好者来说,最终的过程/年龄副作用是,DIP封装中的8位内核很常见,而这种封装中的32位设备却很少(尽管它们确实存在)。


3
在同步程序的异步部分时,它在单个操作中可以处理的宽度非常重要。如果您需要在8位微控制器上原子读取16位值,则可能需要首先禁用中断,这样可以避免将ISR响应时间保持在较低水平。
ndim

一些8位微控制器可以优于ARM(最受欢迎的32位体系结构)的另一个特征是I / O位旋转。PIC 18Fxx(8位)可以用一条指令设置或清除I / O空间中的任何位,而不管寄存器中保存了什么内容,而ARM通常需要多步处理。与目前可用的PIC芯片相比,ARM芯片每秒可运行更多指令(Scenix曾经提供一些与100MHz PIC兼容的小型兼容芯片,但我认为它们已经停产了),但即使是可用的PIC仍然可以做某些位撞击快点。
2013年

1
尽管通用性较差,但某些ARM设备确实具有诸如GPIOx_BSRR / GPIOx_BRR寄存器之类的东西,可以对其进行写操作以设置或清除各个GPIO位。
克里斯·斯特拉顿

8

该位值为数据总线或数据管道大小,这意味着(大多数情况下)8位MCU只能在每个时钟周期使用0到255之间的值工作。可以将其视为处理器具有8条并行的数字线路。16位有16行,而32位有32行。因此,对于每个时钟周期,它读取这些数据线,并且行数越多,则每个时钟周期可以使用的值越高。

8位= 28 = 256

16位= 216 = 65岁536

32位= 232 = 4294967296

较大的数据总线还允许处理器访问较大的内存地址。

这在数学运算中有很大的不同。16位数字比8位数字给您更高的精度。16位微控制器在处理大于8位的数字上的数学运算时也更加有效。一个16位微控制器可以自动操作两个16位数字,就像整数的常见定义一样。但是,当您使用8位微控制器时,该过程并不那么简单。为按这样的数字操作而实现的功能将花费额外的周期。根据您的应用程序的处理强度以及执行的计算次数,这可能会影响电路的性能。

8位和16位微控制器之间的差异

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.