输入输出及中断技术——微机第六章学习笔记

输入输出及中断技术——微机第六章学习笔记

前言

纯复习,摆累了,开卷!

MindMap

在这里插入图片描述

输入输出系统

一、I/O 接口

特点
  1. 复杂性
  2. 异步性
  3. 实时性
  4. 与设备无关性
解决的问题
  1. 速度匹配(Buffer)
  2. 信号的驱动(电平转换器、驱动器)
  3. 信号形式和电平的匹配(A/D、D/A)
  4. 信息格式(字节流、块等)
  5. 时序匹配(定时关系)
  6. 总线隔离——三态门
功能
  1. 地址译码与设备选择
  2. 信息输入输出
  3. 命令、数据和状态的缓冲和锁存
  4. 信息转换(模转数等)

二、I/O 端口

分类
  1. 数据端口 DB
  2. 状态端口 AB
  3. 控制端口 CB
端口和接口的区别与关系

一句话:接口是一个或多个端口的集合。

端口地址公式: 端口地址 = 芯片地址(构成高位)+片内地址

三、I/O端口的编址方式

主要探讨的是8088/8086

内存有 1MB, 端口有 64K个

与内存统一编址
  1. 指令及控制信号统一
  2. 内存的地址资源减少(因为给了端口,所以原本内存的地址少了,可以理解为内存少了)
独立编址
  1. 内存地址资源充分利用
  2. 能够应用于端口的指令较少
寻址信号

I O R ‾ 、 I O W ‾ 、 A 15 ∼ A 0 \overline{IOR}、\overline{IOW}、A_{15}\sim A_0 IORIOWA15A0

四、译码

就是确定端口的地址。

地址信号
  1. 单端口接口:16位地址线参与译码,译码输出直接选择端口。
  2. 多端口:高位译码,决定接口的基址,低位决定端口(片选)。

简单接口电路

一、接口的基本构成

在这里插入图片描述

  1. 数据输入/输出寄存器——暂存输入/输出的数据。
  2. 命令寄存器——存放控制命令。
  3. 状态寄存器——保存当前状态,供CPU读取。

二、接口的类型及特点

按照不同分类方式,有不同的情况。

分类
  1. 方向:
    1. 输入
    2. 输出
  2. 类型:
    1. 数字
    2. 模拟
  3. 方式:
    1. 并行
    2. 串行
特点
  1. 输入接口:数据控制、三态门
  2. 输出:数据锁存、锁存器

三、三态门和74LS244

三态门

在这里插入图片描述

中间的那个,其实就是一个输入,用来控制是否导通还是断开。

74LS244

在这里插入图片描述

四、锁存器

D触发器

直接看功能表

在这里插入图片描述

74LS273

纯纯就一个8D触发器,只锁存,不控制。

74LS374

273强一点,加入三态门,实现控制。

可以做输入接口,也可以做输出接口。

基本输入/输出方法

一、无条件传送

要求外设总是准备好的状态。

优点

软件和接口硬件简单

缺点

只能用于简单外设,适应范围较窄。

二、查询工作方式

需要满足条件进行数据传送,单次传送对应单次条件满足。

工作条件

外设需要提供设备状态信息。

接口应该具备状态端口。

优点

软硬件比较简单

缺点

CPU效率低,实时性差,速度慢。

三、中断控制方式

特点

外设 需要时 请求,CPU再去服务,服务结束后或不需要时,CPU执行自己的程序。

缺点

程序编址相对复杂。

优点

CPU效率高、实时性强,速度快。

以上三种I/O方式共性

  1. 信息传送均需通过CPU
  2. 软件上,数据传送投过CPU执行程序完成(PIO方式)。
  3. 硬件:读写的控制信号、地址信号都是由CPU发出的。
  4. 缺点在于 数据传送的速度 受限于 程序的执行速度。

四、DMA

特点
  1. 外设直接和存储器数据交换。
  2. 总线由DMAC进行控制,内存/外设的地址和读写控制信号均由DMAC提供。(CPU会放弃总线控制)
  3. 数据传输由DMA硬件控制,数据直接在内存和外设之间交换,传输速率很高。
  4. 控制复杂,硬件成本较高。

在这里插入图片描述

中断技术

一、中断的基本概念

中断

CPU执行程序时,发生某种随机事件(内部或外部),引起 CPU 暂时中断正在运行的程序,转去执行 中断服务子程序,处理该事件,完事后又返回原中断的程序继续执行,这一过程就是 中断

中断源

引起CPU中断事件。

分类
  1. 内部中断
    1. 异常中断——异常事件
    2. 软件中断——中断指令
  2. 外部中断
    1. 可屏蔽中断——INTR中断
    2. 非屏蔽中断——NMI中断

二、外部中断响应过程

中断请求
  1. 请求信号保持到 中断被处理 为止。
  2. CPU响应中断后,请求信号应及时撤销。
中断源识别

两种方法:软件查询和中断向量法。这一部分由 硬件系统 完成。

中断判优

其实就是多个中断请求同时出现,需要优先响应哪一个 中断源

判优法则

优先级法则排队法则

软件判优

按优先级查询请求,先查询先服务。

硬件服务——中断向量码
  1. 中断控制器判优——8259A
  2. 链式判优、并行判优。
  3. 菊花链,其实就是链式判优的条件,每个外设的中断信号都有一个菊花链接收,靠前的菊花链的输出会对后面的起到控制作用。
中断响应
  1. 向中断源发出 ~INTA 中断响应信号。
  2. 关中断。
  3. 保护硬件现场。——将FLAGS压入堆栈。
  4. 保护断点——将CS、IP压入堆栈。
  5. 获得中断服务程序入口地址。

