【笔记】微机原理与接口技术
前言
微机原理与接口技术知识点笔记
逻辑结构
计算机
计算机的定义
- 可以替代人脑计算的设备
电子计算机的定义
- 采用电子元件的,可以替代人脑计算的设备
第一台电子计算机
- 1946年 - ENIAC
计算机根据运算能力的分类
- 巨型计算机
- 大型计算机
- 中小型计算机
- 微型计算机
计算机的组成结构
- 冯诺依曼体系结构
- 对硬件的组成
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
- 对软件的执行方法
- 二进制程序存储执行方式
- 对硬件的组成
输入/输出设备包括:接口和外围设备
中央处理单元(CPU)包括:运算器和控制器
因为计算机都是由冯诺依曼体系结构组成的,所以计算机又称冯诺依曼机
冯诺依曼体系结构的根据
- 图灵说:“世间一切可算之物,都可以转化成无尽的加法”
存储器
存储器的特点
- 能存数据
- 数据能被运算器直接访问
存储器的分类
- 随机存储器(RAM)
- 内存条
- 高速缓存(cache)
- 只读存储器(ROM)
- BIOS芯片
- 存储了BIOS程序
- BIOS芯片
随机存储器和只读存储器的区别
- 断电时数据是否丢失(易失性)
什么是内存
- 在冯诺依曼体系结构中,内存实质上就是存储器
什么是外存
- 外存和内存没有任何关系,外存属于输入/输出设备(I/O设备),而内存属于存储器
存储器的工作结构
- 冯诺依曼结构(通常用在通用计算机)
- 指令和数据统一存放
- 指令存放在内存条(RAM)
- 数据存放在内存条(RAM)
- 指令和数据统一存放
- 哈佛结构(通常用在嵌入式计算机)
- 指令和数据分开存放
- 指令存放在机身内存(ROM)
- 数据存放在运行内存(RAM)
- 指令和数据分开存放
程序的执行过程
- 当存储器中没有载入过程序时
- 中央处理单元先从外存中将程序载入内存,再从内存执行程序
- 当存储器中已经载入过程序时
- 中央处理单元直接从内存中执行程序
中央处理单元
CPU的发展史
- 1971年,intel的工程师霍尔团队研发出第一款4位二进制CPU:4004
- 这款4位二进制CPU被称为微处理器
- 霍尔被称为微处理器之父
- 1972-1974年,霍尔团队研发出第一款8位二进制CPU:8008
- 1976年,霍尔团队研发出第一款16位二进制CPU:8086
- 1981年,IBM公司采用简化版的8086CPU——8088CPU研发第一台微型计算机,机型为PC,代号为XT,以低廉的价格在市场上出售
- 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接口与外设连接的总线
- 系统总线:CPU与内存和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的工作步骤
- 获取地址
- 控制信号
- 数据传输
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:指令指针寄存器
- 用来存放下一条将要被执行的指令的地址
- 段寄存器(Segment)
- 地址加法器
- 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引脚
- 正极(+VCC 5V)
- 时钟信号(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引脚
- INTR
- 响应信号输出
- INTA
- 24引脚
- INTA
- 请求信号输入
- 非屏蔽中断,不需要响应,会得到屏蔽保护相关信号
- 请求信号输入
- NMI
- 17引脚
- NMI
- 请求信号输入
- 可屏蔽中断,需要请求和响应
- 内部中断
- 不需要引脚传递请求
最小工作模式和最大工作模式
输入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
- 速度慢,功耗低
- SRAM:静态RAM
- ROM:只读存储器
- PROM:可编程普通ROM
- 可写,不可擦除
- EPROM:光擦芯片
- 可写,可擦除
- EEPROM:电擦芯片(FLASH芯片)
- 可写,可擦除
- PROM:可编程普通ROM
IO接口
传输的数据类型
- 串行数据
- 并行数据
信号类型
- 数字信号
- 模拟信号
信号电平类型
- TTL(0,+5)
- RS232(-12,+12)
IO接口芯片类型
- 简单IO接口芯片
- 74LS245
- 可编程IO接口芯片
- 8255A
- 可编程的并行的IO接口芯片
- 8255A
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
:方式001
:方式110
、11
:方式2
- D4:A口的IO方向
1
:输入0
:输出
- D3:C口的高4位的IO方向
1
:输入0
:输出
- D2:B口的工作方式
0
:方式01
:方式1
- D1:B口的IO方向
1
:输入0
:输出
- D0:C口低4位的IO方向
1
:输入0
:输出
分组
- A组控制逻辑
- A数据端口的8位
- C数据端口的高4位
- B组控制逻辑
- B数据端口的8位
- C数据端口的低4位