使用市面上首款基于 Arm® Cortex®-M33 的 MCU – 第 1 部分:管理功耗与性能

作者:Stephen Evanczuk

投稿人:DigiKey 北美编辑

编者按:本系列文章分两部分,本文是第 1 部分,介绍开发人员如何使用通用微控制器系列器件来满足广泛的高性能和低功耗要求。第 2 部分讨论 NXP Semiconductors 的 LPC55S6x 微控制器集成的扩展安全功能如何从配置、调试到通信、安全引导、安全固件更新等各方面支持全生命周期安全性。

开发人员常常要绞尽脑汁以平衡相互冲突的需求:针对各种功能和应用,不但要求应用性能更高,而且功耗必须更低。涉及的应用包括物联网 (IoT)、工业自动化、医疗系统和消费类设备。此类应用对安全性的需求也迅速增长,使得开发人员愈发难以找到某个微控制器系列器件能够同时满足广泛多样、日趋繁杂且相互冲突的设计要求。

为了解决这些问题,NXP Semiconductors 推出 LPC55S6x 系列微控制器,该系列器件兼有功能强大的通用内核与高能效的专用硬件和处理引擎,有助于开发人员攻克难题。

明确并满足不同的需求

互连产品发展迅速:最初的系统相对简单,最具挑战性的设计需求通常也只涉及通信的某些方面;而如今,设计人员的处境却更为艰难:各个应用领域中,需求组合不断扩展,却几乎不容妥协任何方面。每种应用都要求开发人员根据需要转移重点,以应对该应用独有的挑战。不过,对更高性能和更低功耗的需求却是大多数主流应用领域的共同主题。

例如,智能工厂不仅依赖于低延时、高性能器件(用于信号处理),而且要求降低功耗,以便工厂工程师能在狭小空间中容纳更多器件。消费类可穿戴设备不仅需要低功耗设计以延长电池续航时间,而且面临着不断增长的信号处理需求,以便能够处理更复杂的工作负载。在各个应用领域中,设计人员承受的压力越来越大,需要更有效地响应关于器件、网络和企业资产的漏洞的实际担忧,使其免遭来自个别网络窃贼、犯罪组织甚至国家赞助团体的直接攻击或高级持续性威胁。

为了满足这些不同的需求,开发人员通常需要作出抉择,在设计的某一方面作出妥协。他们可能会选择牺牲应用性能以降低功耗,使用较低性能的处理器、降低时钟速率,或者降低处理器的占空比来支持低功耗状态。然而,为了满足严格的性能要求,他们就可能会采取相反的做法,使用更强大的处理器、更快的时钟速率和更高的占空比,但代价则是功耗剧增。对于计算复杂度较高的应用,他们可能会添加专用数字信号处理器 (DSP) 来加速算法执行,但设计复杂性、成本和系统功耗也会相应增加。即使功耗与性能达到了可接受的平衡,他们往往也需要接受设计成本和复杂性的增加以满足安全要求。

尽管设计人员为满足不同需求而心力交瘁,但对于医疗设备、工业自动化系统、零售支付设备等关键应用,用户可接受的妥协空间越来越小,甚至拒不接受。NXP Semiconductors 的 LPC55S6x 微控制器系列器件架构,既有通用处理器的灵活性,又有新兴应用所需的专门处理能力和安全性,从而免除设计人员的妥协之困。

功能丰富,兼有专用处理内核

NXP Semiconductors 的单核 LPC55S66 和双核 LPC55S69 微控制器是市面上首款基于 Arm® Cortex®-M33 的通用 MCU,具有 Arm M 系列架构典型的低延时、确定性性能。NXP 的 LPC55S6x 器件在架构上加设了诸多增强功能,包括该公司的高性能 PowerQuad DSP 加速器、CASPER(Cryptographic Accelerator and Signaling Processing Engine with RAM,带 RAM 的加密加速器及信号处理引擎)加密引擎以及全面安全子系统。除了高达 640 KB 的闪存、320 KB 的 SRAM 和 128 KB 的 ROM 外,LPC55S6x 器件还集成了大量功能元件,而这些元件通常需要用于所有深度嵌入式系统设计(图 1)。

NXP 的 LPC55S6x 微控制器架构图图 1:LPC55S6x 微控制器架构在 Arm Cortex-M33 内核的通用处理能力基础上,扩展了专门硬件模块用于执行信号处理、加密、安全存储和密钥管理,同时还提供典型嵌入式设计所需的全套外设。(图片来源:NXP Semiconductors)

