什么是嵌入式系统?

嵌入式系统通常指的是专门为某种功能设计的微型计算机系统,比如智能手表、家电控制板、汽车ECU等。

什么是嵌入式系统的IO?

IO(Input/Output,输入/输出)就是嵌入式系统与外部世界“交流”的通道,比如按钮、LED灯、传感器、蜂鸣器等。

一、IO逻辑

 IO口的基本类型

嵌入式系统的IO口一般分为两类:

  • 输入口(Input):用来读取外部信号,比如检测按钮是否按下、读取温度传感器的数值等。
  • 输出口(Output):用来控制外部设备,比如点亮LED灯、驱动蜂鸣器等。

IO口的工作原理

每个IO口通常都可以配置为输入或输出。

以单片机(如STM32、51单片机)为例:

  • 输入模式:IO口连接到外部信号(如按钮),单片机通过读取该IO口的电平(高/低)来判断外部状态。
  • 输出模式:单片机通过设置IO口的电平(高/低),来控制外部设备(如LED灯的亮灭)。

IO口的电平

  • 高电平(High):通常是接近电源电压(如3.3V或5V)。
  • 低电平(Low):通常是接近地电压(0V)。

比如,LED灯的一个端接IO口,另一个端接地。当IO口输出高电平时,LED灯亮;输出低电平时,LED灯灭(具体电路可能有差异)。

二、计算机组成

计算机的组成一般分为五大部分,称为“计算机五大部件”,它们共同协作完成计算机的各种功能。

模拟电路的网站:Circuitjs web 在线电路模拟器

1. 运算器(算术逻辑单元,ALU)

        负责各种算术运算(加减乘除)和逻辑运算(与、或、非等)。

        是计算机“计算能力”的核心部分。

2. 控制器(Control Unit)

        负责指挥和协调计算机各部件的工作。

        解释和执行指令,控制数据流动和操作顺序。

        控制器和运算器合称为“中央处理器”(CPU)。

3. 存储器(Memory)

        用于存放数据和程序。

        包括内存(RAM,运行时存储)和外存(硬盘、U盘等,长期存储)。

        没有存储器,计算机无法记忆和处理数据。

3.1 只读存储器(ROM)

  1. 掉电不丢失
  2. 存储程序,ROM也叫程序存储器
  3. 硬盘、U盘
  4. 读取速度慢

3.2 随机存取存储器(RAM)

  1. 掉电丢失
  2. 存储临时变量和程序运行产生的数据
  3. 内存条
  4. 速度快

3.3 cache存储器

        Cache(高速缓存)是计算机中一种速度非常快但容量较小的存储器,主要用于缓解CPU与内存(RAM)之间的速度差异,提升系统整体运行效率。

4. 输入设备(Input Devices)

        用于把外部信息输入到计算机中。

        常见的有:键盘、鼠标、扫描仪、摄像头、麦克风等。

5. 输出设备(Output Devices)

        用于把计算机处理的结果输出给用户或其他设备。

        常见的有:显示器、打印机、音响等。

三、三级存储结构

cache、内存、外存放在一起也被称作三级存储结构

1.寄存器:在CPU内部,速度最快,容量最小。

2.高速缓存(Cache):介于CPU和内存之间,速度快,容量小。

3.内存(RAM):速度较快,容量适中。

4.外存(ROM):速度慢,容量大。

四、总线

1.按照功能分为三类:

不是总线分为三类,而是总线有的功能有三种,一般是总线包含三个功能,下面的分类是概念性的东西。

 1.1数据总线(Data Bus)

作用:用来在计算机各部件之间传输“数据”本身。

特点:数据总线的“宽度”决定了每次能传输的数据位数(比如8位、16位、32位、64位)。数据总线的宽度决定了CPU和外界的数据传送速度。

举例:32位数据总线一次能传输32位(4字节)数据。

比喻:像一条可以并排行驶多辆车的马路,车越多(位宽越大),一次能运送的数据就越多。

1.2.地址总线(Address Bus)

