汇编语言课件第6章输入输出系统_第1页
汇编语言课件第6章输入输出系统_第2页
汇编语言课件第6章输入输出系统_第3页
汇编语言课件第6章输入输出系统_第4页
汇编语言课件第6章输入输出系统_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章输入输出系统第6章

输入输出系统第一页,共一百三十六页。第6章输入输出系统6.1

输入输出接口系统概述第二页,共一百三十六页。第6章输入输出系统I/O接口的概念(什么是I/O接口?)把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。第三页,共一百三十六页。外设接口 ②可写(不可读)第6章输入输出系统第四页,共一百三十六页。主机(CPU)和I/O设备之间传送的信息格式(1)数据信息:数字量(计算机可以直接接收和处理的数据)模拟量·特点:①CPU开例关如量:对于输入设备的(2)状态信息“Ready”状态信息是CPU对与于外输设出之间设间设交备换的数“据Bu时sy的y的”联络信息。CPU通过读取外设状态信号,可知外设的工作状态。特点:①CPU 外设接口 ②可读(不可写)(3)控制信息控制信息是设置I/O外设(包括I/O接口)的工作模式、

命令字的有关信息。

如“启动”、“停止”信息。第6章输入输出系统I/O接口的基本功能(串为并什转么换要,用如i/ao/接d,口d/电a

路)总的来说,I/O接口具有转下换述;三电方平面转功换能等:。速度的匹配信息格式的变换提供主机和外设间传送数据所必须的状态和控制信息。第五页,共一百三十六页。第6章输入输出系统I/O接口的基本结构通常,每个接口电路包含一组寄存器:数据输入\输出寄存器、状态寄存器、控制寄存器通常称这些寄存器为I/O端口(I/O

PORT),每个端口有一个端口地址第六页,共一百三十六页。第6章输入输出系统6.2

CPU与外设数据的传输控制方式第七页,共一百三十六页。第6章输入输出系统CPU与外设数据的传输控制方式主要包括下面4种1、程序控制方式①无条件传送方式②程序查询方式2、中断控制方式3、DMA方式4、IOP方式第八页,共一百三十六页。第6章输入输出系统1、程序控制方式①无条件传送方式适用于总是处于准备好状态的外设优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄如:开关、发光器件(如发光二极管、7段数码管、灯泡等)、继电器、步进电机第九页,共一百三十六页。第6章输入输出系统显然,CPU在执行输入指令时,要求外设的数据已经准备好,否则就会出错。由于数据保持时间比CPU的由处于理外设速度较慢,要求接口有锁时间长,输入端必须用输入存缓功冲能,

即CPU送给外设的数据应(a器)与无C条PU件的传数送据的总输线入相方连方连。式该(b在)接无口条中件保传持送一的段输时间出间出。方式显然,CPU在执行输出指令时,必须保证锁存器是空闲的。从以上分析可以看出,无条件传送是最简便的传送方式, 它所需的硬件和软件都较少。第十页,共一百三十六页。第6章输入输出系统②查询方式适用于外设并不总是你准准备备好好,没而有且?对传送速率、传送效率要求不高的场合。对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口CPU在与外设交换数据前必须询问外设状态

。优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢第十一页,共一百三十六页。第6章输入输出系统•数查据询传式送输过入程的3个步骤:下①图CP所U示先为读查取询状式态输字入的接口电路,该电路有两个端口寄存器,②即检状查态状口态寄字存表器明和明和数输据入口设寄备存是器否。准备就绪③如果准备就绪,则执行输入指令读取数据,且使状态位复位。这样便开始下一个数据传输过程。查询输入的程序段如下:SCAN:

IN

AL,Stat

_Port;取状态信息TEST

AL,

01H

测状态标志JZSCAN;没有准备好继续检测INAL

,Data_Port;准备好了,输入数据第十二页,共一百三十六页。第6章输入输出系统当输入设备准备好数据之后,发出选通信号。它一方面把输入数据锁存到数据锁存器中,另一方面使状态标志触发器置1。状态标志是一位信号,通过缓冲器后,接到

CPU数据总线的某一位上,假设接至D7位。

CPU先读状态口,查询D7是否为1。若D7=1,表示输入数据已经准备好,再读数据口,取走输入数据,同时使状态标志触发器复位第十三页,共一百三十六页。第6章输入输出系统查询式输出当CPU要往一个外设输出数据时,先读取接口中的状态字,如果状态字表明外设有“空”或“不忙”,可以往外设输出数据,此时CPU才执行输出指令,否则CPU等待。接口电路如图:第十四页,共一百三十六页。第6章输入输出系统•数查据询传式送输过出程的3个步骤:下①图CP所U所U先示读为取查状询态式字输出的接口电路,该电路有两个②端检口查寄状存态器字,表即明状外态设态设是口否寄空存闲器(和即数不据忙口)寄存器。③如果空闲,则执行输出指令写数据,且使状态位清零。这样便开始下一个数据传输过程。查询输出的程序段如下:SCAN:IN

AL,Stat

_Port;取状态信息TEST

AL,

01H

; 测状态标志JNZ

SCAN;“忙”则继续检测OUT

Data_Port

AL;“空闲”则输出数据第十五页,共一百三十六页。第6章输入输出系统输出过程:当前输出设备空闲时,状态标志触发器清0。CPU在输出数据之前,先读取状态信息。假设忙闲标志接至数据线D0位,当D0=0时,表示输出设备空闲,CPU再对数据口执行输出指令。数据口选中信号一方面把输出数据写入锁存器,一方面使状态标志触发器置1,通知输出设备。当输出设备取走当前数据后,向接口发出确认信号ACK,使状态标志触发器清0,表示输出设备空闲。第十六页,共一百三十六页。第6章输入输出系统查询输出的程序段如下:SCAN:

IN

AL,状态口地址为;取状态信息TEST AL,

01H

测忙闲标志JNZ

SCAN ;

忙,转移MOV

AL,

某数OUT

数据口地址,AL;空闲,输出数据第十七页,共一百三十六页。第6章输入输出系统2、中断控制的输入/输出方式中断控方制式的输特入点和:输出方式,也称中断传送方式,即当外a)设C的P的PU的输的输效入率数高据,准提备高好了或控接制收程数序据执的行锁的存实器时为性b)CPU与外设可并行工作空时,c)主外动设向具CP有U发申出请中服断务请的求主,动使权CPU中断原来执行的程序(主程序),转去执行为外设服务的输入或输出操作,服务完毕,CPU再继续执行原来的程序。必须经过(1)暂停主程序,实现程序的转移,即中断响应。(2)保护和恢复有关寄存器内容。(3)执行

