嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。 和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。 嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP) DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有两个发展来源,一是DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,TI的TMS320C2000 /C5000等属于此范畴;二是在通用单片机或SOC中增加DSP协处理器,例如Intel的MCS-296和Infineon(Siemens)的TriCore。推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP 处理器的长处所在。
MCU和DSP最近在制作电子类产品方面都应用广泛,DSP在数字信号处理、通信领域应用较多,MCU在自动控制、智能信号上应用广泛。处理器通常可以分为三大类,就是数字信号处理器-DSP、微控制器-MCU,还有中央处理器-CPU。为便于大家理解它们在应用中的差异,我们不妨作这样的比喻:DSP好比是一次方程式赛车的引擎,追求的是高速高效;MCU好比是摩托车引擎,追求的是灵巧便捷;CPU则好比是豪华家用车的引擎,追求的是面面俱到。当然DSP与MCU的融合将相应成辉,可以满足更多更广的应用需求。
MCU的特点: 适合实时控制和操作任务 可预测的执行周期 擅长中断处理,特别是外部异步事件 比较多的I/O功能, 程序较大 丰富的片上外设
DSP的特点: 适合处理实时连续的数据流; 针对多重密集算法的数学引擎; 可观的MIPS性能; 可预测的执行时间; 适合处理小型和重复性的工作; 代码体积小、芯片体积小等
ARM Cortex-M7突破MCU内存极限
毫无疑问,ARM Cortex-M7 - 拥有强大的内存和处理能力 –以即使在几年前都难以想象的方式扩展了微控制器的功能。该处理器被定位成为物联网(IOT)的核心构建模块的事实,更是夺人眼目。
事实上,意法半导体的STM32F7系列在9月的ARM科技论坛上荣获了最佳表现奖。这是第一款采用ARM的Cortex-M7内核的32位MCU家族,拥有320KB SRAM和1024KB闪存。爱特梅尔采用Cortex-M7内核的处理器还没有公布,预计将有384KB SRAM和2MB闪存,这种内存规格高出典型的MCU 10倍以上。
但是,Cortex-M7是否拥有“完成任务”所需的必要资源基本上还是要取决于开发者。本质上:今天的嵌入式开发人员,有时是在似乎几乎不受约束的设计空间上,绞尽脑汁地在硬件、软件和系统设计上做出如毛线团似的大量繁杂的决定和取舍。
“对于来自Windows,Linux,iOS,Web服务编程和商用逻辑编程领域的开发人员,Cortex-M7有太多限制和性能上的扼杀。但是,对于曾在8051等任何8位微处理器上,或Cortex-M0到M3上的开发者而言,他们眼中的Cortex-M7资源丰富、性能强大。” Matt Liberty说。他是Jetperch LLC的创始人,该公司提供DSP和嵌入式软件咨询服务。
一个实时 I/O 处理的强者
“这是一个实时I/ O处理的强者。事实上,像很多在8位单片机上编写的小型嵌入式程序那样不带操作系统裸机运行在目标硬件上的循环程序,它们高效、简单易懂且易于调试,可能很难使用这么多的性能配置和存储器。”
Liberty强调,在物联网的应用场景中,为了更有效地管理复杂的网络和多个外围设备,采用一个实时操作系统(RTOS)变得非常关键。但是,过去几年来,随着开发社区努力寻找更佳的方案,RTOS的数量也在激增,现在,选择“最好”的RTOS已经成为开发人员的一大挑战。
“快速浏览维基百科的“实时操作系统列表”就足以让嵌入式软件工程师头大”,Liberty强调。 “虽然C和C ++仍然司空见惯,但在考虑多线程、安全性以及可靠性时,这两种语言都显得捉襟见肘。D和Rust语言具有填补这些空白的潜力,但它们今天都没有做好用于嵌入式应用的准备。”
Frank Hunleth,一名专注于视频处理和嵌入式Linux开发的嵌入式软件开发人员,他也认为,实时操作系统行业需要证明在这些平台上使用高级语言的可能性,并帮助定义它们的库。
“我敢肯定,如果明年我在一个项目上使用M7,我还是会使用C或C ++,因为它们有大部分工具和库的广泛支持,”他说。 “我希望这种情形保持下去吗?不是的,因为如果这样,我们将错失可以从Rust语言得到的静态检查内存安全,从Python语言得到的易开发特性,和来自Erlang和Elixir的容错性和并发性。”
内存有点小
其他人觉得,对物联网而言,即使有旨在最大限度地利用M7内存的功能特性,M7的内存依然稍显不足。一个例子是ST针对内部嵌入式闪存和L1高速缓存的自适应实时加速器,它可以从内部和外部存储器同时执行指令和访问数据。
“对一个微控制器而言,这是一个很大的内存和存储空间。但是,哪怕是最小的Java虚拟机[即解释Java字节码,使处理器执行程序指令的环境]至少也需要2MB才能运行起来,一时半会我们还不太可能会看到Java或任何其他基于虚拟机的平台上运行在这些小的CPU内核上。” PTR集团的首席技术官和首席科学家Michael Anderson说。“如果你增加一个通信协议栈和一个可执行程序或诸如ARM的mbed、Micrium的μC/ OS-III或FreeRTOS之类的实时操作系统,你的程序空间会显得非常小。”
Anderson强调,内存使用率是很多这些物联网新应用的命脉。“内存是宝贵的。类库内部封装的API会吃掉内存,尽管它在通用计算机上表现良好。这些年,在计算机行业,我们的代码只有少数存在不知情内存膨胀的案例。如果我们不认真思考正在进行的开发任务,并继续以我们在大容量内存环境下已经习惯的方式编写代码,我们就永远无法使用这些小内存的微控制器进行物联网应用开发,并发掘出其令人惊艳的可能性。”
DSP是数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,它的英文原名叫digital signal processing,简称DSP。另外DSP也是digital signal processor的简称,即数字信号处理器
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
嵌入式微控制器(Microcontroller Unit, MCU) 与内存
最新推荐文章于 2023-10-25 22:51:01 发布