你能以 32 位微控制器为基础建立计算机吗?

电器工程 微控制器 电脑
2022-01-09 17:53:57

我们家里都有(大部分)32 位机器。但是 32 位机器中有一个微处理器。我正在阅读一篇关于 ARM Cortex 的文章。它是一个 32 位微控制器。现在这引起了我内心的一个问题。制造微控制器以减少微处理器周围的外部电路,然后微处理器变得更强大,而微控制器长时间保持8位形式。但是现在我们有了 32 位微控制器,我们就不能像基于这些东西的计算机一样吗?

4个回答

绝对地!看看几乎所有的手机。例如,摩托罗拉 Droid 使用基于 TI OMAP ARM 的微控制器,在 Linux 之上运行 Android。基本上,一个完整的计算机操作系统和许多其他小工具都在上面。在我的客户构建的一些产品上,他们使用可以在其上运行 Linux 的 FreeScale PowerQuicc I 和 II 32 位处理器/控制器。PowerQuicc 基本上有一个 PowerPC 内核和一个单独的 RISC 处理器,用于以高度可配置的方式处理所有外围设备。这是一个荣耀的微控制器。

您还必须记住,几年前计算机不是在 32 位处理器上运行,而是更像是 8 位处理器(当时是 4 位),如 Commodore 64。然后它们迁移到 16 位、32 位等。微控制器与具有同等位架构和速度的微处理器之间确实没有太大区别。微控制器通常缺少浮点单元,但这可以用定点数学来弥补。例如,最初的摩托罗拉 68000 处理器(16 位)被用来为那些老式的 Macintosh 计算机供电,然后多年来被转变成用于许多嵌入式电子应用的微控制器版本。

您需要查看微控制器的作用以了解它的使用方式。通常,当您使用微控制器进行设计时,您会想到一个高度专业化的应用程序,并且您试图将其安装在比 PC 塔更小的空间中。然而,计算机的用途非常广泛:处理数字并处理用户输入。当您寻找微控制器时,您正在寻找支持您为应用程序构建的接口类型的微控制器。您需要 3 个 USB 端口、2 个以太网、2 个 UART、SPI 端口、ATM 和 CAN 接口吗?其中一些接口在 SPI、ATM 和 CAN 等典型计算机上不具备,微控制器内置了这些接口以减少电路板空间。您可以将微控制器视为专为特定解决方案设计的处理器。

这取决于您如何定义“计算机”。

在规模较小的一端,您可能会称之为传统的微控制器,您没有进行内存管理,并且很少看到比嵌入在芯片中的少量内存更多的 RAM。我承认对现在可用的功能更强大的微控制器的架构知之甚少,但这些功能的存在(或缺乏)可能是区分最适合嵌入式应用程序或通用计算的设备的关键.

通过“内存管理”,我指的是在虚拟地址空间中运行程序并将其映射到系统中可用的物理 RAM 的能力,该功能由通常称为内存管理单元 (MMU) 的功能执行。

如果没有 MMU,如果您尝试运行多个进程,它们都将被迫共享一个地址空间,这意味着除非涉及的所有进程都遵循您的内存分配方案,否则一个进程很容易使另一个进程崩溃。因此,如果您可以完全控制所有流程的设计,就像使用嵌入式系统一样,那么这不是一个大问题。但是,如果您尝试支持通用计算,则无法保证将执行的所有代码都遵守内存分配方案,并且系统将相当脆弱。

对于嵌入式系统而言,缺少 RAM 也不是什么大问题,(1) 因为通常有很多闪存,(2) 不是通用计算机意味着您不必担心在用户的要求。您提前知道将在系统上运行的所有软件的总和,并且只需要 RAM 来存储该软件的变量。但是,当您尝试将系统变成通用计算机时,用户会期望能够运行适合他们的任何东西,而这需要 RAM。

现在,在没有 MMU 且没有太多内存的设备上进行通用计算绝对没问题。只要您一次只需要运行一个程序,最初的 128K RAM,基于 8088(16 位)的 IBM PC 就可以做到这一点。

因此,如果您想将“计算机”定义为类似于 1982 年的技术,答案肯定是肯定的。或者,如果您有一个封闭系统,您可以通过仔细控制软件的设计来缓解没有 MMU 和/或大量内存(例如手机)的问题,也可以。或者,如果您的微控制器具有内置的 MMU 和大量 RAM(或者可以在外部容纳这些),您应该能够构建一个更类似于当前计算机的系统。

我们绝对可以。例如,iPad 的大脑使用 ARM Cortex A8 处理器。

值得注意的是,上述 ARM(OMAP 和 A8)是没有闪存和 RAM 的微处理器(A8 并非完全如此)。Cortex-M3 微控制器更小,内置内存小,外设更容易访问。

它们之间存在相当大的差距(性能和功能方面)。