华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...

45d10b6da4d666e478651e494a1e8d0e.gif

每项新应用设计都需要一个单片机或微处理器。当在两者之间选择其一时,需要考虑一些因素。以下是微处理器、单片机以及异构架构的概述。

考虑选择微处理器(MPU)或者单片机(MCU)时,应用类型通常是关键因素。另一方面,最终选择取决于诸如操作系统和内存之类的因素。不过,有时可以将微处理器和单片机内核结合使用,这称作异构架构。

操作系统

对于一些基于Linux或安卓等操作系统的计算机密集型工业和消费类应用,需要大量高速连接或功能范围广泛的用户接口,微处理器就是最佳选择。这是因为大多数单片机都没有操作系统,而只有裸机程序,借助于顺序处理循环和状态机,几乎无需任何人工干预即可运行程序。然而,许多高性能单片机可以支持诸如FreeRTOS之类的实时操作系统(RTOS),从而以确定性方式实时响应需要硬实时行为的应用程序。

作为具有许多免费软件、广泛硬件支持和不断发展的生态系统的通用操作系统,嵌入式Linux取得了巨大的成功。它的另一个优点就是没有用户或授权许可费用。不过,与嵌入式Linux一起运行的应用程序至少需要300至400 DMIPS(ARM-Dhrystone MIPS)性能,因此较适合使用微处理器。单片机没有足够的计算能力和内存来应付此类应用。

如果是用于复杂或对实时性要求高的控制系统,RTOS则很有用,但至少要配合50 DMIPS的高性能单片机。这比嵌入式Linux所需的性能要求要少得多。传统的RTOS设计精简,因此可以在单片机上运行。针对实时计算硬件时,这是合理的,例如用于车辆的防抱死系统,若响应时间过长会带来致命的后果。即使必须支持大量的功能、中断源和标准通信接口,也建议使用带有RTOS的单片机。

内存

微处理器与单片机之间的另一个主要区别是,微处理器依赖外部存储器来保存和执行程序,而单片机则依赖嵌入式闪存。在微处理器中,程序通常存储在非易失性存储器中,例如eMMC或串行闪存。在启动过程中,将其加载到外部DRAM中并在此执行启动程序。DRAM和非易失性存储器都可以具有几百兆甚至几千兆字节容量,这意味着微处理器几乎从来不受存储容量限制。但有一个潜在缺点:外部存储器或许会使得PCB布局的设计变得更加复杂。

即使是当前的高性能单片机,例如由意法半导体(STMicroelectronics)生产的STM32H7,最多也仅提供2 MB程序内存,对于许多需要操作系统的应用而言可能不足。由于程序位于片上内存中,因此其优点是执行启动和重置过程的速度明显更快。

计算能力

计算能力是典型的选择因素。不过,在这方面,微处理机与单片机之间的界线变得模糊了。例如,如果你将ARM体系结构视为单片机和微处理器市场中分布最广泛的体系结构之一,这就变得显而易见了。ARM提供了不同的处理器体系结构以满足各种要求:

Cortex-A提供了最高性能,并且已经针对综合操作系统进行了优化。它们主要部署在功能强大的设备中,比如智能手机或服务器。

Cortex-M较小,具有更多的片上外设,但是能耗较低,并且针对嵌入式应用进行了优化。

Dhrystone是比较不同处理器性能的测试基准。根据该基准,普通平价单片机具有30 DMIPS,而当前性能最高的单片机(包括嵌入式程序闪存)与这些平价单片机的差距高达1027 DMIPS。相比之下,微处理器的起步点约为1000 DMIPS。

能耗

单片机在能耗方面表现出色,要比微处理器低很多。尽管微处理器具有节能模式,但其能耗仍然比典型的单片机高得多。而且,微处理器使用外部存储器,因此较难切换到节能模式。对于需要较长的电池运行时间,并且很少使用或没有用户接口的超低功耗应用,单片机是更好的选择,尤其是对于消费类电子产品或智能电表来说。

连接性

大多数单片机和微处理器都配备了所有常规外围设备接口。但是,如果用户需要的是超高速外围设备,在单片机里是找不到例如千兆以太网这种相关接口的。尽管这实际上已成为微处理器中的标准功能单片机。这是十分合理的,因为单片机几乎无法处理这些高速接口所产生的数据量。一个关键问题是:是否有足够的带宽和通道来处理爆发的数据量?

实时表现

当实时性能是最重要的考虑因素时,单片机绝对是首选。凭借处理器内核、嵌入式闪存和软件(RTOS或裸机OS),单片机可以出色地完成实时任务。因为Cortex-A微处理器使用高性能的流水线,用户可以看到在跳转和中断期间,随着流水线的深度不断增加,延迟时间也随之升高。由于OS与微处理器一起执行多任务,因此很难实现硬实时操作。