作用:用来传送“地址信息”,告诉CPU要访问内存或设备的哪个位置。

特点:地址总线的“宽度”决定了能访问的最大内存空间。

例如:16位地址总线最大寻址64KB,32位最大寻址4GB。

比喻:像快递单上的地址,告诉快递员(CPU)要把东西送到哪里。

1.3.控制总线(Control Bus)

作用:用来传递各种“控制信号”,协调和管理数据、地址的传输。

特点:控制总线宽度决定了CPU对外部期间的控制能力。

常见信号:读/写信号、时钟信号、中断信号、复位信号等。

比喻:像交通信号灯和指挥员,告诉大家什么时候可以走、什么时候要停、该做什么操作。

2.DMA

定义:是一种让外部设备可以绕过CPU,直接与内存交换数据的技术。

在没有DMA的情况下,数据在外设(如硬盘、网卡)和内存之间的传输都要经过CPU,CPU需要不断地参与搬运数据,效率低、CPU负担重。

有了DMA,数据可以直接在外设和内存之间传输,CPU只需发出启动命令,剩下的传输工作由DMA控制器完成,CPU可以去做别的事情,提高了效率。

五、单片机基础

1.单片机简介

单片机,全称单片微型计算机(Microcontroller Unit,简称MCU),是一种将CPU、内存(RAM/ROM)、输入输出接口(I/O)、定时器/计数器、串口等功能集成在一块芯片上的微型计算机。

2.单片机型号

一、51单片机

1. 基本介绍

51单片机 

51单片机是指以Intel 8051为核心的单片机系列,属于8位单片机。(八位的不一定51单片机)诞生较早,结构简单,指令系统精炼,适合入门学习和基础控制应用。

51单片机(8051)

        国产51单片机:STC89C51 宏晶科技 STC

        外国51单片机:AT89C51 ATMEL

2. 主要特点

(1)8位数据总线,一次只能处理8位数据。

(2)主频一般较低(常见为12MHz~40MHz)。

(3)片上资源有限(如RAM、ROM、I/O口数量较少)。

(4)指令集简单,易学易用。

(5)价格低廉,资料丰富,适合初学者和简单控制场合。

3. 典型应用

简单的家电控制、电子玩具、计数器、定时器等。

二、32单片机(以STM32为代表)

1. 基本介绍

32单片机

32单片机通常指基于ARM Cortex-M内核的单片机,如STM32系列。

属于32位单片机,数据总线和寄存器宽度为32位。

32单片机(通常说的就是ARM)

        外国32单片机:STM32 意法半导体 ST

        国产32单片机:GD32 兆易创新 GD

2. 主要特点

(1)32位数据总线,一次能处理32位数据,运算能力强。

(2)主频高(常见为几十MHz到几百MHz)。

(3)片上资源丰富(大容量RAM/Flash、丰富的I/O口、外设接口如ADC、DAC、USB、CAN、以太网等)。

(4)支持多种高级功能(如DMA、定时器、PWM、低功耗等)。

(5)性能高,适合复杂控制和数据处理。

3. 典型应用

智能家居、工业自动化、机器人、物联网、音视频处理、医疗设备等高要求场合。

 六、开发板\最小系统板

1.开发板

定义:开发板是为方便学习、开发和调试单片机(或其他芯片)而设计的一块电路板。

特点:(1) 板上集成了单片机芯片、下载/调试接口、电源电路、复位电路、时钟电路等最基本的运行环境。

(2) 通常还会带有丰富的外设接口和模块,比如按键、LED、蜂鸣器、显示屏、串口、USB、以太网、SD卡、传感器等。

(3)方便用户直接进行实验、开发和测试,无需自己焊接复杂电路。

适用人群:适合初学者、工程师、项目开发者。

2. 最小系统板

定义:最小系统板(也叫最小系统)是指让单片机能够正常运行所需的最基本电路,通常只包含:单片机、电源电路、晶振(时钟电路)、复位按键、烧录引脚组成

时钟电路(晶振)

复位电路

