Advertisement

单片机的介绍

阅读量:

目录

一、介绍

1.单片机简介

2.单片机型号

3.体系

二、硬件基础

1.引言

2.电路基础

电的类比

电流

电压

电路

3.电子元器件

电阻

电容

二极管

三极管

4.常见电气接口

传统音频

视频

电源

RJ45网口

DB9串口

5.开发板/最小系统板

三、STM32介绍

1.简介

2.STM32的优势

库函数开发体系学习资料多(可以抛开寄存器),应用广泛。

3.命名规范

4.开发套件介绍

3.处理器架构

4.Cortex-M0内核架构

Cortex-M 系列产品线

Cortex-M0结构框图

Cortext-M0特性

Cortex-M0工作模式

Cortex-M0工作状态

Cortex-M0的寄存器

Cortex-M0的中断和异常

Cortex-M0的指令集


一、介绍

1.单片机简介

单片机被称作单片微型计算机的简称为,在电子领域具有重要地位。其中Mcu即为Microcontroller这一术语的缩写。具体而言,在电路集成方面已经实现了中央处理器CPU、随机存储器RAM、只读存储器ROM等多种数字功能模块以及定时器/计时器等时序电路在内的完整功能集合,在一块硅基芯片上得以完美整合与协调运行。可以说单片机是一个小型而完善的微型计算机平台。

2.单片机型号

51单片机 - 8051架构

STC89C51 宏晶科技STC

AT98C51 ATMEL

32单片机 GD32和STM32都是基于ARM Cortex-M3/M4内核开发的通用微控制器。

STM32 意法半导体ST

GD32 兆易创新GD

Note: The number of bits in a processor refers to the word size of the CPU. An 8-bit operation can handle 32-bit data, but it is relatively slow due to its limited word size and inefficiency in handling larger data sets.

处理器位数越高,运算速度越快。

3.体系

STM32-GPIO编程+液晶屏

STM32-USART串口应用

STM32-中断系统

STM32-时钟系统

STM32-ADC + DMA (数据搬移)

STM32-通信模组 蓝牙、Wifi

二、硬件基础

1.引言

嵌入式工程师在硬件方面的造诣需要达到何种深度呢?实际上,在进行嵌入式软件开发时,并不需要你具备非常强的硬件专业知识储备。你无需掌握电路图的绘制技巧、焊接技能以及PCB板制作工艺等基础操作。然而,在理解基本电路原理、识别常用电子元器件以及能够看懂并分析复杂的电路图等方面则是必须掌握的基本技能。尤其是当涉及到底层开发(如单片机控制、Linux系统驱动编写等)时,项目的边界逐渐向硬件领域延伸。如果你能在硬件方面有着深厚的积累,则有可能成为一位全面发展的嵌入式全栈工程师——但这也取决于个人精力与能力是否允许实现软硬兼通的目标。每个人都有自己的时间分配偏好,在软硬之间找到平衡点需要付出相应的努力与天赋支持,并且还要看工作环境是否给予这样的机会。“好的 hardware engineers are often fed by money, because the trial and error costs are far higher than in software development.” This tutorial aims to introduce you to some fundamental hardware concepts, which you must master in order to become a hardware engineer. However, even with this knowledge, you should be able to handle basic embedded software development tasks.

注释:本文内容源自大量网上资料的整理与修订和完善。为了确保内容仅限于教学用途而不涉及任何商业活动,请注意。

2.电路基础

电的类比

通常我们会将电子知识过度地复杂化;实际上电可以类比于水;其特性与水具有相似之处;由于电无法直接观察到;因此,在理解上也会遇到一定难度。

电流

这个是水流量计( 1单位流量= 1吨/小时=1T/H)

这个是电流表(安培 1A= 1库伦/秒)

电流表本质上就可以看作是一个水流表系统,并用于计算水的流量。其本质就是计算水流量的意义所在。水管中的水量变化情况很容易理解,在导线中流动的电流与水流具有相似性。

电压

