嵌入式系统

常见处理器MCUMPUDSPFPGA等嵌入式处理器概念

MCU、MPU、DSP、FPGA等嵌入式处理器的概念在之前的文章中已经多次出现。 很多初学者可能会感到困惑。 下面将简要介绍这些概念。

单片机

微控制器(Micro-Controller Unit,MCU),俗称单片机。 之所以称为单片机,是因为它与其他处理器不同,它集成了CPU、RAM(随机存取存储器)、ROM(只读存储器)、I/O、中断系统、定时器等功能外设资源集中在一个芯片上。 该芯片是一个完整的微型计算机,只需要电源或极少的外围电路即可工作。

常见的MCU有80C51系列单片机、Atmel的AVR系列单片机、Microchip的PIC系列单片机、TI的MSP430系列单片机、ST的STM32系列单片机、NXP的LPC1700系列单片机等。

早期的MCU主要是8位,后来发展到16位,现在主流是32位。 另外,随着主频不断提高、ROM不断增大、外设不断增多,单片机的应用领域和场合也越来越大。

微处理器

微处理器(微处理器单元,MPU)。 CPU类似于通用计算机,主要负责处理计算,需要额外的RAM、Flash、电源等电路。

MCU和MPU的本质区别在于应用场景的定位不同。 MPU侧重于通过相对强大的计算/处理能力来执行复杂多样的大型程序,因此往往需要外部运行存储器(RAM)、存储器(Flash)等。MCU侧重于功能单一、价格敏感的应用场景。 它不需要比较强大的计算/处理能力,更多的是设备管理/控制。 因此,它不需要大容量的RAM和Flash来运行大型程序,因此RAM、Flash完全集成,也就是俗称的“单片机”,如图2.3.1所示。

在这里插入图片描述

如今,随着技术的发展以及市场和需求的变化,MPU和MCU之间的界限变得越来越模糊。 高端32位MCU的主频越来越高,已经超过低端MPU的主频。 MCU也有外部RAM和Flash的场景,根据硬件结构区分它们越来越困难。 读者可以简单地认为嵌入式微处理器MPU通常运行Linux、Android等非实时操作系统,用于高端应用市场,如智能手机、路由器等消费电子市场,而嵌入式微控制器MCU往往裸运行金属或实时操作系统,应用于中低端应用市场,如家电控制、工业控制等。

数字信号处理器

DSP通常有两种含义。

图2.3.2所示为TI公司的DSP芯片TMS320VC5509A。

在这里插入图片描述

为了达到快速数字信号处理的目的,DSP芯片采用了许多特殊的软硬件结构。 第一种是采用哈佛结构,将程序和数据分离,同时向处理器提供指令和数据。 然后利用多级流水线技术,可以在指令周期内执行更多的指令。 再加上专用的硬件乘法器和专用的DSP指令,DSP芯片的计算处理能力远远超过同主频的MCU或MPU。

DSP芯片具有强大的数据处理能力,广泛应用于数字信号处理领域的调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型场景。

FPGA

现场可编程门阵列 (FPGA) 是一种半导体器件,由通过可编程互连连接的可配置逻辑块 (CLB) 矩阵组成。 通俗地说,FPGA就是一种可以通过编程改变内部硬件结构,从而实现所需功能的芯片。 以前的MCU、DSP等都有固定的硬件资源,需要的功能只能通过修改软件来实现。 FPGA通过硬件描述语言或其他方法对硬件进行修改,将FPGA变成CPU或专用芯片来实现控制或算法。 因此,MCU和DSP能实现的功能理论上FPGA也能实现,但反之则不一定。 图2.3.3所示为Xilinx的FPGA芯片XC3S400A。

在这里插入图片描述

FPGA有两个主要优点:高速和灵活性。 FPGA利用硬件来处理数据,采用并发和流水线技术,多个模块可以同时并行执行。 FPGA可以根据现场情况配置设备功能,并且可以在技术和需求变化时重新配置,实现系统优化和升级。

在某些通信领域,需要处理高速通信协议。 同时,通信协议可能随时修改,不适合制作专用芯片。 FPGA的高速和灵活性成为首选。

虽然FPGA功能强大,但在实际工程项目中,仍然需要考虑硬件成本、开发难度、市场需求等因素。 虽然FPGA和MCU都能够处理一些简单的控制情况,但MCU由于价格低廉且开发简单,更具成本效益。

【总结】

当今复杂的嵌入式系统往往采用复合架构,如“MPU+FPGA”、“MPU+DSP”、“MCU+FPGA”、“MCU+DSP”,甚至“MCU+MPU+FPGA+DSP”。 一般选择MCU或MPU进行控制、显示和通信,选择DSP进行通信和数据处理算法,选择FPGA进行大量数据处理和具体实现。

MCU开发需要C语言基础,然后学习各种资源、接口、RTOS; MPU通常运行Linux,需要了解Linux基础知识、操作系统、网络编程等知识; DSP开发需要数据信号处理算法的理论知识; FPGA开发需要了解高速接口或音视频处理算法等。

一般来说,单片机比较简单,适合入门学习。 学习完MCU后,可以根据实际情况选择深度学习方向。

嵌入式 Linux 视频:

微控制器视频:

全文下载:点击下载