当谈到物联网 (IoT) 和智能对象时,计算能力通常由微控制器 (MCU) 设备驱动。MCU 本质上是按比例缩小的计算机,通过提供处理能力、内存和输入/输出外围设备来操作智能设备。
在本文中,我们将详细介绍物联网微控制器的基本要素。
什么是微控制器?
大多数物联网设备必须体积小,并且能耗相对较低。对于资源受限的设备来说尤其如此,这些设备可能远离中央系统运行并使用低功率电池来运行。
此类物联网设备需要的负载比典型个人计算机中的处理器类型要轻。为此,他们使用微控制器。
当试图了解微控制器在物联网中占据的地位时,我们将研究嵌入式设备的物联网技术堆栈以及 MCU 如何在其中交互。
例如,智能相机设备的简化 IoT 堆栈可能如下所示:
通信协议层
硬件抽象层(HAL)
RTOS/操作系统层
MCU 在硬件抽象层运行,充当桥梁以允许其他两层进行交互,并运行所选的用于操作设备的 RTOS/OS。
只需几分钟即可在您的 PC 上设置模拟物联网视频监控设备。
我们的全栈演示让您可以访问 Nabto 平台,因此您现在就可以尝试。我们专注于安全、低延迟的 P2P 连接。获取演示应用程序来尝试一下。
微控制器与微处理器
经常听到的有关微控制器的一个常见问题是 MCU 和微处理器之间的区别。
微处理器是包含设备 CPU 的单个集成芯片。但是,它不包含任何 RAM 或 ROM 存储器,或设备可能具有的任何其他外围设备。相反,该芯片依赖输入/输出 (I/O) 来连接内存和外设。
另一方面,微控制器将 CPU、RAM 和 ROM 以及外围设备全部嵌入到单个芯片上,有效地使其本身成为一台计算机。
现在,这种高度嵌入式芯片的性能当然比微处理器驱动的计算机低,但当涉及典型的物联网设备(例如智能工业机器)时,微控制器是更好的选择。它们可以提供足够的计算能力,同时保持较低的成本、复杂性和能耗。
微控制器特点
市场上有数百种 MCU,在为物联网项目选择最佳 MCU 之前,了解它们的共同特性非常重要。
位
对于 MCU 之间的主要区别,当前有 5 种不同的选项可用:
4-8位
这些用于远程控制以及其他受限且廉价的应用。一般来说,它们不适合在物联网应用中使用,因为它们缺乏处理互联网所需的计算和内存。
8位
主要用于成本受限但比 4-8 位更复杂的应用。通过正确的设置,这些可以在物联网应用中使用,有时运行 RTOS,但大多数情况下都带有简单的控制循环。著名的 Arduino 项目就是 8 位设计的一个例子。尽管 8 位系统可以处理互联网,但它们通常缺乏计算能力和内存要求,无法通过加密和强大的身份验证协议正确处理互联网。
16位
虽然这些当然是一种选择,但 16 位架构在物联网中并不常见。实现通常会在 8 位或 32 位 MCU 之间切换。
32位*
这是物联网应用程序的正常入口点,除非应用程序可以适应 8 位架构并且有成本限制。然而,8 位和 32 位架构之间的价格差异足够小,开发人员在选择 8 位之前应该三思而后行。
MCU 运行 RTOS 还是操作系统主要取决于 MCU 的计算能力和/或内存管理单元 (MMU) 的存在。
请注意,在这些系统中,时钟频率也是一个重要的设计因素。100MHz 以上的时钟(尤其是 GHz 设计)通常需要额外考虑 PCB 设计,因为 PCB 走线可能会开始干扰其他走线。Raspberry Pi 是众所周知的 32 位设计。
64位
这些是为高端系统保留的,通常是 Linux 或其他操作系统。您通常需要特定的(计算强度)原因才能从 32 位系统跳转到 64 位系统。
建筑学
大多数 MCU 使用以下架构之一:ARM、MIPS 或 X86,不过现在我们也会考虑新的 RISC-V 架构。
我们将了解这些不同的规格及其主要功能。正如我们将看到的,ARM、MIPS 和 RISC-V 在很多方面都很相似,而 X86 则与其他处理器有着显着的差异。
不同的指令集架构 (ISA)。微控制器架构的 ISA 规定了 CPU 管理的指令的格式。ARM、MIPS 和 RISC-V 都采用精简指令集计算机 (RISC) ISA,而 X86 采用复杂指令集计算机 (CISC),支持更复杂和灵活的指令。RISC 需要设定指令长度,具体为 16 (ARM) 和 32 (MIPS) 寄存器。
处理能力不同。总体而言,X86具有更强的处理能力和高性能。相比之下,ARM、RISC-V 和 MIPS 不需要那么多的处理能力,因为 RISC 架构规定了更简单的定长指令,适合不需要高性能的应用程序。
能源消耗不同。X86 使用更多的能量来运行并支持更高的处理能力。MIPS 的功耗更低,而 ARM 的效率更高。
专有与开源。RISC-V 是开源的,而 ARM、MIPS 和 X86 都是专有的。虽然使用 RISC-V 进行微控制器设计意味着您无需支付版税,但系统支持缺乏且文档有限。
每个类别中的不同处理器也将具有不同的 RAM、GPIO 引脚数量和连接选项。
内存
这个差异很大,从 8 位 MCU 最低端的大约 16B 到 32 和 64 位 MCU 的大约 4.5MB。对于许多人来说,RAM 越多越好,但这会大幅增加成本。
通用输入输出接口
通用输入/输出是允许连接各种硬件(例如传感器与 CPU)的引脚。与 RAM 一样,GPIO 的数量范围很大,可以容纳所有类型的设备堆栈。
连接性
不同的 CPU 具有不同的连接选项,包括 Wi-Fi 协议、蓝牙和有线以太网端口。
适用于微控制器的 RTOS/OS
MCU 有几种操作系统选项。您将在市场上找到以下产品:
实时操作系统
该软件组件是“实时操作系统”的缩写,一次只能执行一个程序,但可以在编程任务之间快速切换,以便同时完成多个任务。
RTOS 对外部事件提供所谓的确定性、硬性、实时响应。实际上,这意味着它可以比传统操作系统更快地为有限的预定任务提供高度响应的处理,这对于物联网设备来说可能是一个优势。
您可以在此处阅读有关如何选择最适合 IoT 的 RTOS 的更多信息。
操作系统
这是一个“传统”操作系统,例如Linux。与“实时”操作系统不同,操作系统提供非确定性、软实时响应,这意味着它在处理大量不同任务方面比 RTOS 更有效,但需要更多的处理能力。
因此,操作系统软件通常只能在具有 MMU 单元的 32 位和 64 位 MCU 上找到。您可以在此处详细了解操作系统与 RTOS 的优缺点。
裸机
有些 CPU 根本没有操作系统软件。相反,固件直接写入硬件上——结果是裸机编程。这对于老一代嵌入式设备和物联网 MCU 来说非常常见。
然而,随着 MCU 处理能力的提高和成本的下降,裸机运行的设备越来越少。尽管如此,当 MCU 内存不足或需要直接控制每个硬件以满足非常严格的时序要求时,仍然会使用它。
选择最适合物联网的微控制器
如前所述,物联网项目中使用了许多微控制器。本博客的后续内容将提供常见商业 MCU 的详细列表,但现在,我们将解释如何为物联网选择最佳的微控制器。
记忆
当然,内存量会对设备的整体性能产生根本性的影响。因此,必须仔细计算设备编程任务的内存需求(RAM 和 ROM)。
此外,通过安排足够的备用容量来满足未来更新的需求,确保该决策能够适应未来的需求。
功耗
在选择最佳 MCU 时,功耗要求是另一个主要考虑因素。
例如,物联网智能医疗设备(如助听器)可以使用低功耗电池运行。另一方面,重型智能工业设备会消耗大量电力,但您会希望设备尽可能节能。
互联网和其他通信协议
您的物联网设备将如何连接到应用程序?设备将推送什么类型的数据以及在哪里?是否需要与本地其他设备交互?
例如,住宅智能报警系统可能需要 Wi-Fi 协议,而办公室物联网 HVAC 系统可能需要有线以太网。对于本地设备通信,可能需要蓝牙或 Thread 网络,而 Wi-Fi 范围之外的远程设备则需要 4G 数据连接。
连接端口
要计算微控制器上需要多少个 GPIO,首先定义设备所需的数据输入。另外,请记住,CPU 上既有数字端口也有模拟端口,它们处理不同类型的数据输入和输出。
建筑学
请记住,大多数应用程序都在 ARM、MIPS 或 X86 架构上运行。因此,请确保您的选择能够支持设备和系统的复杂性,包括 I/O 和数据处理以及所需的功率。
开发支持和社区
如果您的团队或组织之前没有使用 MCU 的经验,那么制造商和开发者社区提供的开发支持至关重要。
检查制造商提供的综合文档,以及 StackOverflow 或 Reddit 等网站以获得社区支持。您还可以在我们的博客上找到大量有用的教程。
成本
在考虑微控制器成本时,始终关注未来。如果开发板的扩展和推向市场的成本可能会非常昂贵,那么构建原型是没有意义的。另外,请注意,某些 MCU 会收取单个设备驱动程序的许可费用。
安全
安全性是所有物联网项目的重要考虑因素,需要跨堆栈进行设计。商用主板上的标准安全功能包括加密引导加载程序和硬件加速器、屏蔽层和内存保护单元。
关于物联网微控制器的最终结论
为 MCU 选择最佳选项可能非常复杂且令人沮丧。希望您现在可以更了解这一过程,并且更加确定在物联网微控制器中到底要寻找什么。
我们将在后续发布一篇补充文章,检查顶级微控制器选项及其规格,这样您就拥有了入门所需的一切。
领取专属 10元无门槛券
私享最新 技术干货