【笔记】微机原理与接口技术

前言

微机原理与接口技术知识点笔记

逻辑结构

计算机

计算机的定义

  • 可以替代人脑计算的设备

电子计算机的定义

  • 采用电子元件的,可以替代人脑计算的设备

第一台电子计算机

  • 1946年 - ENIAC

计算机根据运算能力的分类

  • 巨型计算机
  • 大型计算机
  • 中小型计算机
  • 微型计算机

计算机的组成结构

  • 冯诺依曼体系结构
    • 对硬件的组成
      1. 运算器
      2. 控制器
      3. 存储器
      4. 输入设备
      5. 输出设备
    • 对软件的执行方法
      • 二进制程序存储执行方式

输入/输出设备包括:接口外围设备
中央处理单元(CPU)包括:运算器控制器

因为计算机都是由冯诺依曼体系结构组成的,所以计算机又称冯诺依曼机

冯诺依曼体系结构的根据

  • 图灵说:“世间一切可算之物,都可以转化成无尽的加法”

存储器

存储器的特点

  • 能存数据
  • 数据能被运算器直接访问

存储器的分类

  • 随机存储器(RAM)
    • 内存条
    • 高速缓存(cache)
  • 只读存储器(ROM)
    • BIOS芯片
      • 存储了BIOS程序

随机存储器和只读存储器的区别

  • 断电时数据是否丢失(易失性)

什么是内存

  • 在冯诺依曼体系结构中,内存实质上就是存储器

什么是外存

  • 外存和内存没有任何关系,外存属于输入/输出设备(I/O设备),而内存属于存储器

存储器的工作结构

  • 冯诺依曼结构(通常用在通用计算机)
    • 指令和数据统一存放
      • 指令存放在内存条(RAM)
      • 数据存放在内存条(RAM)
  • 哈佛结构(通常用在嵌入式计算机)
    • 指令和数据分开存放
      • 指令存放在机身内存(ROM)
      • 数据存放在运行内存(RAM)

程序的执行过程

  • 当存储器中没有载入过程序时
    • 中央处理单元先从外存中将程序载入内存,再从内存执行程序
  • 当存储器中已经载入过程序时
    • 中央处理单元直接从内存中执行程序

中央处理单元

CPU的发展史

  1. 1971年,intel的工程师霍尔团队研发出第一款4位二进制CPU:4004
    • 这款4位二进制CPU被称为微处理器
    • 霍尔被称为微处理器之父
  2. 1972-1974年,霍尔团队研发出第一款8位二进制CPU:8008
  3. 1976年,霍尔团队研发出第一款16位二进制CPU:8086
  4. 1981年,IBM公司采用简化版的8086CPU——8088CPU研发第一台微型计算机,机型为PC,代号为XT,以低廉的价格在市场上出售
  5. 1982年,第一款32位CPU诞生:80386
  • 8086以后的CPU架构被称为:x86

微型计算机

微机的定义

  • 采用微处理器为CPU的计算机

微机的结构

  • 微处理器(CPU)
  • 内存
  • I/O接口

微机系统的结构

  • 硬件
    • 微型计算机
    • 外设
  • 软件
    • 系统软件
    • 应用软件
    • 开发调试软件

微机对数据的处理

  • 存储
  • 运算
  • 传输

微机的工作

  • 取指令
  • 存数据
  • 取数据
CPU与内存的工作
  • 取指令
  • 存数据
  • 取数据
CPU与I/O接口的工作
  • 存数据
  • 取数据

数据的流动方向

  • 内存 -> CPU
    • 读/取
  • CPU -> 内存
    • 写/存

总线

总线的定义

  • 凡是用来传输数据的线都被称为总线

总线的分类

  • 内部总线:CPU内部传输数据的总线
  • 外部总线:CPU外部传输数据的总线
    • 系统总线:CPU与内存和I/O接口连接的总线
      • 地址总线(AB)
      • 控制总线(CB)
      • 数据总线(DB)
    • 外围总线:I/O接口与外设连接的总线

内存的单位和单元

  • 内存的最小单位:字节(Byte)

  • 内存的最小单元:位(比特bit)

  • 1字节永远等于8位

数据的存储

