产品选型

单片机系统工作原理 单片机的基本构成及工作原理

小编 2024-11-24 产品选型 23 0

单片机的基本构成及工作原理

有了电子电路和数字电路的基础知识,就可以开始学习嵌入式系统的核心元件-单片机。从本期开始我们将为大家介绍单片机的基础知识。

在单片机入门系列讲座中,首先学习单片机的基本构成和工作原理、以及外围功能电路,然后,挑战一个实际单片机的运行。

单片机是控制电子产品的大脑

现如今,我们生活中的许多电器都使用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪烁的儿童玩具。那么,单片机在这些电器中究竟做了些什么呢?

单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的外围功能电路动作。

那么,单片机是如何构成的呢?

单片机是由CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么CPU是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。

尽管我们说CPU相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU只能依次读取并执行事先存储在内存中的指令组合(程序)。当然CPU执行的指令并不是“走路”、“讲话”等高难度命令,而是一些非常简单的指令,象从内存的某个地方“读取数据”或把某个数据“写入”内存的某个地方,或做加法、乘法和逻辑运算等等。然而这些简单指令的组合,却能实现许多复杂的功能。

CPU读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC是按1递增设计的,也就是说,当CPU执行了0000地址中的指令后,PC会自动加1,变成0001地址。每执行一条指令PC都会自动加1,指向下一条指令的地址。可以说,PC决定了程序执行的顺序。

◇指令解码电路

指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。确切地讲,指令解码电路就是我们在“数字电路入门(2)”中学过的解码电路,只不过电路结构稍微复杂些,所以,指令解码电路的工作原理就是从被符号化(被加密)的指令中,还原指令。

◇运算电路

运算电路也称为ALU(Arithmetic and Logic Unit),是完成运算的电路。能进行加法、乘法等算术运算、也能进行AND、OR 、BIT-SHIFT等逻辑运算。运算是在指令解码电路的控制下进行的。通常运算电路的构成都比较复杂。

◇CPU内部寄存器

CPU内部寄存器是存储临时信息的场所。有存储运算值和运算结果的通用寄存器,也有一些特殊寄存器,比如存储运算标志的标志寄存器等。也就是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。

深度解析,单片机运行原理,你知道吗?

单片机是将中央处理单元(CPU)、储存器、输入输出集成在一片芯片上,可以说单片机就是一台微型计算机,只是和我们平常使用的计算机相比它的功能有所不同,也没有我们用的计算机那样强大。

计算机可以运行一个个应用,单片机可以按照工程师的编写可执行文件,实现各种各样的功能。那么,单片机是怎么知道要执行什么指令,做什么动作呢,我们的指令又是怎么被单片机识别呢?了解这个过程,可以加深对单片机的理解。

CPU

首先要从CPU的组成说起,CPU是由晶体管组成的,这些晶体管是一种半导体器件,比如二极管就是最为常见的半导体器件。电流只能从正极流向负极,反向则截止。

晶体管通过各种组合方式构成门电路:与门,或门,非门,异或门等。门电路又称为逻辑门,是数字电路的基础,常见门电路,及其真值表:

我们了解下与门电路:

与门电路可以想象为两个串联开关控制一个灯泡,只有同时闭合两个开关,灯泡才会被点亮。开关表示晶体管的导通与截止,灯泡的点亮与熄灭表示电路输出的高低电平。

其他门电路也是由各种晶体管构成,不同的输入,有不同的输出,构成各种功能。各种门电路通过复杂的组合就成了CPU了。然后用CPU完成各种复杂计算的。

加法器

有了CPU,我们用它来算一道小学生算术题1+1=2,看看它是怎么计算的,从一个简单加法器开始,加法器由半加器组成。

半加器

半加器由一个与门和异或门构成。不考虑低位进位来的进位值,只有两个输入,两个输出。

1+1=2,2在二进制中表示为0010。在半加器中:异或门输入不同的电平(不是同时高或低),输出为高,也就是1+0或0+1,输出1,当两个都输入为1输出为0,与门则输出为1,也就是进位。可以把它抽象成一个黑盒子:

