汇编语言课件第6章输入输出系统

上传人:cl****1 文档编号:569334604 上传时间:2024-07-28 格式:PPT 页数:136 大小:1.98MB
返回 下载 相关 举报
汇编语言课件第6章输入输出系统_第1页
第1页 / 共136页
汇编语言课件第6章输入输出系统_第2页
第2页 / 共136页
汇编语言课件第6章输入输出系统_第3页
第3页 / 共136页
汇编语言课件第6章输入输出系统_第4页
第4页 / 共136页
汇编语言课件第6章输入输出系统_第5页
第5页 / 共136页
点击查看更多>>
资源描述

《汇编语言课件第6章输入输出系统》由会员分享,可在线阅读,更多相关《汇编语言课件第6章输入输出系统(136页珍藏版)》请在金锄头文库上搜索。

1、第第6 6章章 输入输出系统输入输出系统第第6 6章章 输入输出系统输入输出系统第第6 6章章 输入输出系统输入输出系统6.1 6.1 输入输出接口系统概述输入输出接口系统概述 第第6 6章章 输入输出系统输入输出系统I/OI/O接口的概念(什么是接口的概念(什么是I/OI/O接口?)接口?) 把外围设备同微型计算机连接起来的电路把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。称为外设接口电路,简称外设接口。第第6 6章章 输入输出系统输入输出系统主机(主机(CPUCPU)和)和I/OI/O设备之间传送的信息格式设备之间传送的信息格式(1)(1)数据信息:数据信息:数字量(

2、计算机可以直接接收和处理的数据)数字量(计算机可以直接接收和处理的数据)模拟量模拟量开关量开关量(2)(2)状态信息状态信息 状态信息是状态信息是CPUCPU与外设之间交换数据时的联络信息。与外设之间交换数据时的联络信息。CPUCPU通过读取外设状态信号,可知外设的工作状态。通过读取外设状态信号,可知外设的工作状态。特点特点:CPU:CPU外设接口外设接口 可读(不可写)可读(不可写)(3)(3)控制信息控制信息 控制信息是设置控制信息是设置I/OI/O外设外设( (包括包括I/OI/O接口接口) )的工作模式、的工作模式、 命令字的有关信息。命令字的有关信息。 如如“启动启动”、“停止停止”

3、信息。信息。特点特点:CPU:CPU外设接口外设接口 可写(不可读)可写(不可读)例如:对于输入设备的例如:对于输入设备的“Ready” “Ready” 对于输出设备的对于输出设备的“Busy”“Busy”第第6 6章章 输入输出系统输入输出系统I/OI/O接口的基本功能接口的基本功能( (为什么要用为什么要用I/OI/O接口电路接口电路) )总的来说,总的来说,I/OI/O接口具有下述三方面功能:接口具有下述三方面功能:(1 1)速度的匹配)速度的匹配(2 2)信息格式的变换)信息格式的变换(3 3)提供主机和外设间传送数据所必须的状态和)提供主机和外设间传送数据所必须的状态和控制信息。控制

4、信息。串并转换,如串并转换,如A/D,D/AA/D,D/A转换;电平转换等。转换;电平转换等。第第6 6章章 输入输出系统输入输出系统I/OI/O接口的基本结构接口的基本结构 通常,每个接口电路包含一组寄存器:通常,每个接口电路包含一组寄存器: 数据输入数据输入 输出寄存器、状态寄存器、控制寄存器输出寄存器、状态寄存器、控制寄存器 通常称这些寄存器为通常称这些寄存器为I/OI/O端口端口(I/O PORT)(I/O PORT),每个端口,每个端口有一个端口地址有一个端口地址第第6 6章章 输入输出系统输入输出系统6 62 CPU2 CPU与外设数据的传与外设数据的传输控制方式输控制方式第第6

5、6章章 输入输出系统输入输出系统CPUCPU与外设数据的传输控制方式主要包括下面与外设数据的传输控制方式主要包括下面4 4种种1 1、程序控制方式、程序控制方式无条件传送方式无条件传送方式 程序查询方式程序查询方式2 2、中断控制方式、中断控制方式3 3、DMADMA方式方式4 4、IOPIOP方式方式第第6 6章章 输入输出系统输入输出系统1 1、程序控制方式、程序控制方式无条件传送方式无条件传送方式适用于总是处于准备好状态的外设适用于总是处于准备好状态的外设优点优点:软件及接口硬件简单:软件及接口硬件简单缺点缺点:只适用于简单外设,适应范围较窄:只适用于简单外设,适应范围较窄如:开关、发光

6、器件如:开关、发光器件( (如发光二极管、如发光二极管、7 7段数段数码管、灯泡等码管、灯泡等) )、继电、继电器、步进电机器、步进电机第第6 6章章 输入输出系统输入输出系统(a a)无条件传送的输入方式)无条件传送的输入方式(b) (b) 无条件传送的输出方式无条件传送的输出方式由于数据保持时间比由于数据保持时间比CPUCPU的处理的处理时间长,输入端必须用输入缓冲时间长,输入端必须用输入缓冲器与器与CPUCPU的数据总线相连。的数据总线相连。显然,显然,CPUCPU在执行输入指令时,在执行输入指令时,要求外设的数据已经准备好,要求外设的数据已经准备好,否则就会出错。否则就会出错。由于外设

7、速度较慢,要求接口有由于外设速度较慢,要求接口有锁存功能,锁存功能, 即即CPUCPU送给外设的数送给外设的数据应该在接口中保持一段时间。据应该在接口中保持一段时间。显然,显然,CPUCPU在执行输出指令时,在执行输出指令时,必须保证锁存器是空闲的。必须保证锁存器是空闲的。从从以以上上分分析析可可以以看看出出,无无条条件件传传送送是是最最简简便便的的传传送送方方式式, 它它所所需的硬件和软件都较少。需的硬件和软件都较少。第第6 6章章 输入输出系统输入输出系统查询方式查询方式适用于外设并不总是准备好,而且对传送速率、传送适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。效率要求

8、不高的场合。对外设的要求对外设的要求:应提供设备状态信息:应提供设备状态信息对接口的要求对接口的要求:需要提供状态端口:需要提供状态端口CPUCPU在与外设交换数据前必须询问外设状态在与外设交换数据前必须询问外设状态 。优点优点:软件比较简单:软件比较简单缺点缺点:CPUCPU效率低,数据传送的实时性差,速度较慢效率低,数据传送的实时性差,速度较慢你准备好没有?你准备好没有?第第6 6章章 输入输出系统输入输出系统查询式输入查询式输入 下图所示为查询式输入的接口电路,该电路有两个端下图所示为查询式输入的接口电路,该电路有两个端口寄存器,即状态口寄存器和数据口寄存器。口寄存器,即状态口寄存器和数

9、据口寄存器。数据传送过程的数据传送过程的3 3个步骤:个步骤:CPUCPU先读取状态字先读取状态字检查状态字表明输入设备是否准备就绪检查状态字表明输入设备是否准备就绪如果准备就绪,则执行输入指令读取数据,且使如果准备就绪,则执行输入指令读取数据,且使状态位复位。这样便开始下一个数据传输过程。状态位复位。这样便开始下一个数据传输过程。查询输入的程序段如下:查询输入的程序段如下: SCAN SCAN: IN AL IN AL,Stat _PortStat _Port;取状态信息;取状态信息 TEST AL TEST AL, 01H 01H ; 测状态标志测状态标志 JZ SCANJZ SCAN;没

10、有准备好继续检测;没有准备好继续检测 IN AL IN AL ,Data_Port Data_Port ; ;准备好了,输入数据准备好了,输入数据第第6 6章章 输入输出系统输入输出系统查询式输出查询式输出 下图所示为查询式输出的接口电路,该电路有两个下图所示为查询式输出的接口电路,该电路有两个端口寄存器,即状态口寄存器和数据口寄存器。端口寄存器,即状态口寄存器和数据口寄存器。数据传送过程的数据传送过程的3 3个步骤:个步骤:CPUCPU先读取状态字先读取状态字检查状态字表明外设是否空闲(即不忙)检查状态字表明外设是否空闲(即不忙)如果空闲,则执行输出指令写数据,且使状态位如果空闲,则执行输出

11、指令写数据,且使状态位清零。这样便开始下一个数据传输过程。清零。这样便开始下一个数据传输过程。查询输出的程序段如下:查询输出的程序段如下: SCAN SCAN: IN AL IN AL,Stat _PortStat _Port;取状态信息;取状态信息 TEST AL TEST AL, 01H 01H ; 测状态标志测状态标志 JNZ SCANJNZ SCAN;“忙忙”则继续检测则继续检测 OUT Data_Port OUT Data_Port , AL AL ;“ ;“空闲空闲”则输出数据则输出数据第第6 6章章 输入输出系统输入输出系统2 2、中断控制的输入、中断控制的输入/ /输出方式输出

