嵌入式入门基础知识

article/2025/11/9 19:57:06

文章目录

  • 前言
  • 嵌入式基本知识
    • ARM的理解
      • ARM是一家公司
      • 一类芯片或产品的统称
      • 一项技术的名称,即采用RISC处理器体系架构
      • ARM和intel的区分
      • ARM和STM32的关系
  • 处理器的基本概念
    • MCU
    • MPU
    • DSP
    • FPGA
    • 总结
  • ARM开发
    • MCU开发和MPU开发的区别
    • 开源硬件 Arduino 和 Raspberry Pi
    • 总结
  • 总结


前言

今天是参加百问网组织的物联网智能家居项目第一天,很幸运能够抓住这次机会来更好的学习嵌入式,也非常感谢百问网的老师们辛勤教导。


嵌入式基本知识

ARM的理解

ARM是一家公司

ARM首先是一个公司,是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器;
RISC:精简指令集,指的是一种指令类型比较少的计算机指令,因为其执行速度快而 被广泛应用,缺点就是指令类型少,实现的功能相对单一。
CISC:复杂指令集,指的是一种指令类型比较丰富的计算机指令,因为其指令丰富,运算效率高而被广泛使用,缺点就是指令执行速度相对较慢(它是通过微程序触发实现)。

ARM公司的发展历程
在这里插入图片描述

一类芯片或产品的统称

因为很多的公司,再拿到ARM公司的授权以后生产了很多的芯片或产品,像我们使用的STM32F103这一系列就是Cortex-M3系列,就是使用的ARM的M系列的核等等
在这里插入图片描述

一项技术的名称,即采用RISC处理器体系架构

现在几乎大家都把RISC处理器架构称为ARM架构了,所以ARM也指一种体系架构,即RISC处理器体系架构。

ARM和intel的区分

其实就是RISC和CISC的区分,两家公司代表计算机指令集的两个极端。区别也在于两种指令集的区别。
ARM因其精简指令集,指令执行速度快,所以广泛应用于嵌入式领域,实现一些功能相对单一的产品。
intel因其CISC指令类型丰富,执行效率高,所以广泛应用于PC,高级智能机等领域。

针对应用场景的不同,所有使用的指令集架构自然也就不同。

ARM和STM32的关系

ARM和STM32的关系就是,STM32的体系结构就是ARM架构。
STM32是由ST公司研发的产品,而这个产品的产生是ST公司在购买到了ARM公司的授权以后,经过ST公司自己的添加外设,设置结构等方式而生产的产品。但是这个产品的核心,内核的结构是由ARM公司设计的。里面的IP核的设计就是ARM公司授权给ST公司,ST公司根据这个IP核的设计结构进行添加,设计进而生产,就有了我们日常使用的一系列STM32产品。

处理器的基本概念

MCU

微 控 制 器 (Micro-Controller Unit , MCU) , 俗 称 单 片 机 。 之 所 以 称 之 为 单 片 机 (Single ChipMicrocomputer), 是因为不同于其它处理器,它将CPU、 RAM(随机存储器)、 ROM(只读存储器)、 I/O、中断系统、定时器等各种功能外设资源集中到一个芯片上。 这个芯片就是一个完整的微型计算机,只需要供电或加上极少的外围电路即可工作。
常见的MCU有80C51系列单片机、 Atmel公司的AVR系列单片机、 Microchip公司的PIC系列单片机、 TI公司的MSP430系列单片机、 ST公司的STM32系列单片机、 NXP公司的LPC1700系列单片机。早期的MCU主要是8位,后面发展出16位,再到现在主流的已经是32位。此外,主频不断提高、 ROM不断增大、外设不断增多,单片机的应用领域和场合越来越大

MPU

微处理器(Micro-Processor Unit, MPU)。类似通用计算机的CPU,主要负责处理计算,需要外加RAM、Flash、电源等电路。
MCU和MPU的本质区别是因为应用场景的定位不同。 MPU注重通过相对强大的运算/处理能力,执行复杂多样的大型程序,因此常需要外挂运行内存(RAM)、存储器(Flash)等。 MCU注重功能较为单一、价格敏感的应用场景,不需要相对强大的运算/处理能力,更多的是对设备管理/控制,因此不需要大容量的RAM、 Flash来运行大型程序,于是将RAM、 Flash全集成在一起,大家也就俗称“单片机”

在这里插入图片描述如今,随着技术的发展,市场及需求的变化, MPU和MCU的界限日趋模糊。高端的32位MCU主频越来越高,已经反超低端MPU主频, MCU也有外挂RAM和Flash的场景,依靠硬件结构去区分逐渐困难。读者可以简单的认为,嵌入式微处理器MPU,通常运行Linux、 Android等非实时操作系统,应用在高端应用市场,比如智能手机、 路由器等消费电子市场领域,而嵌入式微控制器MCU,常用运行裸机或实时性操作系统,应用在中、低端应用市场,比如家电控制领域、工业控制领域等。

