当为你的下一个设计方案选择正确的核心处理器件时,你应该考虑哪些因素呢?本文将对MPUMCU做些对比分析,并以此对器件的选择给出一些指导性建议和意见。

本文引用地址:http://www.eepw.com.cn/article/164617.htm

  每当在为新设计选择正确合理的器件时,我们可能会有些茫然不知所措。这是需要做正确的平衡处理的事,包括价格,性能,功耗等方面的影响。当然,你可以为新设计着手考虑一些直接的技术方案,但是如果核心器件,无论是微控制器还是微处理器成为一系列新产品的基础平台,那么我们可能需要花长时间来做决定,到底是选MCU还是MPU

  首先,我们来看看MCUMPU的主要差别。一个典型的MCU通常使用片内flash存储器来存储和执行程序代码。以这种方式存储程序意味着MCU有非常快的启动时间,上电能够快速执行代码,片内存储还有个优势是可以加密程序。使用片内存储方式唯一不足就是总存储空间受MCU本身所限。目前市场上绝大多数flash型MCU最大空间为2M字节,从各种应用上看,这证明了是一个限制因素。而MPU没有存储空间的限制,MPU使用外部存储器提供程序和数据空间。程序一般放在非易失性存储器如NAND或者串行Flash内,启动时,程序载入到外部DRAM中,然后开始执行。这意味着MPU没有MCU启动运行来的快,但MPU可扩展的外部DRAM和NVM容量能达到数百Mbytes,甚至上Gbytes。另一个不同是供电,一般MCU仅仅需要单电压供电,而MPU需要几路不同的电压分别给IO,内核,DDR等供电,开发者往往需要在电路板上设计附加的电源转换芯片。

  从应用前景来看,设计规范的某些方面可能要求以特殊方式选择器件。例如,外设接口通道数需求超过了MCU能提供的怎么办?再比如,规格书规定了用户接口的容量,而MCU由于没有足够大的片内存储器或者达不到需要的性能,无法满足需求怎么办?当着手第一次设计,必须要知道的是有很大的可能性产品会有许多变更情况。如果那样的话,基于平台设计方法将是首选的设计方法,这将保证更充足的功耗和接口富余,以适应以后的功能升级。

  选择难以决断的一个特征是任何所提供的设计都能满足所需要的处理性能。处理能力通常用Dhrystone MIPS (DMIPS)来量化,它是测量处理器运算能力最常见指标之一。例如,一颗基于ARM Cortex-M4内核的Atmel SAM4系列MCU处理率为150 DMIPS,而一颗ARMCortex-A5处理器MPU,如SAMA5D3能达到850 DMIPS。一种估算DMIPS需求的方式是观察可能导致性能恶化的局部应用。运行一个完整的操作系统,如Linux, Android或者Windows CE,对你的应用来说可能要求至少300-400 DMIPS。对许多应用来说,能够满足RTOS并且有50 DMIPS的足够宽裕即可。使用RTOS还有其他好处,只需要很少的存储空间,一般内核仅仅需要几KB到几十KB的容量。然而,为了运行完整的操作系统,需要一个内存管理单元(MMU),依次指定处理器内核的使用执行,这就要求更快的处理运算能力。对于运行大量数字运算的应用,额外的DMIPS需要保留给OS以及其他的通信和控制任务。所以,越是基于海量运算的应用,越应该考虑使用MPU来控制。

  无论是针对消费电子还是工业自动化为目标的应用设计,用户界面(UI)都需要认真考虑。作为消费者,我们已经熟悉并乐于使用多彩色直观的用户图形界面。尽管操作员的操作环境多少会受限,但工业应用中已经越来越多使用这种需要操作员交互的方式。对于用户界面(UI),有许多要素。第一,处理运算额外的需求,如UI库Qt,普遍放在Linux顶部,需要额外的80-100 DMIPS开销。第二,是和UI的复杂度相关,越是丰富多彩,富于变化的多媒体图像显示,就需要越快的处理能力和越多的内存,并且随着解析度的增加,这种需求成比例的增加,这也是为什么以UI为中心的设计更适合用MPU的原因。相反,低解析度的静态图像UI可以使用MCU寻址。另一个关键点是,MPU通常集成一个嵌入式TFT LCD控制器,这是很有用的。很少有MCU芯片有这个功能,所以需要添加额外的TFT LCD控制器和驱动元器件。即使一些MCU嵌入了TFT LCD控制器来抢占市场,但仍需要足够大的SRAM来驱动显示。例如,QVGA 320 x 240分辨率16bit色彩的屏幕需要150K字节的SRAM。对于SRAM来说这是相当大的容量,所以可能需要额外多的内存和器件。更加复杂先进的图形用户界面,特别是屏幕超过了4.3英寸,会明确规定使用MPU。所以,如果说在彩色TFT屏幕上运行用户图形界面是把MPU当做核心,那么分段点状矩阵LCD屏和其他带有串行接口的显示屏就以MCU为核心。

  从连接性角度说,大多数MCU和MPU可以利用一切通用外设接口。但诸如USB2.0,以太网等高速通信外设接口通常只有MPU会配备,因为MPU更具有处理大量数据的能力。数据通信中是否有足够的通道和带宽是个关键问题。根据所用的通信协议,在使用第三方工具时应当检查代码空间的压缩问题。当应用需要高速连通性时候,特别是使用基于OS的堆栈,要求基于MPU来设计系统。

  另一个决定使用MCU还是MPU的关键方面是根据应用系统的实时/确定性的行为。由于MCU处理器内核嵌入了flash,软件要么是RTOS要么是C,这决定了MCU在大多数即时性应用中将起一个至关重要的角色。

  最后一点需要考虑的是功耗。虽然MPU有低功耗模式,但不会像典型MCU那样低。考虑到附加的硬件部分,MPU在使用低功耗模式时有更多的附加因素,这可能使系统变的更复杂。同样,MCU实际功耗大大低于MPU,低功耗模式中,SRAM和寄存器需要保持,这是要考虑的因素。显而易见,操作系统即时的从休眠模式中恢复运行和RAM直接相关。做出选择基于MCU还是MPU的决定牵涉到性能,容量,预算成本。一般而言,MCU趋向于低成本低功耗解决方案,MPU趋向于功能充足,高性能的场合。MCU趋向于在远程控制,消费电子,智能仪器仪表等低功耗应用上,这些应用强调电池的使用寿命,极少使用用户图形交互界面,MCU也使用在需要即时行为功能的场合。MPU则是基于操作系统的工业和消费应用的理想选择,这些应用通常有大量的计算,高速的互联性,或者强大用户图形交互界面。

  选择一家可以提供高兼容性MCU和MPU产品的厂商,你能很容易移植,使软件代码的重复使用率最大,获得最好的投资回报。