12、方式 中断控制的输入和输出方式,也称中断控制的输入和输出方式,也称中断传送方式中断传送方式,即当外设的输入数据准备好或接收数据的锁存器即当外设的输入数据准备好或接收数据的锁存器为空时,主动向为空时,主动向CPUCPU发出中断请求,使发出中断请求,使CPUCPU中断原中断原来执行的程序来执行的程序( (主程序主程序) ),转去执行为外设服务的,转去执行为外设服务的输入或输出操作,服务完毕,输入或输出操作,服务完毕,CPUCPU再继续执行原来再继续执行原来的程序。的程序。必须经过必须经过 (1) (1)暂停主程序,实现程序的转移,即中暂停主程序,实现程序的转移,即中断响应。(断响应。(2 2)保护

13、和恢复有关寄存器内容。()保护和恢复有关寄存器内容。(3 3)执行执行I/OI/O操作,并实现内存到累加器再到端口之间操作,并实现内存到累加器再到端口之间的传送。(的传送。(4 4)实现中断返回。)实现中断返回。中断方式的特点:中断方式的特点:a a)CPUCPU的效率高,提高了控制程序执行的实的效率高,提高了控制程序执行的实时性时性b b)CPUCPU与外设可并行工作与外设可并行工作c c)外设具有申请服务的主动权)外设具有申请服务的主动权第第6 6章章 输入输出系统输入输出系统中断传送时的接口电路如图所示:中断传送时的接口电路如图所示:输入装置锁存器数据中断类型码5VDQ三态缓冲器INTR

14、去数据总线DB地址总线选通装置中断允许WR地址译码器IO/M去数据总线DB三态缓冲器INTA(中断响应信号)&第第6 6章章 输入输出系统输入输出系统3 3、直接存储器存取、直接存储器存取(DMA(DMA:Direct Memory Access)Direct Memory Access)控控制方式制方式概念:概念:数据在数据在I/OI/O接口与存储器之间的传送,接口与存储器之间的传送,不经不经CPUCPU的干预的干预,而是,而是在专用硬件电路的控制下直接传送在专用硬件电路的控制下直接传送。这。这种方法称为种方法称为DMA DMA 。特点特点:在专门的硬件控制电路(:在专门的硬件控制电路(DM

15、ACDMAC)控制之下,由)控制之下,由DMACDMAC发出地址及读发出地址及读/ /写信号来实现高速数据传输。在此写信号来实现高速数据传输。在此过程中,过程中,CPUCPU放弃总线控制权,数据传送不经过放弃总线控制权,数据传送不经过CPUCPU。在这种方式下,传送的速在这种方式下,传送的速度就只取决于存储器和外度就只取决于存储器和外设的工作速度。这大大提设的工作速度。这大大提高了数据传送速度。高了数据传送速度。第第6 6章章 输入输出系统输入输出系统应用:应用:DMADMA传送主要应用于高速度大批量数据传送传送主要应用于高速度大批量数据传送的系统中,如磁盘存取、图像处理、高速数据采的系统中,

16、如磁盘存取、图像处理、高速数据采集系统等,以提高数据的吞吐量。集系统等,以提高数据的吞吐量。DMADMA传送一般有三种传送一般有三种形式形式:存储器与存储器与I/OI/O设备之间的数据传送;设备之间的数据传送;存储器与存储器之间的数据传送;存储器与存储器之间的数据传送;I/OI/O设备与设备与I/OI/O设备之间的传送。设备之间的传送。 第第6 6章章 输入输出系统输入输出系统为实现为实现DMADMA工作方式而设计的专用接口电路,称为工作方式而设计的专用接口电路,称为DMADMA控控制器制器(DMAC)(DMAC)。例如,。例如,IntelIntel公司的公司的82578257、8237823

17、7,ZilogZilog公公司的司的Z 8410(Z80 DMAC)Z 8410(Z80 DMAC),MotorolaMotorola公司的公司的MC6844MC6844等,都等,都是能实现是能实现DMADMA方式的可编程方式的可编程DMACDMAC芯片。芯片。DMADMA控制器必须有控制器必须有以下功能:以下功能:能接收外设发出的能接收外设发出的DMA DMA 请求信号,然后向请求信号,然后向CPU CPU 发出总线发出总线接管请求信号。接管请求信号。当当CPUCPU发出总线请求允许信号并放弃对总线的控制后,发出总线请求允许信号并放弃对总线的控制后,DMACDMAC能接替对总线的控制,进入能

18、接替对总线的控制,进入DMADMA方式。方式。DMACDMAC得到总线控制权后,要往地址总线发送地址信号,得到总线控制权后,要往地址总线发送地址信号,能修改地址指针,并能发出读写控制信号。能修改地址指针,并能发出读写控制信号。能决定本次能决定本次DMADMA传送的字节数,判断传送的字节数,判断DMADMA传送是否结束。传送是否结束。DMADMA过程结束时,能发出过程结束时,能发出DMA DMA 结束信号,将总线控制权结束信号,将总线控制权交还给交还给CPUCPU。第第6 6章章 输入输出系统输入输出系统6 63 3 中断控制器中断控制器8259A8259A第第6 6章章 输入输出系统输入输出系

19、统1. Intel 8259A1. Intel 8259A的主要性能和内部结构的主要性能和内部结构 (1 1)Intel 8259AIntel 8259A的主要性能的主要性能 Intel 8259AIntel 8259A是被广泛使用的可编程中断控制器,在是被广泛使用的可编程中断控制器,在IBM-IBM-PC/XTPC/XT机中,就使用机中,就使用Intel 8259AIntel 8259A作为中断控制器。它用来管理作为中断控制器。它用来管理输入到输入到CPUCPU的可屏蔽中断请求,其主要功能有:的可屏蔽中断请求,其主要功能有:第第6 6章章 输入输出系统输入输出系统1) 1) 可以直接管理可以

20、直接管理8 8个中断源,级联方式下不用附加个中断源,级联方式下不用附加电路就可以管理电路就可以管理6464个可屏蔽中断源,并具有优先权判决个可屏蔽中断源,并具有优先权判决功能。功能。 2) 2) 能为中断源提供中断向量码。能为中断源提供中断向量码。 3) 3) 可以对每一级中断进行屏蔽或允许控制。可以对每一级中断进行屏蔽或允许控制。 4) 4) 可提供多种可供选择的工作方式,并能通过编可提供多种可供选择的工作方式,并能通过编程或硬件连接进行控制。程或硬件连接进行控制。 5 5)可直接与)可直接与CPUCPU连接,不需要外接硬件电路连接,不需要外接硬件电路第第6 6章章 输入输出系统输入输出系统

21、(2) Intel 8259A(2) Intel 8259A的内部结构的内部结构 8259A的内部结构框图每一条请求线上有一个相应的触发器每一条请求线上有一个相应的触发器来保存请求信号,它们构成了中断请来保存请求信号,它们构成了中断请求寄存器求寄存器IRR(Interrupt Request IRR(Interrupt Request Register)Register)。IMR(Interrupt Mask Register)IMR(Interrupt Mask Register)用来存放屏用来存放屏蔽位信息,蔽位信息,IMRIMR的每一位可以禁止的每一位可以禁止IRRIRR中对应中对应位的

22、中断请求输入信号进入。位的中断请求输入信号进入。ISR(Interrupt Service Register)ISR(Interrupt Service Register)存放当前存放当前正在进行服务的所有中断。正在进行服务的所有中断。ISRISR中相应位的置中相应位的置位是在中断响应的位是在中断响应的INTAINTA脉冲期间,由优先权脉冲期间,由优先权判决电路根据判决电路根据IRRIRR中各请求位的优先权级别和中各请求位的优先权级别和IMRIMR中屏蔽位的状态,将中断的最高优先级请中屏蔽位的状态,将中断的最高优先级请求位选通到求位选通到ISRISR中。中。它在中断响应期间,根据控制逻辑规定的

23、优它在中断响应期间,根据控制逻辑规定的优先权级别和先权级别和IMRIMR的内容,把的内容,把IRRIRR中允许中断的中允许中断的优先权最高的中断请求位送入优先权最高的中断请求位送入ISRISR。有一组预置命令字寄存器和一组操作命令字寄存器。有一组预置命令字寄存器和一组操作命令字寄存器。当有未被屏蔽的高级别的中断请求时,通过控制逻当有未被屏蔽的高级别的中断请求时,通过控制逻辑输出高电平的辑输出高电平的INTINT信号,向信号,向CPUCPU申请中断。申请中断。当当CPUCPU允许中断时,发出中断响应信号允许中断时,发出中断响应信号INTAINTA。在中断。在中断响应期间,它允许响应期间,它允许I

24、SRISR的相应位置位,并发送相应的的相应位置位,并发送相应的中断向量,通过数据总线缓冲器输出到总线上。中断向量,通过数据总线缓冲器输出到总线上。第第6 6章章 输入输出系统输入输出系统6) 数据总线缓冲器 这是8位双向三态缓冲器,用作8259A与数据总线的接口,传输命令控制字、状态字和中断向量。 7) 读/写控制电路 该部件接收来自CPU的读/写命令,实现对8259A的读/写操作。 8) 级联缓冲器/比较器 它们实现8259A芯片之间的级联,使得中断源可以由8级扩展至64级。第第6 6章章 输入输出系统输入输出系统2. 8259A2. 8259A的工作过程的工作过程 根据根据8259A825

25、9A的内部结构,其工作的过程如下:的内部结构,其工作的过程如下:(1)(1)外部中断源通过外部中断源通过IR0-IR7IR0-IR7输入高电平中断请求信号输入高电平中断请求信号(2) (2) 外部中断源的中断请求信号使中断请求触发器外部中断源的中断请求信号使中断请求触发器IRRIRR的的相应位置相应位置“1”“1”,并与,并与IMRIMR按位相按位相“与与”,送给优先权判,送给优先权判决电路。决电路。(3) (3) 优先权判决电路从优先权判决电路从IRRIRR中检测出优先级最高的中断请中检测出优先级最高的中断请求位,并将其与求位,并将其与ISRISR中记录的正在被中记录的正在被CPUCPU服务

