STM32 MPU是什么产品?了解嵌入式系统中微处理器的新变化
扫描二维码
随时随地手机看文章
微控制器 (MCU)和微处理器(MPU)有哪些不同之处?简单来说,两者都是嵌入式系统的大脑。几年前,两者之间有非常明显的区别,功能截然不同,对开发者的研发技能要求也大不相同。如今,这两个术语仍然存在,但创新使得两者之间的分界线日趋模糊。以前只用 MCU 的系统集成商现在发现,用MPU更容易,ST也注意到了这一点。微处理器已经成为某些开发者手中的秘密武器,借助其原生的功能或运行嵌入式 Linux 的能力,他们能够开发新的应用或进入新的市场。因此,让我们一起深入研究一下这个新趋势。
故事的开头
MCU的出现是替代 MPU
当业界在上个世纪七十年代推出首个微控制器时,人们希望找到一种替代耗电量太大且设计复杂的 MPU 的产品。MCU虽然计算吞吐量要小很多,但将存储器、处理器、外设和时钟整合在一起,可以运行实时操作系统。工程师只需用一个微控制器即可构建确定性系统,这使得微控制器在汽车和电机控制应用中非常受欢迎。如今,从智能手机到医疗设备或家电,MCU可谓无处不在。相反,MPU芯片空间都用于容纳计算单元,用牺牲功耗或集成度换来了更高的算力。当需要运行多个线程或更复杂的操作系统时,例如,嵌入式 Linux,算力更高的MPU更具吸引力。
弄清楚MCU和MPU之间的区别
根据应用需求选择 MCU 和 MPU
虽然有阐述详尽的MPU和MCU 选择攻略,但工程师最终还是不知所措,无法确定选谁。但是,开发者常问一些问题,例如,算力要求。如果一个应用需要性能强大的神经处理单元或者多个计算核心和高性能GPU,又或者执行上下文计算,可能对存储空间有要求,那么, MPU 是一个显而易见的选择。相反,如果应用是一个小软件,偶尔唤醒,检查一次传感器值,或需要几纳秒的确定性响应时间,那么,微控制器是一个正确的选择。因此,在许多情况下,“目的决定手段是否正当”。简而言之,工程师应根据要运行的具体应用来选择一个合适的硬件平台。
影响选型的另一个因素可能是系统的图形需求。过去,具有复杂 3D 动画的人机界面 (HMI)、高分辨率显示屏、与用户界面同时运行的复杂应用,将倾向于选用微处理器的GPU 和存储控制器,而动画和图形更简单的 HMI 越来越依赖于MCU。TouchGFX 等框架和 NeoChrom GPU 等硬件 IP 不断优化那些可以在微控制器上运行的应用。同样,嵌入式系统MPU支持更高的分辨率,因为GPU的处理性能更强大。因此,虽然每种产品的功能越来越多,但界定两者的区别仍然非常简单。
根据成本和功耗选择MCU还是MPU
除了计算吞吐量,开发人员还会考虑其他重要指标,例如,功耗、易失性存储器、非易失性存储器需求、所需外设和引脚数量。当工程师设法应对成本限制时,这些选择标准变得至关重要,因为它们会影响整体 PCB 设计和物料成本 (BOM)。例如,许多闪存和附加组件将需要多个 PCB 板层,这会增加交货时间和成本。因此,长期以来,这个选择标准相对简单明了。关注成本或低功耗的系统集成商会选择微控制器。
MCU 和 MPU 之间的界限日趋模糊
自 21 世纪初以来,MPU 经历了重大变革。系统级模块 (SoM) 和系统级封装 (SiP) 的广泛应用是MPU行业最具颠覆性的技术创新之一。过去,集成商必须围绕微处理器设计整个系统,这意味着要处理更复杂的电源管理系统和繁琐的外部存储器等问题。事实上,使用大容量DDR外存需要反复微调和丰富的专业知识,这可能是阻碍MPU应用的一大障碍,然而,SoM 和 SiP 的出现让所有这些复杂问题都迎刃而解,这两种组装技术安全地将所有必要组件都整合到一个封装或模块内。
此外,ST的一些最新的微处理器已经更接近微控制器的功耗水平。现在,微处理器可以运行实时操作系统,使得 MPU 和 MCU 之间的界限进一步模糊。以前,执行实时应用,例如,电机控制应用,必须使用微控制器。如今,工程师已开始采用 MPU,在不影响执行时间的情况下,获得更强大的计算能力和更大的存储容量,是一举两得的好事。简而言之,一些集成商正在充分利用 MPU的技术创新,当竞争对手还在用 MCU时,他们已经掌握了MPU这个新的秘密武器。
故事的发展
STM32H7还是STM32MP1?
过去几年,高性能 MCU 和入门级 MPU 之间的界限非常模糊,使得 STM32MP13 等产品成为嵌入式系统开发人员的新宠。像STM32H7 一样,STM32MP13 本身也支持 Eclipse ThreadX。因此,给了从未接触过微处理器的开发人员一个熟悉的开发环境,可以去调用 FileX、NetDuoX 或 USBX 的应用程序。因此,无需重新培训团队或大幅增加物料成本,就可以享有更高的性能。
此外,STM32 工程师还拥有额外的优势,因为 STM32Cube工具生态系统同时支持MCU和 MPU,从而进一步降低了进入门槛。例如,在 STM32CubeMX 上初始化引脚配置和时钟树。希望在 STM32 MPU 上实现安全密钥配置的开发人员可以选用 STM32CubeProgrammer,这款工具使安全固件安装 (SFI) 也更容易。因此,ST的生态系统用户有更多的动力去探索 MPU,将其用作支持新应用的秘密武器,因为他们已经熟悉ST的许多开发工具和产品概念。
从STM32MP13到STM32MP15
对于许多嵌入式系统开发人员来说,问题不再是是否要涉足 MPU 领域,而是深入到何种程度,以及从哪里开始。ST 合作伙伴计划的许多成员都推出了采用 STM32MP13 的 SiP 和 SoM,因此,对于任何希望将MPU作为秘密武器的团队来说,STM32MP13都是一个绝佳起点。这款微处理器搭载一颗1 GHz 的 Cortex-A7内核,对那些寻求设计简单但性能强大的开发者有很大的吸引力。不是多核,意味着功耗更低(27µW),而且能够将STM32MP13 集成到简单的四层 PCB上。
那些追求更强性能的人会选择STM32MP15。该产品搭载两颗Cortex-A7内核和一颗Cortex-M4内核,使得在模糊MCU和 MPU之间的界限的同时推动开发人员深入MPU阵营。例如,可以关闭 Cortex-A7内核,只开启Cortex-M4内核,将其用作传统 MCU,记录传感器数据,同时消耗更少的电能。此外,这款产品的 3D GPU 符合 OpenGL 标准,允许开发人员运行更高级的用户界面。该产品还配备了更多的显示接口和外设。因此,STM32MP15 可以帮助集成商扩展系统。
让我们以一家开发工业用设备(例如,可编程逻辑控制器)的公司为例。开发者可以使用 STM32MP13 设计一个功能强大的无显示屏产品。此后,开发者可以把原始设计迁移到STM32MP15上,增装一块分辨率1080 x 720的显示屏,给PLC控制器增加一个人机界面 (HMI)。因为这家公司最初使用的是STM32 MPU,所以,他们可以使用相同的嵌入式 Linux 发行版,并轻松地将应用从一个 MPU 移植到另一个 MPU。该操作系统还运行先进的 UI 框架,例如,以可移植性而闻名的 Qt 或Crank。
另一个例子是智能恒温器,其中用户界面是产品体验的重要组成部分。厂商一直在寻求产品差异化,使用不同级别的 UI 和屏幕尺寸来吸引更广泛的客户群。从 STM32MP15 迁移到 STM32MP13,开发者可以运行相同的底层应用,还可以选用很多不同的附加功能,创建涵盖更广泛的需求和价位的产品组合。
从STM32MP15到STM32MP25
开发人员越来越关注如何设计使用寿命更长的产品,并在边缘设备上引入机器学习。MPU 的最新进展可以提供更大的存储灵活性,帮助开发者满足这些需求,这也解释了为什么许多人经常采用 STM32 MPU,以保持竞争优势。例如,新款 STM32MP25 是ST第一款除DDR3外还支持 DDR4 和 LPDDR4 的 MPU。64 位架构还意味着它可以为音视频处理和网络设备等应用提供更多的存储空间,或者同时运行多个软件,以节省资源,提高效率。
大多数工业应用使用相同的存储器接口长达十年或更久,因此,微处理器必须提供灵活性更高的存储控制器(与消费市场相比),这就是为什么 ST MPU 始终支持多个存储器接口,并且ST确保最广泛的兼容性,STM32MP25就是一个这样的产品,它使系统支持变得更加高效,同时也便于进行设计更新和升级。
同样,许多人都希望从边缘机器学习中获益。STM32MP25 是第一款支持 64 位架构的 STM32产品,搭载了两颗 Cortex-A35内核,这是目前Arm最高效的内核。因此,这款产品可以运行更强大的应用,同时保持较低的功耗。神经处理单元 (NPU)的处理速度达到1.35 TOPS,Vulkan 兼容GPU能够在全高清显示屏上轻松运行新颖的用户界面。因此,ST的新 MPU 为一些要求最苛刻的应用带来了机会,例如,能够进行人数统计或物体检测的智能相机,以及空间计算等新系统。
未来将会怎样?
ST决定发布更多的 STM32MP2 MPU,帮助开发人员根据实际需求定制应用。确实,同一系列微控制器通常包含很多不同的产品型号,而微处理器却没有那么多产品型号,因为微处理器制造难度更大。然而,随着制造能力不断优化,ST计划尽快发布更多产品,并使其中多个产品的引脚兼容。ST已经预发布了STM32MP21 和 STM32MP23。STM32MP21搭载Cortex-A35和Cortex-M33两个内核、两个以太网控制器和一个摄像头接口,可以满足有成本要求边缘计算机视觉应用。STM32MP23定位在STM32MP25 和 STM32MP21之间,它的双 Cortex-A35内核可以实现丰富的 UI,同时兼顾成本。
STM32 MPU产品系列