I/O操作,并实现内存到累加器再到端口之间的传送。(4)实现中断返回。第十八页,共一百三十六页。中断传送时的接口电路如图所示:输入装置锁存器数据中断类型码+5VDQ三态缓冲器INTR去数据总线DB选通装置中断允许WR地址总线地址译码器IO/M

去数据总线DB三态缓冲器INTA(中断响应信号)第6章输入输出系统&&第十九页,共一百三十六页。第6章输入输出系统3、直接存储器存取(DMA:Direct

Memory

Access)控制方式在这种方式下,传送的速度就只取决于存储器和外概念:数据在I/O接口与存设储的器工之作间速的速的传度送。,这不大经大CP提U的干预,而是在专用硬件电路的控高制了下数直据接传传送送速。度这种。种。方法称为DMA

。特点:在专门的硬件控制电路(DMAC)控制之下,由DMAC发出地址及读/写信号来实现高速数据传输。在此过程中,CPU放弃总线控制权,数据传送不经过CPU。第二十页,共一百三十六页。第6章输入输出系统应用:DMA传送主要应用于高速度大批量数据传送的系统中,如磁盘存取、图像处理、高速数据采集系统等,以提高数据的吞吐量。DMA传送一般有三种形式:①存储器与I/O设备之间的数据传送;②存储器与存储器之间的数据传送;③I/O设备与I/O设备之间的传送。第二十一页,共一百三十六页。为实现DMA工作方式而设计的专用接口电路,称为DMA控制器(DMAC)。例如,Intel公司的8257、8237,Zilog公司的Z

8410(Z80

DMAC),Motorola公司的MC6844等,都是能实现DMA方式的可编程DMAC芯片。DMA控制器必须有以下功能:①能接收外设发出的DMA

请求信号,然后向CPU

发出总线接管请求信号。②当CPU发出总线请求允许信号并放弃对总线的控制后,DMAC能接替对总线的控制,进入DMA方式。③DMAC得到总线控制权后,要往地址总线发送地址信号,能修改地址指针,并能发出读/写控制信号。④能决定本次DMA传送的字节数,判断DMA传送是否结束。⑤DMA过程结束时,能发出DMA 结束信号,将总线控制第权6章交输还入输给出系统第二十二页,共一百三十六页。第6章输入输出系统6.3中断控制器8259A第二十三页,共一百三十六页。第6章输入输出系统1.

Intel

8259A的主要性能和内部结构(1)Intel

8259A的主要性能Intel

8259A是被广泛使用的可编程中断控制器,在IBM-PC/XT机中,就使用Intel

8259A作为中断控制器。它用来管理输入到CPU的可屏蔽中断请求,其主要功能有:第二十四页,共一百三十六页。第6章输入输出系统1)可以直接管理8个中断源,级联方式下不用附加电路就可以管理64个可屏蔽中断源,并具有优先权判决功能。2)能为中断源提供中断向量码。可以对每一级中断进行屏蔽或允许控制。可提供多种可供选择的工作方式,并能通过编程或硬件连接进行控制。5)可直接与CPU连接,不需要外接硬件电路第二十五页,共一百三十六页。第6章输入输出系统8259A的内部结构框图IMR(Interrup每t

一Ma条sk请Re求gi线st上er有)用一来个存相放应屏的蔽位触信发器来息,IMR的每一保位存可请以求禁信止号IR,R中它对们应构位成的中了断中请断求请求寄(2)

IntelIS8R2(5I9nAt的er内r内r存up部t器t器结SIeR构rRv(iIcnetReergriusptterR)R)存e存eq放ue当st前正在进行服务的所Re有gi中st断e。r)I。SR中相应位的置位是在中断输入它信在号中进断入响。应期间,根据控制逻辑规定的优先权响级应别的和INITMAR脉的冲内期容间,,把由I优RR先中权允判许决中电断路的根优据先IR权R中最各高请的求中位断的请优先求先求权位级送别入和ISIRM。R中屏蔽位的状态,将中断的最高优先级请求位选通到ISR中。有一组预置命令字寄存器和一组操作命令字寄存器。•当有未被屏蔽的高级别的中断请求时,通过控制逻辑输出高电平的INT信号,向CPU申请中断。•当CPU允许中断时,发出中断响应信号INTA。在中断响应期间,它允许ISR的相应位置位,并发送相应的中断向量,通过数据总线缓冲器输出到总线上。第二十六页,共一百三十六页。第6章输入输出系统其内部各组成模块有如下功能。1)中断请求寄存器IRR8259A有8条外部中断请求输入信号线IR0~IR7,每一条请求线上有一个相应的触发器来保存请求信号,它们构成了中断请求寄存器IRR(Interrupt

Request

Register)。外部设备产生中断请求有两种方式:一种是边沿触发方式,它利用脉冲上升沿的跳变,并一直保持高电平直到中断被响应为止;另一种是电平触发方式,它通过输入并保持高电平来实现中断请求。第二十七页,共一百三十六页。第6章输入输出系统2)中断屏蔽寄存器IMRIMR(Interrupt

Mask

Register)用来存放屏蔽位信息,IMR的每一位可以禁止IRR中对应位的中断请求输入信号进入。但屏蔽优先权级别较高的中断请求输入,不会影响优先级较低的中断请求输入。3)中断服务寄存器ISRISR(Interrupt

Service

Register)存放当前正在进行服务

的所有中断。ISR中相应位的置位是在中断响应的INTA脉冲期间,由优先权判决电路根据IRR中各请求位的优先权级别和IMR中屏蔽位的状态,将中断的最高优先级请求位选通到ISR中。第二十八页,共一百三十六页。第6章输入输出系统4)优先权判决电路它在中断响应期间,根据控制逻辑规定的优先权级别和

IMR的内容,把IRR中允许中断的优先权最高的中断请求位送入