在这些功能元件中,LPC55S6x 器件配备了功能全面的定时器子系统、多个串行接口、安全的直接存储器访问 (DMA) 控制器和多达 64 个通用 I/O (GPIO) 引脚。除了这些数字子系统,LPC55S6x 器件还集成了 16 位多通道逐次逼近寄存器 (SAR) 模数转换器 (ADC)、模拟比较器和温度传感器。此外,片上可编程逻辑单元 (PLU) 允许开发人员配置 26 个五输入查找表 (LUT) 结构,构建状态机等自定义组合逻辑或时序逻辑。开发人员可以访问 PLU 寄存器,直接对 PLU 编程以实现小型逻辑电路,或使用 NXP 工具实现使用 Verilog 寄存器传输语言 (RTL) 描述的较大型逻辑电路。

为了避免访问多个子系统时出现瓶颈问题,LPC55S6x 器件采用多层总线矩阵,以 Arm 高级微控制器总线架构 (AMBA) 的高级高性能总线 (AHB) 架构构建。AHB 总线矩阵提供总线主控器与外设或存储器之间的直接连接。例如,这种方法允许 DMA 传输以全速运行,而不会影响处理器对存储器的访问性能。事实上,在众多设计需求中,使处理器效率最大化的能力是 LPC55S6x 架构的基础。

在 LPC55S6x 架构中,Cortex-M33 内核提供多种功能来帮助设计人员更轻松地应对不同的设计要求。与其他同类器件一样,LPC55S6x 处理器支持多种低功耗模式。如果器件长时间处于非活动状态,开发人员可以将器件置于省电模式,可以完全保留 SRAM 的内容,但是功耗仅为 15.4 µA;或将器件置于深度省电模式,继续为 4 KB 的 SRAM 部分供电,而功耗只有大约 0.59 µA。休眠模式和深度休眠模式下,处理器关闭,但会为外设和存储器提供不同程度的操作:休眠模式下可进行全面操作,功耗约为 2.7 mA,而深度休眠模式会对外设使用时钟门控,从而将功耗降至约 110 µA。

增强功能

除了低功耗模式外,LPC55S6x 架构还通过集成功能扩展对不同设计需求的支持,从而提高性能和安全性。Cortex-M33 主内核内置的集成功能包括 Arm TrustZone 安全扩展 (SECEXT)、存储器保护单元 (MPU)、IEEE 754 标准浮点运算单元 (FPU) 和嵌入式跟踪宏单元 (ETM)。此外,主内核还包含 CASPER 加密引擎和 PowerQuad 加速器,支持 DSP 和单指令多数据 (SIMD) 操作。

请注意:双核 LPC55S69 微控制器的另一个 Cortex-M33 内核不包含这些附加功能。

对于这些集成子系统和架构特性,每个特性都能提供丰富的功能,相关详细说明远远超出了本文的涵盖范畴。例如,PowerQuad DSP 加速器本身就是精密协处理器,能够独立完成信号处理功能,同时又可作为总线主控器访问存储器。

在内部,PowerQuad 加速器将多个寄存器和接口与一组硬件引擎相结合,用于执行关键信号处理功能,包括快速傅里叶变换 (FFT)、离散余弦变换 (DCT)、无限脉冲响应 (IIR)、有限脉冲响应 (FIR) 以及用于高效计算三角函数的坐标旋转数字计算机 (CORDIC) 算法(图 2)。

NXP Semiconductors 的 LPC55S6x 微控制器系列示意图图 2:NXP Semiconductors 的 LPC55S6x 微控制器系列集成了该公司的 PowerQuad 协处理器,后者使用专门引擎来加速信号处理应用常用算法的执行。(图片来源:NXP Semiconductors)

借助 PowerQuad 加速器,开发人员可以执行复杂的信号处理运算,而不会影响主机处理器响应实时事件或完成一系列扩展操作。主机处理器只需使用所需的信号处理函数设置 PowerQuad 寄存器,并指定来源、目标和工作存储区的存储器地址。一旦调用,PowerQuad 加速器就会作为真正的协处理器运行,作为总线主控器使用 AHB 矩阵来执行 128 位存储器传输。与此同时,主机处理器可以立即返回执行主处理任务,只需定期轮询 PowerQuad 忙位,或简单响应 PowerQuad 发送的完成中断以访问结果。

不过,对于开发人员而言,PowerQuad 操作大多是透明的。开发人员可使用标准应用程序编程接口 (API) 来调用 Arm Cortex 微控制器软件接口标准 (CMSIS) 的 DSP 库。NXP Semiconductors 的 MCUXpresso 软件开发套件 (SDK) 包含支持 PowerQuad 的 NXP 版 DSP 库。该库通过调用 PowerQuad API 替代软件实现的低级数学函数。

