两者的定义存在差异。微控制器实际上是一个微处理器,带有一堆内置的、内置的外围设备。如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 网络连接。还有更多因素(其中大部分在另一个答案中列出),例如:
对于单板计算机,您有更广泛的选择。
关于微控制器选择,您可以查看我之前的回答:为电池供电的数据收集项目选择微控制器。