Presentation is loading. Please wait.

Presentation is loading. Please wait.

微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.

Similar presentations


Presentation on theme: "微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇."— Presentation transcript:

1 微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇

2 第5章 微计算机中处理器与I/O设备间 数据传输的控制方法 5.1.1 程序方式及其特点
本章重点介绍微机系统中处理器与I/O设备间数据传输控制的两种主要方法,即中断和DMA方式。并结合典型的中断控制器和DMA控制器的学习,掌握两种传输方式的原理,以及在微机系统中的使用方法。 5.1 中断的基本概念 程序方式及其特点 程序方式包括无条件传送和条件传送两种方式: 无条件传送方式: 适用于CPU不需要查询这些设备所处状态,直接执行IN或OUT指令就可以完成与I/O设备之间的数据传输。 条件传送方式又称查询方式,查询方式的特点是: (1)外设的接口电路中需包括反映当前状态的电路,而且CPU可以通过其端口读取状态信息。 (2)交换数据前,先查询外设的状态。如果末准备好,则程序重复检测外设状态,直到外设已经准备好条件,CPU才由IN或OUT指令完成一次数据传输。 程序方式控制数据传输,方法简单、硬件实现容易,CPU的利用率低。

3 5.1.2 中断系统的功能与组成 中断的慨念:当外部请求服务时,暂时中断当前主程序,转而执行中断处理程序,完成后自动返回被中断的主程序继续运行。 1.中断系统应具有的功能 (1)适用于多个中断源,能用软件进行屏蔽控制。 (2)具有中断优先级判别的功能。 (3)具有中断嵌套的功能。 (4)响应中断后能自动转向中断服务程序,结束后自动返回主程序。 2.中断系统的组成 (1)CPU内部中断处理电路。实现对中断请求信号的检测、发出中断响应信号、保存主程序的断点、自动转向中断服务程序、结束中断后自动返回主程序等功能。 (2)中断控制器。用于管理系统中的多个中断源。主要承担中断优先级的裁决、中断嵌套、中断的屏蔽以及决定中断结束的方式等功能。 (3)中断方式传输的接口电路:包括提供中断请求信号和接收中断响应信号等的接口电路。 (4)中断处理程序。中断系统除硬件电路外,还需要软件共同完成中断处理的全过程。

4 (1)当外设准备好,发选通信号,数据存入锁存器;中断请求触发器置1;
(2)若屏蔽触发器置0,向CPU发出中断请求信号INT; (3)CPU接到中断请求后,若CPU内部允许中断,则在执行完当前指令后响应中断,转向执行中断服务程序。

5 5.2 中断控制器 A的内部结构和外部引脚定义 1.8259A功能和内部结构

6 各组成部分的功能如下: (1)中断请求寄存储器(IRR) 8位。它寄存外部设备提出的中断请求。 (2)优先权裁决器。对IRR中有请求的中断源以及正在服务的中断源进行判别,以裁决出当前优先级最高的中断请求。 (3)中断在服务寄存器(ISR)8位。与IRR的各位相对应,记录了当前正在中断处理的中断请求。 (4)中断屏蔽寄存器(IMR)。IMR为8位,对应位置1,即可屏蔽IRR中相应位的中断请求。 (5)总线缓冲器。与系统的数据总线连接,是8位双向三态缓冲器。对8259A写入命令字,以及读取状态信息都是通过该缓冲器传送的。 (6)读/写控制逻辑。该逻辑电路接收端口地址信号和CPU的读写控制信号IOW和IOR产生相应的控制信号,控制命令字的写入和状态字的读取。 (7)级联缓冲器和比较器。用来存放和比较系统中从片8259A的标识码。 (8)控制逻辑。控制逻辑中有一组寄存器,用来寄存8259A的命令字,实现对多种工作方式的控制。同时还包括有中断请求和响应的电路,在有中断请求时向CPU发出中断请求,同时接收CPU响应中断时发出的中断响应信号。