内存

  • 存储单元:内存中存放数据的空间
  • 存储单元地址:内存中数据的索引方式
    • 存储单元地址,从上往下依次是:低地址->高地址

CPU

  • 寄存器:CPU中存放数据的空间
  • 寄存器名:CPU中数据的索引方式

I/O接口

  • I/O端口:I/O接口中存储数据的空间
  • I/O端口地址:I/O接口中数据的索引方式

I/O接口芯片组

  • 芯片组包括:北桥芯片南桥芯片

北桥芯片:负责与CPU进行通信
南桥芯片:负责与外围设备进行通信

8086五大I/O接口芯片

  • 8237
  • 8251
  • 8253
  • 8255
  • 8259

CPU的工作步骤

  1. 获取地址
  2. 控制信号
  3. 数据传输

CPU芯片的分类

  • 可编程芯片
  • 不可编程芯片

8086CPU内部结构(按照编程结构)

  • 指令执行单元(EU)
  • 总线接口单元(BIU)

8086CPU管理内存的方法

  • 8080CPU时16位的,但是却可以管理20位的内存地址,所运用的方式为:存储单元地址分段
    • 将内存地址分段,分为段地址和偏移地址

物理地址包括:段地址偏移地址

物理地址(20位) = 段地址(16位) * 10H + 偏移地址(16位)
物理地址(20位) = 段地址(16位) * 16D + 偏移地址(16位)

8086芯片的结构

  • 8086有40根引脚,80286有64根引脚

8086的编程结构

  • 指定执行单元(EU)
  • 总线接口单元(BIU)

CPU工作方式

串行工作方式

  • 在8086之前的CPU采用串行工作方式

先从内存取指令到BIU,再在EU执行指令

并行的工作方式

  • 在8086开始的CPU采用并行工作方式

BIU从内存取指令的同时,EU执行上一个取出的指令

指令队列缓冲器

  • 最多只能存放6字节的指令

8086指令的分类

  • 单字节指令
  • 双字节指令
  • 三字节指令

BIU向指令队列缓冲器入队列的原则

  • 当出现两个及以上空字节时才会向指令队列缓冲器入队列

  • 当出现的空闲字节不足两个的时候,BIU空闲

周期

总线周期

  • BIU工作一次的时间
时钟周期
  • 1个总线周期 >= 4个时钟周期

  • CPU的主频越高,时钟周期越短

总线接口单元(BIU)

BIU的结构

  • 寄存器(16位寄存器)
    • 段寄存器(Segment)
      • CS:代码段寄存器
      • DS:数据段寄存器
      • SS:堆栈段寄存器
      • ES:附加段寄存器(附加数据段寄存器)
    • IP:指令指针寄存器
      • 用来存放下一条将要被执行的指令的地址
  • 地址加法器
  • I/O控制电路
  • 指令队列缓冲器

一个程序载入内存最多划分4个段

BIU的工作周期

  • 总线周期
    • T1:发出地址
    • T2:撤销地址,为数据传输做准备
      • 空闲周期
        • Tw:如果内存或I/O接口的数据未准备完,此时需要消耗时间周期等待
    • T3:完成数据传输
    • T4:结束传输(结束态),此时工作结束

BIU的工作内容

  • 取指令
  • 存数据
  • 取数据
BIU取指令
  • 先从CS得到段地址,再从IP得到偏移地址,最终通过地址加法器,得到20位地址
BIU取/存数据
  • 先从DS/SS/ES得到段地址,再根据程序代码得到偏移地址,最终通过地址加法器,得到20位地址

指令执行单元(EU)

EU的结构

  • 通用寄存器(16位寄存器。可以划分位两个8位使用,分别为高8位和低8位)
    • AX(AH、AL)
    • BX(BH、BL)
    • CX(CH、CL)
    • DX(DH、DL)
  • 专用寄存器
    • SP
    • BP
    • SI
    • DI
  • 算术逻辑单元(逻辑运算单元)(ALU)
  • 数据暂存寄存器(运算寄存器)
  • 执行部分控制电路(执行部件的控制电路)
  • 标志寄存器(PSW)

EU的工作内容

  • 取指令
  • 执行指令
  • 接收/发送数据
  • 完成运算

