ok家人们,国庆回来继续开始新的单片机的学习,这次学习的单片机芯片为STM32U575RIT6
计算机基础
IO逻辑
计算机系统中的高低电平逻辑1和0,数据在计算机中的存储、传输、运算都是以二进制形式进行的。数据的传输通过总线真正传递的是电信号,高低电平。运算在电路中进行,集成电路中运算。
计算机的组成
1.输入设备:将其他信号转换为计算机可以识别的信号。
2.输出设备:将电信号转为人或其他设备能理解的信号。
3.运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,其核心是算术逻辑单元ALU,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
4.控制器:整个计算机的指挥中心
5.存储器:存放程序和数据的部件,也是计算机能够实现“存储程序控制”的基础。
ROM只读存储器:
掉电不丢失
读取速度慢
硬盘、U盘
存储程序,ROM也叫程序存储器
RAM随机存储器:
掉电丢失
速度快
内存条
存储临时变量和程序运行产生的数据
总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
数据总线
1.是CPU与内存或其他器件之间的数据传送的通道。
2.数据总线的宽度决定了CPU和外界的数据传送速度。
3.每条传输线一次只能传输1位二进制数据。如: 8根数据线一次可传送一个8位二进制数据(即一个字节)。
4.数据总线是数据线数量之和。
地址总线
1.CPU是通过地址总线来指定存储单元的。
2.地址总线决定了cpu所能访问的最大内存空间的大小。如: 10根地址线能访问的最大的内存为1024个内存单元,即1024byte
3.地址总线是地址线数量之和。
字节是存储的基本单位,位是存储的最小单位,8位和32位的区别是cpu的位数不同,也就是数据总线的个数不同
ALU
Arithmetic and Logic Unit 算术逻辑单元
ALU有两个单元,一个算术单元,一个逻辑单元
运算过程
ALU内部使用了大量的晶体管,这些晶体管合理分布使其能够实现预期功能,相应的,预期功能越大,所使用的晶体管越多。操作可能有很多,比如说加减(乘法可以使用多次加法代替)
给ALU传一个操作码,一般是4bit,这个操作码就可以表示相应的运算。操作码的作用就是告诉ALU你要对输入进行什么样的操作
根据操作码进行了指定的运算,并且输出了很多的标志位。
溢出标志位:比如说是否产生溢出,有溢出的话此位置1
零标志:运算结果为0时,零位置1;用于判断两个数是否相等
负标志位:如果结果是负值,此位置1
英特尔74181于1970年发布,是第一个封装在单个芯片内的完整ALU
指令集
CPU所支持的指令的集合
RISC精简指令集CPU:
体积小、功耗小、性能相对弱、指令集短CISC复杂指令集CPU:
体积大、功耗大、性能强、指令集长
CPU组成与运行原理
程序由一个一个的操作组成,这些操作叫做指令。指令告诉CPU接下来要做的事情
CPU组成:
在CPU内需要存储单元来存储临时数据,这个存储单元叫寄存器 R0 R1
CPU需要一个寄存器来告知自己下一步要运行的指令是什么——PC程序计数器(存放的是下一条要运行指令的地址)
CPU需要一个寄存器来保存取到的指令——IR指令寄存器
CPU需要一个部件进行译码——指令译码器
CPU运行
取指:控制器将PC寄存器中的地址发送给内存,内存将对应地址中的指令传给CPU中的IR指令寄存器
译码:指令译码器对IR中的指令进行识别,将指令(机器码)解析(翻译)成具体的操作
执行:根据所要运行操作,进行相应的动作。
CPU时钟
"时钟"会以精确的间隔触发电信号,CPU内部存在控制单元,这个控制单元会用这个信号推进CPU的内部操作,确保一切按步骤进行。
CPU取指-译码-执行的速度叫时钟速度,单位是HZ,HZ是频率的表示单位
超频
通常所说的超频,就是修改时钟速度,加快CPU的运行速度,能更高的压榨CPU性能
延迟问题
当CPU运行速度很快时,例如现在的CPU动辄运行速度就高达每秒钟上亿条指令,所以很小的延迟都会被放大,甚至有可能会导致系统出现问题。
当CPU去RAM读数据时,RAM需要找地址然后再取数据,再把数据输出
一条"从内存读数据的指令"可能需要多个时钟周期才能完成,这就造成CPU发出指令后下一个时钟周期无法按预定进行,发生CPU空等数据的情况。
方式一:高速缓存
方式二:指令流水线
1.先拿到CPU对应的指令集
2.根据指令集进行指令编配
3. 编译,将汇编文件转换成机器可以识别的二进制文件
4.烧录(下载)机器码到芯片中去
编译流程
高级语言 .c文件
汇编语言 .s文件
机器语言 二进制文件(机器码)
DMA总线
DMA(Direct Memory Access)即直接存储器访问,使用DMA总线可以不通过CPU直接在存储器及外设之间进行数据传递。作用:节省了CPU资源,提高CPU效率。
单片机基础
单片机简介
单片机是单片微型计算机的简称,MCU是Microcontroller的简称,也就是嵌入式微控制器。采用集成电路技术将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、定时器/计时器、多种I/O口和中断系统等功能集成到一块硅片上。可以说单片机就是一个小而完善的微型计算机系统。
单片机型号
51单片机(8051)
国产:STC89C51 宏晶科技 STC
外国:AT89C51 ATMEL
32单片机(通常说的就是ARM)
外国:STM32 意法半导体 ST
国产:GD32 兆易创新 GD
开发板/最小系统板
开发板
开发板通常是学习用途,功能比较全,接口丰富,是用于研发、研究、学习的一块板子。
显示屏
电容触摸显示屏在很多智能设备上得到应用,提升了设备的交互感。
资源扩展板
资源扩展板提供基于 I2C 总线的温湿度传感器、环境光感知、心率/脉搏测量。基于模数转换接口的电压/电流采集。资源扩展板主要用于微控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发学习。
最小系统板
最小系统板是个核心板,集成了核心的通用功能,可以根据需求定制各种不同的底板,通用性较好。再者核心板作为一块独立的模块被分离出来,也降低了开发的难度,增加了系统的稳定性和可维护性通常用于做项目,也可以作为模块在产品里在直接用。
STM32
简介
STM32是意法半导体公司生产的32位的微型控制器
STM32U575RIT6
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度 |
STM32的优势
1.产品型号丰富,可选择性强;
2.运算速度快,功耗低;
3.处理器外设接口丰富;
4.库函数开发体系学习资料多,应用广泛。
STM32G0系统架构
● 二个主模块 :
– Cortex-M0+ 内核及先进高性能总线 (AHB bus)
– 通用 DMA (通用的直接存储器存取)
● 三个从模块 :
– 内部 FLASH
– 内部SRAM
– AHB和AHB到APB的连接桥,挂在APB总线上和AHB的外设
stm32存储器
ROM(只读存储器):掉电不丢失,掉电保护。
PROM(可编程的ROM)--可以烧入二进制文件,但是只能烧入一次。
EPROM(可擦除可编程的ROM):理论上可以烧入无数次,但是擦除的条件比较苛刻,需要紫外线照射。
EEPROM(电子可擦除可编程的ROM):擦除方便,但是写入速度慢一些。
Flash:结合了ROM和RAM的优点,因为其掉电不丢失特性,属于ROM,但其结合了RAM的特性,存储写入速度很快,缺点:贵,写入次数有限制
RAM(随机存储器)特点:掉电丢失
SRAM(Static)静态RAM:现存的存储速度最快的存储器,缺点:贵
flash和SRAM的区别?
1.flash掉电不丢失,SRAM掉电丢失
2.flash写入次数有限制,SRAM 理论写入无限次
3.SRAM读写速度更快一些
4.SRAM一般存放临时变量,flash存放程序--程序存储器
ARM体系结构
STM32U575RIT6采用ARM Cortex-M33内核架构
对ARM 的认识
1.公司名称
ARM是一家公司,ARM公司是一家芯片知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。
2.ARM可以表示一些处理器的统称
早期经典处理器:ARM7 ARM9 ARM11
Cortex-X系列 超高性能系列
Cortex-A系列
针对开放式操作系统的高性能处理器应用于智能手机、数字电视、智能平板等高端运用
Cortex-R系列
提供非常高的性能和吞吐量,同时保持精准的时序属性和可预测的中断延时,通常用于时序关键的应用中针对实时系统、满足实时性的控制需求应于汽车制动系统、动力系统等
Cortex-M系列
为单片机驱动的系统提供了低成本优化方案应用于传统的微控制器市场、智能传感器、汽车周边、物联网设备等
3.ARM也可以代表一种指令集---属于精简指令集
thumb指令集是对ARM的再次精简,ARM指令集32位,Thumb指令集16位
Cortex-M33的寄存器
通用寄存器 一个寄存器存储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)存储下一条将要执行的指令的地址。
特殊寄存器
应用程序状态寄存器 (APSR):保存程序计算结果的状态标志 N负数标志 Z零标志 C进位借位标志 V溢出标志
中断程序状态寄存器 (IPSR):包含当前ISR(中断服务程序)的异常编号
执行程序状态寄存器 (EPSR):包含Thumb状态位 ---->运行Thumb指令集