26、的中断进行服务的中断进行优先级比较。当提请的中断优先级高于正在服务的中断优先级比较。当提请的中断优先级高于正在服务的中断优先级时,中断优先权判决电路就向控制逻辑发出有效优先级时,中断优先权判决电路就向控制逻辑发出有效的中断请求信号。的中断请求信号。 第第6 6章章 输入输出系统输入输出系统(4) (4) 当控制逻辑收到有效的中断请求信号时,当控制逻辑收到有效的中断请求信号时,向向CPUCPU发出高电平信号发出高电平信号INTINT,请求中断服务。,请求中断服务。 (5) (5) 在中断允许的情况下在中断允许的情况下(IF=1)(IF=1),CPUCPU接受中断接受中断请求请求INTINT,并发

27、出中断响应信号,并发出中断响应信号INTAINTA,对,对8086/8088 8086/8088 CPUCPU,将连续发出两个,将连续发出两个INTAINTA脉冲。脉冲。 (6) (6) 当当8259A8259A接到来自接到来自CPUCPU的第一个的第一个INTAINTA脉冲时,脉冲时,就把允许中断的最高优先级请求位置入就把允许中断的最高优先级请求位置入ISRISR,并把,并把IRRIRR中的相应位复位。如果工作在级联方式下,而中的相应位复位。如果工作在级联方式下,而且设备的优先级最高,则主控且设备的优先级最高,则主控8259A8259A将送出级联地将送出级联地址址CAS0-CAS2CAS0-

28、CAS2,将其加载至从属,将其加载至从属8259A8259A上。上。第第6 6章章 输入输出系统输入输出系统(7) (7) 在第二个在第二个INTAINTA脉冲,对单独使用或是级联方式脉冲,对单独使用或是级联方式下从属的下从属的8259A8259A,将其中断向量发送至数据总线。,将其中断向量发送至数据总线。(8) CPU(8) CPU从数据总线上获取中断向量码,转移到相从数据总线上获取中断向量码,转移到相应的中断处理程序。应的中断处理程序。(9) (9) 中断结束时,通过在中断处理程序中向中断结束时,通过在中断处理程序中向8259A8259A发送一条发送一条EOI(EOI(中断结束中断结束)

29、)命令,使命令,使ISRISR相应位复位,相应位复位,或在或在AEOI(AEOI(自动中断结束自动中断结束) )方式下,由方式下,由8259A8259A在第二在第二个个INTAINTA脉冲的后沿自动将脉冲的后沿自动将ISRISR相应位复位。相应位复位。第第6 6章章 输入输出系统输入输出系统中断响应周期中断响应周期第第6 6章章 输入输出系统输入输出系统8259A芯片之间的级联第第6 6章章 输入输出系统输入输出系统3.Intel 8259A3.Intel 8259A的外部特性的外部特性图 8259A的外围引脚排列第第6 6章章 输入输出系统输入输出系统在上图中,各引脚的名称如下:D0D7:双

30、向8位双数总线。RD:读输入信号。WR:写输入信号。A0:地址选择输入。CS:片选输入。CAS0CAS2:级联线。第第6 6章章 输入输出系统输入输出系统SP/EN:双功能线。8259A工作在缓冲方式时,该引脚输出低电平控制信号,用来控制系统总线与8259A数据引线之间的数据缓冲器,使中断向量码能在第二个INTA周期正常从8259A输出。当8259A工作在级联方式时,该引脚为输入,SP=1,设定8259A为主控器;SP=0,设定8259A为从属部件。 IR0IR7:中断请求输入。 INT:8259A向CPU输出的中断请求端,与CPU的INTR引脚相连。 INTA:中断响应输入端,接收CPU向8

31、259A输入的中断响应信号。第第6 6章章 输入输出系统输入输出系统8259A与标准总线的连接第第6 6章章 输入输出系统输入输出系统4. 4. 8259A的主要工作方式第第6 6章章 输入输出系统输入输出系统8259A8259A这些工作方式,这些工作方式,可以通过编程设置或改变可以通过编程设置或改变。(1)(1)优先权的管理方式优先权的管理方式1 1 全嵌套方式全嵌套方式这是这是8259A8259A默认的优先权设置方式,在全嵌套方式下,默认的优先权设置方式,在全嵌套方式下,8259A8259A所所管理的管理的8 8级中断优先权是固定不变的,其中级中断优先权是固定不变的,其中IR0IR0的中断

32、优先级最的中断优先级最高,高,IR7IR7的中断优先级最低。的中断优先级最低。CPUCPU响应中断后,请求中断的中断源中,优先级最高的中断源,响应中断后,请求中断的中断源中,优先级最高的中断源,在中断服务寄存器在中断服务寄存器ISRISR中的相应位置位,而且把它的中断矢量中的相应位置位,而且把它的中断矢量送至系统数据总线,在此中断源的中断服务完成之前,送至系统数据总线,在此中断源的中断服务完成之前,与它同与它同级或优先级低的中断源的中断请求被屏蔽级或优先级低的中断源的中断请求被屏蔽。第第6 6章章 输入输出系统输入输出系统22特殊全嵌套方式特殊全嵌套方式 特殊全嵌套方式与全嵌套方式基本相同,所

33、不同的是,当特殊全嵌套方式与全嵌套方式基本相同,所不同的是,当CPUCPU处理某一级中断时,如果有同级中断请求,那么处理某一级中断时,如果有同级中断请求,那么CPUCPU也会也会作出响应,从而形成了对同一级中断的特殊嵌套。作出响应,从而形成了对同一级中断的特殊嵌套。特殊全嵌套方式特殊全嵌套方式通常应用在有通常应用在有8259A8259A级连的系统中级连的系统中,在这种情,在这种情况下,况下,对主对主8259A8259A编程时,通常使它工作在特殊全嵌套方式下编程时,通常使它工作在特殊全嵌套方式下。这样,一方面,这样,一方面,CPUCPU对于优先级别较高的主片的中断输入是允对于优先级别较高的主片的

34、中断输入是允许的,另一方面,许的,另一方面,CPUCPU对于来自同一从片的优先级别较高(但对于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够对于主片来讲,优先级别是相同的)的中断也是允许、能够响应的。响应的。第第6 6章章 输入输出系统输入输出系统33优先级自动循环方式优先级自动循环方式在实际应用中,中断源优先级的情况是比较复杂的,要求在实际应用中,中断源优先级的情况是比较复杂的,要求8 8级中断的优先级在系统工作过程中,可以动态改变。级中断的优先级在系统工作过程中,可以动态改变。即一个中断源的中断请求被响应之后,其优先级自动降为最即一个中断源的中断请求被响

35、应之后,其优先级自动降为最低。系统启动时,低。系统启动时,8 8级中断优先级默认为级中断优先级默认为IR0IR7IR0IR7,这时,这时,刚好刚好IR4IR4发出了中断请求,发出了中断请求,CPUCPU响应之后,若响应之后,若8259A8259A工作在优工作在优先级自动循环方式下,则中断优先级自动变为先级自动循环方式下,则中断优先级自动变为IR5IR5、IR6IR6、IR7IR7、IR0IR0、IR1IR1、IR2IR2、IR3IR3、IR4IR4。44优先级特殊循环方式优先级特殊循环方式优先级特殊循环方式与自动循环方式相比,只有一点不同,优先级特殊循环方式与自动循环方式相比,只有一点不同,即

36、初始化的优先级是由程序控制的,而不是默认的即初始化的优先级是由程序控制的,而不是默认的IR0IR7IR0IR7。第第6 6章章 输入输出系统输入输出系统(2)(2)中断源的屏蔽方式中断源的屏蔽方式CPUCPU对于对于8259A8259A提出的中断请求,都可以加以屏蔽提出的中断请求,都可以加以屏蔽控制,屏蔽控制有下列几种方式:控制,屏蔽控制有下列几种方式:11普通屏蔽方式:普通屏蔽方式:8259A8259A的每个中断请求输入,都要受到屏蔽寄存器中相的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为应位的控制。若相应位为“1”“1”,则中断请求不能送,则中断请求不能送CPUCPU。屏

37、蔽是通过对屏蔽寄存器屏蔽是通过对屏蔽寄存器IMRIMR的编程(操作命令字的编程(操作命令字OCW1OCW1),来加以设置和改变的。),来加以设置和改变的。第第6 6章章 输入输出系统输入输出系统22特殊屏蔽方式:特殊屏蔽方式:有些场合下,希望一个中断服务程序的运行过程中,能动态有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优先级结构,即在中断处理的一部分,地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部分,又能够允许低级禁止低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。中断,于是引入了对中断的

38、特殊屏蔽方式。设置了特殊屏蔽方式后,用设置了特殊屏蔽方式后,用OCW1OCW1对屏蔽寄存器中的某一位复对屏蔽寄存器中的某一位复位时,同时也会是中断服务寄存器位时,同时也会是中断服务寄存器ISRISR中的相应位复位,这样中的相应位复位,这样就不只屏蔽了正在处理的等级中断,而且真正开放了其它优就不只屏蔽了正在处理的等级中断,而且真正开放了其它优先级别较低的中断请求。先级别较低的中断请求。特殊屏蔽是在中断处理程序中使用的,特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,用了这种方式之后,尽管系统正在处理高级中断,但对外界来讲,只有同级中断尽管系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽

