想要在物联网(IoT)市场占据一席之地,原始设备制造商(OEM)必须加快创新的步伐。物联网的应用让一切变得无限可能,成功的企业会敦促其开发人员不断拓展和采取新的、更实用的方法来发挥传感器的功能,监测不同类型的数据,掌控整个设备的生态系统。
物联网应用覆盖广泛,包括可穿戴设备、汽车、住宅、工业、乃至城市等众多领域。这些应用需要更加高效节能的、创新的、安全的体系作为支持。应用程序十分重要,旨在实现软件开发的直观性和易用性。
微控制器(MCU)作为物联网产品的核心,选择合适的 MCU 是满足客户当前和未来需求的关键。本文将探讨当今不断增强的嵌入式 MCU 的丰富功能,MCU 在加速设计的同时还可实现创新应用。在第一部分,我们会介绍到先进的工艺技术、低功耗设计技术、多核系统的功耗问题、多核间的通讯、串行存储器接口以及系统安全性。
物联网市场(增长最快的引擎):
物联网技术不断改变我们的日常工作和生活方式,使我们的生活更加经济、便捷、舒适和智能化。物联网市场可以大致分为两大类:消费型物联网和企业物联网。
消费型物联网包括住宅、生活方式、健康和出行。个人用户可以通过这些物联网设备产品提高其生产力、安全性和生活质量。从智能住宅到联网汽车,消费者市场正在为下一波浪潮做好准备。
图1:消费型物联网市场细分
企业物联网的覆盖范围巨大,包括零售、医疗、能源、出行、城市、制造业和公共服务。企业物联网细分市场会改变组织和社区,从而创造一个实现经济增长的新时代。物联网通过连接数据、人员和机器来提高生产力、生产效率以及日常运营水平。企业物联网也可以作为帮助企业识别未开发领域新增长机会的工具。
图2:企业物联网市场细分
工艺技术(尺寸 — 十分重要):
制造 MCU 的工艺技术对于其本身的性能、低功耗和成本而言至关重要。物联网应用需要高效的有源功耗和低功耗模式消耗来提高系统的整体功效。随着制造技术的不断进步,促使硅核心面积不断缩小。同一块硅片上可以制造出更多的 MCU,从而降低了芯片的整体成本,性能和功耗也因此直接受到影响。尺寸的缩小减少了开启/关闭每个晶体管所需的电流,同时保证了时钟频率不变。因此,更小的芯片意味着具备更高的的最大时钟频率,可以在较低的功耗下实现更高的性能。
例如,用于制造赛普拉斯半导体 PSoC 6 BLE 系列 MCU 的 40 纳米工艺技术,为各种物联网应用提供了高性能,且高效节能的解决方案。深度睡眠时的电流仅为几微安,且能够完全保留RAM数据。运行、睡眠、低功耗运行和低功耗睡眠等其他功耗模式,助力开发人员能够在灵活地优化系统功耗的同时根据需求保持应用的高性能。
图3:用于物联网应用的低功耗 MCU 框图
功率(至关重要):
设计物联网设备时所面临的一大挑战是高能耗。大多数物联网设备处于实时在线、小体积,这意味着自身电池容量非常有限。MCU 供应商在优化其在物联网应用时需要考虑诸多因素,比如:
• 改进工艺技术
• 提供高度灵活的功耗模式
• 实现功耗优化过的硬件 IP 模块
• 更高的集成度以减少组件数量
• 优化闪存频率
• 启用高速缓存
• 支持更大范围的工作电压
然而,在工艺技术缩小体积、提高性能、改进功耗和集成度的同时,也出现了电流泄漏的管理问题,尤其是在低功耗模式下。为了应对电流泄漏问题的挑战,MCU 供应商采用了特殊的晶体管工艺技术,如多栅器件、高压晶体管/逻辑/电路、专门设计的存储单元以及其多方面的技术。
灵活的功耗模式能够促使开发人员安排独立系统活动,从而优化整体功耗。提供多种可以在低功耗模式下运行且可以在不唤醒 CPU 的情况下被唤醒执行其功能的外设,是这方面的关键技术。一些 MCU 还提供外围设备,只能执行有限功能的特殊低功耗工作模式(例如较低的工作频率和电压)以进一步优化应用功耗,甚至可以设计优化功耗的特定外设,即BLE 无线电可以采用支持低功率无线通讯的设计。
影响功耗的另一个因素是非易失性(NV)内存访问,尤其是使用闪存(NV存储器)存储固件代码的 MCU。闪存访问的任何优化都会大大降低功耗,其目标是尽量减少闪存访问的频率。这里使用了两种常用的技术,其中一种是提供一个高速缓冲存储器。这样,实际的代码存储器(闪存)就无需在每个执行周期都被访问。另一种方法是增加一个周期内获取的数据量,通过使用范围更广的闪存访问降低闪存的访问频率。
基于物联网的 MCU 也可以提供灵活的电源系统。在支持宽电源电压范围的情况下,MCU 可以由多个电源供电。例如像健身跟踪器这类简单的物联网应用,可以由纽扣电池来供电,而智能手表这类复杂的物联网应用则需要由 PMIC (电源管理集成电路)供电。另外,一些 MCU 通过其内部的降压转换器来有效地调节自身电源。
在考虑 MCU 的功耗模式时,超越其基本架构十分重要。例如,标准 ARM CPU 内核支持运行、睡眠和深度睡眠。附加功耗模式通常由特定的 MCU 供应商添加。例如,赛普拉斯的 PSoC 6 BLE MCU可执行包括,低功耗运行、低功耗睡眠和休眠状态在内的六种工作功耗模式。
图4:PSoC 6 BLE MCU 的功耗模式转换示例
多处理器 MCU(加快并行应用程序任务的运行速度):
基于物联网系统功能特性的增长,其复杂性也随之增加,而实际尺寸则越来越小。MCU 制造商的目标是提高系统的性能,同时尽可能降低尺寸和减少功耗。多核 MCU 和片上系统(SoC)通过在单个芯片中集成更多功能和最大限度地减少芯片面积提供更高的性能。多核处理器是包含两个或更多个独立核心(或 CPU)的 MCU 或 SoC。这些内核通常集成在单个芯片上,它们也可以作为一个封装中的多个芯片。
多核 MCU 有助于提供高性能并保持小尺寸。可穿戴设备等典型的物联网设计需要多个MCU,包括:一个用于无线通信的 BLE 控制器、用于执行用户界面的 Touch MCU 和一个用来实现该应用程序运行的主要的 MCU。这三种 MCU 的功能可以由一个高度集成的多核 MCU 提供。
多核 MCU 可带来许多其他益处。例如,它可以集成足够的资源使 CPU 能够并行处理密集型任务,从而充分发挥多任务处理的效率。这也使开发人员可以有效地将系统事件分配给特定的内核,从而达到功耗和性能目标。再比如,在双核可穿戴设计中,可以将需要较少 CPU 干预的周期性功能(例如无线广播和触摸感应)分配给一个内核。其他“频繁接触”的功能,如需要 CPU 频繁干预的传感器融合等,可以分配给另一个内核。当在系统中运行多个应用程序时,这种分区缩短了延迟时间。通过整合协议栈和程序存储器的集成还可以提高效率。
图5:物联网多核 MCU 示例
图6表示的是一个多核 MCU — 赛普拉斯 MCU PSoC 6 BLE。该双核 MCU 具有两个32位 ARM Cortex CPU — Cortex-M4 和 Cortex-M0+。这两个 CPU 都是具备一个32位的数据路径、寄存器和存储器接口的32位处理器。Cortex-M4是专为实现短中断响应时间、高代码密度和高32位吞吐量同时保证严格的成本和功耗预算而设计的主 CPU。Cortex-M0+ 作为辅助 CPU,用于提供网络安全、物理安全和保护功能。Cortex CPU 执行 Thumb指令集的一个子集,并具有两种被称为线程模式和处理者模式的操作模式。这些 CPU 在退出复位并执行应用程序软件时会进入线程模式。为了处理异常情况,CPU 会进入处理者模式。当所有异常处理完成后,CPU 返回到线程模式。
图6:多核嵌入式 MCU 示例(PSoC 6 BLE)
处理器间通讯(实现外设共享和信息交换):
多核 MCU 通过需要处理器间通讯(IPC)来协调内核之间的运行。IPC 充当分配处理器间消息的通信管理器。现代 CPU 架构(如 ARM Cortex)支持硬件和固件中的多核通信,比如 SEV(发送事件)指令在执行时会提示设备中的所有核心。MCU 供应商采用多种方法来实现 IPC:
中断法:这种方法让一个内核向另一个内核发送一个中断来指示一个应用程序事件。通常中断程序非常紧凑,不会占用太多的代码存储空间。与任何中断机制一样,每个中断都有自己的 ISR(中断服务程序),通过它可以让相应的内核执行特定的任务。在实际的数据传递中,有一个可以被多个内核访问的共享内存。除了共享数据之外,它还提供了请求和确认消息的机制。
邮箱:邮箱是 RAM 中的专用存储空间,用于让每个 CPU 相互发送和接收消息。每个内核都要维护自己的 RAM 内存(邮箱)并将消息发送到其他内核的邮箱。
消息队列:消息队列使用共享内存的两个区域来存储每个核心发送给另一个核心的消息。第一个区域是被称为命令缓冲器的专用存储器,用于存储从主机发送到从机的命令。另一个专用存储器被称为消息缓冲器,它使从机能够响应主机。
图7:处理器间通讯(IPC)的各种模式
信号量:信号量是一种防止多个源同时访问共享资源的机制。在多核处理器中,共享硬件位置作为信号量指示特定内核是否正在使用特定的共享外设等。在访问外设之前,系统中的其他内核会读取信号量状态以查看是否可用。
串行存储器接口(IoT 内存的选择):
内存是任何物联网系统不可缺少的组成部分。其功能主要是代码和数据存储。现代物联网设备不断增长的智能化需求带动了对更大代码和数据存储器的需求。但是将所有这些内存作为内部存储器集成到设备中会增加 MCU 的芯片尺寸和成本。另一种方法是根据需要提供外部扩展内存。这样开发人员就能够根据最终应用程序的需要添加内存。另外,如果在开发过程中内部存储空间预算不足,则可以增加外部存储器而不必重新设计整个系统。
了解外部存储器接口的速度和安全性以及使用方法也很重要。通常情况下,在节省 MCU上有限的 IO 引脚方面,串行存储器比并行存储器更好。基于 SPI 的串行存储器为数据记录提供了理想的接口速度,而直接执行外部代码则需要更高的速度。这些要求使 MCU 制造商必须提供 SPI 的替代品。以下是不同方案的数据吞吐量速度比较。
• SPI:支持1位/循环的吞吐量
• 双路SPI:支持2位/循环的吞吐量
• 四路SPI:支持4位/循环的吞吐量
• 双四路SPI:支持1字节/循环的吞吐量
通常情况下,MCU 同时支持多种类型的存储器,为开发人员提供了最大的灵活性。
由于许多物联网系统会处理用户的个人数据,因此确保数据的安全尤为重要。代码存储器也同样需要保护,以防止设备被非法入侵。外部存储器在安全性方面更加脆弱,因此需要特殊的机制来保护外部存储的数据。为此,MCU 使用各种加密技术(例如 AES、DES、RSA)来保护数据和代码免受非法访问。例如,赛普拉斯半导体的 PSoC 6 BLE MCU 提供了一个特殊的串行存储器接口(SMIF)外设,该外设支持直接执行外部代码的 XIP(现场执行)模式和记录数据的 MMIO(内存映射 IO)模式。它使用特殊命令进行控制,比如闪存的编程/擦除、存储器设备的睡眠模式输入等。
图8:串行存储接口(SMIF)示例
SMIF 允许用户配置多个相同或不同类型和大小的存储设备。在内存(XIP)模式下,多个内存设备被映射到不同的地址。它们可以是不同类型和用途的存储器,也可以是在连续地址空间中配置以模拟连续大存储器的相同存储器设备。SMIF 外设和 SPI 闪存的组合使用可以替代外部 NAND 和 NOR 闪存,并且可以节省电路板空间。由于串行闪存直接映射到处理器的内存空间数据存储中并且支持 XIP 的执行,所以其易用性高于 NAND 内存。
系统的网络安全、隐私和设备安全(信任根源):
设备一旦连网就存在被黑客入侵的可能性。因此,无论设备是运动手环还是联网汽车,物联网设备的安全性都是一个不容忽视的因素。所有层面都需要数据保护,包括存储、处理和通讯期间,从而确保系统的可靠性。另外,任何处理数据的软件或固件都应得到保护。可以在两个层面上实现这种安全性。第一个层面是软件安全,第二个层面是硬件安全,即通过硬件保护软件。
通常,安全软件使用存储在代码空间内的密钥。虽然这在技术上可以实现加密和解密,但这个过程仍然容易受到黑客攻击。这是因为它是一个存储代码,当代码被解码的那一刻,安全性就荡然无存了。
安全硬件则使用集成电路来保护系统,比如代码和数据的加密和解密。安全硬件是独立的,不需要任何额外的软件来操作,这杜绝了恶意代码、感染、污染或其他漏洞破坏系统、客户数据和服务的可能性。因此,在保护敏感数据或代码时,安全硬件是首选方法。所以用于物联网的 MCU 具有复杂的集成硬件安全特性,如密码块、代码保护 IP 和其他基于硬件的机制。
与固件相比,安全硬件还具有提供更快性能和更低功耗的优势。比如,赛普拉斯 PSoC 6 BLE MCU 中的专用加密模块可加速加密功能。此外,该模块提供了真随机数生成功能、对称密钥加密和解密、哈希、消息认证、随机数生成(伪随机和真随机)、循环冗余校验以及诸如启用/禁用、中断设置和标记等实用功能。该 MCU 组件还配备了安全启动功能。该功能使用 ROM 程序在闪存中验证用户数据。安全启动是一项包含加密技术的过程,它使物联网设备开始执行已认证的可信软件。因此,系统可以从一个已知、可信的状态开启。
在第一部分中,我们介绍了先进的工艺技术、低功耗设计技术、多核系统的功耗、内核间通讯、串行存储器接口以及系统安全性。第二部分将介绍高级 BLE 无线链路、模拟前端、智能触摸界面以及其他重要的物联网设计技术。
图9:物联网 MCU 的安全生态系统