特点:(1) 只保证单片机能“点亮”并运行程序,不带其他外设。

(2) 体积小、结构简单、成本低。

(3) 适合嵌入到最终产品中,或作为开发板的核心部分。

3. 区别与联系

对比项开发板最小系统板
功能丰富,带多种外设和接口只包含单片机最基本运行电路
体积较大很小
适用场景学习、开发、调试、实验产品嵌入、最基础的运行环境
成本较高很低

联系:开发板通常包含一个最小系统板,最小系统是开发板的“核心”,开发板是在最小系统基础上扩展了更多功能和外设。

4.显示屏

用于显示信息的模块,可以是液晶屏(LCD)、OLED屏、TFT屏等。显示文字、图像、数据等内容,是人机交互的重要部分。

5.资源扩展板

定义:用于扩展开发板的附加电路板。

特点:通常通过排针、排母、排线等方式与主开发板连接,提供更多的外设资源。

作用:让开发版具有更多功能,便于开发复杂应用。

七、STM32

1.简介

STM32 是意法半导体(STMicroelectronics)推出的一系列基于 ARM Cortex-M 内核的 32 位单片机(MCU,Microcontroller Unit)。STM32 因其高性能、低功耗、丰富的片内外设和良好的生态支持,在嵌入式开发领域非常流行。

2.优势

(1)产品型号丰富,可选择性强;

(2)运算速度快,功耗低;

(3)处理器外设接口丰富;

(4)库函数开发体系学习资料多,应用广泛。

3.STM32的常见系列

(1)STM32F0/F1/F3/F4/F7/H7:主打通用、高性能应用,F1(如STM32F103)是入门和应用最广的系列。

(2)STM32L0/L1/L4/L5/U5:主打超低功耗应用。

(3)STM32G0/G4:新一代通用和高性能系列。

(4)STM32WB/STM32WL:带无线功能(如蓝牙、LoRa)。

八、单片机命名规则

STM32U575RIT6

STM32:32位意法半导体微控制器

U:超低功耗

575:芯片型号

R:表示引脚数(64)

I:表示闪存容量为2048K=2MB

T:TQFP封装

6:工作温度范围在-40度到85度

ST

意法半导体

M

微控制器

32

32位处理器

类型

F 通用/基础型 foundation G 多用途型 general-purpose

L 低功耗 low power H 高性能 High performance

S 简单/标准型 Standard U超低功耗

系列

0 精简系列 1/2/3 增强系列 4/7 高性能系列

子型号

00/01/02/03/05/07

引脚数量

K/6-32脚 C/8-48脚 R-64脚 V-100脚 Z-144脚

A-168脚 I-176脚 B-208脚 N-216脚

存储量

6 :32KB 8 : 64KB B :128KB C :256KB

D :384KB E : 512KB G :1MB I : 2MB

封装

U - UQFN封装 T - TQFP封装

工作温度

6 - -40 ~ 85度

 九、ARM(CPU)体系结构

1.概念

ARM(CPU)体系结构是指ARM公司设计的一系列基于RISC(精简指令集)理念的处理器架构。ARM架构以高效、低功耗、易于移植和高度集成著称,广泛应用于手机、嵌入式设备、单片机、智能家居、物联网等领域。

2.ARM是什么

(1)ARM公司

ARM公司是一家芯片知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

(2)ARM可以表示一些处理器的统称(处理器架构)

早期经典处理器:ARM7 ARM9 ARM11

后续处理器开始以cortex命名

Cortex-X系列:

超高性能,为AI赋能,为人工智能运行提供效能

Cortex-A系列:

针对开放式操作系统的高性能处理器

应用于智能手机、数字电视、智能平板等高端运用

Cortex-R系列:

提供非常高的性能和吞吐量,同时保持精准的时序属性和可预测的中断延时,通常用于时序关键的应用中

针对实时系统、满足实时性的控制需求

应于汽车制动系统、动力系统等

Cortex-M系列:

为单片机驱动的系统提供了低成本优化方案