EU取指令

  • EU会从BIU的指令队列缓冲器中按顺序取指令,当遇到跳转指令时,会立即清空当前指令队列缓冲器,然后命令BIU从所需要的正确的指令位置获取指令

标志寄存器(PSW)

  • 上一次的运算结果产生的标志,放到标志寄存器中,为了这一次的运算服务

标志寄存器的结构

从左向右为高位到低位
标志寄存器为16位寄存器,但8086只有9位有用,其中包含6个状态标志位和3个控制标志位

  • D15
  • D14
  • D13
  • D12
  • D11:溢出标志(OF),结果是(1)否(0)有溢出
  • D10:方向标志(DF)
  • D9:中断允许(IF)
  • D8:单步中断(TF)
  • D7:符号标志(SF),符号正(0)负(1)
  • D6:零标志(ZF),结果是(1)否(0)为0
  • D5
  • D4:半进借位标志(AF),低4位向高4位有(1)无(0)进借位
  • D3
  • D2:奇偶标志(PF),结果中1的个数为奇数(0)还是偶数(1)
  • D1
  • D0:进借位标志(CF),是(1)否(0)有进借位

状态标志位:OF、SF、ZF、AF、PF、CF
控制标志位:DF、IF、TF

状态标志位
  • 根据运算结果设置的
控制标志位
  • 由程序自定义的数

物理结构

8086CPU

8086CPU的封装方法

  • 双列直插式(DIP),共有40个引脚

8086CPU工作的条件

  • 供电
    • 正极(+VCC 5V)
      • 40引脚
    • 负极(-GND)
      • 1引脚
      • 10引脚
  • 时钟信号(CLK)
    • 19引脚
  • 复位信号(RESET),将CS段置全1,其他段置全0
    • 21引脚
  • 准备好信号(READY),接收内存和I/O接口反馈的准备好信号
    • 22引脚

地址和数据复用引脚

  • AD(Address Data):20位的地址+16位的数据

  • AD接口与I/O接口、存储器相连

  • AD14-AD0

    • 2引脚-16引脚
    • 当传输地址时,用来传输物理地址的高16位,将物理地址传输到地址锁存器
    • 当传输数据时,用来将数据存到数据收发器
  • A19/S6-A16/S3

    • 35引脚-38引脚
    • 当传输地址时,用来传输物理地址的低8位
    • 当用作状态输出引脚时,用来输出CPU状态
  • AD15

    • 39引脚

状态输出引脚

  • S(Status):向外传输CPU状态

  • S6-S3

    • 35引脚-38引脚

中断

  • 外部中断的引脚
    • 可屏蔽中断,需要请求和响应
      • 请求信号输入
        • INTR
          • 18引脚
      • 响应信号输出
        • INTA
          • 24引脚
    • 非屏蔽中断,不需要响应,会得到屏蔽保护相关信号
      • 请求信号输入
        • NMI
          • 17引脚
  • 内部中断
    • 不需要引脚传递请求

最小工作模式和最大工作模式

  • 输入0,工作在最大工作模式,输入1,工作在最小工作模式

  • 括号外的是最小工作模式下的功能,括号内的是最大工作模式下的功能

  • MN/MX:不同的工作模式决定了24引脚-31引脚的不同功能
    33引脚

低电平和高电平有效

  • 有顶部横线的表示低电平有效
  • 没有顶部横线的表示高电平有效

BIOS程序的起始地址

  • CS:IP=FFFF0H

复位的种类

  • 上电复位
  • 手动复位

高8位数据线选通允许信号

  • 负责开关高8位数据线的,0表示允许连通,1表示禁止连通

  • BHE

低8位数据线选通允许信号
  • AD0可以控制低8位数据线的连通

读写信号

  • RD:读信号,属于控制引脚
    • 32引脚
  • WR:写信号,属于控制引脚
    • 29引脚

总线请求响应信号

  • HOLD:总线请求信号
    • 31引脚
  • HLDA:总线响应信号
    • 40引脚

内存/IO接口信号

  • 标识对内存操作还是对IO接口操作

  • M/IO:高电平表示对内存操作,低电平表示对IO接口操作

    • 28引脚

地址锁存器允许信号

  • 连接地址锁存器,用来控制地址锁存器的开关

  • ALE:用来控制地址锁存的开关,1表示开启锁存,0表示关闭锁存

    • 25引脚