39、,而允许其它任何级别的中断请求。被屏蔽,而允许其它任何级别的中断请求。 第第6 6章章 输入输出系统输入输出系统(3)(3)结束中断处理的方式结束中断处理的方式按照对中断结束(复位中断响应寄存器按照对中断结束(复位中断响应寄存器ISRISR中相应位)的不同中相应位)的不同处理,处理,8259A8259A有两种工作方式,即有两种工作方式,即自动结束方式(自动结束方式(AEOIAEOI)和和非非自动结束方式自动结束方式(EOI)(EOI)。而非自动结束方式又可进一步分为一般而非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。的中断结束方式和特殊的中断结束方式。11中断自动结束方式

40、中断自动结束方式(AEOI)(AEOI)这种方式仅适用于只有单片这种方式仅适用于只有单片8259A8259A的场合,在这种方式下,系的场合,在这种方式下,系统一旦响应中断,那么统一旦响应中断,那么CPUCPU在发第二个在发第二个INTAINTA脉冲时,就会使中脉冲时,就会使中断响应寄存器断响应寄存器ISRISR中相应位复位,这样一来,虽然系统在进行中相应位复位,这样一来,虽然系统在进行中断处理,但对于中断处理,但对于8259A8259A来讲,来讲,ISRISR没有相应的指示,就象中没有相应的指示,就象中断处理结束,返回主程序之后一样。断处理结束,返回主程序之后一样。CPUCPU可以再次响应任何

41、级可以再次响应任何级别的中断请求。别的中断请求。第第6 6章章 输入输出系统输入输出系统22一般的中断结束方式一般的中断结束方式一般的中断结束方式适用在全嵌套的情况下,一般的中断结束方式适用在全嵌套的情况下,当当CPUCPU用输出指令向用输出指令向8259A8259A发一般中断结束命令发一般中断结束命令OCW2OCW2时,时,8259A8259A才会使中断响应寄存器才会使中断响应寄存器ISRISR中优中优先级别最高的位复位。先级别最高的位复位。 第第6 6章章 输入输出系统输入输出系统33特殊的中断结束方式特殊的中断结束方式在特殊全嵌套模式下,系统无法确定哪一级中断为最后响应在特殊全嵌套模式下

42、,系统无法确定哪一级中断为最后响应和处理的中断,也就是说,和处理的中断,也就是说,CPUCPU无法确定当前所处理的是哪无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。级中断,这时就要采用特殊的中断结束方式。特殊的中断结束方式是指在特殊的中断结束方式是指在CPUCPU结束中断处理之后,向结束中断处理之后,向8259A8259A发送一个特殊的发送一个特殊的EOIEOI中断结束命令,这个特殊的中断结束中断结束命令,这个特殊的中断结束EOIEOI命令,明确指出了中断响应寄存器命令,明确指出了中断响应寄存器ISRISR中需要复位的位。中需要复位的位。这里,我们还要指出一点,在级联方式下,

43、一般不用自动中这里,我们还要指出一点,在级联方式下,一般不用自动中断结束方式,而需要用非自动结束中断方式,一个中断处理断结束方式,而需要用非自动结束中断方式,一个中断处理程序结束时,都必须发两个中断结束程序结束时,都必须发两个中断结束EOIEOI命令,一个发往主命令,一个发往主片,一个发往从片。片,一个发往从片。 第第6 6章章 输入输出系统输入输出系统(4)(4)系统总线的连接方式系统总线的连接方式当当8259A8259A以级联方式用在一个大的系统下时,就以级联方式用在一个大的系统下时,就要求对数据总要求对数据总线进行驱动缓冲线进行驱动缓冲。缓冲方式就是用来设定系统总线与。缓冲方式就是用来设

44、定系统总线与8259A8259A数数据总线之间是否需要进行缓冲。据总线之间是否需要进行缓冲。 1 1非缓冲方式。在指定非缓冲方式时,非缓冲方式。在指定非缓冲方式时,SP/ENSP/EN作为输入,用来作为输入,用来识别识别8259A8259A是主控制器还是从属控制器。是主控制器还是从属控制器。 2 2缓冲方式。此方式下缓冲方式。此方式下SP/ENSP/EN为输出,为输出,ENEN作为允许缓冲器发送作为允许缓冲器发送/ /接收的控制信号。接收的控制信号。第第6 6章章 输入输出系统输入输出系统(5)(5)引入中断请求的方式引入中断请求的方式 按照引入中断请求的方式,按照引入中断请求的方式,8259

45、A8259A有下列几种工作方式:有下列几种工作方式: 1 1边沿触发方式边沿触发方式8259A8259A将中断请求输入端出现的上升沿,作为中断请求信号,上将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后升沿后 相应引脚,可以一直保持高电平。相应引脚,可以一直保持高电平。 第第6 6章章 输入输出系统输入输出系统22电平触发方式电平触发方式 8259A 8259A将中断请求输入端出现的高电平作为中断请求信号,将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须注意:中断响应之后,高电平必须及在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,在时撤除,否则,在CP

46、UCPU响应中断,开中断之后,会引起第响应中断,开中断之后,会引起第二次不应该有的中断。二次不应该有的中断。第第6 6章章 输入输出系统输入输出系统33中断查询方式中断查询方式 当系统中的中断源很多,超过当系统中的中断源很多,超过6464个时,则可以使个时,则可以使8259A8259A工作在工作在查询方式下,中断查询方式的特点是:查询方式下,中断查询方式的特点是:中断源仍往中断源仍往8259A8259A发中断请求,但发中断请求,但8259A8259A却不使用却不使用INTINT信号向信号向CPUCPU发中断请求信号。发中断请求信号。CPUCPU内部的中断允许标志复位,所以内部的中断允许标志复位

47、,所以CPUCPU对对INTINT引脚上出现的中引脚上出现的中断请求呈禁止状态。断请求呈禁止状态。CPU CPU 用软件查询的方法来确定中断源,从而实现对设备的中用软件查询的方法来确定中断源,从而实现对设备的中断服务。可见,中断查询方式既有中断的特点,又有查询的断服务。可见,中断查询方式既有中断的特点,又有查询的特点,从外设的角度看,是靠中断的方式来请求服务,但从特点,从外设的角度看,是靠中断的方式来请求服务,但从CPUCPU的角度来看,是用查询方式来确定发中断请求的中断源。的角度来看,是用查询方式来确定发中断请求的中断源。第第6 6章章 输入输出系统输入输出系统查询是通过查询是通过CPUCP

48、U向向8259A8259A发查询命令来实现,查询命令字由发查询命令来实现,查询命令字由OCW3OCW3构成,其格式如下:构成,其格式如下: D7 D7 。 。 。 D3 D2 D1 D0 D3 D2 D1 D0 X 0 0 0 1 1 0 0 X 0 0 0 1 1 0 0 其中其中D2=1D2=1,是查询命令的特征位。,是查询命令的特征位。8259A8259A在接到在接到CPUCPU发来的上述格式的查询命令之后,立即组成发来的上述格式的查询命令之后,立即组成状态字,等待状态字,等待CPUCPU来读取,状态字的格式如下:来读取,状态字的格式如下: D7 D7 。 。 。 D3 D2 D1 D0

49、 D3 D2 D1 D0 I X X X X W2 W1 W0 I X X X X W2 W1 W0若若I=0I=0,则表示该,则表示该8259A8259A芯片没有中断请求,若芯片没有中断请求,若I=1I=1,则表示,则表示有中断请求,有中断请求,W2W2、W1W1、W0W0即为本片中中断请求优先级别最高即为本片中中断请求优先级别最高的中断源的编码。的中断源的编码。第第6 6章章 输入输出系统输入输出系统5.82595.8259的初始化编程的初始化编程初始化编程:指系统在上电或复位后对可编程器件进行控制初始化编程:指系统在上电或复位后对可编程器件进行控制字设定的一段程序字设定的一段程序8259

50、A8259A的命令控制字包括两个部分:的命令控制字包括两个部分: 初始化命令字和操作命令字初始化命令字和操作命令字初始化命令字:一般在系统复位后的初始化编程中设置,用初始化命令字:一般在系统复位后的初始化编程中设置,用于确定于确定8259A8259A的基本工作方式,设置以后一般保持不变的基本工作方式,设置以后一般保持不变操作命令:是在初始化以后的正常工作中写入的,它实现对操作命令:是在初始化以后的正常工作中写入的,它实现对8259A8259A的状态,中断方式和过程的的状态,中断方式和过程的动态控制动态控制,在工作中可随,在工作中可随时写入操作命令字,以修改某些控制方式时写入操作命令字,以修改某

51、些控制方式第第6 6章章 输入输出系统输入输出系统8259A8259A内部有内部有7 7个寄存器,分为两组:个寄存器,分为两组:初始化命令寄存器组包括初始化命令寄存器组包括4 4个寄存器:个寄存器:ICW1ICW1ICW4ICW4对应的寄存器对应的寄存器操作命令寄存器组包括操作命令寄存器组包括3 3个寄存器:个寄存器:OCW1 OCW1 OCW3 OCW3对应的寄存器对应的寄存器由于由于8259A8259A只有一条地址线只有一条地址线A0A0,所以它只能有两个端口地址,所以它只能有两个端口地址,而而8259A8259A有有7 7个命令字,每个命令字要写入相应的寄存器。为此,个命令字,每个命令字

52、要写入相应的寄存器。为此,采取以下几点措施:采取以下几点措施: 1 1)以端口地址区分)以端口地址区分 2 2)把命令字中的某些位作为特征码来区分)把命令字中的某些位作为特征码来区分 3 3)以命令字的写入顺序来区分)以命令字的写入顺序来区分在在PC/XTPC/XT中,中,8259A8259A的两个端口地址分别为的两个端口地址分别为20H20H和和21H21H第第6 6章章 输入输出系统输入输出系统(1 1)8259A8259A的初始化控制字的初始化控制字 初始化控制字初始化控制字ICW(Initialization Control ICW(Initialization Control Wor

53、d)Word)是在计算机启动的过程中设定完成的,计算机启是在计算机启动的过程中设定完成的,计算机启动起来后,动起来后,8259A8259A就按初始设定的状态工作。就按初始设定的状态工作。 1) 8259A 1) 8259A初始化的顺序初始化的顺序 8259A 8259A有四条初始化控制字有四条初始化控制字ICWICWl l、ICWICW2 2、ICWICW3 3和和ICWICW4 4,由于,由于8259A8259A只有一根地址线,只有一根地址线,因此对各个控制字因此对各个控制字的操作是按照一定的顺序并结合某些数据位来进行寻的操作是按照一定的顺序并结合某些数据位来进行寻址设置的。址设置的。825