全加器

用两个半加器可以组成一个全加器:

当多位数相加时,半加器可用于最低位求和,并给出进位数。第二位的相加有两个待加数(B和进位CO),还有一个来自前面低位送来的进位数 (A)。这三个数相加,得出本位和数(全加和数)和进位数。同样可以把它抽象出来:

这个黑盒子就是一个函数,输入两个加数,相加运算,输出和数。

如果要计算多位数的相加,则需要多个全加器以及其他门电路,组合出更复杂的加法器。减法的运算可以用加法来分解:

减法:10 - 5 = 10 +(-5),须通过反码,补码等操作。

其他运算器也有相关的门电路来组成,有关知识这里不展开。

从加法器我们不难得出,CPU的运算是各种门电路的高低电平的输入和输出,高电平为1,低电平为0,把我们平常的十进制数字转成二进制数输入,输出二进制数。

寄存器

两个数字相加用全加器的组合来完成,如果是多个数字的相加呢?比如1+2+3+4+5+……+100,该怎么完成呢?

按照我们的计算过程来看这个问题,我们先把前两个数拿出来相加,得到的和再和第三个数相加,依次累加到100,转换到单片机来完成,那就要把所有的相加数放到一个存储器中,以便在每次的相加中取出,还要把每次相加的和数保存起来用到下一次的相加,这就用到了寄存器了。

寄存器-1保存1-100的数字,寄存器-2保存每次的相加结果。计算1-100的相加,寄存器-2的初始值为0,依次取出寄存器-1的数字和寄存器-2的结果相加:

1+0=1,

2+1=3,

3+3=6,

4+6=10……

锁存器

但是寄存器是怎么帮我们保存数据的呢?这就要锁存器(Latch)来帮助了,两个或非门组成了一个最简单的锁存器。

简单的说,这个单元记住了之前S端的输入1,直到我们把R端设为1,输出端Q才变回0。

然后在这个简单锁存器加上控制端G和一个输入端D就变成了D锁存器:

它有两个输入端,分别是一个信号控制G,一个输入数据信号D,一个输出Q。它的功能就是在G有效的时候把D的值传给Q,也就是锁存的过程。

触发器

把两个D锁存器结合到一起就成了D触发器(DATA flip-flop)。触发器也叫双稳态门,又称双稳态触发器,是一种可以在两种状态下运行的数字逻辑电路。

触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。常见的触发器包括:RS 触发器、D 触发器和 JK触发器等,其中D触发器最为常用。

当锁存器-1控制G为有效信号时,D的输入传到到锁存器-2的输入,但是此时锁存器-2的控制信号不是有效的,所以锁存器-2的输出Q没有改变;当锁存器-1的控制G变为无效,锁存器-2的控制信号变为有效,锁存器-2的输出Q就改变了,也就是触发器的D输入传到了Q,并且D没有输入就一直不变。

时序电路

我们再来看看1—100的累加过程,如果寄存器-1和寄存器-2的存储速度不一样,或者运算单元取数不协调,也就是寄存器-2没来得及存储,或者寄存器-1还没取出下一个参与运算的数字,则此次的运算就会就会出错,又会影响到下一次的运算,这个影响会无限放大到之后的结果,并且单片机还有很多外设需要同步运行,这时就需要一个统一指挥来同步各个部分的行动,什么时候该做什么,做到哪一步了。

这个指挥就是时钟。时钟电路产生脉冲信号给电路,可以认为给一次脉冲信号,单片机各个部位就动一下,电路就刷新一下,这就做到了行动统一。前面的D锁存器,D触发器G输入端就是时钟脉冲信号输入,控制G输入信号,进而控制Q的输出,或者记住Q值。这是内存最初的样子。

到此,我们知道了寄存器就是一种时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,用来暂时存放参与运算的数据和运算结果。

一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器,一般有8位寄存器、16位寄存器等。它被广泛的用于各类数字系统和计算机中。