7 2.8259A的外部引脚信号 8259A为28脚双列直插封装。 D7 ~ D0 双向数据线。 RD:输入,读命令信号。与控制总线相连。 WR:输入,写命令信号。与控制总线相连。 CS:输入,片选信号。与地址译码电路相连。 A0:输入,地址线。8259A占用相邻两个端口 地址,A0与CS配合,A0=1时选中奇地址, A0=0 时选中偶地址,而且要求偶地址 低,奇地址高。PC机中主片为20H和21H。 CAS2 ~ CAS0:级联线。在主从结构中,主、 从片8259A的CAS2一CAS0。对应连接。 SP/EN:双向信号线。有两个功能,作为输入时,主片8259A的此信号线接 高电平,从片8259A的此信号线接低电平。做输出时,如果8259A采用缓冲方 式工作,则SP/EN信号作为数据线驱动器的使能信号。 INT:中断请求信号。输出,与CPU的INTR引脚连接,向CPU发出中断请求。 INTA:中断响应信号。输入,与CPU的中断响应输出相连。

8 优先级自动循环方式有利于平衡各个中断源的响应几率:对于几个中 断源地位几乎相等的情况,默认的优先级总是使得排在前面的中断源
A的工作方式 1.优先级方式选择 (1)全嵌套方式。亦称固定优先级方式。在8个中断请求IR0~IR7中,IR0为最高级,依次为IR1,IR2,…,IR7为最低。在中断服务过程中禁止同级和优先级低于本级的中断请求。 (2)特殊全嵌套方式。它与全嵌套方式基本相同,只是在特殊全嵌套方式下,当某级正在处理中断时,同时可以响应本级的中断请求,实现对同级中断的嵌套。 (3)优先级自动循环方式。初始化时,优先级次序为IR0、IR7,IR0最高。IR7最低。当某级中断响应后,则优先级降为最低。例如,IR4响应后的优先级次序变为IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。 (4)优先级特殊循环方式。开始时由编程指定最低优先级的中断请求, 其他同优先级自动循环方式。例如,初始化时指定IR6为最低优先级,则优先级次序为:IR7,IR0…….IR6。 优先级自动循环方式有利于平衡各个中断源的响应几率:对于几个中 断源地位几乎相等的情况,默认的优先级总是使得排在前面的中断源 得到响应的几率较大。但是在自动循环方式中,先响应的中断源变为 最低,则提升了后面的优先级,从而平衡了各个中断源的响应几率。

9 2. 屏蔽中断方式选择 (1)普通屏蔽方式。将操作命令字OCW1写入到片内屏蔽寄存器IMR中,例如IMR= ,则IR2,IR3的中 断请求被禁止。 (2)特殊屏蔽方式。在本分式下,当某个中断正在被响应时,允许较低级别的中断源的中断请求。暂时中断正在执行的中断服务程序。 3.中断处理结束方式选择 当中断存服务寄存器ISR中某位ISRn为1时,表示相应的中断请求IRn正在服务中;中断服务结束时,则应将ISRn清0。 (1)白动中断结束方式。8259A在收到CPU的中断响应后,自动将ISR中的正在处理的ISRn位清0。仅适用单片8259A和中断无嵌套的情况。 (2)一般的中断结束方式。在中断服务程序返回前,执行一条一般中断结束命令,将ISR中当前最高的置1位清0。适用全嵌尝方式。 (3)特殊中断结束方式。在中断结束前,向8259A发出一条特殊中断结束命令;根据命令字的编码。将ISR中的指定位清0,以结束中断。 4. 中断请求信号触发方式选择 (1)边沿触发方式:正跳变信号,表示有中断请求。出现正跳变信号后,允许高电平保持。 (2)电平触发方式:高电平信号表示有中断请 求。该请求电平必须在中断服务程序中的中断结束命令执行前予以撤消。

10 5.2.3 8259A的命令字 1.初始化命令字 初始化命令字共有ICW1~ICW4 四个。 (1)ICW1的格式和定义。
ICW1必须碍到8259A的偶地址端口。 A0 D D D D D D D D0 ICW 任意值 1 中断请求电平触发 单片 LTIM SNGL 0 中断请求边沿触发 多片 1 LTIM ADI SNGL IC4 不用 恒为 1 为了扩大中 断源的数目 8259A可以 多片级连。