总的来说MCU:主要应用于微控制领域,运行逻辑程序或实时性操作系统的场合。
而MPU:主要就是针对跑Linux,Android操作系统等程序复杂,需要操作系统进行资源管理的应用。

DSP

DSP通常有两个含义。

  • 数字信号处理(Digital Signal Processing, DSP),是一门学科技术,使用数值计算的方式对信号进行加工处理的理论和技术。
  • 数字信号处理器(Digital Signal Processor, DSP),是一种专门用于数字信号处理领域的微处理器。
    在这里插入图片描述DSP芯片为了达到快速处理数字信号处理的目的,采用了许多特殊软硬件结构。首先是采用哈佛结构,(哈佛结构就是将程序指令和存储数据存在不同的存储器上)将程序和数据分开,同时为处理器提供指令和数据。然后采用多级流水线技术,在指令周期内可以执行更多指令。加上专用的硬件乘法器、特殊的DSP指令, 使得DSP芯片在计算处理上,远超同主频的MCU或MPU。
    DSP芯片拥有强大的数据处理能力,在数字信号处理领域,如调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型的场景广泛应用。

FPGA

现场可编程门阵列( Field- Programmable Gate Array, FPGA), 由可编程互连连接的可配置逻辑块(CLB) 矩阵构成的半导体器件。 通俗地说, FPGA就是一个可以通过编程改变内部硬件结构,实现所需功能的芯片。 前面的MCU、 DSP等都是硬件资源固定,只能通过修改软件实现所需功能。而FPGA是通过硬件描述语言或其它方式修改硬件,将FPGA变为CPU或专用芯片,来实现控制或算法。因此, MCU、 DSP能够实现的功能, FPGA理论上都可以实现,反之则不一定。
如图为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相对比较简单,适合作为入门学习,待MCU学习完后,再结合实际情况选择深入学习方向。

ARM开发

MCU开发和MPU开发的区别

MCU开发就是指的单片机开发,着重是对寄存器操作,传感器工作原理,通信协议,外设接口资源等的熟悉和掌握。
MPU开发就是带有操作系统的开发。包括系统的移植,驱动的编写,网络编程,页面设计(Qt)等。
在这里插入图片描述

开源硬件 Arduino 和 Raspberry Pi

在开源硬件领域, Arduino和Raspberry Pi(树莓派)都是电子创意设计常用的开发平台和工具。它们使用简单的开发方式,使初学者能快速搭建其创意原型,有效降低了学习难度,缩短了开发周期。
在这里插入图片描述
Arduino是一款基于微控制器( MCU)的开发板,它可以运行一些相对比较简单的应用程序,成本低廉,适合用于与传感器、外围电路进行控制和通信。

Raspberry Pi是一款基于微处理器( MPU)的开发板,可以看作是一台小型计算机,板载RAM、 HDMI接口、 USB接口、音频接口、网络接口等。通常运行发行版Linux操作系统,可以运行功能更丰富的应用程序,适合用于一些需要较多运算和功能的项目,比如游戏虚拟机、网页服务器、机器人、家庭智能控制系统
等。

总结

MCU和MPU的开发主要是侧重点不同,而这个侧重点就是指的运行于不同的场景和需求。(需求是否复杂,是否需要操作系统进行资源的管理和调度)。

开源硬件面向的群体主要还是电子爱好者,帮助他们无需深入了解相关知识的情况下,快速验证自己的创意想法。对于嵌入式开发人员, Arduino过于简单, Raspberry Pi底层不开源,都不适合深入研究,开发人员应选一款采用常见主控芯片设计的开发板进行学习、研究。

总结

对于想深入了解的同学,推荐到百问网官网找老师进行咨询。相信你一定能学到你想学的东西!


http://chatgpt.dhexx.cn/article/pB5mOMmY.shtml

相关文章

宽度学习系统BLS推广到在线学习的论文阅读记录

BELS: A BROAD ENSEMBLE LEARNING SYSTEM FOR DATA STREAM CLASSIFICATION 摘要:这篇文章主要是将BLS推广到适用于在线学习的邻域,提出了其如何进行适合在线学习的增量更新,以及面对概念漂移的适应 所提出的算法BELS 稀疏特征映射的更新 …

超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络

点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 【导读】今天给大家介绍一篇 ECCV 2020 Oral论文 ,该论文强调了同时考虑网络宽度和输入分辨率对有效网络设计的重要性。…

【AI不惑境】网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0c…

CSS:宽高自适应详解