ISR。5)控制逻辑在8259A的控制逻辑电路中有一组预置命令字寄存器和一组操作命令字寄存器,利用它们通过编程设置来管理8259A的工作方式。当有未被屏蔽的高级别的中断请求时,通过控制逻辑输出高电平的INT信号,向CPU申请中断。当CPU允许中断时,发出中断响应信号INTA。在中断响应期间,它允许ISR的相应位置位,并发送相应的中断向量,通过数据总线缓冲器输出到总线上。第二十九页,共一百三十六页。第6章输入输出系统6)数据总线缓冲器这是8位双向三态缓冲器,用作8259A与数据总线的接口,传输命令控制字、状态字和中断向量。读/写控制电路该部件接收来自CPU的读/写命令,实现对8259A的读/写操作。级联缓冲器/比较器它们实现8259A芯片之间的级联,使得中断源可以由8级扩展至64级。第三十页,共一百三十六页。第6章输入输出系统2.

8259A的工作过程根据8259A的内部结构,其工作的过程如下:外部中断源通过IR0-IR7输入高电平中断请求信号外部中断源的中断请求信号使中断请求触发器IRR的相应位置“1”,并与IMR按位相“与”,送给优先权判决电路。优先权判决电路从IRR中检测出优先级最高的中断请求位,并将其与ISR中记录的正在被CPU服务的中断进行优先级比较。当提请的中断优先级高于正在服务的中断优先级时,中断优先权判决电路就向控制逻辑发出有效的中断请求信号。第三十一页,共一百三十六页。第6章输入输出系统(4)

当控制逻辑收到有效的中断请求信号时,向

CPU发出高电平信号INT,请求中断服务。在中断允许的情况下(IF=1),CPU接受中断请求INT,并发出中断响应信号INTA,对8086/8088CPU,将连续发出两个INTA脉冲。当8259A接到来自CPU的第一个INTA脉冲时,就把允许中断的最高优先级请求位置入ISR,并把IRR中

的相应位复位。如果工作在级联方式下,而且设备的

优先级最高,则主控8259A将送出级联地址CAS0-CAS2,将其加载至从属8259A上。第三十二页,共一百三十六页。第6章输入输出系统(7) 在第二个INTA脉冲,对单独使用或是级联方式下从属的8259A,将其中断向量发送至数据总线。CPU从数据总线上获取中断向量码,转移到相应的中断处理程序。中断结束时,通过在中断处理程序中向8259A发送一条EOI(中断结束)命令,使ISR相应位复位,或在AEOI(自动中断结束)方式下,由8259A在第二个INTA脉冲的后沿自动将ISR相应位复位。第三十三页,共一百三十六页。第6章输入输出系统中断响应周期第三十四页,共一百三十六页。第6章输入输出系统8259A芯片之间的级联第三十五页,共一百三十六页。第6章输入输出系统级联线CAS0-CAS2是8259A相互连接用的专用总线,用来构成8259A的主-从式级联控制结构。当8259A作为主设备时,CAS0-CAS2是输出信号;当8259A作为从设备时,它们是输入线。编程时设定的8259A的从设备标志保存在级联缓冲器内,系统中全部8259A级联线的对应端互连。在中断响应期间,主8259A把所有申请中断的从设备中优先级最高的8259A的从设备标志输出到级联线CAS0-CAS2上,从8259A把这个设备标志与级联缓冲器内保存的从设备标志进行比较。在后续的INTA脉冲期间,被选中的8259A从设备把中断向量送到数据总线上。这个中断向量也是在编程时预先设定的,保存在控制逻辑部件。第三十六页,共一百三十六页。第6章输入输出系统3.Intel

8259A的外部特性图

8259A的外围引脚排列第三十七页,共一百三十六页。第6章输入输出系统在上图中,各引脚的名称如下:07D

-D

:双向8位双数总线。RD:读输入信号。WR:写输入信号。

A0:地址选择输入。

CS:片选输入。

CAS0-CAS2:级联线。第三十八页,共一百三十六页。SP/EN:双功能线。8259A工作在缓冲方式时,该引脚输出低电平控制信号,用来控制系统总线与8259A数据引线之间的数据缓冲器,使中断向量码能在第二个INTA周期正常从8259A输出。当8259A工作在级联方式时,该引脚为输入,SP=1,设定8259A为主控器;SP=0,设定8259A为从属部件。IR0-IR7:中断请求输入。INT:8259A向CPU输出的中断请求端,与CPU的INTR引脚相连。INTA:中断响应输入端,接收CPU向8259A输入的中断响应信号。第6章输入输出系统第三十九页,共一百三十六页。第6章输入输出系统8259A与标准总线的连接第四十页,共一百三十六页。第6章输入输出系统4.

8259A的主要工作方式第四十一页,共一百三十六页。第6章输入输出系统8259A这些工作方式,可以通过编程设置或改变。优先权的管理方式1>全嵌套方式这是8259A默认的优先权设置方式,在全嵌套方式下,8259A所管理的8级中断优先权是固定不变的,其中IR0的中断优先级最高,IR7的中断优先级最低。CPU响应中断后,请求中断的中断源中,优先级最高的中断源,在 中断服务寄存器ISR中的相应位置位,而且把它的中断矢量送至系 统数据总线,在此中断源的中断服务完成之前,与它同级或优先级 低的中断源的中断请求被屏蔽。第四十二页,共一百三十六页。第6章输入输出系统2>特殊全嵌套方式

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

CPU对于优先级别较高的主片的中断输入是允许的,另一方面,CPU对于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够响应的。第四十三页,共一百三十六页。第6章输入输出系统3>优先级自动循环方式在实际应用中,中断源优先级的情况是比较复杂的,要求8级中断的优先级在系统工作过程中,可以动态改变。即一个中断源的中断请求被响应之后,其优先级自动降为最低。系统启动时,8级中断优先级默认为IR0—IR7,这时,刚好IR4发出了中断请求,CPU响应之后,若8259A工作在优先级自动循环方式下,则中断优先级自动变为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。4>优先级特殊循环方式优先级特殊循环方式与自动循环方式相比,只有一点不同,即初始化的优先级是由程序控制的,而不是默认的IR0—IR7。第四十四页,共一百三十六页。第6章输入输出系统(2)中断源的屏蔽方式CPU对于8259A提出的中断请求,都可以加以屏蔽控制,屏蔽控制有下列几种方式:1>普通屏蔽方式:8259A的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为“1”,则中断请求不能送CPU。屏蔽是通过对屏蔽寄存器IMR的编程(操作命令字OCW1),来加以设置和改变的。第四十五页,共一百三十六页。第6章输入输出系统2>特殊屏蔽方式:有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。设置了特殊屏蔽方式后,用OCW1对屏蔽寄存器中的某一位复位时,同时也会是中断服务寄存器ISR中的相应位复位,这样就不只屏蔽了正在处理的等级中断,而且真正开放了其它优先级别较低的中断请求。特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,而允许其它任何级别的中断请求。第四十六页,共一百三十六页。第6章输入输出系统(3)结束中断处理的方式按照对中断结束(复位中断响应寄存器ISR中相应位)的不同处理,