11 (2)ICW2的格式和定义。 ICW2用来设置中断类型码,必须写到8259A的奇地址端口。ICW2用来指定8259A的8个中断请求IR0—IR7的中断类型码。 A D D D D D D D D0 ICW 其中T7—T3由程序写入,最低3位根据正在响应的中断请求IRn的n值自动填入。 例如:ICW2为40H,则所对应的中断类型码为40H,41H,42H,43H,44H,45H,46H,47H。 (3)ICW3的格式和定义。 8259A作为主片和从片的ICW3格式和含义是不同的,ICW3必须写到8259A的奇地址端口。 8259A作为主片的格式: A D D D D D D D D0 ICW 主片的IR0~IR7的某个引脚上连接从片8259A,则该位为l,反之为0。 T7 T6 T5 T4 T3 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0

12 8259A作为从片的格式: A D D D D D D D D0 ICW ID2、ID1、ID0的值取决于本从片的INT输出端连到主片哪个IR输入端。如连到IR7,则ID2,ID1,ID0=111。 从片的CAS7~CAS0接收到主片8259A发来的编码,将该码与从片本身的ICW3中的ID2~ID0比较,若相等,则在中断响应过程中将自己的中断类型码发送到CPU。 (4)ICW4的格式和定义:ICW4必须写入到8259A的奇地址端口 A D D D D D D D D0 ICW 1 特殊全嵌套方式 X 非缓冲方式 SFNM = BUF,M/S = 从片缓冲方式 0 非特殊全嵌套方式 主片缓冲方式 1 中断自动结束方式 /8086系统 0 一般中断结束方式 /8085系统 ID2 ID1 ID0 SFNM BUF M/S AEOI uPM AEOI = uPM =

13 对初始化命令字编程时应注意到: 2.8259A的操作命令字 (1)初始化命令字必须按规定的奇、偶地址端口写入。
(2)ICW1~ICW4写入的顺序是固定的,不可颠倒。 (3)ICW1、ICW2是必须设置的,但ICW3、ICW4根据工作方式的需要设置。 2.8259A的操作命令字 8259共有3个操作命令字OCW1—OCW3。 (1)OCW1的格式和定义。这是一个中断屏蔽命令字,OCW1必须写入到8259A的 奇地址端口。 OCW1的格式如下: A D D D D D D D D0 OCW OCW1中某位为l时,其对应的中断请求IRn被屏蔽,对应于各位为0的中断请求被允许参与优先权的裁决。 M7 M6 M5 M4 M3 M2 M1 M0

14 (2)OCW2的格式和定义。OCW2必须写入到8259A的偶地址端口。 OCW2的格式如下:
A D D D D D D D D0. OCM 中断优先级循环 L2~L 有效 非自动结束中断 R = SL= EOI= 0 中断优先级非循环 L2~L 无效 自动结束中断 OCM2控制位的功能组合 R SL EOI 功 能 自动结束中断 、结束优先级自动循环 无意义 中断优先级自动循环方式 优先级特殊循环方式 一般中断结束命令 特殊的中断结束命令 清除当前中断处理程序对应的ISRn,优先级循环方式 清除L2~L0指定的ISR中的特定位,优先级特殊循环方式 R SL EOI L2 L1 L0 一般来讲: EOI=0指定优先 级循环方式。 EOI=1指定中断 结束的命令。

15 (3)OCW3的格式和定义。OCW3的功能是设置或撤消特殊屏蔽方式,设置中断查
询方式以及设置对8259A内部寄存器读出的命令。 OCW3必须写入到8259A的偶地址端口。 OCW3的格式如下: A D D D D D D D D0 OCW ESMM SMM RR RIS 进入特殊屏蔽方式 在下条指令读取IRR 恢复到一般屏蔽方式 在下条指令读取ISR 查询命令 不查询命令 OCW3中的P位称为查询方式位,P=1时,使8259A设置为中断查询工作方式。当发出查询命令后,下一条输入指令,CPU就可读取8259A中ISR寄存器的值。OCW3的PR=l,RIS=0时,则()CW3发出后的下一条输入指令就可读取IRR寄存器的值。当RR=1,RIS=1时,则下一条输人指令就可读取ISR寄存器的值。 OCW1~OCW3是在应用程序中设置的,写的次序没有严格规定。 ESMM SMM 1 P RR RIS P =