系统基础IC

由于电源已经集成在单片机中,因此它们仅需要一个单电平电源。另一方面,微处理器需要许多不同电压的电源来为内核和其它组件供电,所以通常需要一个特殊配置的电源管理IC(即所谓的系统基础芯片) 来进行供电管理。

异构架构

尽管如此,微处理器和单片机之间的界线显然变得越来越模糊。意法半导体推出的STM32MP1带有一个或两个通常用于微处理器的Cortex-A7内核和一个单片机类型的Cortex-M4内核。意法半导体的这款功能强大的主控芯片,适用于基于开源软件,并且需要高性能和大量资源的应用。这为集两者之长提供了可能性。例如,可以在其中的微处理器内核上运行OpenST Linux,而在M4内核上运行FreeRTOS,以便满足过程监视中对实时性和安全性的要求。由于这种分离结构,可以使用所有操作系统功能,例如用于触摸控制和网络通信的人机接口,而不会因为实时性影响整个应用的安全要求。当涉及系统启动的延迟时间或能源消耗时,异构架构也具有优势,因为可以在任何时间使用更合适的处理器。例如,带有保留RAM的M4可以在几毫秒内唤醒,而A7则需要长达一秒钟的延迟时间才能唤醒。

评测板STM32MP157A-EV1配备了许多个接口和一个显示器。

3fc797c0f5c448898eaa95016a3347e1.png

结论——微处理器还是单片机?

很难说微处理器或单片机哪个才是更好的选择,但经验法则是,你应该始终权衡各种利弊条件。以下几点可以用作大致指导:

单片机非常适合以能耗为主要关注点,且价格较低的移动应用以及具有实时需求的应用。

微处理器则非常适合与操作系统一起运行并需要高速接口的密集计算应用。游戏和其他图形密集型应用使用特殊的微处理器进行联网处理。

(本文作者系Rutronik数字产品经理王灏)

111a65481dfde4064dfaa6fb10f86eb8.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

option标签selected=selected属性失效的问题

要在select标签上面加上autocomplete"off"关闭自动完成,不然浏览器每次刷新后将自动选择上一次关闭时的option,这样默认属性selected"selected"就会失效啦 要记住每次遇到select标签时就最好要加上autocomplete"off"这一项…

Spring集成–从头开始应用程序,第2部分

这是本教程的第二部分,我们将使用Spring Integration创建发票处理应用程序。 如果您错过了它,一定要看一下第一部分 。 以前,我们已经定义了系统的功能要求,创建了网关,分离器,过滤器和路由器组件。 让我们…

H5添加禁止缩放功能

<meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno, target-densitydpidevice-dpi" />

安装提示卸载office_office2010 卸载工具

点击上方“蓝字”&#xff0c;关注我们获取更多免费资源我们为什么要用这个office2010卸载工具呢&#xff0c;很简单旧版本的office卸载不干净&#xff0c;在安装新版本的office时可能会遇到一些奇奇怪怪的问题。如果遇到无法安装office时&#xff0c;我们可以先使用office卸载…

C++primer 15.6节练习

练习15.23 1 class Base {2 public:3 virtual int fcn();4 };5 6 class D1 : public Base {7 public:8 int fcn();9 virtual void f2(); 10 }; 11 12 class D2 : public D1 { 13 public: 14 int fcn(int); 15 int fcn(); 16 void f2(); 17 }; 18 跟bp…

Java中Comparator和Comparable之间的区别

常见的面试问题之一是“比较器和可比较器之间有什么区别”。 或“您将如何通过其ID或名称对员工对象集合进行排序”。为此&#xff0c;我们可以使用两个接口&#xff0c;即Comparator和Comparable。在我们真正看到差异之前&#xff0c;让我简要介绍一下两者。 可比接口&#x…

bzoj2375 疯狂的涂色

疯狂的涂色 Time Limit: 5 Sec Memory Limit: 128 MB Description 小t非常喜爱画画&#xff0c;但是他还是一个初学者。他最近费尽千辛万苦才拜到已仙逝的达芬奇为师&#xff08;神仙&#xff1f;妖怪&#xff1f;谢谢&#xff09;。达芬奇果然是画鸡蛋长大的&#xff0c;让小t…

人工通道会取消吗_二七政策将用于ETC?高速或将取消人工收费通道

随着社会的发展&#xff0c;有车一族越来越多&#xff0c;但是在这种情况下&#xff0c;堵车的情况就随处可见了&#xff0c;并且随着车辆的增多&#xff0c;高速收费通道的成本也增加了不少&#xff0c;而且通过时间越来越长&#xff0c;面对这种情况&#xff0c;交通局就和银…