8259A有两种工作方式,即自动结束方式(AEOI)和非自动结束方式

(EOI)。而非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。1>中断自动结束方式(AEOI)这种方式仅适用于只有单片8259A的场合,在这种方式下,系统一旦响应中断,那么CPU在发第二个INTA脉冲时,就会使中断响应寄存器

ISR中相应位复位,这样一来,虽然系统在进行中断处理,但对于

8259A来讲,ISR没有相应的指示,就象中断处理结束,返回主程序之后一样。CPU可以再次响应任何级别的中断请求。第四十七页,共一百三十六页。第6章输入输出系统2>一般的中断结束方式一般的中断结束方式适用在全嵌套的情况下,当

CPU用输出指令向8259A发一般中断结束命令OCW2时,8259A才会使中断响应寄存器ISR中优先级别最高的位复位。第四十八页,共一百三十六页。第6章输入输出系统3>特殊的中断结束方式在特殊全嵌套模式下,系统无法确定哪一级中断为最后响应和处理的中断,也就是说,CPU无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。特殊的中断结束方式是指在CPU结束中断处理之后,向8259A发送一个特殊的EOI中断结束命令,这个特殊的中断结束EOI命令,明确指出了中断响应寄存器ISR中需要复位的位。这里,我们还要指出一点,在级联方式下,一般不用自动中断结束方式,而需要用非自动结束中断方式,一个中断处理程序结束时,都必须发两个中断结束EOI命令,一个发往主片,一个发往从片。第四十九页,共一百三十六页。第6章输入输出系统(4)系统总线的连接方式当8259A以级联方式用在一个大的系统下时,就要求对数据总线 进行驱动缓冲。缓冲方式就是用来设定系统总线与8259A数据总线 之间是否需要进行缓冲。1>非缓冲方式。在指定非缓冲方式时,SP/EN作为输入,用来识别8259A是主控制器还是从属控制器。2>缓冲方式。此方式下SP/EN为输出,EN作为允许缓冲器发送/接收的控制信号。第五十页,共一百三十六页。第6章输入输出系统(5)引入中断请求的方式按照引入中断请求的方式,8259A有下列几种工作方式:1>边沿触发方式8259A将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后相应引脚,可以一直保持高电平。第五十一页,共一百三十六页。第6章输入输出系统2>电平触发方式

8259A将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,在CPU响应中断,开中断之后,会引起第二次不应该有的中断。第五十二页,共一百三十六页。第6章输入输出系统3>中断查询方式当系统中的中断源很多,超过64个时,则可以使8259A工作在查询方式下,中断查询方式的特点是:中断源仍往8259A发中断请求,但8259A却不使用INT信号向CPU发中断请求信号。CPU内部的中断允许标志复位,所以CPU对INT引脚上出现的中断请求呈禁止状态。CPU用软件查询的方法来确定中断源,从而实现对设备的中断服务。可见,中断查询方式既有中断的特点,又有查询的特点,从外设的角度看,是靠中断的方式来请求服务,但从CPU的角度来看,是用查询方式来确定发中断请求的中断源。第五十三页,共一百三十六页。第6章输入输出系统查询是通过CPU向8259A发查询命令来实现,查询命令字由

OCW3构成,其格式如下:D7

。。。D3X

0

0

0

1D2

D1

D01

0

0其中D2=1,是查询命令的特征位。8259A在接到CPU发来的上述格式的查询命令之后,立即组成状态字,等待CPU来读取,状态字的格式如下:D7 。

D3

D2

D1

D0I

X

X

X

X

W2

W1

W0若I=0,则表示该8259A芯片没有中断请求,若I=1,则表示有中断请求,W2、W1、W0即为本片中中断请求优先级别最高的中断源的编码。第五十四页,共一百三十六页。第6章输入输出系统5.8259的初始化编程初始化编程:指系统在上电或复位后对可编程器件进行控制字设 定的一段程序8259A的命令控制字包括两个部分: 初始化命令字和操作命令字初始化命令字:一般在系统复位后的初始化编程中设置,用于确 定8259A的基本工作方式,设置以后一般保持不变操作命令:是在初始化以后的正常工作中写入的,它实现对8259A的状态,中断方式和过程的动态控制,在工作中可随时写入操作命令字,以修改某些控制方式第五十五页,共一百三十六页。第6章输入输出系统8259A内部有7个寄存器,分为两组:初始化命令寄存器组包括4个寄存器:ICW1-ICW4对应的寄存器操作命令寄存器组包括3个寄存器:OCW1-OCW3对应的寄存器由于8259A只有一条地址线A0,所以它只能有两个端口地址,而8259A有7个命令字,每个命令字要写入相应的寄存器。为此,采取以下几点措施:以端口地址区分把命令字中的某些位作为特征码来区分以命令字的写入顺序来区分在PC/XT中,8259A的两个端口地址分别为20H和21H第五十六页,共一百三十六页。第6章输入输出系统(1)8259A的初始化控制字初始化控制字ICW(Initialization

Control

Word)是在计算机启动的过程中设定完成的,计算机启动起来后,8259A就按初始设定的状态工作。1)