16 5.2.4 PC机的 中断控制器及 用户中断编程 在80x86CPU 的微机系统中,使 用了两片8259A构 成了8259A的级联
中断系统,用于管 理15级外部的中断。 右图为PC机中断 系统原理图 用户中断 IRQ9

17 图中可知,15级可屏蔽中断中有4个已由系统占用,用于系统的日时钟、键盘、实时钟以及协处理器的中断服务(用箭头标出)。
系统分配给主片8259A的端口地址为20H和21H,从片8259A的端口地址为AOH和A1H。系统加电后,由BI()S对两片8259A进行初始化,其设置的工作方式如下:(1)中断优先级采用全嵌套方式。两片的中断请求输入端IR0—IR7。IR0优先级最高,IR7为最低。对于图中的级联系统,其优先级的次序从高到低依次为:主片IR0,IR1,从片IR0一IR7,主片IR3,IR4,IR5,IR6,IR7。 (2)采用普通的中断屏蔽方式。 (3)采用一般的中断结束方式。 (4)中断请求采用边沿触发方式。 图中可知,15级可屏蔽中断中有4个已由系统占用,用于系统的日时钟、键盘、实时钟以及协处理器的中断服务(用箭头标出)。 中断控制器请求输入端分配情况 主 中断源 类型码 从 中断源 类型码 IRQ 从 AH IRQ 用户中断 71H转0AH IRQ 串口 BH IRQ 保留 H IRQ 串口 CH IRQ 保留 H IRQ 并口 DH IRQ 保留 H IRQ 软盘 EH IRQ 保留 H IRQ 并口 FH IRQ 保留 H

18 2.用户中断的编程 (1)利用微机系统分配给用户使用的“用户中断”入口申请中断: ①用户的中断请求连接到I/O扩展插槽的B4引脚。 ②在应用程序中,利用DOS的功能调用,功能号25H,将中断服务程序的入口地址写入到中断类型OAH的向量表中。 ③在应用程序中向主片8259A写入中断屏蔽字使其IMR D2位置0,向从片8259A写入中断屏蔽字,使其IMR D1位置0。主、从片8259A中IMR的其他位保持原值。 ④中断服务程序结束,返回主程序前,向主片8259A发中断结束命令。 ⑤应用程序结束之前,分别向主、从片8259A写入中断屏蔽字,使主片IMR D2位置1,从片IMR D1位置1,屏蔽用户中断。

19 (2) 使用外设中断请求入口 具体的编程步骤如下: ①硬件连接。例如,借用并口1(IRQ7),其中断类型码为0FH,中断请求人口端为I/O扩展插槽B21,将用户请求信号连到B21。 ②主程序中,利用DOS功能调用,功能号35H,保存中断类型码0FH的原中断向量。利用DOS功能调用,功能号25H,写入中断类型码0FH及新的用户中断服务程序的入口地址。 ③向主片8259A写人中断屏蔽字,使其IMR D7位置0;允许用户中断。同样也要使IMR的其他位保持原值。 ④中断服务程序结束之前,向主片8259入写入中断结束命令。 ⑤主程序结束前,恢复中断类型码0FH的原中断向量。 ⑥主程序结束前,向主片8259A写入中断屏蔽字。使IMR D7置l。

20 DMA的基本概念 直接存储器存取(DMA)的传送方式不需要CPU的干预,而是在硬件电路控制下完成I/O设备与存储器之间的数据传输,这种硬件电路称为DMA控制器。 DMA方式与中断方式传送数据相比较有以下的特点: (1)中断方式下, CPU需要执行多条指令,占用一定的时间;而DMA传送1个字节只占用CPU的1个总线周期,占用CPU的时间少。 (2)DMA的响应速度比中断快。I/O设备发出中断请求后,CPU要执行完当前指令后才给予响应,而DMA请求是在总线周期执行完后即可响应。 (3)对于快速的I/O设备,中断方式,其传输速度已无法满足要求。必须采用DMA方式来完成快速I/O设备的数据传送的操作。