54、9A8259A初始化的顺序如下图所示。初始化的顺序如下图所示。第第6 6章章 输入输出系统输入输出系统8259A8259A的初始化顺序的初始化顺序第第6 6章章 输入输出系统输入输出系统(2) 2) 各初始化控制字的功能各初始化控制字的功能1ICW1ICW1 1的控制字格式如下图所示。的控制字格式如下图所示。ICW1ICW1的格式的格式A0=0A0=0、D4=1D4=1:是:是ICW1ICW1的的标志标志第第6 6章章 输入输出系统输入输出系统ICW1ICW1的主要功能:的主要功能:确定级连方式,触发方式确定级连方式,触发方式写入写入ICW1ICW1后,后,8259A8259A内部自动复位,其

55、内部自动复位,其复位功能复位功能为:为:初始化命令字顺序逻辑重新置位,准备接收初始化命令字顺序逻辑重新置位,准备接收ICW2ICW2、ICW3ICW3、ICW4ICW4清除清除IMRIMR和和ISRISRIRRIRR状态可读状态可读优先级排队,优先级排队,IR0IR0最高,最高,IR7IR7最低最低特殊屏蔽方式复位特殊屏蔽方式复位设定中断请求信号由低变为高的边沿触发有效设定中断请求信号由低变为高的边沿触发有效自动自动EOIEOI循环方式复位循环方式复位第第6 6章章 输入输出系统输入输出系统2ICW2ICW2 2在在8086/80888086/8088方式下,用于方式下,用于提供提供8 8个中

56、断源的中断个中断源的中断向量码。向量码。ICW2ICW2的高的高5 5位位T T7 7-T-T3 3在初始化编程时设置,初始化在初始化编程时设置,初始化低低3 3位由位由8259A8259A用中断源的编号填写。在用中断源的编号填写。在8080(85)8080(85)方式下,方式下,ICWICW2 2是中断向量地址的是中断向量地址的A A1515-A-A8 8位,低位地址在位,低位地址在ICWlICWl的的A A7 7-A-A5 5中。中。 ICW2 ICW2的命令字格式如下图所示。的命令字格式如下图所示。 第第6 6章章 输入输出系统输入输出系统ICWICW2 2利用利用A A0 0=1=1和

57、初始化的次序来寻址和初始化的次序来寻址。在。在8086/80888086/8088系统中,初始化控制字系统中,初始化控制字ICWICW2 2是比较重要的,是比较重要的,它确定了它确定了8259A8259A外接中断源的起始中断向量码,并实外接中断源的起始中断向量码,并实现了每个中断源中断向量码的自动生成。下面举例说现了每个中断源中断向量码的自动生成。下面举例说明中断向量码的形成情况。明中断向量码的形成情况。 在初始化编程时要保持在初始化编程时要保持ICWICW2 2的低三位为的低三位为“0”“0”,如,如设定设定ICWICW2 2为为“11111000”(F8H)“11111000”(F8H)。

58、如果某一中断源。如果某一中断源IRnIRn有中断请求,将有中断请求,将n n填入填入ICWICW2 2的低的低3 3位,与高位,与高5 5位共同组成位共同组成该中断源的中断向量码,如下表所示。该中断源的中断向量码,如下表所示。第第6 6章章 输入输出系统输入输出系统中断向量码的形成情况表ICW2D7D6D5D4D3D2D1D0中断向量码中断源11111000F8H11111000F8HIR011111001F9HIR111111010FAHIR211111011FBHIR311111100FCHIR411111101FDHIR511111110FEHIR611111111FFHIR7第第6 6

59、章章 输入输出系统输入输出系统3ICW33ICW3的功能:确定主片和从片的级连状态,即确定主片的的功能:确定主片和从片的级连状态,即确定主片的级连位和从片的编码级连位和从片的编码 ICW ICW3 3用于用于8259A8259A的级联,若系统中只有一片的级联,若系统中只有一片8259A8259A,则不用,则不用ICWICW3 3;若;若8259A8259A工作于级联方式,则需要用工作于级联方式,则需要用ICWICW3 3设置设置8259A8259A的的状态。是否需要状态。是否需要ICWICW3 3,取决于,取决于ICWICWl l中的中的SNGLSNGL位的状态。在级位的状态。在级联方式下,主

60、控联方式下,主控8259A8259A的的ICWICW3 3表示表示8259A8259A的级联结构,的级联结构,ICWICW3 3中中被置位的位表示对应的被置位的位表示对应的IRnIRn输入端接有从属输入端接有从属8259A8259A,并与从属,并与从属8259A8259A的的INTINT输出端相连。在中断响应过程中,如果从属输出端相连。在中断响应过程中,如果从属8259A8259A发出中断请求的优先级最高,则中断向量由相应的从发出中断请求的优先级最高,则中断向量由相应的从设备设备8259A8259A发送。发送。第第6 6章章 输入输出系统输入输出系统对于从设备对于从设备8259A8259A,I

61、CW3ICW3中低中低3 3位是从设备标志代码,位是从设备标志代码,它等于主设备对应它等于主设备对应IRIR输入端的编码。在中断响应过程输入端的编码。在中断响应过程中,中,主设备把主设备把IRnIRn的编码的编码n n送上级联线送上级联线CASCAS2 2CASCAS0 0,从设,从设备把它与自己的从设备标志进行比较,并把比较结果备把它与自己的从设备标志进行比较,并把比较结果相等的从设备的中断向量送到数据总线上。从设备的相等的从设备的中断向量送到数据总线上。从设备的ICW3ICW3格式。格式。 ICWICW3 3利用利用A A0 0=1=1和和ICWICW1 1中中SNGL=1SNGL=1及初

62、始化顺序寻址。及初始化顺序寻址。第第6 6章章 输入输出系统输入输出系统ICW3的格式第第6 6章章 输入输出系统输入输出系统4ICW4ICW4 4只有在只有在ICWICW1 1的的ICIC4 4=1=1时才使用,其格式如下图所示。时才使用,其格式如下图所示。主要功能:选择主要功能:选择CPUCPU系统,确定中断结束方式;规定是主片系统,确定中断结束方式;规定是主片还是从片,确定是否是缓冲方式还是从片,确定是否是缓冲方式ICW4ICW4格式格式ICW4利用利用A0=1、IC4=1和初始化的顺序寻址。和初始化的顺序寻址。第第6 6章章 输入输出系统输入输出系统写完写完ICWICW后,后,8259

63、A8259A建立了基本的工作环境建立了基本的工作环境初始化命令字一定要在系统复位后首先写入初始化命令字一定要在系统复位后首先写入8259A8259A,写入时要严格按照写入的顺序,不允许颠倒,写入时要严格按照写入的顺序,不允许颠倒写完初始化命令字后,也要写入操作命令字写完初始化命令字后,也要写入操作命令字OCWOCW来来改变某些中断方式改变某些中断方式操作命令字可以随时写入、修改,但是初始化命令操作命令字可以随时写入、修改,但是初始化命令字一经写入一般不再改动字一经写入一般不再改动如果在写入初始化命令字后不写入操作命令字,则如果在写入初始化命令字后不写入操作命令字,则8259A8259A便处于全

64、嵌套工作方式便处于全嵌套工作方式第第6 6章章 输入输出系统输入输出系统(3 3)8259A8259A操作命令字操作命令字在初始化命令字写入在初始化命令字写入8259A8259A之后,之后,8259A8259A就准备接就准备接收中断请求输入信号了收中断请求输入信号了在在8259A8259A工作期间,工作期间,CPUCPU可以随时通过操作命令字可以随时通过操作命令字使使8259A8259A完成各种不同的工作方式完成各种不同的工作方式8259A8259A有三种操作命令字:有三种操作命令字:OCW1-OCW3OCW1-OCW3在写入时,他们与初始化命令字不同,他们不是在写入时,他们与初始化命令字不同

65、,他们不是按一定的顺序写入,而是按设计者的要求写入的按一定的顺序写入,而是按设计者的要求写入的第第6 6章章 输入输出系统输入输出系统8259A8259A操作命令字的寻址操作命令字的寻址 当初始化完成后,对当初始化完成后,对8259A8259A操作命令字的寻址是通操作命令字的寻址是通过过8259A8259A的地址线的地址线A A0 0和某些数据位结合来进行的。具体和某些数据位结合来进行的。具体寻址条件如下:寻址条件如下:当当A A0 0=1=1时,寻址时,寻址OCWOCW1 1;当当A A0 0=0=0,D D4 4=0=0,D D3 3=0=0时,寻址时,寻址OCWOCW2 2;当当A A0

