使用微控制器时,使用微处理器时以及将两者结合使用时

物联网 树莓派 阿杜伊诺 微控制器 微处理器
2021-06-18 16:13:54

很长一段时间以来,我一直有一个简单的问题,但我找不到让我信服的答案。基本上是标题:什么时候应该使用微控制器,什么时候应该使用微处理器,什么时候应该将两者结合起来。

例如,我想做的一个简单项目是气象站。如果我没记错的话,我可以分别用两者来做;因此,应该使用哪一种?

我理解(我认为)的一点是,当您想要不断采样时,arduino 很有用,而 RPi 在特定时刻进行采样时很有用。

我还有其他项目,比如远程控制灯光,了解通过管道的水流,了解水井的水站,温度、浊度、pH 值……我想我可以用任何一个选项来做,因此很明显是一些我不明白的概念。

对不起,如果是愚蠢的问题,但我需要一劳永逸地清除这个疑问。

2个回答

两者的定义存在差异。微控制器实际上是一个微处理器,带有一堆内置的、内置的外围设备。如ADC(模数转换器)、DAC(数模转换器)、EEPROM或其他存储器、比较器、通用定时器、RTC(实时时钟)、UART、I2C、SPI等。

因此,尽管存在许多重叠区域,并且有所谓的微处理器可以包括外围设备以及微处理器,但通常(或根据某些定义)微处理器只是具有较少或根本没有内置、内置外围设备的处理器。您可能还需要添加外部程序存储器。它是一种更通用的芯片,主要关注处理器。


你提到了 Arduino 和 Raspberry Pi。这些都不能被视为微控制器或微处理器。

Arduino是一个平台,一个支持多种硬件的嵌入式生态系统,包括软件库、IDE 等。例如 Arduino UNO 不是微控制器,Arduino UNO 板上的 ATmega328P 是微控制器。Arduino UNO 是围绕微控制器构建开发板,包括电源、USB 接口和其他未集成到微控制器本身的电路。

树莓派又是更多的不仅仅是硬件洗车台。如果我们关注硬件,它通常被称为围绕 SoC(片上系统)构建的单板计算机SoC包括强大的处理器内核、多媒体支持、与微控制器相同的外围设备以及一些其他功能,例如 HDMI 或以太网端口。


开发板和单板机即可使用,您无需设计和构建硬件。使用微控制器或微处理器,您必须设计和构建额外的硬件,例如电源等。

单板计算机将比 uC 开发板强大得多,您可以使用单板计算机完成几乎所有可以使用 uC 开发板完成的工作,但您可能不会充分利用该设备的潜力你也可能有缺点,比如更高的功耗。另一方面,有些应用程序需要单板计算机,比如您想驱动全高清显示器,或者需要高计算能力,或 1 Gb/s 网络连接。还有更多因素(其中大部分在另一个答案中列出),例如:

  • 支持的编程语言。
  • 支持的操作系统。
  • 多处理。

对于单板计算机,您有更广泛的选择。

关于微控制器选择,您可以查看我之前的回答:为电池供电的数据收集项目选择微控制器

工程是妥协的艺术。您通常必须处理多个参数,其中一些参数可能至少部分矛盾。

例如,您可能必须在以下各项之间找到最佳折衷方案:

  • 速度
  • 精确
  • 尺寸
  • 成本
  • 电池寿命
  • 散热
  • 网络要求
  • 用户界面和易用性
  • 易于开发

微控制器通常有利于尺寸、成本和电池寿命。它可能在速度或精度、网络、UI 和易于开发方面受到限制。

另一方面,成熟的计算机将有利于速度、网络、用户界面和易于开发,但在尺寸、成本、电池寿命、散热等方面会很糟糕。

当然,这个限制非常模糊,ESP32 等芯片处于中间位置,许多基于 ARM M 内核的芯片也是如此。

对于每个项目,您应该首先列出您的需求。许多人会彻底消除其中一个。如果它们消除了两者,那么您知道您可能需要两者来扮演不同的角色,最终在不同的地方或不同的时间(例如,远程电池供电传感器中的小型低功耗微控制器,以及电源供电的更强大的 CPU处理该数据)。这通常是云支持系统发挥作用的地方,但并非总是如此。

或者,目前它可能根本不可行:如果您需要一个低于 1 美元的芯片来在 5 年的使用寿命内对电池执行非常计算密集型的工作,那么在新芯片上市之前,这可能是不可能的(如果有的话)。

如果两者都符合要求,那么您可以权衡各自的利弊,这可能取决于您的具体情况:能够重用代码或知识或现有工具和系统可能会偏向其中一个。

最敏感的参数通常是功率。如果您需要使用具有较长使用寿命(数月或数年,而不是数小时或数天)的电池运行,您可以忘记 RPi。