例如,若需计算复数 FFT,开发人员使用标准 CMSIS-DSP 函数 arm_cfft_q31(),数据设为 Q 格式,即 32 位定点数用 1 个符号位和 31 个指数位来表示。在纯软件实现中,调用 arm_cfft_q31() 函数会相应地调用 CMSIS DSP FFT 蝶形运算函数 arm_radix4_butterfly_q31() 和结束函数 arm_cfft_radix4by2_q31();计算复数逆 FFT 时则会调用相应的反函数。

但是,若使用 NXP 的 DSP 库和 PowerQuad,正常调用 arm_cfft_q31() 却会调用 PQ_TransformCFFT(),并在硬件中处理相同的计算。最终,不仅减轻了 Cortex-M33 内核的处理负荷,而且加速了 DSP 函数的执行(图 3)。

MCUXpresso 软件开发套件图图 3:MCUXpresso 软件开发套件可显著加速常用 DSP 算法的执行,同时通过直接调用 PowerQuad 加速器来替代低级 CMSIS-DSP 函数,从而保持与标准 Arm CMSIS DSP 库高级调用的兼容性。(图片来源:NXP Semiconductors)

CASPER 加密引擎作为另一个协处理器,同样能减轻主处理器的负担,使其免于处理与非对称加密算法相关的繁重计算负荷。CASPER 加密引擎执行 Rivest-Shamir-Adleman (RSA) 算法、Diffie-Hellman 算法、椭圆曲线加密法 (ECC) 和椭圆曲线数字签名算法 (ECDSA) 的速度是 Cortex-M33 内核运行同类加密软件的八倍。

为了加速对称算法的执行,LPC55S6x 还集成了硬件模块以支持高级加密标准 256 位加密 (AES-256) 和安全散列算法 2 (SHA-2)。

这些硬件模块与 CASPER 引擎的组合为开发人员提供基于硬件的支持,有利于实现身份验证和数据加密常用的加密算法,满足互连产品保护数据交换的需求。

正如本系列文章第 2 部分所讨论,LPC55S6x 系列对安全性的支持远远超出了基本加密算法;该系列提供基于硬件的安全功能,可满足全生命周期安全性的需求。

系统开发

借助 NXP 的 LPC55S69 EVK,开发人员可以快速探索 LPC55S6x 微控制器的加密引擎、DSP 和通用处理能力。LPC55S69 EVK 旨在加速这些器件应用的开发工作,该电路板具有双核 LPC55S69 微控制器、NXP 的 MMA8652FCR1 加速计、LED、按钮、调试接口,并支持 Arduino UNO、MikroElektronica Click 和 Digilent PMod 附加硬件等多种扩展选项。

该电路板具有多个跳线和针座,可让开发人员轻松设置不同的硬件配置并仔细检测性能细节(图 4)。例如,关注功耗的开发人员只需使用电压表测量 P12 针座处的电压降,便可测量 LPC55S69 的供电电流。

NXP Semiconductors 的 LPC55S69 EVK 图片(点击放大)图 4:NXP Semiconductors 的 LPC55S69 EVK 围绕该公司的双核 LPC55S69 微控制器构建,提供多个跳线和针座,使开发人员可以轻松配置并检测微控制器的电流消耗等性能细节。(图片来源:NXP Semiconductors)

开发应用时,设计人员可将该电路板与 MCUXpresso 集成开发环境 (IDE) 和 SDK 配合使用,该套件使用 PowerQuad 功能(如前所述)等 LPC55S6x 专用硬件。此外,IAR 和 Keil IDE 也支持 LPC55S69-EVK。NXP 还提供免费软件包,通过样例代码演示 LPC55S6x 功能使用的主要软件设计模式。

总结

在物联网、工业自动化、医疗系统、消费类设备等广泛的应用中,开发人员希望取得高性能、低功耗与安全性之间的平衡。如上所述,LPC55S6x 系列微控制器兼有功能强大的通用内核与专用硬件和处理引擎,让开发人员能够更轻松地满足高性能专用功能的需求,同时保持低功耗。

本系列文章第 2 部分介绍如何使用 LPC55S6x 系列来管理器件的全生命周期安全性。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Stephen Evanczuk

Stephen Evanczuk 拥有 20 多年的电子行业编辑经验,主题涉猎广泛,涵盖硬件、软件、系统以及包括物联网在内的各种应用。他拥有神经网络领域的神经科学博士学位,曾经从事航空航天领域大规模分布式安全系统和算法加速方法方面的工作。目前,他不是在撰写技术和工程文章,就是在研究深度学习在识别和推荐系统方面的应用。

关于此出版商

DigiKey 北美编辑