21 DMA的系统组成和工作过程 1.DMA的系统组成 HOLD和HLDA用于DMA方式请求和响应,DMA控制器是DMA传送的核心电路。

22 (2)DMA控制器接到I/O设备请求后,向CPU发出总线请求信号,请求取得总线控制权。
(1)I/O设备接口向DMA控制器发出请求信号,请求DMA传送。 (2)DMA控制器接到I/O设备请求后,向CPU发出总线请求信号,请求取得总线控制权。 (3)CPU在执行完当前总线周期后,响应请求,向DMA控制器发出总线响应信号;释放总线的控制权,暂停执行主程序,处于等待状态。由DMA控制器取得对总线的控制权。 (4)DMA控制器接到CPU的总线响应信号后,向I/O设备接口发出DMA响应信号。 (5)由DMA控制器发出DMA传送所需的控制信号。当内存储器向I/O设备传送时,DMA控制器向地址总线送出内存地址,并向控制总线发出存储器读 (MEMR)和I/O写(I0W)命令。当执行I/O设备向内存储器传送时,则发出存储器写(MEMW)和I/O读(I0R)命令,完成1个字节的传送。 (6)DMA控制器内部的地址寄存器值加l,字节计数器值减1,如果计数器值不为0,则继续下个地址单元的传送。 (7)当设定的字节数传送完成,结束DMA传送。DMA控制器释放对总线的控制权。CPU重新获得总线的控制权,于是主程序从中断了的当前指令的总线周期开始继续执行。

23 8237A是由Intel公司研制的可编程DMA控制器,基本功能如下:
(1)具有独立的4个DMA通道,每个通道可以请求或屏蔽DMA传送。 (2)四个DMA通道具有不同的优先级。通过编程可以工作在固定优先级方式,也可以是循环优先级方式。 (3)提供4个工作模式:单字节传送、数据块传送、请求传送和级联传送,通过编程进行选择。 (4)提供3种DMA传送类型:写传送、读传送和校验传送。 (5)提供外部硬件DMA请求和软件DMA请求两种方式。

24 8237A内部结构框图

25 8237A内部电路由以下各部分组成: (1)DMA通道。8237A内部包含有 4个独立的通道,通道0一通道3。 (2)DMA通道公用的寄存器。 (3)定时和控制逻辑。 (4)优先级编码电路。 2.8237A的外部引脚定义(见教材) A的工作模式和传送类型 1.工作模式 8237A有四种工作模式: 单字节传输模式、 块传输模式、 请求传输模式 级联传输模式。

26 (1)单字节传输模式。在这种模式下,完成1个字节传送后,字节计数器减1,地址寄存器增l(或减1)。然后8237A释放总线,CPU至少可以获得1个总线周期的时间。由于DREQ继续维持有效电平,因此8237A再次发出总线请求,并获得总线控制权而继续进行传送,直到字节计数器为0时结束。 (2)块传送模式。在此模式下进行DMA传送后,连续传送数据,直到指定的字节数传送完毕才释放总线。DREQ请求信号仅保持到DACK变成有效时即可。 (3)请求传输模式。与块传送模式类似。但是当DREQ的信号变为无效时,则暂停DMA传送;当DREQ再次变为有效时,则DMA传送从暂停处开始卑继续传送,直至字节计数器为0时结束传送。传送暂停期间,CPU可以进行操作。 (4)级联传输模式。这种方式可以实现DMA系统的扩展,几个8237A可以进行级联工作。

27 2.传送类型 8237A有3种传送类型:读传送、写传送和校验传送。 读传送: 写传送: MEMR IOW DMA控制器 内存 I/O 设备 数据 MEMW IOR DMA控制器 内存 I/O 设备 数据 校验传送:虚 拟传送,用于对 器件的测试。 内存到内存的传送: 实现数据块在不同 内存区间的传送。

