1.计算机基础

1.1 计算机的组成

输入设备、输出设备、存储器、运算器、控制器

  1. 输入设备:将其他信号转换为计算机可以识别的信号(电信号)。
  2. 输出设备:将电信号(0、1)转为人或其他设备能理解的信号。
  3. 运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
  4. 控制器:整个计算机的指挥中心。
  5. 存储器:存放程序和数据的部件,也是计算机能够实现“存储程序控制”的基础。

程序:指令的有序集合。

ROM(Read Only Memory):掉电不丢失,硬盘、Flash(EMMC)、磁盘空间掉电不丢失数据,程序存储器,非易失性存储器。

RAM(Random Access Memory):内存,掉电丢失数据,临时数据。

1.2 计算机的三级存储结构

Cache的作用

  • 提高访问速度:缓存是一种小而高速的存储器,用于存储最近或频繁使用的数据。由于缓存的访问速度比主存(如RAM)快很多,它能显著减少CPU等待数据的时间,从而提高系统性能。
  • 减少内存延迟:当处理器需要访问数据时,如果数据在缓存中,可以快速获取,而不需要花费较长时间去访问主存。这大大减少了内存延迟。
  • 提高吞吐量:通过减少内存访问延迟和提高访问速度,缓存能够提高整体系统的吞吐量,使CPU能够更高效地执行更多指令。

1.3 IO逻辑

数据的传输在计算机系统中数据的存储、传输、运算都是以二进制的形式进行的。

数据的传输其实通过数据总线真正传递的是电信号,也就是高低电平。计算机系统中的高低电平逻辑1和0。

1.4 总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

地址总线

  • CPU是通过地址总线来指定存储单元的。
  • 地址总线决定了CPU所能访问的最大内存空间的大小。如:10根地址线能访问的最大的内存为1024位二进制数据(1024个内存单元)。
  • 地址总线是地址线数量之和。

数据总线

  • 是CPU与内存或其他器件之间的数据传送的通道。
  • 数据总线的宽度决定了CPU和外界的数据传送速度。
  • 每条传输线一次只能传输1位二进制数据。如:8根数据线一次可传送一个8位二进制数据(即一个字节)。
  • 数据总线是数据线数量之和。

例子:想要寻找地址为0x03的存储单元,往这个存储单元里面写入0000 1111,计算机内部总线的流程应该是什么样的?

CPU通过地址总线向地址译码器写入0000 0011,然后地址译码器就知道CPU要寻找的地址为0x03,然后通过数据总线向0x03这个存储单元里面写入0000 1111即可。

控制总线

  • CPU通过控制总线对外部器件进行控制。
  • 控制总线的宽度决定了CPU对外部器件的控制能力。
  • 控制总线是控制线数量之和。

总结:

  • 地址总线的宽度决定了CPU的寻址能力。
  • 数据总线的宽度决定了CPU一次传输数据的最大量。
  • 控制总线的宽度决定了CPU对于外部器件的控制能力。

2.2 单片机常见的型号

51单片机(8位)

AT89C51 ATMEL STC89C51 宏晶科技STC

宏晶科技公司

https://baike.baidu.com/item/%E5%AE%8F%E6%99%B6%E7%A7%91%E6%8A%80?fromModule=lemma_search-box

32单片机(32位)

STM32 ST意法半导体 GD32 兆易创新GD

32位处理器——处理数据宽度是32位

处理器位数——CPU单次运算最大的处理数据位数

意法半导体

意法半导体_百度百科

兆易创新

https://baike.baidu.com/item/%E5%85%86%E6%98%93%E5%88%9B%E6%96%B0%E7%A7%91%E6%8A%80%E9%9B%86%E5%9B%A2%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8?fromModule=lemma_search-box

2.3 8位和32位的区别

8位和32位代表什么?CPU单次运算所能处理的最大的位数。

2.4 ALU

Arithmetic and Logic Unit 算数逻辑单元

ALU有两个单元,一个算术单元,一个逻辑单元

以算术单元为例

ALU内部使用了大量的晶体管,这些晶体管合理分布使其能够实现预期功能;相应的,预期功能越大,所使用的晶体管越多。操作可能有很多,比如说加减(乘法可以使用多次加法代替)

英特尔74181

1970年发布,是第一个封装在单个芯片内的完整ALU

3.开发板介绍

开发板通常是学习用途,功能较全,接口丰富,是用于研发、研究、学习的一块板子。

底板

STM32 开发板底板,支持5V电源适配器与TypeC供电。

提供RTC时钟电源,提供三轴加速度与角速度传感器,用于姿态感知。

板载ESP-12F无线模组,用于物联网云平台项目开发。