零基础的前端开发初学者应如何系统地学习?

网站开发开发大致分为前端和后端&#xff0c;前端主要负责实现视觉和交互效果&#xff0c;以及与服务器通信&#xff0c;完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习&#xff1a; 基础知识&#xff1a; html css 这部分建议在 w3school 在线教…

《大道至简》第一章读后感(java伪代码形式编写)

public class DaDaoZhiJianDiYiDuan { //一.愚公移山 //问题&#xff1a;怎样把山移完 //愚公移山是一个项目 if(愚公死) { 有子存焉&#xff1b; while&#xff08;山不平&#xff09; { 子又生孙&#xff0c;孙又生子&#xff1b; 子去移山&#xff1b; } } else 愚公移山&am…

在Oracle Cloud上的Prime-UI,JAX-RS和Jersey和Gson

如今&#xff0c;Oracle云无处不在。 最初&#xff0c;拉里&#xff08;Larry&#xff09;否认在很长一段时间内都需要云&#xff0c;并且在去年的开放世界&#xff08;Open World&#xff09;之后就宣布了一些非常早期的公告&#xff0c;而且可用性很差&#xff0c;似乎没有人…

【RabbitMQ】2、心得总结,资料汇总

Spring AMQP中文文档 http://ju.outofmemory.cn/entry/320538 云栖社区 https://yq.aliyun.com/search?qrabbitmq&typeARTICLE RabbitMQ-JAVA常见报错信息 &#xff0c; https://yq.aliyun.com/articles/175024CentOS7环境下安装RabbitMQ&#xff0c; http://t.cn/RCtr…

推荐20个很有帮助的 Web 前端开发教程

在平常的搜索中&#xff0c;我碰到过很多有趣的信息&#xff0c;应用程序和文档&#xff0c;我把它们整理在下面这个列表。这是收藏的遇到的有用内容的一个伟大的方式&#xff0c;可以在你需要的时候方便查阅。相信你会在这个列表中发现对你很有用的资料。 1. CSS Vocabulary 一…

Scrapy爬虫框架解析

Scrapy框架解析Scrapy框架大致包括以下几个组件&#xff1a;Scrapy Engine、Spiders、Scheduler、Item Pipeline、Downloader&#xff1b;组件Scrapy Engine这是框架的核心&#xff0c;负责控制数据流在整个系统的各个组件间的流动过程&#xff0c;并且在特定动作发生时触发相应…

Couchbase 2.0归类视图简介

大多数应用程序必须处理“主/详细”类型的数据&#xff1a; 啤酒厂和啤酒 部门和员工 发票和项目 … 例如&#xff0c;这对于创建如下应用程序视图是必需的&#xff1a; 借助Couchbase和许多面向文档的数据库&#xff0c;您可以采用不同的方式来处理此问题&#xff0c;您…

(转)利用WPF的ListView进行大数据量异步加载

原文&#xff1a;http://www.cnblogs.com/scy251147/archive/2012/01/08/2305319.html 由于之前利用Winform的ListView进行大数据量加载的时候&#xff0c;诟病良多&#xff0c;所以今天试着用WPF的ListView来做了一下&#xff0c;结果没有让我失望&#xff0c;我将一个拥有430…

Css3新属性:calc()

一、前言 calc()看起来像是javascript中的一个函数&#xff0c;而事实上它是用在Css中的&#xff0c;可以用它来计算长度&#xff08;宽度或高度)&#xff0c;能够自动根据不同尺寸的屏幕自动调接数值&#xff0c;从而很轻松的实现自适应布局展示在不同尺寸屏幕下。项目中常常碰…

有关循环和判断的几个小问题

注意在while嵌套的if语句之外&#xff0c;还有一个cin>>n;因为刚刚没有这一部分的时候&#xff0c;执行的结果是这样的&#xff1a; 把while里面的cin>>n;注释掉了之后&#xff0c;在cmd里执行的时候&#xff0c;只能输入数字&#xff0c;但是没有任何的反应。 但其…

PHP7 学习笔记(五)安装event扩展(libevent)

一、描述&#xff1a;有效安排I/O&#xff0c;时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口。 二、下载地址&#xff1a;http://pecl.php.net/package/event 三、安装支持库libevent&#xff0c;需要编译高版本&#xff08;这里以…

DeferredResult – Spring MVC中的异步处理

DeferredResult是一个可能尚未完成的计算的容器&#xff0c;它将在将来提供。 Spring MVC使用它来表示异步计算&#xff0c;并利用Servlet 3.0 AsyncContext异步请求处理。 简要介绍一下它是如何工作的&#xff1a; RequestMapping("/") ResponseBody public Deferr…