目录
一、MCU、MPU、ARM
(一)MCU(微控制器)
(二)MPU(微处理器)
(三)ARM(架构)
二、DSP
(一)数字信号处理
(二)数字信号处理器
三、FPGA
(一)基本概念
(二)特点
(三)工作原理
(四)应用领域
四、MCU开发与ARX-Linux开发的区别
(一)硬件层面
(二)软件层面
(三)应用场景
五、开源硬件Arduino和树莓派
(一)Arduino
(二)树莓派
一、MCU、MPU、ARM
(一)MCU(微控制器)
1、定义
MCU的英文全称是 Micro Controller Unit,即微处理器,又称单片微型计算机或者单片机。
它把中央处理器 (CPU) 的频率与规格做适当缩减,并将内存 (RAM、ROM)、定时器/计数器、USB、A/D 转换、UART、PLC、DMA 等周边接口,甚至 LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
2、特点
其最大特点是单片化,体积小、功耗低、可靠性高,并且具备丰富的外设接口,适用于对成本和功耗要求较高、控制功能较为复杂的嵌入式应用场景。
在智能家居、工业控制、消费电子等领域广泛使用。例如,在智能家居系统中,MCU 可以控制家电设备的运行状态、接收传感器数据等。
(二)MPU(微处理器)
1、定义
MPU 的英文全称是 Micro Processor Unit,即微处理器,通常是由计算机中的CPU演变而来的,可以理解为加强版的CPU,是一种高性能的处理器,即不带外围功能的器件。
它通常具有强大的运算能力和复杂的指令集,可以进行复杂的运算和处理。
嵌入式微处理器系统需要在MPU 的基础上添加 RAM、ROM、Flash、电源等外围电路,以及USB、LCD、键盘等外部设备,来构成完整的计算机系统。
而MCU则是将 RAM、ROM、定时器等外设集成在一个芯片上,形成芯片级的系统,即MCU集成了外围功能器件。
2、特点
MPU 的优势在于其强大的运算能力和对复杂操作系统的支持,能够处理大量的数据和复杂的任务,主要应用于对计算能力要求较高的嵌入式系统,如智能手机、平板电脑、工业平板电脑、车载导航系统等。
以智能手机为例,MPU 需要运行复杂的操作系统和各种应用程序,处理图像、音频、视频等大量数据,这就需要 MPU 具备强大的运算能力和高速的处理速度。
(三)ARM(架构)
1、定义
ARM 的全称为 Advanced RISC Machines,是一个公司的名称,同时也是一种处理器架构的名称。
ARM 公司并不直接生产芯片,而是设计芯片架构和 IP 核,授权给其他半导体公司生产基于 ARM 架构的芯片。
2、特点
ARM 架构具有低功耗、低成本、高性能的特点,广泛应用于嵌入式系统领域。基于 ARM 架构的芯片在市场上占据了很大的份额,无论是 MCU 还是 MPU,很多都采用了 ARM 架构。
例如,Cortex - M 系列是面向微控制器应用的低功耗、低成本的 ARM 架构,常用于各类 MCU 中;而 Cortex - A 系列则是面向高性能应用的架构,常用于智能手机、平板电脑等设备中的 MPU。
二、DSP
DSP有两种含义:①数字信号处理(Digital Signal Processing)、②数字信号处理器(Digital Signal Processor)。以下是对它们的详细介绍:
(一)数字信号处理
1、定义
是一种通过计算机或专用处理设备,对数字信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以达到提取信息、便于应用的目的的技术。
2、处理过程
① 采样:将连续的模拟信号转换为离散的数字信号,按照一定的采样频率对模拟信号进行抽样,得到一系列离散的样本点。
② 量化:将采样得到的离散信号的幅度值进行量化,将其映射到有限个离散的电平值上,以便于计算机进行处理。
③ 编码:对量化后的信号进行编码,将其转换为二进制代码表示,以便于存储和传输。
④ 数字信号处理算法:运用各种算法对编码后的数字信号进行处理,如快速傅里叶变换 (FFT) 用于频谱分析、数字滤波用于去除噪声、卷积运算用于信号的特征提取等。
⑤ 解码:将处理后的数字信号进行解码,还原为原始信号的表示形式。
⑥ 重构:将解码后的数字信号通过数模转换器(DAC)转换为模拟信号,以便于实际应用。
3、应用
广泛应用于通信、音频处理、图像处理、雷达、声纳、生物医学工程等众多领域。
例如在通信领域,数字信号处理用于调制解调、信道编码解码等,以提高通信系统的性能和可靠性;在音频处理中,用于音频编码解码、音效增强等,改善音频质量。
(二)数字信号处理器
1、定义
是一种专门为了进行数字信号处理而设计的微处理器,它具备独特的硬件架构和指令集,能够高效地执行各种数字信号处理算法。
2、特点
① 哈佛结构:采用哈佛结构,将程序存储器和数据存储器分开,有各自独立的总线,可同时进行指令和数据的读取,提高了数据处理效率。
② 高速运算能力:集成了专门的硬件乘法器、累加器等,能在一个指令周期内完成一次乘法和一次加法操作,适合数字信号处理中的滤波、FFT 等运算密集型任务。
③ 丰富的指令集:具有针对数字信号处理的指令集,如 FFT 指令、卷积指令等,可高效实现各种数字信号处理算法。
④ 低功耗设计:随着技术发展,不断优化低功耗设计,适用于电池供电的便携式设备。
3、应用
在需要对数字信号进行实时处理的设备和系统中广泛应用。
如在手机中,用于处理音频、视频信号以及通信信号;在数字音频播放器中,负责音频解码和音效处理;在雷达系统中,用于对回波信号进行处理,提取目标信息等。
三、FPGA
(一)基本概念
FPGA 的全称是 Field Programmable Gate Array,即现场可编程门阵列;是一种基于查找表 (LUT) 结构的可编程逻辑器件。
由大量的逻辑单元、存储单元、输入输出单元以及可编程的布线资源组成。
用户可通过硬件描述语言(如Verilog HDL、VHDL)对其进行编程,实现各种数字逻辑功能,如组合逻辑、时序逻辑、计数器、编码器、译码器等,还能实现复杂的系统级功能,如数字信号处理、图像处理、通信协议处理等。
通俗地讲,FPGA犹是一张白纸,可以任意实现所需功能,无论是复杂的CPU,还是简单的数字逻辑电路,都可以用 FPGA 实现。
而单片机、ARM 以及DSP则是已成型的机器,单片机和ARM能现的功能,FPGA一定可以实现,反过来不一定可行。
(二)特点
1、灵活性高
用户可以根据自己的需求对 FPGA 进行编程,实现不同的功能。
在产品开发过程中,如果需要对功能进行修改或升级,只需重新编写程序并下载到 FPGA 中,而无需对硬件电路进行大规模改动。
2、并行处理能力强
FPGA 内部有大量可并行工作的逻辑单元,能够同时处理多个任务,实现数据的并行处理和运算。这使得它在处理一些对实时性要求较高的任务,如图像处理、视频解码等具有很大优势。
3、可重构性
部分 FPGA 支持在线重构,即在系统运行过程中可以动态地改变其逻辑功能。
这一特性使得 FPGA 能够根据不同的应用场景或任务需求,实时地调整自身的功能,提高了系统的适应性和灵活性。
4、开发周期短
与专用集成电路(ASIC)相比,FPGA 的开发不需要复杂的制造流程和较长的开发周期。开发人员可以快速地进行设计、仿真和验证,缩短产品的上市时间。
(三)工作原理
FPGA 的工作原理基于可编程逻辑单元的配置和互连。其内部的逻辑单元通过可编程的布线资源连接在一起,形成各种逻辑电路。
用户通过编写硬件描述语言代码来描述所需的逻辑功能,然后使用 FPGA 开发工具对代码进行编译、综合、布局布线等处理,生成配置文件。
将配置文件下载到 FPGA 中后,FPGA 会根据配置文件中的信息对内部的逻辑单元和布线资源进行配置,使其实现用户所期望的功能。
(四)应用领域
1、通信领域
用于实现各种通信协议的处理,如以太网、USB、PCI - E 等接口协议,以及无线通信中的调制解调、信道编码解码等功能。
在 5G 通信基站中,FPGA 可用于处理高速的信号传输和复杂的数字信号处理算法。
2、数字信号处理领域
可实现快速傅里叶变换 (FFT)、数字滤波、卷积运算等数字信号处理算法,常用于音频处理、图像处理、雷达信号处理等方面。
例如,在音频处理中,利用 FPGA 实现音频特效处理和音频编解码。
3、工业控制领域
用于实现逻辑控制、运动控制、数据采集等功能。在自动化生产线中,FPGA 可以作为核心控制器,对各种传感器和执行机构进行实时控制和数据处理。
4、航空航天与国防领域
由于其高可靠性和灵活性,FPGA 在航空航天和国防领域得到了广泛应用。
如卫星通信、雷达系统、武器装备的控制等。在恶劣的环境条件下,FPGA 能够稳定地工作,并根据任务需求进行功能重构。
四、MCU开发与ARX-Linux开发的区别
MCU 开发和 ARM - Linux 开发是嵌入式开发中两种不同的开发方向,它们在多个方面存在明显区别:
(一)硬件层面
1、硬件平台
(1)MCU:通常是集成度高的单芯片解决方案,内部集成了 CPU、内存、外设接口等,硬件资源相对有限。比如常见的 STM32 系列 MCU,内部 Flash 可能从几十 KB 到几 MB 不等,RAM 也一般在几 KB 到几百 KB。
(2)ARM - Linux:基于 ARM 架构的处理器,硬件资源丰富。除了处理器,还需要搭配外部存储设备(如 SD 卡、eMMC)、内存芯片(如 DDR)等。像基于 ARM Cortex - A 系列的开发板,内存可达 1GB 甚至更高,存储容量也能轻松扩展到几 GB。
2、功耗
(1)MCU:功耗较低,适合对功耗敏感的应用场景,如物联网设备、可穿戴设备等。一些低功耗 MCU 在待机模式下功耗仅为微安级别。
(2)ARM - Linux:由于硬件资源丰富,运行的系统和应用程序复杂,功耗相对较高。不过,现在也有一些低功耗优化的 ARM - Linux 平台,但总体上仍高于 MCU。
3、启动方式
(1)MCU:通常芯片厂商将上电启动代码固化在芯片中,上电后直接跳转到程序入口处,实现系统的启动。
(2)ARM - Linux:与PC启动方式类似,启动一般包括BIOS、Bootloader、内核启动、应用程序启动等几个阶段。
(二)软件层面
1、操作系统(开发方式)
(1)MCU:很多情况下不使用操作系统,直接进行裸机开发,通过编写代码直接控制硬件资源。也可使用一些轻量级的实时操作系统(RTOS),如 FreeRTOS、uC/OS 等,以实现多任务调度和资源管理。
(2)ARM - Linux:以 Linux 操作系统为基础,Linux 具有丰富的驱动程序和软件库,能支持复杂的应用程序运行。可以利用 Linux 的多用户、多任务特性,实现各种功能。
2、开发语言和工具链
(1)MCU:主要使用 C 语言进行开发,部分情况下也会使用汇编语言进行底层优化。开发工具链通常包括编译器(如 GCC)、调试器(如 JTAG、SWD)和集成开发环境(IDE),如 Keil、IAR 等。
(2)ARM - Linux:除了 C 语言,还广泛使用 C++、Python 等语言。开发工具链包括交叉编译器(如 arm - linux - gcc)、调试工具(如 gdb),以及 Linux 开发环境,如 Ubuntu 等。开发过程中还需要使用一些脚本语言(如 Shell 脚本)进行系统配置和自动化构建。
3、软件复杂度
(1)MCU:软件功能相对简单,主要实现对硬件的控制和基本的数据处理。代码量通常较小,开发周期相对较短。
(2)ARM - Linux:软件复杂度高,需要处理操作系统的移植、驱动程序的开发、文件系统的配置等。同时,应用程序也更加复杂,可能涉及图形界面、网络通信、数据库等功能。
(三)应用场景
1、MCU
适用于对成本、功耗和实时性要求较高,功能相对简单的应用场景,如智能家居设备(智能插座、温湿度传感器)、工业控制中的小型控制器、汽车电子中的一些简单控制模块等。
2、ARM - Linux
适用于对计算能力、功能丰富度和系统稳定性要求较高的应用场景,如智能终端设备(智能手机、平板电脑)、工业自动化中的人机交互界面、网络设备(路由器、交换机)等。
五、开源硬件Arduino和树莓派
Arduino 和树莓派都是广受欢迎的开源硬件平台,但它们在设计目标、硬件性能、应用场景等方面存在一些差异。以下是对其详细介绍:
(一)Arduino
1、简介
Arduino 是一个开放源码的电子原型平台,由硬件和软件组成。其硬件设计简单,易于使用,主要面向艺术家、设计师、爱好者和初学者,用于快速创建交互式电子项目。
2、硬件特点
(1)多种类型开发板
有多种类型的开发板,如Uno、Mega、Nano等,以适应不同的应用需求。
例如Uno适用于初学者和小型项目,Mega有更大的内存和更高的处理能力,适用于较为复杂、对资源需求较高的项目。
(2)接口丰富
开发板上配备了微控制器以及丰富的电子元件接口,包括数字输入输出引脚、模拟输入输出引脚等。
这些接口能够便捷地连接各类外部设备,像传感器(如温度传感器、光线传感器)、执行器(如电机、舵机)等,从而实现各种功能。
3、软件特点
(1)简单易学
采用类似于 C/C++ 的编程语言,通过 Arduino 集成开发环境(IDE)进行代码的编写、上传和调试。对于有一定编程基础的人来说,很容易上手。
(2)资源丰富
Arduino 为开发者提供了大量丰富的函数库和示例代码。这些资源极大地降低了开发的难度,就算是没有深厚电子专业背景的人员,也能够快速开发出自己的项目。
4、应用场景
常用于快速原型制作、艺术创作、物联网设备开发、机器人开发、环境监测等领域。例如,制作一个智能花盆,通过连接土壤湿度传感器和水泵,实现自动浇水功能。
(二)树莓派
1、简介
树莓派是一款基于 Linux 系统的微型计算机,旨在推广计算机科学教育和为小型设备提供计算能力。它更侧重于提供完整的计算机功能,可作为小型服务器、媒体中心或用于各种需要较高计算能力的项目。
2、硬件特点
(1)强大的处理能力
配备了性能较强的 ARM 架构处理器,内存也相对较大,能够运行完整的操作系统。
如 Raspbian (基于 Debian 的定制版)、Ubuntu 等。不同型号的树莓派在处理器性能、内存大小等方面有所不同,以满足不同用户的需求。
(2)丰富的接口
具有 HDMI 接口、USB 接口、以太网接口、音频接口等,可连接显示器、键盘、鼠标、网络设备等,使其具备与普通计算机相似的功能。
同时,也有通用输入输出引脚(GPIO),可以连接外部硬件设备进行扩展。
3、软件特点
(1)完整的操作系统
由于运行完整的 Linux 操作系统,具备完整的文件系统、多用户多任务处理能力以及丰富的软件包管理系统。用户可以像使用普通计算机一样安装和运行各种软件,如办公软件、浏览器、媒体播放器等。
(2)编程语言多样
支持多种编程语言,如 Python、C/C++、Java 等。开发者可以根据自己的需求和喜好选择合适的语言进行开发。
4、应用场景
广泛应用于智能家居控制中心、网络服务器、多媒体播放中心、人工智能实验平台、科学研究等领域。例如,搭建一个家庭媒体服务器,通过树莓派连接硬盘和电视,实现视频播放和文件共享功能。
以上即为 嵌入式常见概念的介绍 的全部内容,创作不易,麻烦三连支持一下呗~