66、 0=0=0,D D4 4=0=0,D D3 3=1=1时,寻址时,寻址OCWOCW3 3。第第6 6章章 输入输出系统输入输出系统8259A8259A的操作命令的操作命令1)OCW1)OCW1 1。当。当A A0 0=1=1时,可寻址时,可寻址OCWOCW1 1。OCWOCW1 1是中断屏蔽命令是中断屏蔽命令字,其格式如下图所示。字,其格式如下图所示。OCWOCW1 1用来设置用来设置8259A8259A的屏蔽操作,的屏蔽操作,OCWOCWl l的每一位对应中断屏蔽寄的每一位对应中断屏蔽寄存器存器IMRIMR的相应屏蔽位,通过的相应屏蔽位,通过OCWOCW1 1对对IMRIMR进行置位和复位

67、操作。进行置位和复位操作。M M7 7M M0 0代表代表8 8个屏蔽位,用来控制个屏蔽位,用来控制IRIR输入的中断请求信号,如果某输入的中断请求信号,如果某一位一位M M为为1 1,它就屏蔽对应的,它就屏蔽对应的IRIR中断请求中断请求( (即即M M0 0=1=1屏蔽屏蔽IRIR0 0,M M1 1=1=1屏屏蔽蔽IRIR1 1等等) )。如果。如果M=0M=0,则清除屏蔽状态,允许对应的,则清除屏蔽状态,允许对应的IRIR输入信号输入信号产生产生INTINT输出,请求输出,请求CPUCPU进行服务。进行服务。第第6 6章章 输入输出系统输入输出系统OCW1的格式第第6 6章章 输入输出

68、系统输入输出系统2)OCW2。当A0=0,D4=D3=0时可寻址OCW2。格式和各位的功能如下图所示。功能:控制8259A中断循环优先级方式及发送命令中断结束方式R:优先权循环控制位,R=1为循环优先权,R=0为固定优先权。 SL:选择指定的IR级别位。SL=1,操作在L2L0指定的编码级别上执行;SL=0,L2L0无效。EOI:中断结束命令位,在非自动中断结束命令情况下,EOI=1表示中断结束命令,它使ISR中最高优先权位复位;EOI=0则不起作用。第第6 6章章 输入输出系统输入输出系统OCW2的格式第第6 6章章 输入输出系统输入输出系统3OCW3。当A0=0,D4=0,D3=1时,寻址

69、OCW3。OCW3主要控制8259A的中断屏蔽、查询和读寄存器等状态。OCW3的格式及各位功能如下图所示。OCW3的格式第第6 6章章 输入输出系统输入输出系统ESMM:允许或禁止SMM位起作用的控制位。ESMM为1时允许SMM位起作用,为0时禁止SMM位起作用。SMM:设置特殊屏蔽方式选择位。与ESMM位共同起作用。P:查询命令位。P=1时,8259A发送查询命令;P=0时,不处于查询方式。OCW3设置查询方式以后,随后送到8259A RD端的读脉冲作为中断响应信号,读出最高优先权的中断请求IR级别码。RR:读寄存器命令位。RR=1时允许读IRR或ISR,RR=0时禁止读这两个寄存器。RIS

70、:读IRR或ISR选择位。第第6 6章章 输入输出系统输入输出系统(4)读8259A状态读8259A的状态时指读8259A内部的IRR、ISR和IMR的内容读读IRRIRR:先发出OCW3命令(使RR=1、RIS=0,地址A00),在下一个读信号时可以读出IRR,其中包含尚未被相应的中断情况。读读ISRISR:先发出OCW3命令(使RR=1、RIS=1,地址A00),在下一个读信号时可以读出ISR,其中包含正在服务的中断情况,也可以看出中断嵌套情况。读读IMRIMR:不必先发OCW3,只要读奇地址端口(A0=1),则可以读出IMR,其中 包含设置的中断屏蔽情况。第第6 6章章 输入输出系统输入

71、输出系统(5 5)8259A8259A多片级连多片级连 级连系统中,每个从片的中断请求输出线级连系统中,每个从片的中断请求输出线INTINT直接连到主片的直接连到主片的某个中断请求输入线上,主片的某个中断请求输入线上,主片的CAS0CAS0CAS2CAS2是输出线,输出被是输出线,输出被响应的从片代码,从片的响应的从片代码,从片的CAS0CAS0CAS2CAS2是输入线,接收主片发出是输入线,接收主片发出的从片代码,一边与自身代码相比较。的从片代码,一边与自身代码相比较。级连方式的要点如下:级连方式的要点如下:一个一个8259A8259A主片至多带主片至多带8 8个从片,可扩展至个从片,可扩展

72、至6464级级缓冲方式下,主片和从片的设定又缓冲方式下,主片和从片的设定又ICW4ICW4的的M/SM/S位确定,位确定,M/SM/S1 1是主片,是主片,M/SM/S0 0是从片。是从片。M/SM/S的状态在的状态在BUFBUF1 1时有意义时有意义在非缓冲方式下,主片和从片有在非缓冲方式下,主片和从片有SP/ENSP/EN引脚的引脚的SPSP功能确定,功能确定,SP=1SP=1是主片,是主片,SP=0SP=0是从片。是从片。在级连系统中,主片的三条级连线相当于从片的片选信号,从在级连系统中,主片的三条级连线相当于从片的片选信号,从片的片的INTINT是主片的中断请求输入信号是主片的中断请求

73、输入信号在编程时,主片和从片需要分别尽心初始化操作,可设定为不在编程时,主片和从片需要分别尽心初始化操作,可设定为不同的工作方式。同的工作方式。第第6 6章章 输入输出系统输入输出系统(6)8259编程举例例例1 1IBMPC机中,只有一片8259A,可接受外部8级中断。在I/O地址中,分配8259A的端口地址为20H和21H,初始化为:边沿触发、缓冲连接、中断结束采用EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H0FH,初始化程序为: MOV DX,20H MOV AL,00010011B OUT DX,AL ;写入ICW1 MOV DX,21H MOV AL,08

74、H OUT DX,AL ;写入ICW2 MOV AL,00001101B OUT DX,AL ;写入ICW4 XOR AL,AL OUT DX,AL ;写入OCW1第第6 6章章 输入输出系统输入输出系统例例2.2.设置、撤销屏蔽方式,设置中断查询方式等。教材P229 例7.1第第6 6章章 输入输出系统输入输出系统例例3 3读8259A相关寄存器的内容。 设8259A的端口地址为20H、21H,请读入IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。解:MOV AL,xxx01010B 发OCW3,欲

75、读取IRR的内容 OUT 20H,AL IN AL,20H 读入并保存IRR的内容 MOV 2000H,AL MOV AL,xxx01011B 发OCW3,欲读取ISR的内容 OUT 20H,AL IN AL,20H 读入并保存ISR的内容 MOV 2001H,AL第第6 6章章 输入输出系统输入输出系统IN AL,21H ;读入并保存IMR的内容MOV 2002H,ALMOV AL,xxx0110xB ;发OCW3,欲查询是否有中断请求OUT 20HIN AL,20H ;读入相应状态,并判断最高位是否为1TEST AL,80H JZ DONEAND AL,07H ;判断中断源的编码 DONE

76、:HLT第第6 6章章 输入输出系统输入输出系统例4.8259A级联应用,某系统有两片8259A对于主片:IR2和IR5接有外部中断源请求,中断类型号分别为62H和65H,IR4级联,接从片8259A的INT信号,主片的中断服务程序在同一段,段地址为4000H,两个中断服务程序的入口地址偏移值是2500H和2800H对于从片:IR0和IR3上接有外部中断源请求,中断类型号分别为40H和43H,输出的INT接主片8259A的IR4,从片的中断服务程序在同一段,段地址为3000H,偏移地址分别为1230H和4560H要求:分别写出主8259A和从8259A的初始化程序和中断向量设置程序第第6 6章

77、章 输入输出系统输入输出系统对主片8259A的初始化和中断向量设置(1)初始化要求(已有条件) 主片8259A的IR4接一个从片,S4=1 中断请求信号边沿出发,LTIM=0 中断类型号为60H67H,ICW2=60H 一般EOI中断结束方式,AEOI=0 非缓冲方式,SP/EN=1,BUF=0 采用特殊全嵌套方式,SFNM=1 除IR2、IR5、IR4以外,屏蔽所有中断,屏蔽字为11001011B 第第6 6章章 输入输出系统输入输出系统初始化程序:MOV AL, 11H ; IOW1MOV DX, MPORTO ; 偶地址OUT DX, ALMOV DX, MPORT1 ; 奇地址MOV

78、AL, 60H ; ICW2OUT DX, ALMOV AL, 10H ; ICW3OUT DX,ALMOV AL, 11H ; ICW4OUT DX,ALMOV AL, 0CBH ; OCW1OUT DX,ALMOV AL, 20H ; OCW2MOV DX, MPORTO ;偶地址OUT DX, AL第第6 6章章 输入输出系统输入输出系统对于从片8259A的初始化和中断向量设置初始化要求(已有条件) 从片8259A接在主片IR4上,ICW3=04H 中断请求信号边沿触发,LTIM=0 中断类型号为40H47H,ICW2=40H 一般EOI中断结束方式,AEOI=0 非缓冲方式,SP/EN

