嵌入式常见概念的介绍

 目录

 一、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、应用场景

        广泛应用于智能家居控制中心、网络服务器、多媒体播放中心、人工智能实验平台、科学研究等领域。例如,搭建一个家庭媒体服务器,通过树莓派连接硬盘和电视,实现视频播放和文件共享功能。

        以上即为 嵌入式常见概念的介绍 的全部内容,创作不易,麻烦三连支持一下呗~  

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

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

相关文章

深度强化学习(DRL)框架与多目标调度优化详解

深度强化学习(DRL)框架与多目标调度优化详解 (截至2025年4月,结合最新研究进展) 一、DRL主流框架及核心算法 通用DRL框架 Ray RLlib:支持分布式训练,集成PPO、A3C、DQN等算法,适用于…

centos 安装python3.9.9

这里写自定义目录标题 安装编译依赖 sudo yum -y groupinstall "Development Tools" sudo yum -y install openssl-devel bzip2-devel libffi-devel wget zlib-devel yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel …

【动态规划】深入动态规划:背包问题

文章目录 前言01背包例题一、01背包二、分割等和子集三、目标和四、最后一块石头的重量|| 完全背包例题一、完全背包二、 零钱兑换三、零钱兑换||四、完全平方数 前言 什么是背包问题,怎么解决算法中的背包问题呢? 背包问题 (Knapsack problem) 是⼀种组…

Vue 接口请求 Nginx配置实时压缩 速度起飞

生效之前 nginx配置如下 gzip on; gzip_min_length 1k; gzip_buffers 16 256k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types application/json application/javascript text/javascript text/css text/plain; gzip_vary on; 生效之后 #user…

Mitosis:跨框架的UI组件解决方案

Mitosis 是一个开源工具,可以将 JSX 组件转换为 Angular、React、Qwik、Vue、Svelte、Solid 和 React Native 等框架的功能齐全的组件。 Stars 数13019Forks 数593 主要特点 跨框架兼容性:Mitosis 允许开发者编写一次组件,然后编译成多个主流…

齐次坐标系统:什么是齐次坐标?为什么要引入齐次坐标?

齐次坐标系统:计算机图形学的基础 在计算机图形学、计算机视觉、相机标定、三维建模等领域,齐次坐标是一个非常重要的数学工具。本文将介绍:齐次坐标的基本概念、数学原理、我们为什么要引入齐次坐标、及其在实际应用中的价值。 文章目录 齐…

JS的大数运算(注意:原生的只支持整数计算!!!)

JS的大数运算(注意:原生的只支持整数计算!!!) 一、JS的大数运算(注意:原生的只支持整数计算!!!)1. 数字精度限制2. 大数解决方案2.1. …

Android 之美国关税问题导致 GitHub 403 无法正常访问,责任在谁?

这几天各国关税问题导致世界动荡不安,如今GitHub又无法正常访问,是不是Google到时候也无法正常使用了。

JAVA中正则表达式的入门与使用

JAVA中正则表达式的入门与使用 一,基础概念 正则表达式(Regex) 用于匹配字符串中的特定模式,Java 中通过 java.util.regex 包实现,核心类为: Pattern:编译后的正则表达式对象。 Matcher&#…

Prompt_Engineering提示词工程(一)

一、Prompt(提示词) Prompt(提示词)是给AI模型交互文本片段,用于指导模型生成符合预期输出结果,提示词的目的是为模型提供一个上下文的任务,以便模型能够更准确地理解用户的意图,并…

【设计模式】面向对象开发学习OOPC

PLOOC-裸机思维 PLOOC-git OOPC精要——撩开“对象”的神秘面纱 C/C面向对象编程之封装-KK 面向过程,本质是“顺序,循环,分支”面向对象,本质是“继承,封装,多态”参考的书籍:《UMLOOPC嵌入式…

软考高级--案例分析

架构风格 重点 交互方式数据结构控制结构扩展方法 分类 管道-过滤器风格 数据流 数据仓储风格 星型结构以数据为中心,其他构件围绕数据进行交互 企业服务总线esb 定义 以一个服务总线充当中间件的角色,把各方服务对接起来,所有服务…

01_背包问题

package org.josh; import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner new Scanner(System.in); int n scanner.nextInt(); // 物品数量 long w scanner.nextLong(); // 背包容量,使用long防止溢出 int[] v …

esp32-idf Linux 环境安装教程

一、提前说明 1. 系统环境 Ubuntu22.04 2. 适配芯片 ESP32S3 3. idf版本 v5.4.1(截止2025年4月13日为最新版本) 二、安装步骤 1. 安装前置依赖 sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev l…

JavaScript 输入输出语句

在JavaScript中,输入和输出是与用户交互的基础。无论是从用户那里获取信息还是向用户展示结果,正确使用输入输出语句都是至关重要的。本文将详细介绍JavaScript中常用的输入输出方法及其应用场景。 一、输出语句 (一)console.lo…

TCP 如何在网络 “江湖” 立威建交?

一、特点: (一)面向连接 在进行数据传输之前,TCP 需要在发送方和接收方之间建立一条逻辑连接。这一过程类似于打电话,双方在通话前需要先拨号建立连接。建立连接的过程通过三次握手来完成,确保通信双方都…

文章记单词 | 第29篇(六级)

一,单词释义 AI /ˌeɪ ˈaɪ/ abbr. 人工智能(Artificial Intelligence)inventory /ˈɪnvəntri/ n. 存货清单;财产清单;库存货物;存货;v. 编制目录;开列清单;盘存cha…

【C#】.NET 8适配器模式实战:用C#实现高可用系统集成与接口桥接艺术

系统集成挑战与适配器模式的价值 当需要整合不同架构或API的系统时,接口兼容性问题往往成为拦路虎。**适配器设计模式(Adapter Pattern)**通过转换接口形态,完美解决这种不兼容性问题。本文将通过C# .NET 8实战演示适配器模式的基…

Nginx基础到全面掌握高性能Web服务核心

目录 前言 第一部分:Nginx基础入门 1.1 什么是Nginx? 1.2 Nginx的典型应用场景 第二部分:Nginx安装与部署 2.1 在不同操作系统上安装Nginx 2.2 验证安装与基本操作 第三部分:Nginx配置详解 3.1 核心配置文件解析 3.2 虚…

C语言中while的相关题目

一、题目引入 以下程序中,while循环的循环次数是多少次? 二、代码分析 首先要明确的一点 while循环是当循环条件为真 就会一直循环 不会停止 while中i是小于10的 说明i可以取到0 1 2 3 4 5 6 7 8 9 进入第一个if判断i小于1为真时执行continue i0是为真的 执行continue 后…