CPU 频率在 Arduino 板中代表什么?

One*_*ero 3 cpu microcontroller arduino frequency

我是 Arduino 和微控制器的新手。

我在研究规格时发现,即使是同一块板子也可能具有不同的输入电压(3.3V 对 5V)的不同频率。那么问题来了,频率代表什么?它是否代表它能够运行多少行汇编代码?或者它能够输出的最大PWM频率?

另一个问题是,如果我正在为特定项目寻找板子,我如何确定我需要先验的频率,而不是尝试一切并看看哪个有效?

让我更困惑的是,当涉及到计算机 CPU 时,似乎较低频率的 CPU 实际上比较高频率的 CPU(例如 Intel)运行得更快。那么我怎么知道微控制器可以运行多快呢?

Max*_*rdt 5

频率是指 CPU 时钟的频率。假设您的 Arduino Uno 在 16 MHz 上运行,即 16,000,000 赫兹。这意味着每秒有 1600 万个时钟周期。CPU 执行程序的字节码。一条汇编器指令实际上可以执行任意数量的 CPU 周期,对于简单的东西通常在 1 到 4 个周期之间,并且需要更繁重的算术和写入内存。因此,这是对每秒可以运行多少“汇编程序行”(即字节码指令)的粗略估计。更好一点的度量是“MIPS”值,即“每秒百万条指令”。还有其他更准确的 CPU 基准测试类型。

如果您查看 AVR 微处理器架构的数据表,您可以看到每个指令所需的周期:(链接:http : //www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf )

时钟计时

所以对于一条ADD Rd, Rr指令,一个AVRCPU需要1个时钟周期。

以台式机 Intel CPU 为例。如今,它们的时钟频率通常为 2 GHz 或更高,即每秒 20 亿个周期,而 Arduino 的 AVR CPU 则为每秒 1600 万个周期。因此,英特尔 CPU 远远击败了 Arduino。再说一次,Arduino 是为完全不同的东西而设计的——它是一个低开销的小型微控制器,不运行操作系统等。这种 CPU(和架构)的用例只是不同,这使得比较它们是不合理的。还有许多其他因素在起作用,例如多核 CPU(4 个 Intel CPU 内核与 1 个 AVR)和命令流水线、内存/RAM 的速度等。在每次使用中都很难将 CPU 与另一个进行比较-情况可能,但对于“通用计算”,台式机 CPU(AMD、Intel、

我希望这能消除一些困惑。