79、=1,BUF=0 采用特殊全嵌套方式,SFNM=1 除IR0、和IR3以外,屏蔽所有中断输入,屏蔽字为11110110B 第第6 6章章 输入输出系统输入输出系统初始化程序:MOV AL, 11H ; ICW1MOV DX, MPORTO ; 偶地址OUT DX, ALMOV DX, MPORT1 ; 奇地址MOV AL, 40H ; ICW2OUT DX, ALMOV AL, 04H ; ICW3OUT DX,ALMOV AL, 11H ; ICW4OUT DX,ALMOV AL, 0F6H ; OCW1OUT DX,ALMOV AL, 20H ; OCW2(EOI)MOV DX, MPOR

80、TO ;偶地址OUT DX, AL第第6 6章章 输入输出系统输入输出系统6.Intel 8259A6.Intel 8259A的应用举例的应用举例 (1 1)中断接口的设计)中断接口的设计将单片8259A接入8088系统中,设计其端口地址为FFF0H和FFF1H,其具体连接如下图所示。8259A由于只有一根地址线,因此它在系统中只占用两个端口地址。8259A内部的7个命令寄存器和3个状态寄存器的寻址是将这两个端口地址结合操作命令、特定数据位、严格的写入次序等来实现对8259A内部寄存器的寻址,如下表所示。第第6 6章章 输入输出系统输入输出系统8259A在系统中的连接第第6 6章章 输入输出系

81、统输入输出系统8259A8259A内部寄存器的寻址控制表内部寄存器的寻址控制表A0D4D3操作001读ISR、IRR及中断状态寄存器101读IMR00010写OCW200110写OCW30110写ICW1110写OCW1、ICW2、ICW3、ICW4第第6 6章章 输入输出系统输入输出系统(2 2)中断程序的编写)中断程序的编写 当把8259A接入系统后,就需要编写该接口的中断程序。中断程序由两个部分组成:中断接口的初始化程序和中断处理程中断接口的初始化程序和中断处理程序序。中断程序的编写。 初始化中断控制器8259A 初始化包括两个方面: 一是初始化8259A的初始状态; 二是完成中断向量表

82、的设置。第第6 6章章 输入输出系统输入输出系统1) 初始化8259A。由于8259A的ICW有严格的写入次序,因此,编程时必须根据其规定的初始化顺序对四个ICW进行初始化操作。 其初始化程序如下:8259A:MOVDX,0FFF0H;8259A口地址,A0=0MOVAL,13H;初始化字“00010011”送ICW1OUTDX,AL ;单片,边沿触发,需要ICW4MOVDX,0FFF1H;8259A口地址,A0=1MOVAL,0F8H;初始化字“11111000”送ICW2OUTDX,AL ;设置起始中断向量码(IRO)为F8HMOVAL,03H;初始化字“00000011”送ICW4OUT

83、DX,AL ;8086/8088模式,AEOI,非缓冲,一般全嵌套方式第第6 6章章 输入输出系统输入输出系统2) 设置中断向量。对IBM-PC/XT机,是在计算机启动过程中将中断向量表写入内存的。对用户自行设计的中断接口,当初始化完成后,需要人为设置中断向量表,以使设计的中断向量与相应的中断处理程序建立连接。这样,当CPU响应这些中断源的中断请求时,便能根据中断向量找到相应的处理程序,进行相应的中断服务。中断向量表的建立在上一节中已经详细讲解。第第6 6章章 输入输出系统输入输出系统 编写中断处理程序 中断处理程序用来完成对中断源的具体服务,在中断处理程序中,通过对OCW的设置,可以使825

84、9A在各种方式下工作。为了便于分析,我们利用IBM-PX/XT机的8259A,并将中断源简化成开关S,通过IRQ7来申请中断,如下图所示。利用开关申请中断第第6 6章章 输入输出系统输入输出系统当用户每按下一次开关时,即相当于从IRQ7端向计算机内部的8259A发送一次中断请求,该中断的服务是将“THIS IS A IRQ7 INT”显示在屏幕上。在IBM-PC/XT系统中IRQ7对应的中断向量为0FH,中断控制器8259A在系统中的地址为20H、21H。 中断程序设计如下:DATASEGMENT MESS DB THIS IS A IRQ7 INT!, 0AH, 0DH, $DATAENDS

85、CODESEGMENTASSUMECS:CODE,DS:DATA第第6 6章章 输入输出系统输入输出系统START: MOVAX,CSMOVDS,AXMOVDX,OFFSET INT7MOVAX,250FH;设中断程序INT7的类型号为0FHINT21H;设置中断向量表CLI;关中断INAL,21H;读中断屏蔽寄存器ANDAL,7FH;开放IRQ7中断OUT21H,AL;写OCW1MOVCX,10;定中断循环次数为10次STI第第6 6章章 输入输出系统输入输出系统LL:JMPLLINT7:MOVAX,DATA;中断服务程序MOVDS,AXMOVDX,OFFSET MESSMOVAH,09;显

86、示每次中断的提示信息INT21HMOVAL,20H;写OCW2写OUT20H,AL;发出EOI结束中断LOOPNEXTINAL,21H;读中断屏蔽寄存器第第6 6章章 输入输出系统输入输出系统ORAL,80H;关闭IR7中断OUT21H,AL;写OCW1STI;开中断MOVAH,4CH;返回DOSINT21HNEXT:IRET;中断返回CODENDSENDSTART第第6 6章章 输入输出系统输入输出系统6.4 DMA控制器8237A第第6 6章章 输入输出系统输入输出系统1.1.概述概述DMA ( Direct Memory Access )直接存储器传送方式,数据交换不通过CPU,而利用专

87、门的接口电路直接与系统存储器交换数据 DMA传送一般有三种形式存储器与I/O设备之间的数据传送存储器与存储器之间的数据传送I/O设备与I/O设备之间的传送第第6 6章章 输入输出系统输入输出系统DMA控制器必须有以下功能:能接收外设发出的DMA 请求信号,然后向CPU 发出总线接管请求信号。当CPU发出总线请求允许信号并放弃对总线的控制后,DMAC能接替对总线的控制,进入DMA方式。DMAC得到总线控制权后,要往地址总线发送地址信号,能修改地址指针,并能发出读写控制信号。能决定本次DMA传送的字节数,判断DMA传送是否结束。DMA过程结束时,能发出DMA 结束信号,将总线控制权交还给CPU。

88、第第6 6章章 输入输出系统输入输出系统(1 1)I/OI/O接口到存储器的传送。接口到存储器的传送。 当进行由I/O接口到存储器的数据传送时,来自I/O接口的数据利用DMAC送出的控制信号,将数据输送到系统数据总线D0D7上,同时,DMAC送出存储器单元地址及控制信号,将存在于D0D7上的数据写入所选中的存储单元中。这样就完成了由I/O接口到存储器一个字节的传送。同时DMAC修改内部地址及字节数寄存器的内容。(2 2)存储器到)存储器到I/OI/O接口接口 与前一种情况类似,在进行这种传送时,DMAC送出存储器地址及控制信号,将选中的存储单元的内容读出放在数据总线D0D7上,接着,DMAC送

89、出控制信号,将数据写到规定的(预选中)端口中去,而后MDAC自动修改内部的地址及字节数寄存器的内容。第第6 6章章 输入输出系统输入输出系统(3 3)存储器到存储器)存储器到存储器 8237具有存储器到存储器的传送功能,利用8237编程命令寄存器,可以选择通道0和通道1两个通道实现由存储器到存储器的传送。在进行传送时采用数据块传送方式,由通道0送出内存源区域的地址和控制信号,将选中内存单元的数据读到8237的暂存寄存器中,通道0修改地址及字节数寄存器的值;接着由通道1输出内存目的区域的地址及控制信号,将存放在暂存寄存器中的数据,通过系统数据总线,写入到内存的目的区域中去,而后通道1修改地址和字

90、节数寄存器的内容,通道1的字节计数器减到零或外部输入时可结束一次DMA传输过程。第第6 6章章 输入输出系统输入输出系统82378237各个通道的优先级及传输速率各个通道的优先级及传输速率(1 1)优先级)优先级8237有两种优先级方案可供编程选择: 1 固定优先级 规定各通道的优先级是固定的,即通道0的优先级最高,依次降低,通道3的优先级最低。 2 循环优先级 规定刚被服务通道的优先级最低,依次循环。这就可以保证4个通道的优先级是动态变化的,若3个通道已经被服务则剩下的通道一定是优先级最高的。第第6 6章章 输入输出系统输入输出系统(2)(2)传送速率传送速率 在一般情况下,8237进行一次

91、DMA传送需要4个时钟周期(不包括插入的等待周期SW)。 例如,PC机的时钟周期约210ns,则一次DMA传送需要210ns*4+2l0ns1050ns。 多加一个210 ns是考虑到人为插入一个SW的缘故。 另外,8237为了提高传送速率,可以在压缩定时状态下工作。在压缩定时状态下,每个DMA总线周期仅用2个时钟周期就可以实现,从而可以大幅度地提高数据的传送速率。 第第6 6章章 输入输出系统输入输出系统2.8237A2.8237A的结构和外部引脚的结构和外部引脚 Intel 8237是可编程DMA控制器芯片。5MHz时钟频率下,其传送速率可达每秒1.6MB,具有下面的特点:每个8237A芯

92、片有4个独立的DMA通道,即有4个DMAC。每个DMA通道具有不同的优先权,可以编程决定,并且都可以分别允许和禁止。每个通道有4种工作方式,一次传送的最大长度可达64KB。有4种DMA工作方式:单字节传送模式、块传送模式、请求传送模式和级联传送模式。多个8237A芯片可以级联,任意扩展通道数 第第6 6章章 输入输出系统输入输出系统(1)内部结构第第6 6章章 输入输出系统输入输出系统四个独立的四个独立的DMADMA通道,通道,每个通道都有:一个16位的基地址寄存器一个16位的基字节数计数器一个16位的当前地址寄存器一个16位的当前字节数计数器一个8位的方式寄存器,方式寄存器接收并保存来自于C