8259A初始化的顺序8259A有四条初始化控制字ICWl、ICW2、ICW3和ICW4,由于8259A只有一根地址线,因此对各个控制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的。8259A初始化的顺序如下图所示。第五十七页,共一百三十六页。第6章输入输出系统8259A的初始化顺序第五十八页,共一百三十六页。第6章输入输出系统1>ICW1的控制字格式如下图所示。ICW1的格式(2) 各初始化控制A字0=的0、功D能4=1:是ICW1的标志第五十九页,共一百三十六页。第6章输入输出系统A0=0、D4=1:是ICW1的标志。只要CPU向8259A发送一条A0=0和D4=1的命令时,这条命令就被译码为对ICW1进行操作。它启动8259A的初始化过程,产生下列动作:清除IMR,把最低优先级分配给IR7,把最高优先级分配给IR0,将从设备标志置成7,清除特殊屏蔽方式,设置读IRR方式。A7-A5:在8080(85)系统中为中断向量地址位,在8086/8088系统中不用。第六十页,共一百三十六页。ADI:设定8080(85)方式下中断向量地址间隔字节数,1为4字节,0为8字节。在8086/8088方式下此位不用SNGL:单个器件/级联方式指示。1表示系统中只有一个

8259A,0表示级联方式。IC4:该位用于设定有无ICW4。1表示使用ICW4,在8086/8088方式下,必须使用ICW4。0表示不用ICW4,此时ICW4所选择的全部功能位都置成0。第6章输入输出系统第六十一页,共一百三十六页。LTIM:中断输入寄存器的触发方式。0为边沿触发,中断输入信号上升沿时被识别并送入IRR。1为电平触发,中断输入信号为高电平即可进入IRR。这两种触发方式都要求高电平的请求信号在置位IRR相应位后一直保持,直到中断被响应为止。第6章输入输出系统ICW1的主要功能:确定级连方式,触发方式写入ICW1后,8259A内部自动复位,其复位功能为:①初始化命令字顺序逻辑重新置位,准备接收ICW2、ICW3、ICW4②清除IMR和ISR③IRR状态可读④优先级排队,IR0最高,IR7最低⑤特殊屏蔽方式复位⑥设定中断请求信号由低变为高的边沿触发有效⑦自动EOI循环方式复位第六十二页,共一百三十六页。第6章输入输出系统2>ICW2在8086/8088方式下,用于提供8个中断源的中断向量码。ICW2的高5位T7-T3在初始化编程时设置,初始化低3位由8259A用中断源的编号填写。在8080(85)方式下,ICW2是中断向量地址的A15-A8位,低位地址在ICWl的A7-A5中。

ICW2的命令字格式如下图所示。第六十三页,共一百三十六页。第6章输入输出系统ICW2利用A0=1和初始化的次序来寻址。在8086/8088系统中,初始化控制字ICW2是比较重要的,它确定了8259A外接中断源的起始中断向量码,并实现了每个中断源中断向量码的自动生成。下面举例说明中断向量码的形成情况。在初始化编程时要保持ICW2的低三位为“0”,如设定ICW2为“11111000”(F8H)。如果某一中断源IRn有中断请求,将n填入ICW2的低3位,与高5位共同组成该中断源的中断向量码,如下表所示。第六十四页,共一百三十六页。第6章输入输出系统中断向量码的形成情况表ICW2F8HD7D6D5D4D3D2D1D0中断向量中断源11111000码11111000F8HIR011111001F9HIR111111010FAHIR211111011FBHIR311111100FCHIR411111101FDHIR511111110FEHIR611111111FFHIR7第六十五页,共一百三十六页。第6章输入输出系统3>ICW3的功能:确定主片和从片的级连状态,即确定主片的级连位和从片的编码ICW3用于8259A的级联,若系统中只有一片8259A,则不用ICW3;若

8259A工作于级联方式,则需要用ICW3设置8259A的状态。是否需要ICW3,取决于ICWl中的SNGL位的状态。在级联方式下,主控8259A的ICW3表示8259A的级联结构,ICW3中被置位的位表示对

应的IRn输入端接有从属8259A,并与从属8259A的INT输出端相连。在中断响应过程中,如果从属8259A发出中断请求的优先级最高,则中断向量由相应的从设备8259A发送。第六十六页,共一百三十六页。第6章输入输出系统对于从设备8259A,ICW3中低3位是从设备标志代码,它等于主设备对应IR输入端的编码。在中断响应过程中,主设备把IRn的编码n送上级联线CAS2~CAS0,从设备把它与自己的从设备标志进行比较,并把比较结果相等的从设备的中断向量送到数据总线上。从设备的ICW3格式。ICW3利用A0=1和ICW1中SNGL=1及初始化顺序寻址。第六十七页,共一百三十六页。第6章输入输出系统ICW3的格式第六十八页,共一百三十六页。第6章输入输出系统4>ICW4只有在ICW1的IC4=1时才使用,其格式如下图所示。主要功能:选择CPU系统,确定中断结束方式;规定是主片还是从片,确定是否是缓冲方式ICW4利用A0=1、IC4=1和初始化的顺序寻址。ICW4格式第六十九页,共一百三十六页。第6章输入输出系统μPM:CPU类型选择,为1时用于8086/80

8系统中,为0时则工作于8080/8085系统中。AEOI:选择是否为自动中断结束方式。为1时为自动中断结束方式;为0时不用自动中断结束方式,此时必须在中断服务程序中使用EOI命令,使

ISR中最高优先权的位复位。M/S:在缓冲方式下有效,决定8259A作为主设备还是作为从设备工作。当BUF=1和M/S=1时,8259A按主设备工作;当BUF=1和M/S=0时,8259A按从设备工作。如果在非缓冲方式下,M/S位不起作用。第七十页,共一百三十六页。第6章输入输出系统BUF:用于指示8259A是否工作在缓冲方式,由此决定了8259A的SP/EN端的功能。为1时,8259A工作于缓冲方式,SP/EN用作允许缓冲器接收/发送的输出控制信号EN;SP/EN为0时,8259A不工作于缓冲方式,SP/EN用作主设备/从设备选择的输入控制信号SP。SFNM:这一位用来选择8259A在级联方式下是否工作于特殊全嵌套方式。如果主设备编程时设置SFNM=1,即为特殊全嵌套方式,它可确保从设备的中断输入实现真正的完全嵌套优先权结构。如果SFNM=0,表示8259A工作于一般全嵌套方式。ICW4利用A0=1、IC4=1和初始化的顺序寻址。第七十一页,共一百三十六页。第6章输入输出系统写完ICW后,8259A建立了基本的工作环境初始化命令字一定要在系统复位后首先写入8259A,写入时要严格按照写入的顺序,不允许颠倒写完初始化命令字后,也要写入操作命令字OCW来改变某些中断方式操作命令字可以随时写入、修改,但是初始化命令字一经写入一般不再改动如果在写入初始化命令字后不写入操作命令字,则