宽度自适应的应用 1.属性:width 2.属性值:px/% 3.宽度自适应的特点 - HTML,BODY表示浏览器,默认是块级元素,宽度是100% - 当块级元素不设置宽度或者设置100%的时候,宽度会沾满全屏(通栏效果) - 子级是块级元素,不设置宽度的时候会和父级等…

陈俊龙:从深度强化学习到宽度强化学习—结构,算法,机遇及挑战

来源:AI科技评论 摘要:如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。 强化学习与宽度学习 如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。在越来越多的复杂现实场景任务中,需要利用深度学习…

网络的宽度对深度学习模型的性能影响

目录 1 为什么需要足够的宽度 2,经典网络的第一层的宽度 3,宽度对模型性能的影响 4 如何更加有效地利用宽度 4.1 提高每一层通道的利用率 4.2 用其他通道的信息来补偿 5 经典网络模型宽度设计方法 5.1 采用多分支网络结构设计 1)ResN…

深度学习笔记(七):网络宽度(卷积核个数)的一些想法

文章目录 一、前言二、网络深度的意义三、宽度的意义四、 网络宽度设计4.1 网络宽度的下限在哪?4.2 网络宽度对模型性能的影响4.3 网络宽度和深度谁更加重要? 五、如何加有效地利用宽度?5.1 提高每一层通道的利用率5.2 用其他通道的信息来补偿…

宽度 深度学习 特点对比

宽度 & 深度学习 特点对比 推荐系统模型介绍实验过程与实验结果实验总结 为了提高神经网络的性能,是应该增加宽度呢?还是应该增加深度呢?增加宽度和增加深度各有什么样的效果呢? 本文对论文《Wide & Deep Learning for Re…

为什么是“深度”学习而不是宽度?

为什么是深度而不是宽度? 先说说我个人的理解,如下图所示,圆圈表示神经元,有两种方式。第一种,只有一层神经层,有8个神经元;第二种方式,有两层神经层,分别有2个和4个神经…

宽度学习系统:一种不需要深度结构的高效增量学习系统

宽度学习系统:一种不需要深度结构的高效增量学习系统 本文是对陈俊龙教授团队“Broad Learning System: An Effective and Efficient Incremental Learning System Without the Need for Deep Architecture”的中文综述,原文将在IEEE Transactions on Neu…

网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0…

宽度学习代码的一些问题

最近在拜读陈院士的宽度学习论文,受益匪浅,在此先感谢陈院士团队的开源代码! 在复现代码的过程中,发现了一些小问题,在此记录,方便自己日后翻阅。 此博客仅代表个人观点,姑且算作个人读书笔记…

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络

Broad Learning System (BLS,宽度学习系统)是澳门大学的陈俊龙教授在2017年TNNLS上基于随机向量函数链接神经网络(RVFLNN)和单层前馈神经网络(SLFN)提出的一种单层增量式神经网络。这个模型相比于传统的深层网络模型,它在保证一定精度的同时,…

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新......)

ABSTRACT 近年来深度学习迅猛在各个研究领域发展发展,新的模型结构不断涌现,且有层数逐渐加深的趋势。然而深度模型往往有数量过于庞大的待优化参数,通常需要耗费大量的时间和机器资源来进行优化,而且不能根据需求及输入的变化进行…

为什么要做深度学习而不是宽度学习?

点击此处返回总目录 前面在深度学习介绍的最后有留下一个疑问。我们为什么要deep learning。 我们说,变深了,参数增多,model变复杂,performance变好,是很正常的。 所以,真…

宽度学习学习笔记

宽度学习笔记 随机向量函数链接网络(RVFLNN)增强节点权值计算Greville 定理 宽度学习系统(Broad Learning System)数据处理简单BLS增强节点的增量学习特征节点的增量学习输入的增量学习SVD 参考论文: Broad Learning …

宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统

Motivation 深度学习: 1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。 2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。 宽度学习: 1,消除了训练过程长的缺点,并且提供了很好的…

第三十七课.宽度学习

目录 前置内容宽度学习的基本结构:RVFLNN宽度学习系统岭回归 前置内容 深度学习计算量过大,成本过高,因此提出宽度学习(BLS,Broad Learning System)。我们首先要知道,BLS的网络结构不是固定的&…

宽度学习详解(Broad Learning System)

宽度学习(Broad Learning System) 1:Introduction1.1:级联相关网络(本节来自周志华《机器学习》)1.2:随机向量函数连接网络(RVFLNN) 2:宽度学习系统(Broad Learning Syst…

七、宽度学习系统Broad Learning System

七、宽度学习系统Broad Learning System 1、宽度学习的发展2、宽度学习系统(BLS)3、 BLS的增量形式1、宽度学习的发展 宽度学习系统(BLS) 的提出最早源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,…