电压==电压差

这个是水压表

这个是电压表

我们可以视作水压表用于检测水流经水管时产生的压力,而电压表则用于检测电流通过导线时所形成的压力。水流经高压区域时流向低压区域,电流同样遵循这一规律从高电位区域流向低电位区域。

总结

电可以认为是看不见的水

电压类似于水压 (电压差)==(水流差)

电流类似于水流

电路

水流奔涌而下,则会构成众多的小河、小溪之类;电流四通八达,则会成为电路;水流行进于各个分支,则会成为不同的水路;电路则不然,则是相对容易理解;以上介绍的是家装用水系统的常见组成部分及其连接方式。

类比电路图

不要试图将电路图变得过于复杂化;相反地,请将它视为水流系统一样简单明了。实际上,在水路系统中我们会遇到各种各样的设备:阀门(valves)、洗衣机(washing machines)、热水器(hot water heaters)等不同类型的装置。每一个单独的电路单元或者设备都类似于存在于水流系统中的这些装置——它们都是用水流驱动运作,并且可以通过水流进行控制的操作装置。

总结

水路 水走的路

电路 电走的路

3.电子元器件

在电路板上布满了各种元器件,在设计时我们将这些元器件类比为水路系统中的各个组件。这样一来就能更容易地理解整个系统的运作机制。

电阻

将电流比作不同粗细的管道,在其中加入"节制器"装置以调节流量大小。这样设计可以使后续电路元件免遭过度载流而损坏设备。该装置的一个显著特点是其方向性特征为无向性——无论电流从哪个端流入(正极或负极),其效果均相同:类比于管道内存在杂质或障碍物(如水垢),当这些阻碍因素积累增多时,则会显著降低水流速率;由此可知:当导体材料或横截面积发生改变时(即电阻增大),通过导体的电流强度必然会相应减小——这与我们日常生活中观察到的现象一致:电器设备在电压恒定的情况下运行时,在负载增加(即总阻抗增大)的情况下会呈现出更低的工作电流输出状态

实物图

电路符号

电容

电容类似于一个储存水的装置(如水桶、池塘等),其中水流必须经过特定处理才能安全流动。储存在这些装置中的水量能够维持一段时间而不外泄,这体现了电容储存能量的作用特点。同样值得注意的是,在这种情况下,无论前面水流多么湍急,在湖泊中都需要先被填满才能让水流顺利排出;当湖泊开始接收如此剧烈的水流时,在接收端必须先填满它才会让流水顺畅;这样一来,在接收端流水的速度就会减缓一些。剧烈波动逐渐变得平缓后,在经过湖泊时其形态也会发生明显变化——从大波浪变为小波浪,并且形状发生了显著变换;这种变化说明湖泊具有滤波功能——只允许特定频率或大小的波动通过。

所以电容在电路中是储能、缓冲、减压、过滤 器件。

  1. 储能器件 对应电解电容
  2. 缓冲过滤器件 对应耦合电容
  3. 漏斗 对应滤波电容

同一颗电容在电路中所处的位置决定了其承担的功能各异,在本电路中它主要起到导漏的作用,在其他电路中则承担储能的任务。因为后面的组件需要稳定的电流供应,
就像往水池灌水时看到的那样,
水面溅起的泡沫较大,
会对后续的电子元件造成损害。

实物

电路符号

二极管

正向导通,反向截止

可以说二极管相当于单向阀门这一装置,在电路中实现了电流方向的选择性通断作用。其功能体现在电流只能单向流动于其一侧而无法逆向流动这一特性上。这反映了二极管的特点即允许电流在特定方向上流动而阻碍相反方向电流的作用机理。

这就是二极管的符号图解表示法非常直观右侧带有竖线这一特征非常明显可以看出左侧电能流向右侧而右侧电流则被有效阻挡左侧则会被阻挡装置阻止而右侧电流则无法通过从而实现能量的有效传递与限制

二极管在电路中的特性与水路中的单向阀基本原理一致。