- 运行程序 -

有了前面的铺垫,我们来分析一下,代码从是怎么被单片机识别的,并转换成功能输出的。

首先工程师把代码逻辑写好,再编译成单片机的可执行程序,这个可执行程序实际上就是变成由0,1组成的按一定规律排列好的二进制数,再用烧录器写进单片机。

单片机内部就是由我们前面学的门电路的各种组合,门电路也由半导体器件构成,这些半导体PN结是一种特殊的熔丝。空白的单片机内部是矩阵排列的熔丝,在烧录过程,程序中0的地方就熔断,1的地方就导通。烧录好之后,单片机就有了逻辑功能。

执行程序过程:从程序存储区读取程序指令——分析指令——执行指令。

读取指令:就是根据程序计算器(PC)的地址取出相应的指令,送到指令寄存器。

分析指令:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令是我们之前的加法运算中的取加数,则寻找加数的地址。

执行指令:无非是把一条二进制代码,转换成数字信号(高低电平),操作逻辑门电路,就像我们的加法器一样输入输出。把经过逻辑门运算的结果输出,把单片机的相关引脚电平输出高或低。

也就是单片机上电开机,单片机处于初始状态,可以认为初始状态中程序计算器(PC)就有了第一个指令地址,在时序电路作用下,送到指令寄存器,分析指令,执行指令,输出功能,如此循环。单片机就这样自动进入执行程序过程。

当然单片机运行的过程是很复杂的,这里只是个人简单的理解,总结。

从晶体管组合成逻辑电路,逻辑电路组合成单片机,再从单片机在到现在的计算机,超级计算机,是一个不断积累,不停进步的过程。想要你的人生也是这样的精彩过程吗,来找我领取入门资料,开启与导师的一对一互动,进入高阶学习,成就精彩人生。

相关问答

什么是 单片机 ?它由哪几部分组成?什么是 单片机 应用 系统 ?二者...

单片机是一种路芯片,模集成电路技术把具有数处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱...

单片机 是如何控制电路的?

单片机控制电路的方法是在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机,单片机是指芯片本身,而单片机系统是为实现某一个...

单片机 是如何实现自动运行程序的?

单片机实现自动运行程序的过程如下:首先,将程序代码编写并存储在单片机的存储器中。然后,通过设置单片机的复位电路,使其在上电或复位时自动开始执行程序。...

如何理解 单片机 ? 单片机 开发是一个什么概念?

1、单片机就是指那一片含有CPU的芯片。2、由单片机再加上一些外围电路比如D/A、A/D或内存或程序扩展,叫单片机系统。3、单片机开发就是指采用单片机(包括硬...

单片机 功率控制 原理 ?

单片机测量功率就是要测量电流和电压。首先测量电压,如果是直流低电压,直接用电阻分压检测模拟电压就可以测出来电压,也可以采用高精度的电压检测芯片检测电...

单片机 传感器的 工作原理 ?

S18B20是使用一根数据线进行通信,首先你要先向它发送一系列脉冲信号。一般我们用的步骤大致为:初始化--跳过ROM操作--启动温度转换--(延时)--初始化--跳过RO...

单片机原理 及应用主要学什么?

单片机原理及应用是一门涵盖微处理器、嵌入式系统、电子电路理论和软件编程等多个领域的综合性学科。主要学习单片机的基本结构、内部寄存器、编程语言和应用...

单片机 主机 系统 电路是什么?

单片机主系统电路叫做单片机最小系统。单片机主系统电路叫做单片机最小系统。

单片机原理 与微机原理有什么区别?

当前的单片机课程多数都是基于C语言编程,以Intel公司8051为内核的8位单片机进行讲解,如AT系列、STC系列等。而微机原理中的微型计算机,其微处理器、存储...

什么是 单片机 ?

单片机就是单片微控制器,根据实际需求把一个计算机系统集成到一个芯片上。主要应用于工业控制器、家用电器等。1、我们首先要了解微机的组成图解。2、微机的基...

猜你喜欢