93、PU的方式控制字,使本通道能够工作于不同的方式下;时序及控制逻辑电路时序及控制逻辑电路对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进行译码,以确定DMA的工作方式,并控制产生所需要的时钟信号;第第6 6章章 输入输出系统输入输出系统优先级编码逻辑优先级编码逻辑 对通道进行优先级编码,确定在同时接收到不同通道的DMA请求时,能够确定相应的先后次序。通道的优先级可以通过编程确定为是固定的或者是循环的。共用寄存器共用寄存器1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的命令寄存器1个8位的暂存寄存器1个4位的屏蔽寄存器和1个4位的请求寄存器等第第6

94、 6章章 输入输出系统输入输出系统8237内部寄存器的类型和数量如下表所示,其中,数量为4个的寄存器,则每个通道一个,凡数量只有一个的,则为各通道所公用。 寄存器名长度(Bit) 数量寄存器名长度(Bit)数量基地址寄存器基字节数寄存器当前地址寄存器当前字节数寄存器地址暂存寄存器字节数暂存寄存器161616161616444411状态寄存器命令寄存器暂存寄存器方式寄存器屏蔽寄存器请求寄存器88864411141182378237的数据引线的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。第第6 6章章 输入输出系统输入输出系统(2)外部引脚第第6 6章章 输入输出系统输入输出系统C

95、LK时钟 CS#片选RESET 复位READY 准备就绪ADSTB 地址选通AEN地址允许MEMR# 存储器读MEMW# 存储器写IOR# 输入输出设备读 第第6 6章章 输入输出系统输入输出系统 IOW#输入输出设备写 EOP#DMA传输过程结束 DREQ通道DMA请求输入 DACK DMA控制器送给I/O接口的回答 HRQ 总线请求 HLDA总线响应 A3A0地址 A7A4地址 DB7DB0双向数据 第第6 6章章 输入输出系统输入输出系统(3) 8237A工作时各信号的配合 作为从模块工作时在8237A的空闲周期,CPU可以将数据写入8237A的内部寄存器或者从内部寄存器中读内容,此时8

96、237A工作在从模块下 作为主模块工作时在8237A控制DMA传送时,它工作在主模块下。此时8237A往总线提供要访问的内存地址, 第第6 6章章 输入输出系统输入输出系统3.8237A3.8237A的工作原理的工作原理(1)(1)工作模式:工作模式: 单字节传输模式 块传输模式 请求传输模式 级联传输模式 第第6 6章章 输入输出系统输入输出系统空闲周期有效周期DMA的每一个时钟周期称为一个S状态。8237A的工作时序包含SI、S0、S1、S2、S3、S4、SW共7 种状态 (2)8237A(2)8237A的典型时序的典型时序第第6 6章章 输入输出系统输入输出系统空闲周期(空闲周期(lad

97、e cyclelade cycle) 当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态,空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只做两项工作:采样各通道的DREQ请求输入线,只要无DMA请求,则其始终停留在SI状态;由CPU对8237进行读/写操作,即采样片选信号,只要信号变为有效的低电平,则表明CPU要对8237进行读/写操作,当8237采样为低电平而DREQ也为低,即外部设备没有向8237发DMA请求的情况下,则进入CPU对8237的编程操作状态,CPU可以向8237的内部寄存器进行写操作,以决定或者改变8237的工作方式,或者对8237内

98、部的相关寄存器进行读操作,以了解8237的工作状态。第第6 6章章 输入输出系统输入输出系统有效周期(有效周期(Active CycleActive Cycle)当处于空闲状态的8237的某一通道接收到外设提出的DMA请求DREQ时,它立即向CPU输出HRQ有效信号,在未收到CPU回答时,8237仍处于编程状态,又称初始状态,记为S0S0状态状态。经过若干个S0状态后,当8237收到来自于CPU的HLDA应答信号后,则进入工作周期,或称为有效周期,或者说8237由S0状态进入了S1S1状态状态。 S0状态是DMA服务的第一个状态,在这个状态下,8237已接收了外设的请求,向CPU发出了DMA请

99、求信号HRQ,但尚未收到CPU对DMA请求的应答信号HLDA;而S1状态则是实际的DMA传送工作状态,当8237接收到CPU发来的HLDA应答信号时,就可以由S0状态转入S1状态,开始DMA传送。第第6 6章章 输入输出系统输入输出系统在内存与外设之间进行DMA传送时,通常一个S1周期由4个时钟周期组成,即S1、S2、S3、S4,但当外设速度较慢时,可以插入SW等待周期;在内存的不同区域之间进行DMA传送时,由于需要依次完成从存储器读和向存储器写的操作,所以完成每一次传送需要8个时钟周期,在前四个周期S11、S12、S13、S14完成从存储器源区域的读操作,把数据放入DMAC的临时存储器中;后

100、四个时钟周期S21、S22、S23、S24完成向存储器目的区域的写操作,即把DMAC的临时存储器中的内容输出到指定存储器单元。第第6 6章章 输入输出系统输入输出系统第第6 6章章 输入输出系统输入输出系统4.8237A4.8237A的内部寄存器和命令的内部寄存器和命令A3A2A1A0低4位地址通道号写操作功能( =0)读操作功能( =0)00000通道0读当前地址寄存器写基地址和当前地址寄存器00011读当前字节计数器写基字节和当前字节寄存器00102通道1读当前地址寄存器写基地址和当前地址寄存器00113读当前字节计数器写基字节和当前字节寄存器01004通道2读当前地址寄存器写基地址和当前

101、地址寄存器01015读当前字节计数器写基字节和当前字节寄存器01106通道3读当前地址寄存器写基地址和当前地址寄存器01117读当前字节计数器写基字节和当前字节寄存器10008读状态寄存器写命令寄存器10019非法写请求寄存器1010A非法写单通道屏蔽寄存器1011B非法写模式寄存器1100C非法清除先/后触发器1101D读暂存器发主清除命令(软件复位)1110E非法清除屏蔽寄存器1111F非法写综合屏蔽命令第第6 6章章 输入输出系统输入输出系统(1)(1)模式寄存器的格式模式寄存器的格式 第第6 6章章 输入输出系统输入输出系统功能:(1) 内存到内存的传输 (2) 8237A的启动和停止

102、 (3) 状态及时序类型(4) 关于扩展写信号功能 (5) 优先级问题的解决 (6) DREQ信号和DACK信号的极性 (2) (2) 命令寄存器命令寄存器第第6 6章章 输入输出系统输入输出系统命令寄存器的格式命令寄存器的格式第第6 6章章 输入输出系统输入输出系统(3)(3)状态寄存器的格式状态寄存器的格式 第第6 6章章 输入输出系统输入输出系统(4)(4)请求标志的设置请求标志的设置 DMA请求寄存器的格式 :第第6 6章章 输入输出系统输入输出系统(5)(5)屏蔽寄存器的格式屏蔽寄存器的格式 第第6 6章章 输入输出系统输入输出系统8237A8237A综合屏蔽命令的格式综合屏蔽命令的

103、格式 第第6 6章章 输入输出系统输入输出系统(6)(6)暂存寄存器暂存寄存器(7)(7)主清除命令主清除命令(8)(8)清除先后触发器清除先后触发器(9)(9)地址和字节数寄存器地址和字节数寄存器第第6 6章章 输入输出系统输入输出系统5.8237A5.8237A的编程和应用的编程和应用对8237A 的初始化编程要考虑到 8237A芯片的初始化各个DMA通道的初始化。8327A芯片的初始化编程:只要写入命令寄存器即可。必要时,可以先输出主清除命令,对8237A进行软件复位,然后写入命令字。命令字影响所有4个通道的操作。DMA通道初始化编程,需要多个写入操作:将存储器起始地址写入地址寄存器(如

104、果采用地址减量工作,则是结尾地址);将本次DMA 传送的数据个数写入字节数寄存器(个数要减l );确定通道的工作方式,写入模式寄存器;写入屏蔽寄存器让通道屏蔽位复位,允许DMA 请求。第第6 6章章 输入输出系统输入输出系统8237的编程步骤(1)输出主清除命令(软件复位)(2)写入基与现行地址寄存器(3)写入基与现行字节寄存器(4)写入模式寄存器(5)写入屏蔽寄存器(6)写入命令寄存器(7)写入请求寄存器(若无软件请求就不需要)第第6 6章章 输入输出系统输入输出系统例如,在PC/XT机中,利用8237A通道0输出存储器地址进行DRAM的刷新操作,其DMA传送编程如下:OUT0DH,AL;DMAC主清除命令MOV AL,0;DMAC命令字,固定优先权,DREQ高有效,DACK低有效OUT08H,ALMOVAL,0OUT00H,AL;写入通道0的地址寄存器低字节OUT00H,AL;写入通道0的地址寄存器高字节MOVAL,0FFHOUT01H,AL;写入通道0的字节计数寄存器低字节OUT01H,AL;写入通道0的字节计数寄存器高字节MOV AL,58H ;通道0模式字,单字节传送,DMA读 ;地址增,自动初始化OUT0BH,ALMOVAL,0H;通道0屏蔽字:允许DREQ0 提出申请OUT0AH,AL

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号