实物

电路符号

三极管

三极管 实际是个小阀门控制大阀门的器件。

三极管有两种类型,PNP和NPN型。两者的不同参考:[npn与pnp五大不同

探讨NPJ与其相关类型之间的差异性分析

那么问题来了:为什么三极管能够实现放大的呢?充分讲解了三极管放大原理的同时,也深入剖析了二极管工作原理(尽管已经讲解过无数遍了)。如果对二极管的工作原理较为熟悉的朋友可以从中间部分开始观看。视频播放量 601674、弹幕量 564、点赞数 42865、投硬币枚数 9206、收藏人数 25503、转发人数 3222, 视频作者:电子工程师华哥;其简介包括采购元器件/PCB打板/SM贴片操作:可参考www.hqchip.com.作为一个擅长剪辑的电子工程师华哥~相关视频:没人讲PNP三极管是吧?我讲!

https://www.bilibili.com/video/BV1fB4y147Gn/?spm_id_from=333.788&vd_source=145b3a064593de8cd1eec3f67b52f17e](终于有人解答了,原来晶体管能够大幅增强电流?)

【稚晖君、马鹿、电子工程师华哥】

两种三极管在应用中会影响电路图的接线方式不同;例如这是一个典型的共基极PNP型电源开关模块。

实物

电路符号

半导体三极管有三个电级:依次是基级、集级和出级。当半导体器件工作时需要施加工作电压后就会产生各个电级的电流。具体来说半导体三极管在工作时出级电流等于基级与集级电流之和其中基级电流最小而发射级(出级)则最大。若向基级施加微小电流则会使得集级产生较大的输出电流从而使得这种器件具有放大的功能此外它主要用于放大信号并广泛应用于放大电路以及振荡电路中。

4.常见电气接口

传统音频

视频

电源

RJ45网口

DB9串口

公头和母头

公头就是插头上是针的,母头就是插头上是孔的

线序及作用

在实际开发过程中, 获取线序信息可以通过网络查找, 只需了解如何查看线序, 以及其中关键的是三条红色线条。

5.开发板/最小系统板

开发板多被用于教学和实践场景

开发板多被用于教学和实践场景

最小系统板是核心功能模块,在整合了基础且通用的功能布局后能够支持灵活配置多种底板组件。其独特的设计使得基础功能布局合理,并通过将核心功能独立分离为独立模块有效降低了开发复杂度。同时这种设计显著提升了系统的稳定性和可维护性通常被选用来做项目方案中的关键组件也可方便地作为可扩展的软件功能模块加入到产品中

The Printed Wiring Board (PWB), also known as a printed circuit board, is a crucial component in the electronics industry. It serves as a basic structure for assembling key electronic components, acting as a reliable carrier for the interconnection of various electrical and electronic elements. By employing advanced manufacturing techniques such as surface-mount technology, modern PCB manufacturing ensures high precision and reliability. The board consists of multiple layers of conductive materials, including copper, which are meticulously stacked to provide superior electrical conductivity. Each layer is separated by insulating materials to prevent unwanted electrical interference. The entire assembly is then coated with solder paste to ensure secure connections between the different layers, making it an indispensable element in modern electronic systems.

PCB没有焊接元器件

PCBA 焊接完的电路板

三、STM32介绍

1.简介

STM32是意法半导体公司生成一款32位的微控制器。属于单片机。

2.STM32的优势

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

运算速度快,功耗低;

处理器外设接口丰富;

库函数开发体系学习资料多(可以抛开寄存器),应用广泛。

3.命名规范

STM32G030C8T6

ST - 意法半导体

M - 微型控制器

32 - 32位处理器

类型 - G - 多用途型

F - 通用型

H - 高性能型

L - 低功耗型

S - 精简型

系列 - 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.开发套件介绍

核心板 - 处理器 + 无线通信模块(NB-IOT、Wifi、Zigbee)

底板 - 承载各种外设接口

如传感器扩展口、按键、LED灯、通信接口MiniUSB、五向按键等。

配套模块

传感器 :

执行器 :蜂鸣器、风扇、电灯、继电器

ARM体系结构

1.ARM简介

STM32G030处理器内核架构为ARM Cortex-M0+。

面试题:谈谈对ARM的理解

ARM处理器、ARM公司(知识产权(IP)供应商)

1- ARM是一家公司 ,ARM公司是一家提供芯片知识产权(IP)的专门企业。它的主要区别在于它不会自行生产芯片也不会直接向最终客户销售这些硬件。相反地, 它通常会通过与其他企业合作的方式将自己的设计图纸转让给合作伙伴以换取 specialized hardware manufacturing rights.

2 - ARM 处理器 ,作为第一款采用 RISC 架构并兼具低功耗与低成本的小型微控制器,ARM 处理器由英国 Acorn 公司研发并优化。

ARM7\ARM9\ARM11

Cortex - A :高性能 Cortex -R:实时性(汽车中控) Cortex - M:低功耗

Cortex - X:超高性能

3 - ARM技术采用了指令集架构。该技术在性能方面表现出色,在成本和能耗方面也达到了优化。在智能设备、便携式 computing 和多媒体处理等领域得到了广泛应用。

Tips:目前市面上主流的架构有哪些?

主流的四大架构:ARM、intel x64/x86、MIPS、RISC-V(开源,降低成本)

Tips:

RISC和CISC有什么区别?

案例:

早期所有CPU均为CISC架构设计。其主要目标在于通过尽可能少的机器语言指令来实现所需计算任务。

比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:

MUL ADDRA, ADDRB

就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。

通过加载ADDRA和ADDRB中的数据到寄存器,并执行乘法运算后将计算结果存储到内存中这一系列操作,完全基于CPU内部设计的逻辑。

这种架构会导致CPU结构的复杂性及其相关工艺要求显著增加;尽管如此,在编译器领域却大有裨益。

比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。

今天只有Intel及其兼容CPU还在使用CISC架构。

RISC架构规定了软件必须指定各个操作步骤。上面的例子若要在此架构下实现,则需要相应的软硬件配合。

从ADDRA和ADDB中加载数据到寄存器后,计算两个数的乘积,并且必须完全由软件系统完成后续的操作。

比如:

MOV A, ADDRA;

MOV B, ADDRB;

MUL A, B;

STR ADDRA,A。

这种架构不仅能够减少CPU的复杂性,并且支持以相同的工艺制造出性能提升显著的CPU。

但对于编译器的设计有更高的要求。

ARM也属于精简架构

3.处理器架构

STM32F0

STM32G0

● 主模块 :

Cortex-M0+内核及先进高性能总线 (AHB bus)

通用 DMA ( GP-DMA -- general-purpose DMA)

● 从模块 :

– 内部FLASH 闪存

– 内部SRAM 内存

– APB桥,连接AHB和APB,所有的外设都挂在APB低俗总线上

- G0: GPIOx直接挂在IOPORT总线上。

**- F0 :**专门用于连接GPIO口的AHB2总线

Tips:AHB和APB的区别?

AHB属于高速总线的一种系统总线,并主要承担处理器与DMA等内部接口之间的连接。

AHB系统包含主模块、从模块和基础结构3个组成部分,在其传输过程中,主模块负责发送信号至其他设备,并对应地处理来自从模块的响应。(内存有关)

APB是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,

它的总线架构并不像AH总线支持多个主模块,在APB内部只有一个独立的主模块即为APB桥。

4.Cortex-M0内核架构

Cortex-M 系列产品线

该系列芯片涵盖多种功能定位,在低功耗及混合信号处理方面表现突出;其中Cortex-M0 系列芯片主打低功耗及混合信号处理功能;而Cortex-M3 芯片主要用于代替ARM7架构,在注重功耗与性能平衡方面具有显著优势;最后,Cortex-M7 芯片则着重于高性能控制运算领域,展现出卓越的计算能力。

Cortex-M0结构框图

NVIC在内核里

SWD串行线调试接口

Cortex-M0 处理器主要由处理器内核驱动,并配备嵌套式向量中断控制器(NVIC),支持调试功能模块以及具备完整的内部总线网络。

Cortex-M0 微处理器通过精简的高性能总线(AHB-LITE)与外部进行通信。

Cortext-M0特性

  • 基于16位 Thumb指令集设计(由于ARM指令是32位的,在相同存储空间内可存储双倍数量的Thumb指令条目)
  • 高性能设计采用ARMv6-M体系架构
  • 支持最多配置1至32个中断类型,并提供四级中断优先级设置
  • 电路规模小且功耗极低:配备高效的中断唤醒控制器(WIC),支持进入深度休眠模式以降低功耗
  • 兼容性优异:与Cortex-M1处理器兼容;向上兼容Cortex-M3和Cortex-M4处理器系列;轻松升级和移植到更高层次的处理器
  • 支持多种嵌入式操作系统平台:为多个开发环境提供良好的软件支持

Cortex-M0工作模式

线程模式(Thread Mode)- 芯片复位后,执行用户程序

处理模式(Handler Mode)是一种机制,在这种情况下会导致系统切换回线程模式。

Cortex-M0工作状态

Thumb状态:正常时处理器的状态

调试状态:调试程序时处理器的状态

Cortex-M0的寄存器

通用寄存器

从R0到R12编号的通用寄存器组共有13个。其中编号从R0至R7的寄存器属于低端系列,在执行指令时既可以处理16位数据也可以处理32位数据;而编号从R8至R12的则是高端系列的寄存器,在操作过程中仅支持32位数据的操作功能。

R13:stack pointer register SP(stack pointer),Cortex-M0 位于不同的物理位置上拥有两个栈指针:主栈指针 MSP 和进程栈指针 PSP。

当处于处理模式时,系统仅允许使用主堆栈;而在线程运行状态中,则可以选择性地切换至进程堆栈。开机状态下,默认设置为MSP地址作为初始值以确保逻辑一致性。这种设计的主要目的是简化动态资源管理流程,并且能够根据权限等级灵活配置相应的资源分配策略。

R14:Link Register LR (the link register), which is designed to store the return addresses of subprograms or function calls, records the starting address of the next instruction to facilitate immediate execution after completing other instructions.

R15:程序计数器PC(the program counter register)负责记录即将被执行的操作的地址。

特殊寄存器

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

应用PSR(APSR):由该方法存储程序运算结果的状态标记N、Z、C、V等分别代表不同的操作状态

spsr 计算当前的状态

中断PSR(IPSR):包含当前ISR的异常编号

执行PSR(EPSR):包含Thumb状态位

CONTROL:控制寄存器

控制处理器处于线程模式时,使用哪个堆栈

=0,使用MSP 处理器模式时,固定使用MSP

=1,使用PSP

Cortex-M0的中断和异常

Cortex-M0 处理器可支持最多32个外部中断(常见类型称为 IRQ)以及1个不可屏蔽中断(NMI)。此外,Cortex-M0 还能处理多种系统异常,例如 Reset 用于重置系统, HardFault 表示硬件故障,SVCall 和 PendSV 分别用于软件调用和定时器超时,SysTick 则用于计时功能

Tips:Thumb指令集和ARM指令集的区别?

Cortex-M0的指令集

ARM处理器支持两种指令集:ARM 和 Thumb。

EPSR寄存器的T标志位负责指令集的切换,Cortex-M0只支持Thumb指令。

ARM指令集 32位精简指令集; 指令长度固定;

降低编码数量产生的耗费,减轻解码和流水线的负担;

Thumb指令集

Thumb指令集是ARM指令集的一个子集;

指令宽度16位;

与32位指令集相比,大大节省了系统的存储空间;

Thumb指令集不完整,所以必须配合ARM指令集一同使用。

全部评论 (0)

还没有任何评论哟~