数据收发器允许信号

  • 连接数据收发器,用来控制数据收发器的开关

  • DEN:0表示开启数据,1表示关闭数据

    • 26引脚

数据输入输出方向信号

  • 连接数据收发器,用来控制收发器的方向

  • DT/R:1是输出,0是输入

    • 27引脚

CPU的系统组成(最小模式)

时钟发生器
  • 8284

  • 石英晶振

    • 时钟IC的功能是将石英晶振发出的三角波转化成CPU能读取的数字脉冲波,发出CLK信号发送给CPU,石英晶振的波长14.318MHz
  • 时钟IC

    • 转化成5MHz或者10MHz
地址锁存芯片
  • 8282

  • 8283

  • 74LS373

  • 74HC573

  • 地址锁存芯片每片能锁存8位数据,由于CPU每次需要锁存20位地址和1位地址锁存使能信号(控制地址锁存芯片的STB引脚,用于开关地址锁存芯片),所以每次需要3片地址锁存芯片

地址锁存使能信号
  • ALE:高电平开门,低电平关门
数据收发芯片
  • 8286

  • 8287

  • 74L245

  • 数据收发芯片每片能收发8位数据,由于CPU每次需要收发16位数据,所以每次需要2片数据收发芯片

CPU的系统组成(最大模式)

存储器

存储器的分类

  • RAM:随机存储器
    • SRAM:静态RAM
      • 速度快,功耗低
    • DRAM:动态RAM
      • 速度慢,功耗低
  • ROM:只读存储器
    • PROM:可编程普通ROM
      • 可写,不可擦除
    • EPROM:光擦芯片
      • 可写,可擦除
    • EEPROM:电擦芯片(FLASH芯片)
      • 可写,可擦除

IO接口

传输的数据类型

  • 串行数据
  • 并行数据

信号类型

  • 数字信号
  • 模拟信号

信号电平类型

  • TTL(0,+5)
  • RS232(-12,+12)

IO接口芯片类型

  • 简单IO接口芯片
    • 74LS245
  • 可编程IO接口芯片
    • 8255A
      • 可编程的并行的IO接口芯片

8255A结构

8255A的封装方法

  • 双列直插式(DIP),共有40个引脚

控制端口(控口)

  • VCC:接电源正极,+5V直流电
    • 26引脚
  • GND:接电源负极
    • 7引脚
  • RESET:复位信号
    • 35引脚
  • CS:片选信号,低电平有效,高电平无效
    • 6引脚
  • RD:接收CPU的读信号
    • 5引脚
  • WR:接收CPU的写信号
    • 36引脚
  • A1,A0:片内寻址端,A1表示片内地址高位,A0表示片内地址低位;00表示访问A口,01表示访问B口,10表示访问C口,11表示访问控口
    • 8引脚,9引脚

数据端口(A口、B口、C口)

  • PA0-PA3,PA4-PA7
    • 4引脚-1引脚,40引脚-37引脚
  • PB0-PB2,PB3-PB7
    • 18引脚-20引脚,21引脚-25引脚
  • PC0-PC3,PC4-PC7
    • 14引脚-17引脚,13引脚-10引脚
  • D0-D7:接CPU的DB总线的低8位
    • 27引脚-34引脚
控制字
  • 用来设置8255A
  • 控制字有两种:方式选择控制字、C端口按位置0置1控制字
方式选择控制字
  • D7:标识位,标识控制字的类别
    • 1:表示方式选择控制字
    • 0:表示C端口按位置0置1控制字
  • D6、D5:组合表示A口的工作方式
    • 00:方式0
    • 01:方式1
    • 1011:方式2
  • D4:A口的IO方向
    • 1:输入
    • 0:输出
  • D3:C口的高4位的IO方向
    • 1:输入
    • 0:输出
  • D2:B口的工作方式
    • 0:方式0
    • 1:方式1
  • D1:B口的IO方向
    • 1:输入
    • 0:输出
  • D0:C口低4位的IO方向
    • 1:输入
    • 0:输出

分组

  • A组控制逻辑
    • A数据端口的8位
    • C数据端口的高4位
  • B组控制逻辑
    • B数据端口的8位
    • C数据端口的低4位

完成