📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处
1、单片机组成
1.1 CPU
CPU(Central Processing Unit,中央处理器)
计算机的核心设备是CPU,同样这也是单片机的核心部件。
从结构来看:CPU就是一块超大规模集成电路,CPU的本质就是电路。
从功能来看:兼具运算和控制的功能
CPU主要包括以下三个部分:运算器,寄存器和控制器,不包括内存。
运算器:数据运算,比如加减乘除取余等运算
控制器:控制CPU的运行,读取指令代码,解码并执行指令
寄存器:临时存储,外部数据进入到cpu的时候,暂时存储在寄存器中
总结:
(1)CPU = 运算器 + 控制器
(2)CPU = ALU + cache + Bus(总线)
(3)CPU = 汇编指令 + 寄存器
1.2 ROM和RAM
这两个共同构成单片机的存储体系
(1)ROM(read only memory,只读存储器),意思是只能读不能写,表示程序运行时只能通过程序自己本身的操作去读而不能写。单片机中用来存储用户烧录的程序的器件就是ROM,烧录的过程其实就是在写ROM,但是程序运行时是不能修改ROM的内容;单片机中程序平时是存储在ROM中,运行时由ROM直接供给CPU。单片机中的ROM一般是Flash(闪存),有些地方会看到叫flash memory;。ROM就有点类似于仓库,用来存储程序代码,ROM有点像外存的概念,但是并不完全相等。主要是因为计算机系统有不同的设计方法,譬如PC机和单片机的设计就不相同。PC机中有外存、没有ROM,单片机中有ROM、没有外存。
(2)RAM(random access memory,随机访问存储器)。从物理上来讲,RAM主要分为SRAM和DRAM,单片机中一般都使用SRAM,嵌入式SoC和PC机中用的都是DRAM。
(3)ROM和RAM的协同工作方式:ROM用来存储用户写好、编译好的程序,运行时CPU直接从ROM中读取一条一条的指令来运行,指令运行过程中产生的临时数据放在RAM中。所以基本可以理解为:ROM是单片机用来放程序,RAM用来放数据。
计算机系统中的内存与外存理解
内存:内存和CPU接轨比较紧密,可以被CPU直接访问,内存可以按照字节为单位来随机访问、程序运行时离不开内存、程序中的变量都是定义在内存中的。内存受限于物理技术和成本,容量比较小而贵;内存速度比外存快很多,CPU的速度比内存的速度快好多。内存就是内存条、CPU里面的存储器。
外存:外存和CPU之间比较远,外存不可以被CPU直接访问,外存一般以块为单位来访问,不能以字节为单位随机访问。外存容量大而便宜,外存速度比内存慢好多,比如:硬盘、U盘、SD卡。
1.3 外设和内部外设
外设就是单片机外围电路,如下设备是必须的:
(1)晶振。单片机是一个同步设备,其需要一个同步的时钟,需要时钟发电进行触发,满足两个条件:1.需要电;2.需要晶振
(2)复位电路
(3)电源供电电路
(4)USB下载电路
内部外设:
(1)外设英文叫peripheral,全程为外部设备。属于单片机中的模块
(2)单片机中除了三大部件(CPU、IO引脚、存储器)外,还有一些别的东西,譬如串口控制器、譬如I2C控制器等····这些东西就叫外设。
(3)早期单片机功能很弱小,不具备很多功能(譬如中断功能、譬如串口通信功能),那我们用单片机做产品,只能外部扩展一些专用芯片(中断控制有中断控制器芯片,串口通信我们有串口通信芯片)来和单片机结合(做到一块电路板上用导线连接)起来工作。这种产品设计中核心部分就是单片机,外部配合的这些专用芯片就是外部设备,简称外设。
(4)后来随着半导体工业发展进化,集成电路的集成能力变强大了,我们干脆就把一些常用的外设直接集成到单片机里边去了。所以单片机里边就有了一些原来被称为外设的东西,但是叫法名称还是沿用了开始的名称。
(5)为区分外设,将集成到单片机里边的外设叫做内部外设;还有外部外设,就是至今仍然没有集成到单片机内部,还在外部的那些外设。
总结
单片机通常由中央处理器(CPU)、存储器、输入输出接口、定时器/计数器、中断系统等部分组成,以下是具体介绍:
组成部分 | 主要构成 | 功能 |
---|---|---|
中央处理器(CPU) | 运算器、控制器 | 运算器用于进行算术和逻辑运算;控制器负责指令的读取、译码和执行,控制单片机各部分协调工作 |
存储器 | 程序存储器(ROM)、数据存储器(RAM) | 程序存储器用于存储程序代码和常数等;数据存储器用于存储程序运行过程中的变量、中间结果等数据 |
输入输出接口(I/O接口) | 并行I/O口、串行I/O口 | 并行I/O口可实现多个数据位的同时输入输出,用于连接并行设备或进行简单的数字信号输入输出;串行I/O口用于实现数据的串行传输,可连接串口设备,如串口通信模块、传感器等 |
定时器/计数器 | 定时器、计数器 | 定时器用于产生精确的时间间隔,可用于定时控制、时钟节拍等;计数器用于对外部事件进行计数,可用于测量脉冲个数、频率等 |
中断系统 | 中断请求源、中断控制器 | 中断请求源可在特定事件发生时向CPU发出中断请求,如外部设备请求数据传输、定时器溢出等;中断控制器负责管理和处理中断请求,决定是否响应中断以及响应的优先级等 |
总线 | 地址总线、数据总线、控制总线 | 地址总线用于传输地址信息,指定要访问的存储器单元或I/O设备;数据总线用于在各部件之间传输数据;控制总线用于传输控制信号,协调各部件的工作时序和操作 |
部分单片机还可能包含模数转换器(ADC)、数模转换器(DAC)、看门狗定时器等其他功能模块,以满足不同应用场景的需求。
2、工作原理
2.1 结构框图
单片机的结构框图如下图所示,框图中的方块是组成部件、箭头表示总线Bus;CPU(绿色部分)处于单片机系统的核心位置,外围模块都通过总线和CPU进行关联,而模块之间一般不直接相连;IO其实就是芯片上的引脚,不同的单片机型号有不同的IO数量和定义。其中的SRAM和闪存都是内部存储器。
CPU总线:包括地址总线和数据总线
CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
地址总线的位数决定CPU寻址范围;
数据总线的位数决定CPU单次通信能交换的信息数量;
总线的速度决定CPU和外设互换信息的速度。
CPU总线注意:
1) CPU的地址总线位数和数据总线位数可以不同(典型代表就是51单片机,地址总线16位,数据总线8位),但是一般都相同。
2) CPU的位数指的是数据总线的位数。
3) 32位CPU寻址的范围是4G(2的32次方),所以最多支持4G内存;
4) 数据总线是32位的,所以内存是32位的好,所以编程最好用int···
(1)CPU通过总线从存储器取出指令到内部,然后译码(运算器完成),然后执行(控制器完成)
(2)一条指令包括:指令码+数据
(3)执行指令反应为一个控制操作(控制器完成)或者一个数学运算(运算器完成)
(4)给单片机编程其实就是给CPU写指令序列
单片机统一的时钟节拍
(1)这里有一个概念叫:同步。同步就是好多个独立的部分按照同一个节奏步调来动,以此来实现一个配合。
(2)和同步相对的一个概念叫异步,异步就是各自干各自的。
(3)单片机的各个模块之间是同步工作的,CPU和存储器和IO和单片机中其他东西这些模块之间通过一个统一的节拍来同步工作,这个统一节拍就是单片机的时钟。
(4)这个时钟节拍对单片机很重要,单片机内部在一个时钟节拍中只能做一件事情。所以单片机要发现一些变化或者做一些事情,最小的时间单位就是1个时钟节拍。单片机的时间单位都是时钟节拍的整数倍。
(5)单片机中的CPU、存储器、IO等都是以时钟节拍为动作节拍的,所以单片机是一个同步系统。
(6)时钟周期的长度(时钟节拍的快慢)影响了单片机的速度,所以这个时钟就叫做单片机的主频。主频越高性能越高,一般PC的主频都是2G多3G多,51单片机的主频MHz级别。一般手机CPU的主频也在1G-2G左右。一般高级单片机如STM32的主频在百MHz级别。
管脚定义
(1)电源等管脚、单片机上面有一些管脚是用来支持单片机工作的,譬如VCC和GND、RST等,这些引脚和编程无关,程序也无法操控这些引脚。
(2)IO端口。IO端口是单片机和外部电路进行交互的窗口,外部电路通过IO向单片机内部输入(input)信息,单片机通过IO端口向外部输出(output)信息。单片机中大部分的引脚都是IO(P开头的引脚都是IO),将来单片机内部的程序运行就会通过操作这些IO来和外部电路交互,从而实现程序目的。
(3)管脚复用。普通引脚是一个引脚只有一个名字,一种作用;有些引脚有2个名字(譬如P3.0/RxD),这种引脚就有2种作用(意思不是说这个引脚可以同时做2件事情,而是说这个引脚在不同的时候可以工作在不同的2种模式下),可以通过软件编程让这个引脚在某个时间工作在某种模式下。一个引脚的2种模式之间没有关联,配置工作在A模式下则和B模式一点关系都没有。
为什么要管脚复用?纯粹是为了省引脚。
单片机编程
一般步骤
1. 明确需要实现的功能
2. 分析器件电路原理图,包括:目标器件的工作原理;相关模块的电路连接;控制其工作的IO端口。
GPIO介绍
GPIO(general purpose input output)是通用输入输出端口的简称,又叫IO端口。可以通过软件来控制其输入和输出。其实就是上述描述的RAM寄存器的外部引脚。输出高低电平来控制外部设备。
GPIO是如何工作的?
图所示,单片机(MCU)内的CPU与外接设备之间是通过寄存器进行控制信号的传输的,而这些寄存器的外在形式就是引脚,引脚连接着内部的寄存器和外部的设备,比如LED;通过驱动器将寄存器某一位上的0或是1转换为电平信号,也就是0或是+5进行输出。途中的寄存器指的是RAM(而不是ROM),每一个地址都是8位的。
51单片机上的引脚
如上图所示,单片机的引脚一共有40个。分类:
2.1电源引脚:GND和VCC(电源正极)
2.2晶振引脚:XTAL1、XTAL2
2.3复位引脚:RST/VPD
2.4下载引脚:TXD、RXD
2.5GPIO引脚:Px.x端口。GPIO占用了芯片大部分的引脚,共达32个,分为了4组,P0端口、P1端口、P2端口、P3端口,每组有8个引脚,引脚通过驱动器放大电路,传给IO端。
2.2 最小系统
概念:能使单片机工作的最简单的电路统称为单片机最小系统,参考数据手册的说明。
单片机最小系统的构成:
1.晶振电路:提供时钟给单片机工作。一般使用12MHz的晶振,便于计算机器周期的时间;11.0592M适合串行通信,这个时候的波特率误差为0,而12MHz会产生误差。
2.复位电路:提供系统复位操作,当系统出现运行不正常或者死机等情况时,可以通过复位按键重新启动系统。
3.电源电路:提供稳定的电压。电压过大会烧毁电路,电压过小又会导致无法启动电路。
4.下载电路:用于烧录程序。现在的笔记本电脑没有RS232接口,所以要使用USB转TTL串口电平芯片来建立PC机和单片机数据传输通路。
MCU、CPU、SOC之间的区别
-
MCU(微控制器):MCU是一种集成了处理器核心(通常是CPU)、存储器、输入/输出接口和其他外围设备的单芯片系统。MCU平时我们都叫做单片机。
-
CPU:单片机的核心部件。
-
SoC(System on Chip,芯片上的系统。片上系统):SoC是一种具有集成处理器核心、存储器、输入/输出接口、外围设备以及其他组件(如图形处理器、通信接口等)的单芯片系统。SoC通常用于复杂的计算机系统或移动设备,如智能手机、平板电脑、嵌入式计算机等。SoC是功能更强大和复杂的芯片,它可以运行更多的应用程序和服务,并具有较高的计算和图形处理性能。SoC和CPU的区别:SoC相比于纯粹的CPU,增加了很多外设。
区别: -
功能和复杂性:MCU通常集成了简单的处理器核心和基本的输入/输出接口,适用于简单的控制和处理任务。SoC则是更复杂的芯片,集成了更强大的处理器,多个外围设备以及其他组件,适用于复杂的计算和应用需求。
-
功耗和实时性:MCU通常被设计为低功耗芯片,且具有较好的实时性能,适用于需要实时响应的控制系统。而SoC的功耗和性能特点会根据具体应用和设计目标的不同有所变化。
-
应用领域:MCU常用于简单的嵌入式控制应用,如家电、工业控制、传感器等,而SoC更常用于复杂的计算和移动设备,如智能手机、平板电脑等。
MCU和SoC是不同类型的芯片,MCU主要用于简单的嵌入式控制应用,具有低功耗和实时性能的特点。SoC则是功能更强大和复杂的芯片,适用于复杂的计算和应用需求,如智能手机、平板电脑等。选择使用哪种芯片取决于具体应用和系统需求。
现在能买到的都是SoC,而ARM公司生成的就是纯粹的CPU,没有集成任何的外设。各种外设都是半导体厂商根据需求自己添加的。