8259A便处于全嵌套工作方式第七十二页,共一百三十六页。第6章输入输出系统(3)8259A操作命令字在初始化命令字写入8259A之后,8259A就准备接收中断请求输入信号了在8259A工作期间,CPU可以随时通过操作命令字使

8259A完成各种不同的工作方式8259A有三种操作命令字:OCW1-OCW3在写入时,他们与初始化命令字不同,他们不是按一定的顺序写入,而是按设计者的要求写入的第七十三页,共一百三十六页。第6章输入输出系统8259A操作命令字的寻址当初始化完成后,对8259A操作命令字的寻址是通过

8259A的地址线A0和某些数据位结合来进行的。具体寻址条件如下:当A0=1时,寻址OCW1;当A0=0,D4=0,D3=0时,寻址OCW2;当A0=0,D4=0,D3=1时,寻址OCW3。第七十四页,共一百三十六页。第6章输入输出系统8259A的操作命令1)OCW1。当A0=1时,可寻址OCW1。OCW1是中断屏蔽命令字,其格式如下图所示。OCW1用来设置8259A的屏蔽操作,OCWl的每一位对应中断屏蔽寄存器IMR的相应屏蔽位,通过OCW1对IMR进行置位和复位操作。M7~M0代表8个屏蔽位,用来控制IR输入的中断请求信号,如果某一位M为1,它就屏蔽对应的IR中断请求(即M0=1屏蔽IR0,M1=1屏蔽IR1等)。如果M=0,则清除屏蔽状态,允许对应的IR输入信号产生INT输出,请求CPU进行服务。第七十五页,共一百三十六页。第6章输入输出系统OCW1的格式第七十六页,共一百三十六页。第6章输入输出系统2)OCW2。当A0=0,D4=D3=0时可寻址OCW2。格式和各位的功能如下图所示。功能:控制8259A中断循环优先级方式及发送命令中断结束方式R:优先权循环控制位,R=1为循环优先权,R=0为固定优先权。SL:选

择指定的IR级别位。SL=1,操作在L2~L0指定的编码级别上执行;SL=0,L2~L0无效。EOI:中断结束命令位,在非自动中断结束命令情况下,EOI=1表示中断结束命令,它使ISR中最高优先权位复位;EOI=0则不起作用。第七十七页,共一百三十六页。第6章输入输出系统OCW2的格式第七十八页,共一百三十六页。第6章输入输出系统04

3

3

33>OCW3。当A

=0,D

=0,D

=1时,寻址OCW

。OCW

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

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

IMR,其中包含设置的中断屏蔽情况。第八十一页,共一百三十六页。第6章输入输出系统(5)8259A多片级连级连系统中,每个从片的中断请求输出线INT直接连到主片的某个中断请求输入线上,主片的CAS0-CAS2是输出线,输出被响应的从片代码,从片的CAS0-CAS2是输入线,接收主片发出的从片代码,一边与自身代码相比较。级连方式的要点如下:一个8259A主片至多带8个从片,可扩展至64级缓冲方式下,主片和从片的设定又ICW4的M/S位确定,M/S=1是主 片,M/S=0是从片。M/S的状态在BUF=1时有意义在非缓冲方式下,主片和从片有SP/EN引脚的SP功能确定,SP=1是主片,

SP=0是从片。在级连系统中,主片的三条级连线相当于从片的片选信号,从片的INT是主片的中断请求输入信号在编程时,主片和从片需要分别尽心初始化操作,可设定为不同的工作方式。第八十二页,共一百三十六页。第6章输入输出系统(6)8259编程举例例1.IBMPC机中,只有一片8259A,可接受外部8级中断。在I/O地址中,分配8259A的端口地址为20H和21H,初始化为:边沿触发、缓冲连接、中断结束采用EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H—0FH,初始化程序为:MOV

DX,20HMOV

AL,

01

0

1BOUT

DX,AL;写入ICW1MOV

DX,21HMOV

AL,08HOUT

DX,AL;写入ICW2MOV

AL,00001101BOUT

DX,ALXOR

AL,ALOUT

DX,AL;写入ICW4;写入OCW1第八十三页,共一百三十六页。第6章输入输出系统例2.设置、撤销屏蔽方式,设置中断查询方式等。教材P229例7.1第八十四页,共一百三十六页。第6章输入输出系统例3.读8259A相关寄存器的内容。设8259A的端口地址为20H、21H,请读入IR、ISR、IMR寄存器的内容,并相继保存在数据段2

0H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。解:MOV

AL,xxx01010B

发OCW3,欲读取IRR的内容OUT

20H,ALIN

AL,20H

读入并保存IRR的内容MOV

[2000H],ALMOV

AL,xxx01011BOUT

20H,AL发OCW3,欲读取ISR的内容IN

AL,20HMOV

[2001H],AL读入并保存ISR的内容第八十五页,共一百三十六页。第6章输入输出系统IN

AL,21H;读入并保存IMR的内容MOV

[2002H],ALMOV

AL,xxx0110xBOUT

20H;发OCW3,欲查询是否有中断请求IN

AL,20H

;读入相应状态,并判断最高位是否为1TEST

AL,80HJZ

DONEAND

AL,07H…………DONE:HLT;判断中断源的编码第八十六页,共一百三十六页。第6章输入输出系统例4.8259A级联应用,某系统有两片8259A对于主片:IR2和IR5接有外部中断源请求,中断类型号分别为62H和65H,IR4级联,接从片8259A的INT信号,主片的中断服务程序在同一段,段地址为4

0H,两个中断服务程序的入口地址偏移值是25

0H和28

0H对于从片:IR0和IR3上接有外部中断源请求,中断类型号分别为40H和43H,输出的INT接主片8259A的IR4,从片的中断服务程序在同一段,段地址为3

0H,偏移地址分别为1230H和4560H要求:分别写出主8259A和从8259A的初始化程序和中断向量设置程序第八十七页,共一百三十六页。第6章输入输出系统对主片8259A的初始化和中断向量设置(1)初始化要求(已有条件)<1>主片8259A的IR4接一个从片,S4=1<2>中断请求信号边沿出发,LTIM=0<3>中断类型号为60H-67H,ICW2=60H<4>一般EOI中断结束方式,AEOI=0<5>非缓冲方式,SP/EN=1,BUF=0<6>采用特殊全嵌套方式,SFNM=1<7>除IR2、IR5、IR4以外,屏蔽所有中断,屏蔽字为11001011B第八十八页,共一百三十六页。第6章输入输出系统初始化程序:MOVAL,11H