应用于传统的微控制器市场、智能传感器、汽车周边、物联网设备等

(3)ARM表示一种指令集
ARM指令集是指ARM架构处理器所使用的机器指令集合。ARM指令集以精简、高效、低功耗著称,是RISC(精简指令集计算机)理念的典型代表。

3.STM32U575采用ARM Cortex-M33内核架构

ARM Cortex-M33内核的关键特性:

  • Armv8-M架构(CPU的架构)
  • AHB-lite总线接口,哈佛总线架构

4.冯·诺依曼架构和哈佛架构

3.1. 冯·诺依曼结构(Von Neumann Architecture)

定义:由数学家冯·诺依曼提出,是现代计算机最经典、最常见的结构。

核心特点:

(1)程序存储器和数据存储器共用同一存储空间(即程序和数据都放在同一块内存里)。

(2)程序和数据共用同一条总线(数据总线、地址总线)。

(3)指令和数据的获取不能同时进行,需要轮流访问内存。

优点:结构简单,硬件实现容易,成本低。

缺点:存在“冯·诺依曼瓶颈”——指令和数据不能同时访问,速度受限

3.2. 哈佛结构(Harvard Architecture)

定义:最早用于信号处理和嵌入式系统的计算机结构。

核心特点:

(1)程序存储器和数据存储器分开,各自有独立的存储空间。

(2)程序和数据各自有独立的总线。

(3)指令和数据可以同时访问,互不干扰。

优点:速度快,效率高,适合对性能要求高的场合(如DSP、部分单片机)。

缺点:硬件结构复杂,成本较高。

十、指令集(RISC和CISC)

1.概念:

指令集(Instruction Set)是指CPU能够识别和执行的所有机器指令的集合。

在计算机体系结构中,指令集主要分为两大类:RISC(精简指令集)和 CISC(复杂指令集)。

2.分类

2.1 RISC(精简指令集计算机,Reduced Instruction Set Computer)

特点:

(1)指令种类少,格式统一,执行速度快。

(2)每条指令执行时间短,通常一条指令一个时钟周期完成。

(3)依赖于软件(编译器)来完成复杂操作,硬件实现简单。

(4)适合流水线和并行处理,能效比高。

代表架构:ARM、MIPS、PowerPC、RISC-V等。

应用领域:嵌入式系统、移动设备、单片机、服务器等。

2.2 CISC(复杂指令集计算机,Complex Instruction Set Computer)

特点:

(1)指令种类多,部分指令功能复杂,可以完成多步操作。

(2)指令长度不统一,执行时间不等。

(3)依赖于硬件来实现复杂操作,硬件实现复杂。

(4)适合早期内存和编译器资源有限的环境。

代表架构:x86(Intel/AMD PC处理器)、早期的IBM 360等。

应用领域:个人电脑、服务器等。

十一、Cortex-M33的寄存器

1.通用寄存器

通用寄存器 一个寄存器存储32位

R0-R12:13个通用寄存器。其中 R0-R7为低端寄存器,可作为16位或32 位指令操作数,R8-R12为高端寄存器,只能用作32位操作数

R13:栈指针寄存器 SP(the stack pointer),Cortex-M0 在不同物理位置上存在两个栈指针,主栈指针 MSP(main ),进程栈指针 PSP。

在处理模式下,只能使用主堆栈,在线程模式下,可以使用主堆栈也可以使用进程堆栈。 系统上电的默认栈指针是MSP。这样设计的目的是为了在进行模式转换的时候,减少堆栈的保存工作。同时也可以为不同权限的工作模式设置不同的堆栈。

R14:链接寄存器LR(the Link Register),用于存储子程序或者函数调用的返回地址

R15:程序计数器PC(the Program Counter register)存储下一条将要执行的指令的地址。

2.特殊寄存器

xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成

应用程序状态寄存器 (APSR):保存程序计算结果的状态标志 N负数标志 Z零标志 C进位借位标志 V溢出标志

中断程序状态寄存器 (IPSR):包含当前ISR(中断服务程序)的异常编号

