最近加入的商品

0 件商品 共计 ¥0.00

加入购物车
您的购物车中还没有任何商品。

赛普盛科技

Embedded Computer System

专注嵌入式计算机系统

用于嵌入式图形的MCUs和MPUs之间有什么区别?——Crank软件

首页    NXP iMX6 应用开发    iMX6 应用经验分享    用于嵌入式图形的MCUs和MPUs之间有什么区别?——Crank软件

 

       在为MCU和MPU开发嵌入式UI应用方面存在着根本的区别。但随着MCU性能和功能的不断提高,两者之间的界限也变得模糊不清。

       通过观看联合创始人兼研发副总裁Thomas Fletcher在B站上的直播视频回放,或跟随下面的文字记录,了解MCU与MPU功能的变化情况,以及在评估下一个嵌入式项目的硬件选项时需要考虑的问题,这是Crank举办的首次(众多)嵌入式GUI专家讲座之一。

       我们正在研究MPU和MCU在嵌入式UI开发中的作用,并通过一些场景来了解微控制器和微处理器的变化。这是一个系列的开始,我们将探讨嵌入式UI如何在这两种不同的配置下工作。但我们认为,我们需要在足够多的信息基础上开始这个系列,以建立一个基线。什么是MPU?什么是MCU?它们有什么不同?我们将从这一点入手,并将其放在嵌入式UI开发的背景中。

 

微处理器(MPU)的例子

 

在MPU上构建嵌入式UI时的考虑因素

 

       MPU是我们典型的微处理器配置。这些是我们经常使用的桌面类型的系统,将其缩减到嵌入式环境中运行。当我们谈论MPU时,我们谈论的是相当复杂但也更通用的系统——它们没有集成完整。微处理器是需要外围设备的芯片,需要其他系统的支持。

       例如,当我们谈论像i.MX6或Intel x86系统时,如果您在看像Raspberry Pi、BeagleBone和BeagleBoard系列原型开发板这样的评估板,这些类型的系统有一个非常强的处理器和很多外围支持可以集成到它上面来。

       关于MPU系统特别有趣的一点是,它们中的很多还包含一个用于内存管理的MMU。当我们考虑嵌入式UI开发和实际驱动UI所需要的东西时,这是一个重要的考虑因素。

       MMU的定义:内存管理单元(MMU)是处理其虚拟内存和缓存操作的物理硬件。MMU通常位于中央处理单元(CPU)内,但有时也在一个单独的集成芯片中运行。所有的数据输入都被发送到MMU,而MMU又决定是否需要从存储中检索数据。

       在Crank软件公司,我们的团队一起做嵌入式UI开发已经超过10年了。刚开始的时候,我们许多的嵌入式产品都涉及这个领域:汽车产品、医疗设备、IVI、仪表盘和其他类型的类似配置都在这个领域里。任何想要丰富复杂的触摸屏用户界面的人通常都在使用MPU配置。

 

微控制器(MCU)的例子

 

在MCU上构建嵌入式UI的考虑因素

       从另一方面讲,我们也看到不同类型的处理器配置被称为MCU。与MPU相比,MCU是什么?这里的区别是这个C,它是一个控制器或微控制器。它往往是一个更简单的系统,倾向于更多的集成。而MPU或微处理器依赖于大量的外设支持、内存控制器、I/O控制器,有时甚至是外部图形配置和电路板。一个MCU往往是完全集成的。它将所有这些功能集中在一个更简单的配置中,供您在产品中使用,但它也可能是更单一用途的。它不会同时运行各种不同的应用程序,它倾向于只运行一个东西。

提示:MPU和MCU之间的关键区别是,MCU的集成度更高,配置更简单。一个MPU依赖于不同的应用程序和外部支持。