;IOW1MOVDX,MPORTO;偶地址OUTDX,ALMOVDX,MPORT1;奇地址MOVAL,60H;

ICW2OUTDX,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章输入输出系统对于从片8259A的初始化和中断向量设置初始化要求(已有条件)<1>从片8259A接在主片IR4上,ICW3=04H<2>中断请求信号边沿触发,LTIM=0<3>中断类型号为40H-47H,ICW2=40H<4>一般EOI中断结束方式,AEOI=0<5>非缓冲方式,SP/EN=1,BUF=0<6>采用特殊全嵌套方式,SFNM=1<7>除IR0、和IR3以外,屏蔽所有中断输入,屏蔽字为

11110110B第九十页,共一百三十六页。第6章输入输出系统初始化程序:MOV

AL,

1H

;

ICW1MOV

DX,MPORTO;偶地址OUT

DX,

ALMOV

DX,MPORT1;奇地址MOV

AL,

40H ;

ICW2OUT

DX,

ALMOV

AL,

04H

;

ICW3OUT

DX,ALMOV

AL,

1H

;

ICW4OUT

DX,ALMOV

AL,

0F6H

;

OCW1OUT

DX,ALMOV

AL,20H;OCW2(EOI)MOV

DX,MPORTO;偶地址OUT

DX,AL第九十一页,共一百三十六页。第6章输入输出系统6.Intel

8259A的应用举例(1)中断接口的设计将单片8259A接入80

8系统中,设计其端口地址为

F0H和

F1H,其具体连接如下图所示。8259A由于只有一根地址线,因此它在系统中只占用两个端口地址。8259A内部的7个命令寄存器和3个状态寄存器的寻址是将这两个端口地址结合操作命令、特定数据位、

严格的写入次序等来实现对8259A内部寄存器的寻址,如下表所示。第九十二页,共一百三十六页。第6章输入输出系统8259A在系统中的连接第九十三页,共一百三十六页。第6章输入输出系统8259A内部寄存器的寻址控制表A0D4D3操作001读ISR、IRR及中断状态寄存器101读IMR00010写OCW200110写OCW30110写ICW1110写OCW1、ICW2、ICW3、ICW4第九十四页,共一百三十六页。第6章输入输出系统(2)中断程序的编写当把8259A接入系统后,就需要编写该接口的中断程序。中断程序由两个部分组成:中断接口的初始化程序和中断处理程序。中断程序的编写。①初始化中断控制器8259A初始化包括两个方面:一是初始化8259A的初始状态;二是完成中断向量表的设置。第九十五页,共一百三十六页。第6章输入输出系统1)初始化8259A。由于8259A的ICW有严格的写入次序,因此,编程时必须根据其规定的初始化顺序对四个ICW进行初始化操作。其初始化程序如下:8259A:MOV

DX,0FFF0H

;8259A口地址,A0=0AL,13H

;初始化字“00010011”送ICW1DX,AL;单片,边沿触发,需要ICW4MOVOUTMOVMOVOUTMOVOUTDX,0FFF1H

;8259A口地址,A0=1AL,0F8H;初始化字“11111000”送ICW2DX,AL

;设置起始中断向量码(IRO)为F8HAL,03H

;初始化字“00000011”送ICW4DX,AL;8086/8088模式,AEOI,非缓冲,一般全嵌套方式第九十六页,共一百三十六页。第6章输入输出系统2)设置中断向量。对IBM-PC/XT机,是在计算机启动过程中将中断向量表写入内存的。对用户自行设计的中断接口,当初始化完成后,需要人为设置中断向量表,以使设计的中断向量与相应的中断处理程序建立连接。这样,当CPU响应这些中断源的中断请求时,便能根据中断向量找到相应的处理程序,进行相应的中断服务。中断向量表的建立在上一节中已经详细讲解。第九十七页,共一百三十六页。②编写中断处理程序中断处理程序用来完成对中断源的具体服务,在中断处理程序中,通过对OCW的设置,可以使8259A在各种方式下工作。为了便于分析,我们利用IBM-PX/XT机的8259A,并将中断源简化成开7关S,通过IRQ

来申请中断,如下图所示。利用开关申请中断第6章输入输出系统第九十八页,共一百三十六页。第6章输入输出系统当用户每按下一次开关时,即相当于从IRQ7端向计算机内部的8259A发送一次中断请求,该中断的服务是将“THIS

IS

A

IRQ7INT”显示在屏幕上。在IBM-PC/XT系统中IRQ7对应的中断向量为0FH,中断控制器8259A在系统中的地址为20H、21H。中断程序设计如下:DATA

SEGMENTMESS

DB

"THIS

IS

A

IRQ7

INT!",

0AH,

0DH,

"$"DATACODEENDSSEGMENTASSUMECS:CODE,DS:DATA第九十九页,共一百三十六页。第6章输入输出系统START:

MOVAX,CSMOVDS,AXMOVDX,OFFSET

INT7MOVAX,250FH;设中断程序INT7的类型号为0FHINT21H;设置中断向量表CLI;关中断INAL,21H;读中断屏蔽寄存器ANDAL,7FH;开放IRQ7中断OUT21H,AL;写OCW1MOVCX,10;定中断循环次数为10次STI第一百页,共一百三十六页。第6章输入输出系统LL:INT7:JMPMOVMOVLLAX,DATADS,AX;中断服务程序MOVDX,OFFSET

MESSMOVAH,09;显示每次中断的提示信息INT21HMOVAL,20H;写OCW2写OUT20H,AL;发出EOI结束中断LOOPNEXTINAL,21H;读中断屏蔽寄存器第一百零一页,共一百三十六页。第6章输入输出系统OROUTAL,80H21H,AL;关闭IR7中断;写OCW1STI;开中断MOVAH,4CH;返回DOSINT21HNEXT:IRET;中断返回CODENDSENDSTART第一百零二页,共一百三十六页。第6章输入输出系统6.4

DMA控制器8237A第一百零三页,共一百三十六页。第6章输入输出系统1.概述DMA

Direct

Memory

A