执行程序状态寄存器 (EPSR):包含Thumb状态位 ---->运行Thumb指令集

十二、STM32系统架构

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

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

相关文章

全连接神经网络(MLP)原理与PyTorch实现详解

一、全连接神经网络概述全连接神经网络(Fully Connected Neural Network),也称为多层感知机(Multi-Layer Perceptron, MLP),是深度学习中最基础的神经网络结构之一。它由多个全连接层组成,每一层的神经元与下一层的所有神经元相连接。1.1 神经…

推荐系统-数据分割、性能验证

推荐系统基础概念前言 作者根据开源项目 gorse 的每一步提交, 系统性学习推荐系统架构组成以及gorse中使用的推荐算法的实现。 通过参考算法文档以及代码实现,作者对gorse的学习过程以及进度 与 博客发布的时间线保持一致数据集分割原因 推荐系统的根本任…

从电商新手到单日变现5000+,我是如何做到闲鱼爆单的

很多人想做项目赚钱,却总是迈不出第一步。今天给大家分享一个可以从电商小白到成功跑通项目,实现单日GMV 5000的项目。今天将分享从选品、内容制作、销售服务的全过程实战经验。1:闲鱼实战,强执行力01实操前的准备执行力就是你的动…

vue3实现pdf文件预览 - vue-pdf-embed

参考地址:https://juejin.cn/post/7105933034771185701 这个参考文章的代码直接可以复制使用,样式也是给到的,但是实现的是一页一页的显示pdf内容,我的需求是要全部展示出来,页码切换时是做一个滚动定位操作。 思路&am…

【AI论文】OmniPart:基于语义解耦与结构连贯性的部件感知三维生成

摘要:创建具有显式、可编辑部件结构的三维资产,对于推动交互式应用的发展至关重要。然而,大多数生成方法仅能生成整体式形状,限制了其实际应用价值。我们提出OmniPart——一种新型的部件感知三维物体生成框架,旨在实现…

Pandas-数据查看与质量检查

Pandas-数据查看与质量检查一、数据查看:快速掌握数据概况1. 整体概览:shape与info()2. 数值特征预览:describe()3. 随机抽样:head()与sample()二、数据质量检查:识别与处理问题1. 缺失值检查与处理处理策略&#xff1…

类和对象拓展——日期类

一.前言通过前面对类和对象的学习&#xff0c;现在我们可以开始实践日期类的代码编写。在实际操作过程中&#xff0c;我会补充之前文章中未提及的相关知识点。二.正文 1. 日期类代码实现我们先来看看要实现什么功能吧&#xff0c;把他放在Date.h中#pragma once #include<ios…

大模型KV缓存量化误差补偿机制:提升推理效率的关键技术

大模型KV缓存量化误差补偿机制&#xff1a;提升推理效率的关键技术摘要 随着大型语言模型&#xff08;LLM&#xff09;参数规模突破千亿级别&#xff0c;推理过程中的显存占用与计算延迟成为制约其实际部署的核心瓶颈。KV缓存&#xff08;Key-Value Cache&#xff09;作为Trans…

QT跨平台应用程序开发框架(6)—— 常用显示类控件

目录 一&#xff0c;Label 1.1 主要属性 1.2 文本格式 1.3 设置图片 1.4 其它常用属性 1.5 设置伙伴 二&#xff0c;LCD Number 2.1 主要属性 2.2 实现倒计时 ​2.3 两个问题 三&#xff0c;ProgressBar 3.1 主要属性 3.2 进度条按时间增长 3.3 改变样式 3.4 一个问题 四&#…

LINUX文件系统权限,命令解释器alias,文件查看和查找

1、文件査看:查看/etc/passwd文件的第5行[rootserver ~]# head -5 /etc/passwd | tail -1 #先找到前5行&#xff0c;用管道符过滤&#xff0c;显示倒数第一行2、文件查找(1)在当前目录及子目录中&#xff0c;查找大写字母开头的txt文件[rootserver ~]# find / -name "[…