今天市场上有哪些MCU平台的例子?

       如果我们考虑到当今世界嵌入式UI开发背景下的板卡和配置类型,我们正在寻找来自意法半导体的平台和配置,包括:STM 37、STM F4、STM F7和STM H7级处理器;来自恩智浦的RT系列、1060s、1050s,以及Microchip也有很多不同的控制器,特别是PIC32系列,它们正在嵌入式UI家族中发挥着作用。这些类型的配置要简单得多,用途也更单一。

       使用这些MCU平台的这类嵌入式应用都是控制系统的配置,您正在做I/O数据收集和一点点管理的应用,再想想HVAC系统、温控器和烤箱控制器,这些类型的系统往往都属于MCU的范畴。

       历史上,MCU没有很多嵌入式UI交互,这只是因为它们是更简单的系统。它们是完全集成的,经常没有大量的内存容量,也没有大量的资源容量。开发人员需要考虑建立代码,将其部署到目标上,然后将其作为一个完整的系统进行整合。

 

Thomas在解释使用嵌入式UI显示器的产品的控制系统

 

用MCU构建的嵌入式产品专注于I/O控制

       如果我们思考一下我们正在运行的应用类型,如HVAC或有控制系统的空调,它们已经发生了转变。下面是我们现今在市场上可以看到的可能使用了MCU控制器的两类产品。您会注意到,它们都非常注重I/O控制。一个咖啡机,用来监测I/O、做测量、做数据收集或读取,但最终它是一个非常单一用途的设备。同样,一个空气过滤系统,非常复杂,但也是单一用途的。

 

使用MCU的咖啡机原型;包括一个嵌入式UI显示屏

 

       这些是将LCD显示屏集成到其配置中的嵌入式产品,如果它们在MCU配置上运行,这意味着一旦您开始在上面安装显示屏,您最大的需求之一就是内存。如果我们选择这个小小的显示屏,让我们假设它是128×128像素,它是一个相对较小的显示屏。这个显示器,如果它使用完整的32位颜色(完整的红、绿、蓝alpha通道)将使用大约64K的内存,这个内存量需要提供给系统使用。如果您选择的是一个简单的系统,而且您没有集成的内存,那么这将占据您芯片核心的很大一部分。这就是为什么它通常是MPU的领域。

 

在MCU上的嵌入式系统内存优化

       在MCU类别中有趣的是,最近的MCU系列已经开始集成更多的内存能力,这确实打开了大门,使它们更接近典型的MPU配置。我们现在看到的MCU有128K、512K、1M、2M,甚至在某些情况下有10M的内存,这确实打开了这些MCU开始运行更丰富的图形显示的能力。

       您可以在这里看到(在视频中),随着您的图形显示器尺寸的增大,对内存需求的增长也相当明显而且相当快。480×272像素是一个常见的显示尺寸,就像素密度而言仍然相对较小,一个单一的显示缓冲区将占用半兆的内存。通常情况下,您会想把这些都翻倍,所以只是为了显示,您就得考虑1M的内存。现在,我们将在之后的会议上讨论这个问题,但在这里我讨论的是32位彩色显示。我们很容易将其分解为16位的颜色,或者有其他技术可以用来减少内存程序。但至关重要的是,MCU需要有板上的内存,最近的MCU系统的发展的一部分是他们已经集成了这种内存。

 

使用MPU进行强大的图形处理

       这不仅仅是内存配置的问题。MPU作为一个处理器通常要强大得多,运行速度达到千兆赫兹或更高。MCU本身仍然很强大,但就速度而言,我们谈论的是100兆赫兹、200、400、600兆赫兹。一旦您开始进行图形操作,您需要在内存中来回操作数据,您就会遇到一个挑战,即如何实现MCU应该做的最初目标同时渲染丰富的图形、显示器、用户界面等等。这也不仅仅是通过整合更多的内存来解决的,而需要通过整合渲染库和渲染技术,以加速这些图形操作。

       在这里,以及在某些情况下,我们正在谈论完整的GPU。例如,在恩智浦的案例中,我们有PXP图形加速器。在意法半导体的案例中,我们经常看到一个DMA 2D引擎,这种集成是允许MCU平台支持图形,支持丰富的互动的关键,并仍然履行其在产品中的操作角色,即它需要做的I/O的控制系统。它仍然是单一用途的,而且是非常聚焦的产品设备——但总体上是更简单的配置,集成了更多的内存和高级图形渲染能力。这使得MCU进入了一些我们通常会看到使用MPU处理器的领域。这就是围绕MPU和MCU之间的硬件差异的硬件配置故事,我们在这里谈论配置所需的外围支持水平,并谈论更简单的集成故事。但是嵌入式UI的开发方面还有更多的内容。还有就是考虑您的操作环境是什么样的。

 