ce

s

)–直接存储器传送方式,数据交换不通过CPU,而利用专门的接口电路直接与系统存储器交换数据DMA传送一般有三种形式–存储器与I/O设备之间的数据传送–存储器与存储器之间的数据传送–I/O设备与I/O设备之间的传送第一百零四页,共一百三十六页。第6章输入输出系统DMA控制器必须有以下功能:–能接收外设发出的DMA请求信号,然后向CPU发出总线接管请求信号。–当CPU发出总线请求允许信号并放弃对总线的控制后,DMAC能接替对总线的控制,进入DMA方式。–DMAC得到总线控制权后,要往地址总线发送地址信号,能修改地址指针,并能发出读/写控制信号。–能决定本次DMA传送的字节数,判断DMA传送是否结束。–DMA过程结束时,能发出DMA结束信号,将总线控制权交还给CPU。第一百零五页,共一百三十六页。第6章输入输出系统(1)I/O接口到存储器的传送。当进行由I/O接口到存储器的数据传送时,来自I/O接口的数据利用DMAC送出的控制信号,将数据输送到系统数据总线D0~D7上,同时,DMAC送出存储器单元地址及控制信号,将存在于D0~D7上的数据写入所选中的存储单元中。这样就完成了由I/O接口到存储器一个字节的传送。同时

DMAC修改内部地址及字节数寄存器的内容。(2)存储器到I/O接口与前一种情况类似,在进行这种传送时,DMAC送出存储器地址及控制信号,将选中的存储单元的内容读出放在数据总线D0~D7上,接着,DMAC送出控制信号,将数据写到规定的(预选中)端口中去,而后MDAC自动修改内部的地址及字节数寄存器的内容。第一百零六页,共一百三十六页。第6章输入输出系统(3)存储器到存储器8237具有存储器到存储器的传送功能,利用8237编程命令寄存器,可以选择通道0和通道1两个通道实现由存储器到存储器的传送。在进行传送时.采用数据块传送方式,由通道0送出内存源区域的地址和控制信号,将选中内存单元的数据读到8237的暂存寄存器中,通道0修改地址及字节数寄存器的值;接着由通道1输出内存目的区域的地址及控制信号,将存放在暂存寄存器中的数据,通过系统数据总线,写入到内存的目的区域中去,而后通道1修改地址和字节数寄存器的内容,通道1的字节计数器减到零或外部输入时可结束一次DMA传输过程。第一百零七页,共一百三十六页。第6章输入输出系统8237各个通道的优先级及传输速率(1)优先级8237有两种优先级方案可供编程选择:1>固定优先级规定各通道的优先级是固定的,即通道0的优先级最高,依次降低,通道3的优先级最低。2>循环优先级规定刚被服务通道的优先级最低,依次循环。这就可以保证4个通道的优先级是动态变化的,若3个通道已经被服务则剩下的通道一定是优先级最高的。第一百零八页,共一百三十六页。第6章输入输出系统(2)传送速率在一般情况下,8237进行一次DMA传送需要4个时钟周期(不包括插入的等待周期SW)。例如,PC机的时钟周期约210ns,则一次DMA传送需要

210ns*4+2l0ns=1050ns。多加一个210

ns是考虑到人为插入一个SW的缘故。另外,8237为了提高传送速率,可以在压缩定时状态下工作。在压缩定时状态下,每个DMA总线周期仅用2个时钟周期就可以实现,从而可以大幅度地提高数据的传送速率。第一百零九页,共一百三十六页。第6章输入输出系统2.8237A的结构和外部引脚Intel

8237是可编程DMA控制器芯片。5MHz时钟频率下,其传送速率可达每秒1.6MB,具有下面的特点:–每个8237A芯片有4个独立的DMA通道,即有4个DMAC。–每个DMA通道具有不同的优先权,可以编程决定,并且都可以分别允许和禁止。–每个通道有4种工作方式,一次传送的最大长度可达64KB。–有4种DMA工作方式:单字节传送模式、块传送模式、请求传送模式和级联传送模式。–多个8237A芯片可以级联,任意扩展通道数第一百一十页,共一百三十六页。第6章输入输出系统(1)内部结构第一百一十一页,共一百三十六页。第6章输入输出系统①四个独立的DMA通道,每个通道都有:一个16位的基地址寄存器一个16位的基字节数计数器一个16位的当前地址寄存器一个16位的当前字节数计数器一个8位的方式寄存器,方式寄存器接收并保存来自于CPU的方式控制字,使本通道能够工作于不同的方式下;②时序及控制逻辑电路对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进 行译码,以确定DMA的工作方式,并控制产生所需要的时钟信号;第一百一十二页,共一百三十六页。第6章输入输出系统③优先级编码逻辑对通道进行优先级编码,确定在同时接收到不同通道的DMA请求时,能够确定相应的先后次序。通道的优先级可以通过编程确定为是固定的或者是循环的。④共用寄存器1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的命令寄存器1个8位的暂存寄存器1个4位的屏蔽寄存器和1个4位的请求寄存器等第一百一十三页,共一百三十六页。8237内部寄存器的类型和数量如下表所示,其中,数量为4个的寄存器,则每个通道一个,凡数量只有一个的,则为各通道所公用。寄存器名长度(Bit)数量寄存器名长度(Bit)数量基地址寄存器164状态寄存器81基字节数寄存器164命令寄存器81当前地址寄存器164暂存寄存器81当前字节数寄存器164方式寄存器64地址暂存寄存器161屏蔽寄存器41字节数暂存寄存器161请求寄存器418237的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。第6章输入输出系统第一百一十四页,共一百三十六页。第6章输入输出系统(2)外部引脚第一百一十五页,共一百三十六页。第6章输入输出系统CLK

时钟CS#

片选RESET

复位READY

准备就绪ADSTB

地址选通AEN

地址允许MEMR#

存储器读MEMW#

存储器写IOR#

输入输出设备读第一百一十六页,共一百三十六页。第6章输入输出系统IOW#EOP#DREQDACKHRQHLDAA3~A0地址A7~A4地址DB7~DB0输入输出设备写DMA传输过程结束通道DMA请求输入DMA控制器送给I/O接口的回答总线请求总线响应双向数据第一百一十七页,共一百三十六页。第6章输入输出系统(3)8237A工作时各信号的配合①作为从模块工作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论