微机原理基础(二)—— 微机组成

  要了解微机原理,首先要从微机开始说起,计算机分为两个领域,一类是通用PC机,一类是微型计算机;微型计算机一般被嵌入进各种设备进行控制和数据处理,所以也被叫做微控制器(MCU);在简单家电中的应用叫做单片机,程序都是裸机运行;在复杂一点的应用中叫做嵌入式系统,程序通常都是运行在操作系统之上的。归根到底,微型计算机就是一个可以顺序执行程序的东西,何谓程序?程序就是0和1的组合,对应到物理世界中就是电路的通断。那么什么是微机就很好理解了,微机全名叫微型计算机,由中央处理器(CPU) +  存储器 + 片上外设 / 接口组成,具体它们之间是怎样组合,怎样协同配合工作的呢?这就是要重点说的东西——微机原理!

一、怎样组合?

   微型计算机的组成和通用计算机组成相似,最大的特点是微型计算机采用总线结构(通常是三总线结构AB、DB、CB,如图(这张图很重要,理解了这张图,基本上单片机的架构就理解了);

   地址总线是单向总线,CPU通过地址总线发送地址寻找内存单元地址(寻址),然后将数据通过双向数据总线进行传送,控制总线用来传送控制信号,控制整个系统有序进行;

   地址线的根数决定了CPU最大的寻址范围(8位机寻址宽度就是28=64KB个存储空间0000H - FFFFH);

   数据线的根数决定了CPU一次可以处理数据的宽度(8bit)

                                                    

  再具体一点,一个单片机的基本组成架构可以用下面这张图来表示

  MCU Structure

   ——CPU

    • Registers ( 寄存器组 )
    • Instruction latch/decode/branch ( 指令)    
    • Stack ( 栈 )
    • Interrupt (中断)
    • Clock/Reset (  时钟/复位 )  

   ——Memory

   ——Peripheral

                         

  存储器和片上外设在此不作详细介绍,因为微处理器是微机核心,所以重点深入说微处理器:

   微处理器就是一块CPU,CPU全称为Center Process Uint(中央处理单元),那它处理什么呢?毫无疑问,数据

  1、怎样处理数据?

    数据处理最基本的是可以对数据进行逻辑运算,包括算术运算(add,subtract,multiply,divide),逻辑运算(and,or,not,xor),位运算(shift,rotation);完成这个工作的单元叫做ALU(Arithmetic Logic Unit,逻辑运算单元),高级的单片机还可以进行浮点运算(例如STM32F429拥有浮点运算单元),ALU的大致结构如图:A,B是两个操作数,S0,S1决定进行哪个运算,S2,S3决定输出哪个结果;

                   

    所以,ALU要进行运算,需要提供至少两个操作数,对外输出运算结果,以及一些进位标志,还需要告诉它要进行什么运算,下面一一解决这些这些问题;

  2、标志位放在哪?

    标志位主要有四个:零标志位,负标志位,溢出标志位,进位标志位,这些标志位都存放在一个专用寄存器PSW中——程序状态寄存器,方便别的单元查询,每执行一条指令,这些标志位都会更新;

          

  3、操作数来源于哪?运算结果存放在哪?

     操作数一般来源于数据存储器中,也就是RAM中,也可以来源于通用寄存器组中;

     在计算完成后运算结果一般被重新写回数据存储器中或者通用寄存器组中;

  4、谁控制这一切的自动运行?

    什么时候送入操作数进行计算?进行什么计算?什么时候读取计算结果和标志位?这些工作都是在控制单元的控制下有序进行的;

    控制单元主要通过解析指令确定需要执行何种操作以及数据流向的;

    (控制单元的工作时钟是时钟电路提供的,这不属于CPU的范畴)

           

   5、控制系统解析的指令来源于哪?

    单片机运行的程序其实就是一系列指令的有序组合,存储在程序存储器中,这些指令依次进入CPU执行;CPU通过寻址来找到这些存储在ROM中的指令,指令地址保存在程序计数器PC中;

          

二、工作时序

  微机工作时序中,主要四个时序:振荡周期、时钟周期、机器周期、指令周期;

  1、振荡周期是最基本的,也是最主要的时钟,即晶振频率的倒数;、

  2、时钟周期也叫状态周期,为2个振荡周期,第一个振荡脉冲完成运算,第二个振荡脉冲传送数据;

  3、微机完成一个基本操作所需的时间为机器周期(比如8051是12T单片机,所以12个振荡周期为一个机器周期);

  4、指令周期是微机执行一条指令的时间(比如8051的指令周期通常为1到4个机器周期);

猜你喜欢

转载自blog.csdn.net/mculover666/article/details/80650026