AI图像修复工具CodeFormer实测:马赛克去除与画质增强效果评测

大家好&#xff01;平时看图片或视频&#xff0c;是不是特别烦人脸被马赛克遮住的地方&#xff1f;比如老照片模糊、视频关键部分被打码&#xff0c;看着很不舒服。今天给大家分享一款超好用的去马赛克神器——CodeFormer&#xff0c;完全免费&#xff0c;新手也能轻松搞定&…

知识宇宙-思考篇:AI大模型如何重塑软件开发流程?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录AI大模型重塑软件开发&#xff1a;从码农到AI编程伙伴的华丽转身一、AI大模型的编程&…

Rocky Linux上使用NVM安装Node.js 18

问题描述 Rocky Linux 9 默认 yum 安装的 Node.js 版本是16&#xff0c;vite启动报错&#xff1a;TypeError: crypto$2.getRandomValues is not a function &#xff0c;需安装更高版本的 Node.js 使用nvm安装Node.js的好处 多版本管理&#xff0c;NVM 允许你安装多个不同版本的…

JVM 中“对象存活判定方法”全面解析

1. 前言 在 Java 开发过程中&#xff0c;我们常常听到“垃圾回收”&#xff08;Garbage Collection, GC&#xff09;这一术语。JVM 通过垃圾回收机制自动管理内存&#xff0c;极大地简化了程序员的内存控制负担。然而&#xff0c;GC 究竟是如何判断哪些对象该回收、哪些应保留…

苹果公司高ROE分析

公司通过增加负债提升净资产收益率&#xff08;ROE&#xff09;的核心机制在于财务杠杆效应和资本结构优化&#xff0c;以下从原理、操作路径、风险边界及苹果案例四维度展开分析&#xff1a;名称解释&#xff1a; ROIC(投入资本回报率)&#xff1a;ROICNOPATInvested Capital …

【Linux系统】进程概念

1. 进程概念1.1 进程的本质核心定义用户视角&#xff1a;程序的动态执行实例&#xff08;如同时运行多个Chrome窗口即多个进程&#xff09;。内核视角&#xff1a;资源分配的最小实体单位&#xff0c;独享CPU时间片、内存空间和文件资源。现代定义&#xff1a;进程 内核数据结…

从LLM到VLM:视觉语言模型的核心技术与Python实现

本教程的完整代码可以在GitHub上找到&#xff0c;如果你有任何问题或建议&#xff0c;欢迎交流讨论。 引言&#xff1a;为什么需要VLM&#xff1f; 当我们与ChatGPT对话时&#xff0c;它能够理解复杂的文字描述&#xff0c;生成流畅的回答。但如果我们给它一张图片&#xff0c…

老系统改造增加初始化,自动化数据源配置(tomcat+jsp+springmvc)

老系统改造增加初始化&#xff0c;自动化数据源配置一、前言二、改造描述1、环境说明2、实现步骤简要思考三、开始改造1、准备sql初始化文件2、启动时自动读取jdbc文件&#xff0c;创建数据源&#xff0c;如未配置&#xff0c;需要一个默认的临时数据源2.1去掉sping mvc原本配置…

卫星通信终端天线的5种对星模式之二:DVB跟踪

要实现稳定可靠的卫星通信&#xff0c;地面终端天线必须精准地对准远方的卫星。对星的过程是一个不断搜索、不断逼近的过程&#xff0c;其目标是让天线波束中心精确指向卫星&#xff0c;从而获得最大信号接收与发射效率。 卫星通信终端天线的对星技术是保障卫星通信链路稳定的…

重构下一代智能电池“神经中枢”:GCKontrol定义高性能BMS系统级设计标杆

概述BMS&#xff08;电池管理系统&#xff09;作为新能源汽车动力电池与整车的核心纽带&#xff0c;通过实时监控电压、电流、温度及SOC等参数&#xff0c;控制电池充放电过程&#xff0c;保障电池安全性与使用寿命。随着电动汽车智能化发展&#xff0c;对BMS的响应速度、精度和…