【问题标题】:Embedded Systems Bit Count嵌入式系统位数
【发布时间】:2013-03-21 12:52:47
【问题描述】:

如果这是重复的,我深表歉意,尽管我确实在这里搜索过类似的问题,但我只找到了一个。

所以我的工程类编程团队目前使用 32 位 72MHz ARM Cortex-M3 微处理器。我们都是高中生,我们正在努力使用图书馆等等,主要是由于我们正在使用的 Bioloid Premium 制造商的糟糕文档。但是,我们即将购买 8 位 16MHz AVR 微控制器,因为它具有更广泛的在线支持和更易于使用的库 + 更多文档。我的问题是,减少的位数以及较低的处理器速度对我们真的很重要吗?我们不会进行大量流程密集型编程,而更像是一个基本的机器人课程。 那么,8 位 16MHz AVR 微处理器和 32 位 72MHz ARM Cortex-M3 微处理器之间的主要区别是什么? 另外,(如果它有任何相关性):

  1. 我们正在使用带有 CM530 (ARM) 的 Robotis 的 Bioloid Premium,即将切换到 CM510 (AVR)。
  2. 我们将使用 Embedded C 而不是 Robotis 的 RoboPlus IDE 作为我们的指令集。

我搜索了一下,发现了比特数是什么,以及更多关于它对处理器速度的影响,但没有很多关于它的文档给出清晰简洁的答案,这就是我来这里的原因,因为它是为了简洁明了的答案。 (所以请不要告诉我在过去二十分钟里用谷歌搜索它。)

【问题讨论】:

  • 原始的 Arduinos (arduino.cc) 是 AVR,它们非常有能力。
  • 我认为答案实际上取决于“基本机器人”的含义:对于一些基本机器人是闪烁 LED 的电路,对于另一些基本机器人是自主学习机器人,可以扫你的房子、洗衣服和追逐你的猫。这些不同的机器人需要不同的处理能力,这会影响MCU的选择。

标签: arm avr robotics


【解决方案1】:

我们正在使用带有 CM530 (ARM) 的 Robotis 的 Bioloid Premium,即将推出 切换到 CM510 (AVR)。我们将使用 Embedded C 而不是 Robotis' RoboPlus IDE 作为我们的指令集。

我查看了您所指的产品,您的问题似乎缺少您真正应该关心的问题。

Bioloid Premium 套件看起来非常漂亮,所有部件都已组装好并为您配置好了。许多机器人课程通常与硬件设计有关。你不会做任何这些。因此,您的任务实际上归结为对给定的硬件进行编程。

也就是说,看起来类似于 Lego Mindstorms 拖放界面的 RoboPlus IDE 与使用 AVR Studio 用 C 语言编写代码之间存在天壤之别!

我之前使用过 AVR Studio,但最近版本发生了重大变化。您可能需要修改示例程序以在最新版本中运行,并且您可能需要一些帮助。

看起来他们为您提供了足够的示例代码来使用外围设备,但我没有立即看到如何编写 main() 函数来执行类似计划的操作。或许,网上有一些例子。

但要回答您的问题,您可能不会在处理器容量方面遇到任何限制。他们改用更便宜、更强大的处理器来编写更新版本的控制软件,但旧硬件也会很棒。在 C 语言中工作,您将熟悉如何实际使用 MCU,并且这些知识将转移到其他芯片。 AVR 系列是一个很好的开始。它具有许多功能,并且在工作方式上非常明智,并具有大量文档和第三方支持。绝对从 Atmel 下载您正在使用的芯片的datasheet,尽管它是一个密集且难以阅读的内容。您只需要阅读其中的一部分。另外,请查看AVR Freaks 论坛。

这听起来像是一门很棒的高中课程。玩得开心!

【讨论】:

    【解决方案2】:

    我的问题是,减少的位数以及较低的处理器速度对我们真的很重要吗? [...] 那么,8 位 16MHz AVR 微处理器和 32 位 72MHz ARM Cortex-M3 微处理器之间的主要区别是什么?

    多么酷的项目!这是了解处理器工作原理以及位宽和时钟速度的含义的绝佳机会。

    时钟速度在概念上是最容易理解的。 AVR 和 ARM 等微控制器使用时钟晶体来设置电路运行的速度。使用更快的时钟,处理器可以在相同的时间内执行更多的指令。 72MHz 时钟是 16MHz 时钟的 4 倍以上,因此 ARM 处理器的运行速度将比 AVR 快 4 倍。但“跑得更快”的真正含义是什么?处理器执行指令。在基本层面上,这些指令类似于“添加两个数字”和“使该引脚上的电压变高”。 ARM 处理器在这里会快很多,但考虑一下它将与什么硬件对话:伺服系统。伺服电机会监听相当低速的 PWM 信号,因此在该速度下,72MHz 和 16MHz 之间的差异不会变得那么重要。

    但是位宽呢?这个有点棘手。它不会真正影响处理器的运行速度,但会影响它执行的指令的复杂性。假设您想将两个非常大的数字相加。像 100,000 和 200,000 这样的数字。当我们在纸上将它们加在一起时,这只是一步。但是像 AVR 这样的 8 位处理器只能处理 65,536 这样大的数字。因此,为了对这么大的数字进行操作,需要将加法分解为几个较小的步骤。另一方面,32 位 ARM可以处理这么大的数字。所以它一步完成了加法。我希望这是有道理的。

    无论如何,我已经在比您的 16MHz AVR 更慢的处理器上使用伺服系统做了大量工作。它很可能适合您想做的事情,并且就像您发现它有一个更加活跃的爱好者社区一样。如果您正在寻找代码的快速示例,Cornell 4760 page 有一些很棒的项目可供您学习。

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 2011-09-05
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多