了解嵌入式系统的MCU和MPU之间的操作系统要求

       在MCU方面,我们通常看到的是一个实时执行风格的操作系统,而在MPU方面,我们看到的是一个更丰富的操作环境的模型。这在很大程度上与提供什么样的内存访问以及系统在配置方面是什么样的这个概念有关。

 

操作系统的例子

 

       QNX、Linux、Android,这些都是典型的依赖进程模型的系统,这些进程在内存分离的空间中相互独立执行。这是为了让系统在组件故障方面更有弹性——一个组件故障或写入一个内存块实际上并不影响其他组件。这是产品弹性的一个重要考虑,能够在各种不同的灵活考虑因素中支持您的产品。这就是为什么它往往与MPU的通用配置联系在一起。

       然而,另一块真正有趣的是开发风格。当您在使用 QNX 系统或 Linux系统时,您往往会让系统一直处于运行状态。您配置了系统镜像,您正在运行单个进程,而且其中一个进程可能是您的用户界面或图形组件。因此,当您在一个应用程序中频繁地迭代变化时,能够快速地做到这一点,并且能够通过简单的软件重置快速地推送变化,在这里真的很重要。在MPU方面,这对您的开发速度是一个很大的好处;您能够在对UI进行快速迭代变更。当开发一个用户界面时会有大量的变更和反馈周期发生,这是Crank在我们的Storyboard产品中真正关注的事情之一。

 

Thomas在解释嵌入式设备的操作系统之间的区别

 

实时执行系统(RTOS)和标准操作系统(OS)之间有什么区别?

       如果我把这种工作模式与您所看到的MCU进行比较,您通常使用的是实时执行器的配置。实时执行器和我们的标准操作系统之间的区别是,实时执行器在任务管理、同步和计时器方面提供了许多操作系统的功能;但它提供的方式是,您用进程模型得到的隔离,部分是因为它是有MMU或内存保护的。对于MCU这是不存在的。这也是一种不同的思维方式。通常情况下,当您与这些系统一起工作时,您不是在看软复位。您通常在组装整个系统,使其在一个系统镜像或一个系统负载中一起工作。有一些技术可以用来分割或分解它,以便您的开发周期不必总是涉及重建和重新刷新整个系统镜像。但由于MCU配置的集成性,这又通常就是您正在做的事。

       如何为您的嵌入式系统选择一个MCU或MPU平台规则总是有例外的。您可以在其中一些配置上运行Linux,这实际上取决于您在内存和闪存方面可用的资源的丰富程度,以及与您的应用程序执行的其他部分相比,您有多少资源可以用来划分并交给操作系统作为开销。这是一个较慢的开发模式。同样,在发生大量变化的嵌入式UI开发的背景下,因为这是一个较慢的开发模式,您可能不得不重建系统,降低闪存占用,看看它,如果它不太合适,再做进一步的修改——这是一个较慢的模式。您可以最终使用更多的仿真技术或更多的脚手架,我正在建立一个应用程序,但我在一个框架中建立它,我可以在我的桌面环境中执行,或者甚至可能在MPU环境中进行仿真,而不必总是需要和硬件打交道。这可以加快开发进度,尽管最终当您真正想看到显示器的画面并真正想与之互动时,重要的是不只是在模拟环境上,而是能够在真正的硬件上运行。

 

       这正是Storyboard的优势所在,因为无论您使用的是MPU还是MCU,我们的技术都可以让您使用一个通用的开发模型在不同的部署模型之间来回转换。无论您是部署在QNX或Linux或Android上,还是部署在FreeRTOS,µC/OS或ThreadX类型的系统上,与硬件和渲染技术无关,Storyboard都能让您挑选出能为您提供开发支持的平台,以快速迭代嵌入式UI的变化,然后迅速将其投入使用。

 

 