转载于:https://www.cnblogs.com/sichenzhao/p/9320420.html

MPU和MCU的区别和选择相关推荐

  1. MPU和MMU、MPU和MCU的区别

    一.MMU vs MPU 内存是现代计算机最重要的组件之一.因此,它的内容不能被任何错误的应用所篡改.这个功能可以通过MMU(Memory Management Unit)或者MPU(Memory P ...

  2. 一文搞懂CPU、MPU、MCU、SOC的联系与区别

    转载于read://https_www.elecfans.com/?url=https%3A%2F%2Fwww.elecfans.com%2Fd%2F1813764.html 1 CPU CPU(Ce ...

  3. mpu和嵌入式linux区别,嵌入式MCU与MPU的区分和MCU开发中的三个误区

    描述 目录 嵌入式MCU与MPU的区分 误区一:MCU的程序都是存储在片上Flash上,然后拷贝到RAM中执行的 误区二:工程编译生成的下载文件大小即为最终占用Flash的大小 误区三:用户应用工程的 ...

  4. (二):定时器和计数器的区别;时钟和晶振的区别、RTC实时时钟;MPU、MCU、SOC区别;电源符号:VCC、VDD、VSS、VEE、VPP、VBAT

    硬件的区别 (一)定时器和计数器的区别 (二)时钟和晶振的区别 (1)时钟发生器 (2)时钟信号 (3)时钟和晶振的区别 (三)RTC-实时时钟 实时时钟RTC(Real_Time Clock) RT ...

  5. java mcu 视频会议_详解视频会议终端和MCU的区别

    详解视频会议终端和MCU的区别 视频会议终端和MCU都是视频会议系统的核心组成部分之一,但其价格也相对高昂,是整个视频会议系统的主要成本之一.但是不熟悉视频会议系统的人,常常将视频会议终端和MCU无意 ...

  6. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  7. 网页静态化和网页伪静态化之间的区别与选择

    网页静态化和网页伪静态化,如果我们是一个不懂网站的人估计听到这些词可能会比较头晕,王晟璟在刚开始接触并尝试建设自己的个人博客网站的时候也是如此,看了很多关于这方面的资料也还是云里雾里的,不过后面终于整 ...

  8. 1核2G云服务器 标准型S4 S5,腾讯云服务器标准型S4和S5配置性能参数区别及选择攻略...

    腾讯云服务器标准型S4和标准型S5实例有什么区别?标准型S5相对于S4是新一代云服务器规格,S5实例CPU采用2.5GHz主频至强Cascade Lake,S4实例处理器采用2.4GHz主频至强Sky ...

  9. Memcached与Redis的区别和选择

    一.Memcached简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fi ...

最新文章

  1. 整理了近500篇的AI论文,我发现了一个问题……
  2. Github 工作流程
  3. Python 标准库 —— zipfile(读取 zip 文件)
  4. codis集群部署实战
  5. 第五章 编写主引导扇区代码
  6. linux脚本写的计算器,一步步打造自己的linux命令行计算器
  7. Discuz素材资源下载官网门户+自带论坛 整站源码+带后台+带数据库
  8. 9、MySQL逻辑架构介绍
  9. 翰文进度计划软件横道图不显示文字_作为工程新人总是加班?这份工程软件+算量套表直接帮助你,共享...
  10. struct/class等内存字节对齐问题详解
  11. matlab神经网络训练方法,matlab神经网络训练图
  12. 云服务器初始化失败怎么办,提示交互式登录进程初始化失败是什么原因?解决方法步骤教程...
  13. 用Photoshop抠图
  14. 微信发红包测试用例设计
  15. SMTP错误码/具体原因
  16. eBPF系列学习(4)了解libbpf、CO-RE (Compile Once – Run Everywhe) | 使用go开发ebpf程序(云原生利器cilium ebpf )
  17. python在手,天下我有!
  18. 证券公司信息化1-证券行业的本质是什么?什么是资本市场?什么又是一级市场和二级市场?
  19. 老铁是要塞里最出名的铁匠大师,小铁是老铁的儿子,老铁希望小铁能传承他的衣钵为要塞的骑士们锻造护甲。经近一段时间的学习,小铁逐渐掌握了打铁的技术,但是他很快发现,每一天手臂的力量总是不如前一天
  20. java gravity_Android属性gravity与layout_gravity的区别

热门文章

  1. git远程仓库上传及本地仓库创建
  2. java数字转换成字符串
  3. 【转载】最短路径之Dijkstra算法详细讲解
  4. P、NP、NP完全问题、NP难问题
  5. Linux如何将文件中内容放到粘贴板上
  6. 指针与零的比较以及浮点型与零的比较
  7. shell编程题(一)
  8. java线程池参数面试题,附赠复习资料
  9. 序列化框架MJExtension详解 + iOS ORM框架
  10. docker在Centos上的安装