28 每个通道包含有1个16位的基地址寄存器和1个16位的当前地址寄存器。 基地址寄存器:存放DMA传送时的存储器地址初值
1.地址寄存器 每个通道包含有1个16位的基地址寄存器和1个16位的当前地址寄存器。 基地址寄存器:存放DMA传送时的存储器地址初值 当前地址寄存器:记录当前地址,每次传送后寄存器的值增1或减1。 2.字节寄存器 每个通道包含有1个16位的基本字节寄存器和1个当前字节计数器。 基本字节寄存器:用来存放DMA传输的字节数初值。 当前字节计数器:初始化时写入字节数初值,每次传送后,当前字节计数器值减1。

29 3. 命令寄存器 8237A命令寄存器的格式 0 DACK低电平有效 0 禁止内存间的传输 1 DACK高电平有效 1 允许内存间的传输
0 DREQ高电平有效 内存间传输源地址 1 DREQ低电平有效 无意义 0 不扩展写信号 允许8237工作 扩展写信号 禁止8237工作 固定优先级 正常时序 循环优先级 压缩时序 D7 D6 D5 D4 D3 D2 D1 D0

30 4.模式寄存器 8237模式寄存器的格式 模式选择: 通道选择: 00 请求传输 00 通道0 01 单字节传输 01 通道1
模式选择: 通道选择: 00 请求传输 通道0 01 单字节传输 通道1 10 数据块传输 通道2 11 级联传输 通道3 地址增/减选择 传送类型选择 0 地址增 校验传输 1 地址减 写传输 自动预置功能选择 读传输 0 禁止 无意义 1 允许 D7 D6 D5 D4 D3 D2 D1 D0

31 5. 请求寄存器 8237A请求寄存器的格式 6.屏蔽寄存器 DMA请求标志 通道选择 0 复位请求 00 通道0 ;01通道1
0 复位请求 通道0 ;01通道1 1 设置请求 通道2 ;11通道3 6.屏蔽寄存器 8237A屏蔽寄存器的格式 屏蔽设置标志 通道选择 0 清除屏蔽 通道0 ;01通道1 1 设置屏蔽 通道2 ;11通道3 D7 D6 D5 D4 D3 D2 D1 D0 不用 D7 D6 D5 D4 D3 D2 D1 D0 不用

32 7. 多通道屏蔽寄存器 8237A多通道屏蔽寄存器的格式 8. 状态寄存器 8237A状态寄存器的格式 通道0 通道1 1:置1屏蔽位
通道1 1:置1屏蔽位 通道 :置0屏蔽位 通道3 8. 状态寄存器 8237A状态寄存器的格式 通道 通道0 有请求的 通道 通道1 1:置1屏蔽位 通道置1 通道 通道2 0:置0屏蔽位 通道 通道3 D7 D6 D5 D4 D3 D2 D1 D0 不用 D7 D6 D5 D4 D3 D2 D1 D0

33 9. 暂存寄存器 它是公用的8位寄存器。在存储器到存储器的传送中暂存中间数据。 10. 先后触发器 16位的基本地址(或基本字节)寄存器是分两次写入的。由先后触发器控制写入顺序。先将触发器清0,就能保证先写入低8位,后写入高8位。 11.软件命令 (1)清0先/后触发器命令。对8237A的DMA+0CH端口地址写入00H字节,即可使先/后触发器处于复位状态。 (2)复位命令。对8237A的DMA+0DH端口地址写入00H字节,即可实现对 8237A的总清,其功能与硬件RESET信号复位具有同样功能。 执行复位命令后,命令寄存器、状态寄存器、请求寄存器、暂存寄存器和内部的先/后触发器都被清0,而屏蔽寄存器则被置位。 (3)清屏蔽寄存器。对8237A的DMA+0EH端口写入00H字节,即可将四个通道的屏蔽触发器全清0。

34 A的初始化编程 1. 在进行DMA传送前,先要对8237A进行初始化编程。 (1)写入屏蔽寄存器。 (2)命令字写入到命令寄存器。 (3)模式字写入到模式寄存器。 (4)置0先/后触发器。 (5)写入基地址寄存器和基本字节寄存器。 (6)清除屏蔽。 (7)写入请求寄存器。 A的端口地址(祥见教材P197页 表5.3)


Download ppt "微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇."

Similar presentations


Ads by Google