提供1路五项按键,采用中断与A/D模式采样。

提供1路有源蜂鸣器,1路2*17P扩展接口,用于资源拓展板的接入。

核心板接口通过2.54mm间距的插针引出,方便用户外接其它设备

显示屏

电容触摸屏在很多智能设备上得到应用,提升了设备的交互感。

在开发板套件中使用方型显示屏来模拟圆形的一个手表项目。显示屏尺寸为2.8寸,分辨率320*240(RGB)

驱动 IC 采用 ILI9341,自带172,800字节的GRAM存储。电容触摸屏采用 I2C 接口,驱动IC采用FT6336G。

资源拓展版

资源扩展版提供基于 I2C 总线的温湿度传感器、环境光感知、心率/脉搏测量。

基于模数转换接口的电压/电流采集。

基于 EXTI 事件/中断控制类型的人体红外、光电开关、火焰感知传感器。

基于 SPI 总线的数码管驱动电路。

基于 PWM 控制的风扇、蜂鸣器、震动马达。

基于 GPIO 的按键、LED 指示灯。

基于异步行通信的485总线电平转换。基于控制局域网总线的 CAN 电平转换等外设。

资源拓展板主要用于微型控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发新学习。

核心板

最小系统板

集成了核心功能的应用功能,可以根据需求定制各种不同的底板,通用性较好。再者核心作为一块独立的模块被分离出来,也降低了开发难度,增加了系统的稳定性和可维护性通常用于做项目,也可以作为模块在产品里在直接使用。

4.STM32 基础

4.1 STM32简单介绍

STM32是意法半导体公司生成的一款32位的微控制器。STM32 的功能强大,性能优异,片上资源丰富,低功耗,是一款经典的微控制器。

4.2 命名规则

STM32 F051 C8T6 STM32G030C8T6 STM32U575RIT6

ST

意法半导体

M

微控制器(microcotroller)

32

32位处理器

类型

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

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

S 简单/标准型 Standard

系列

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度

4.3 STM32优势

STM32 | 产品 | STM32 | MCU单片机 | 意法半导体STM | STMCU中文官网

  1. 产品型号丰富,可选择性强
  2. 运算速度快,功耗低
  3. 处理器的接口更加丰富
  4. HAL库开发体系完整,可参考学习资料众多

4.4 STM32的内部架构

STM32F0

STM32G0

STM32U575

单片机内部主要由以下几个模块组成

两个主模块:

  • Contex-M33内核以及高性能总线(AHB bus)
  • 通用DMA

三个从模块

  • 内部的FLASH
  • 内部的SRAM
  • AHB和AHB连接到APB桥上面的外设

5.ARM

5.1 什么是ARM

1. ARM是一家公司,只做技术服务,既不生产芯片也不出售芯片。

从“英国苹果”到RISC芯片王者——ARM的前世今生之完整追溯 (baidu.com)

2. RAM处理器,ARM处理器是英国Acorn有限公司设计的低功耗低成本的第一款RISC的微处理器,经典处理器 ARM7\ARM9\ARM11,后续处理器(16年)开始以cortex命名。

Cortex-A: 高性能(电脑、平板、手机)

Cortex-A5:低功耗,适合入门级应用。

Cortex-A7:高能效,广泛应用于智能手机。

Cortex-A9:高性能,应用广泛。

Cortex-A15:高性能,用于更高端的设备。

Cortex-A53:64位处理器,注重功耗与性能平衡。

Cortex-A57:高性能64位处理器。

Cortex-A72:用于旗舰级设备。

Cortex-A75、Cortex-A76、Cortex-A77、Cortex-A78:不断提升的性能和能 效,适应高端智能手机和其他高性能计算需求。

Cortex-X1:最高性能的Cortex-A系列核心,针对旗舰设备优化

Cortex-R: 汽车电子 、火箭、导弹、坦克(实时性)(对设备的实时性要求高)

Cortex-R4:适用于高性能实时应用。

Cortex-R5:增强的实时性能。

Cortex-R7:更高的性能和确定性。

Cortex-R8:最新的实时处理器,提供更高的性能和安全性。

Cortex-M: 低成本、低功耗的解决法案

Cortex-M0:超低功耗,适合简单应用。

Cortex-M0+:进一步降低功耗并提高性能。

Cortex-M3:平衡性能和能效,用于多种嵌入式应用。

Cortex-M4:增加DSP功能,适用于信号处理应用。

Cortex-M7:最高性能的Cortex-M处理器,适用于复杂的嵌入式系统。

Cortex-M23:基于ARMv8-M架构,支持TrustZone安全特性。

Cortex-M33:更高的性能和安全性,适用于高级嵌入式应用。