关于微控制器和微处理器的区别的现场问答

 

在构建图形用户界面时,如果您的嵌入式产品需要改变,是否可以容易的从一种类型的平台转移到另一种平台?

答:绝对是可以做到的。这真的要取决于您使用的技术。不同的技术提供不同的支持。有些技术发现自己与所提供的图形功能能够非常紧密地结合在一起,无论是在MPU方面还是在MCU方面。

而像Storyboard这样的嵌入式UI设计技术或软件,往往更具有独立性,因此您可以在与处理器、图形和操作系统保持一定距离的情况下进行开发。例如,如果您有一个基于MCU的产品(也许是您的产品的低成本变体),功能不太丰富,但您仍然希望有丰富的UI展示,您可以使用FreeRTOS和RT1050或1060来提供这个低成本的平台。但是,也许在一个更高端的系统上,有更多的功能和更多的与其他组件的集成,您可能会使用一个Linux系统或QNX系统作为操作系统基础,给您更多的技术接入——与i.MX6或i.MX8一起。不管怎么样,如果您选择了正确的技术,同样的用户界面设计可以来回使用。

 

如果我升级到MPU或降级到MCU,是否会有任何功能损失?

答:是的。当然会。我们不是在谈论MCU与MPU在所有领域的平等性。当然,如果您在考虑一个平面的,在颜色和图形资产上相对丰富的图形设计,迁移起来就会相对容易一点。如果您想要的功能是利用MPU系统上的3D GPU能力,这些功能不太可能转移到MCU上。因此,您真正要寻找的是一个系统,在这个系统中,你可以设计出一种与你的MPU和MCU功能相匹配的合理的降级方式。Storyboard就是这样一个软件,在那里您可以优雅地降级。

 

那么SOMs呢?

答:SOMs(System on Modules模块上的系统)或片上系统实际上是MPU配置的一种尝试,即把更多的功能打包成更多的集成解决方案。SOM或片上系统实际上是MPU配置的一种尝试,即把它的更多功能,打包成更多的集成解决方案。当我谈到交叉型解决方案时,SOM不是一个MPU或MCU,而是一个封装概念。像【赛普盛科技】这样的公司提供现成的模块,将MPU包装起来,与I/O控制等方面的不同类型的技术放在一起,这样您就可以在您的产品用户界面设计中获得一些更简单的集成组件。

 

总结

       我们谈到了MPU和MCU之间在配置上的一些差异。我们还讨论了MCU是如何增加其功能集的,它仍然是一个集成平台,但在嵌入式用户界面真正感兴趣的领域增加了功能。内存和图形功能,使我们能够在这些配置中运行丰富的用户界面。

       然而,MPU是不会消失的。它们将存在很长很长一段时间。很多专门的应用需要MPU处理器所具有的那种能力。但是当您功能单一的应用时,MCU可以是一个很好的开发选择,特别是在一些新的集成平台上,您将拥有所有您需要用来开发出丰富界面体验的能力。

       值得注意的是,有一种处理器可能无法归入MPU类别或MCU类别。MPU,通常认为它们是Cortex-A9类系统,而MCU,通常认为它们是Cortex R,M类系统。但是,如果我们用集成作为区分标准,中间有很多交叉组件,这些空间为嵌入式用户界面提供了一个很有意思的机会。

 

 

2022年8月24日 15:30
浏览量:0
收藏
    • 联系客服

    • 0755 2955 4030
    • 189 2600 3503
    • sales@superfae.cn
    • 服务时间

    • 周一至周五 9:00-18:00
    • 微信二维码