以上由硬件系统完成。

响应条件
  1. CPU 开中断,IF=1.
  2. 没有RESET,HOLD,内部中断,NMI。
  3. 当前正在执行STI和IRET,需执行完。
中断处理

就是执行 终端服务子程序,“远过程”, IRET 指令返回。

中断服务子程序的工作
  1. 关中断,保护现场,保护断点,找入口地址。
  2. 保护软件现场(参数)。
  3. 开中断(STI)——允许嵌套。
  4. 中断处理。
  5. 关中断(CLT)。
  6. 恢复现场。
  7. 中断返回。
中断返回

就是执行 IRET指令,然后寄存器 IP、CS、FLAGS从堆栈中弹出。(恢复断点和硬件现场)

流程

在这里插入图片描述

三、8088/8086 中断系统

中断向量表
  1. 存放中断服务子程序的入口地址。
  2. 每个入口4个Bytes,高段为段基址,低位为段内偏移地址。
  3. 表的地址位于内存的000000H~003FFH,大小1KB,共256个入口。
初始化

就是将用户自定义的中断服务程序入口地址放入向量表。

注意

  1. 向量表所在的段地址=0。
  2. 存放子程序入口的单元的偏移地址=nx4。

大的要来了

可编程中断控制器8259A(难点)

可以根据中断请求的优先级向CPU发出 中断请求,并且当CPU响应中断请求进入中断服务子程序之后,如果某个新的外部中断请求的优先权高于当前的中断,就会执行新的中断,原中断先屏蔽,暂停,实现嵌套中断。

单片8259A 能管理 8级中断。

一 引脚与功能结构

1 芯片引脚定义
  1. D0~D7,8根双向数据线。
  2. ~WR,写控制信号,低电平有效,用来通知8259A准备从数据线上接收数据。
  3. ~RD,读控制信号,低电平有效。
  4. ~CS,片选信号端,通过地址译码逻辑电路与系统地址总线连接,用于选通8259A。
  5. A0:地址线,用来指出当前8259A的两个端口中被访问的是 奇地址(高8位)还是 偶地址(低8位)8088连A0,8086连A1.
  6. IR0~IR7:8级中断请求输入端。
  7. INT:中断请求信号。
  8. ~INT A:中断应答线。
  9. SP/EN:双功能双向信号线,分别表示两种工作方式:缓冲工作方式、主从工作方式。
  10. CAS0~CAS2:3根级联控制信号。

二、内部结构和中断工作流程

在这里插入图片描述

工作流程
  1. 外部中断源使8259A的一条或几条中断请求线变高电平。
  2. 对这些请求的未被屏蔽的最高优先的请求从INT输出,交由CPU响应。
  3. 若CPU开中断,执行当前程序,就用INTA作为响应信号送至8259A的INTA,8259A收到第一个中断应答~INTA后,先将ISR中的中断优先级最高的一位置1,再将IRR中对应位置0。
  4. 8259A收到第二个~INTA后,将和此中断对应的应该字节的中断类型n 从 一个名为中断类型寄存器(IMR)的内部部件中送到数据线,CPU 读取n,根据中断向量表取得该中断对应的中断入口地址,然后执行相应的中断服务子程序。
  5. ISR 复位,根据 方式控制器的结束方式,有 EOIAEOI

三、控制字格式

ICW

初始化命令字,有四个,分别为 ICW1~ICW4.

OCW

工作方式命令字或操作命令字。有三个,必须在设置初始化命令字后方能分别写入3个相应的寄存器。对中断处理过程进行动态的操作和控制。

流程图

在这里插入图片描述

ICW1

芯片的控制初始化命令,应写入偶地址端口,即A0为0。

写入条件:A0=0,CS=0,特征位D4=1.

  1. D0表示是否要写ICW4
  2. D1 表示 单片 还是 级联
  3. D3 高电平有效 还是 上升沿有效

ICW2

设置 中断类型码 的初始化命令。

写入条件:跟在 ICW1之后,CS*=0,A0=1.

  1. D7~D3:规定中断类型码的高五位。

ICW3

标识主片/从片 初始化命令字。

写入条件:级联方式,跟在ICW2之后,CS=0,A0=1且ICW1中的D1=0.

主片接从片的 IR 置1,从片的D2、D1、D0表示接入主片的IR端编码。

注意:主片和从片的ICW3 必须不同

ICW4

中断结束方式初始化命令字。

写入条件:ICW2或ICW3之后,且ICW1中的D0=1,D7~D5=0m,CS=0,A0=1。

  1. D4=1,特殊完全嵌套。
  2. D4=0,一般完全嵌套。
  3. D3, 设置缓冲方式。
  4. D2,缓冲下设置主从。
  5. D1,设置中带你结束方式。
  6. D0,设置适配的CPU系统。

OCW1

就是设置中断屏蔽字,写入在中断屏蔽寄存器 IMR中。1表示屏蔽。

OCW2

A0=0。

在这里插入图片描述

OCW3就是多功能操作命令字,用来控制8259A的中断屏蔽和读取寄存器的状态。

都敲到这里,来段汇编助兴!

MOV AL,13H  ;写ICW1,单片,边沿触发,要ICW4
OUT 20H,AL
MOV AL,8    ;写ICW2,中断类型号从8开始
OUT 21H, AL
MOV AL, 0DH ;写ICW4,缓冲工作方式,8088/8086配置
OUT 21H, AL
MOV AL,0    ;写OCW1,允许IR0~IR7全部8级中断请求
OUT 21H,AL  
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值