cortex — X

它们主要针对高端智能手机、平板电脑、笔记本电脑和其他需要高计算能力和 能效的设备。这些芯片的设计目标是提供领先的单线程性能和整体系统性能。

Cortex-X1:

首款Cortex-X系列产品,于2020年发布。

相较于Cortex-A77,性能提升了约30%。

Cortex-X2:

2021年发布,基于ARMv9架构。

提供进一步的性能提升,并改进了机器学习和安全功能

3.ARM是一款指令集

5.2 ARM体系架构

5.3 指令集

指令集:指令的集合

指令:能够指示处理器运行的命令 + - * /

指令在程序中的作用

在程序中,指令的组合形成了一系列步骤,每个步骤执行特定的操作,从而完成整个程序的功能。通过有序地执行这些指令,处理器可以实现从简单的数学运算到复杂的逻辑控制、数据处理、设备管理等各种任务。

5.4 指令集的分类

RISC(Rdduce)精简指令集

精简指令集(RISC)-->微处理器

只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。

RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛

举例:如有加法运算器 ,没有乘法运算器 3*3 ---》3+3+3

优点:功耗低,价格便宜,体积小,指令简短,散热需求小

缺点:功能较差,运算速度慢。

ARM是精简指令

CISC(Complex)复杂指令集

复杂指令集(CISC)-->电脑CPU

不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定

CISC处理器在性能上有很大优势,多用于PC及服务器等领域

优点:运算速度快

缺点:功耗高,体积大,成本高,指令复杂,散热需求高。

  1. Contex-M33

微处理器主要包含了 处理器的内核,嵌套中断向量控制器,调试子系统,内部的总线系统构成,未处理器内核通过 AHB LITE 总线接口单元和外界的存储器以及外设1进行通信。

6.1 M33的特性

  1. Cortex-M33是ARM推出的中高端嵌入式处理器,面向物联网(IoT)、实时控制和安全关键应用设计,平衡性能、能效与安全性
  2. 应用场景:智能家居,工业自动化,医疗设备等
  3. 采用ARMV8架构,32位AHB总线,支持多主设备并发访问

6.2 M33的工作模式

线程模式:芯片进行复位之后,执行的用户程序

处理模式:当处理器发生了异常或者中断的时候执行处理模式。处理完中断和异常继续返回线程模式

  1. 如何进行单片机的开发

开发环境的搭建

STM32CubeMX

ST公司出品的专门用于STM32系列芯片的工程搭建工具

工具链接

STM32CubeMX是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。

作用及功能

  1. 工程项目搭建和配置
  2. 直观地选择微控制器
  3. 图形化引脚功能配置,引脚冲突提示
  4. 动态的配置时钟树
  5. 动态设置参数和初始化

keil_5

Keil μVision 5 也称MDK-ARM、Realview MDK

MDK ——》Microcontroller Development Kit

keil_5的构成

MDK包含以下几个部分:

μVision5:一种集成开发环境,提供了多种不同的功能,如编辑器、编译器、调试器等。

ARM编译器:一种嵌入式ARM C / C++编译器,可在多种不同的微控制器平台上运行。

Device Family Pack:一种特定于属于不同微控制器平台/系列/型号的软件包,包括库文件、设备描述文件等。

Debugger:一款高级调试器,支持多种不同的调试功能,如单步调试、断点调试、内存映射等。

8.开发软件的使用

8.1 STM32CubeMX

  1. 新建工程

  1. 选择芯片的型号

  1. 界面介绍

  1. 开启下载引脚

  1. 选择文件存放的位置

  1. 生成代码

8.2 keil5

使用keil5打开进行编译

在控制台显示0 err 表示没问题。

  1. 选择下载器

9.电路常见电子元器件

电阻

电阻作用一般用来限制电流保护电路当中的元器件一些电容其他元器件组成相关功能电路

电容

电容电路常见作用滤波平稳保护作用电阻还可以组成一些其他作用的电路

二极管

特点单向导通反向截止

记忆:将此符号看作一个箭头,顺着箭头的方向,电压降低才导通(压差最小为0.7v),否则相当于电阻无穷大。

有一种二极管在其导通时可以发光,这种二极管叫做发光二极管(Light Emitting Diode)

发光二极管又叫LED

三极管

三极管一般分为两种类型 PNP类型 NPN类型

NPN型三极管

基极高于发射极

基本上三极管最常见作用就是开关作用我们可以三极管理解一个电控开关基极高于发射极时候集电极发射极导通电流集电极流向发射极(高电平导通)

PNP型三极管

基极低于发射极

基极低于发射极时候集电极发射极导通电流从发射极流向集电极(低电平导通)

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