第七章输入输出接口_第1页
第七章输入输出接口_第2页
第七章输入输出接口_第3页
第七章输入输出接口_第4页
第七章输入输出接口_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

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

文档简介

第七章输入输出接口7.1输入输出接口基础7.2中断系统7.3DMA传送和DMA控制器82377.4主机板上的计时计数逻辑7 输入输出(I/O)接口运算器控制器CPU存储器输出设备I/O接口输入设备A.BUSD.BUSC.BUSCPUI/O设备I/O接口7 输入输出(I/O)接口基本概念I/O接口: 是介于CPU和I/O设备之间,把CPU和I/O设备连接起来,是CPU和I/O设备的桥梁。 CPU和I/O设备通过I/O接口进行信息交换,从而协调一致工作。7 输入输出(I/O)接口总线控制逻辑ROMRAM协处理器RT/COMSRAMI/O接口板组键盘磁盘驱动器网卡CRT显示器打印机微处理器MODEM鼠标主机板系统总线微机系统硬件组成图7 输入输出(I/O)接口在主机板上,与I/O接口有关的逻辑包括:

1.支持访问扩充板上存储器操作的逻辑2.支持执行输入输出指令的逻辑3.支持外部中断方式的以8259为核心的中断控制逻辑4.支持存储器直接读写(DMA)操作的以8237为核心组成的DMA控制逻辑这些逻辑是总线控制逻辑组成部分。7 输入输出(I/O)接口CPUI/O设备总线控制逻辑I/O插槽I/O接口I/O接口板组这些逻辑,一侧与CPU相连,受CPU控制和管理,另一侧形成系统总线接到扩充插槽的节点上,与I/O接口板组相连。注:I/O接口在主机板上。7.1输入输出(I/O)接口基础I/O接口的几个基本问题:数据输入输出的基本方式2.I/O接口的结构3.I/O指令要求的接口逻辑7.1.1输入输出(I/O)的基本方式基本概念:I/O端口:CPUI/O设备寄存器寄存器寄存器寄存器…….I/O接口CPUI/O设备I/O接口7.1.1输入输出(I/O)的基本方式CPUI/O设备I/O端口I/O端口I/O端口I/O端口…….I/O接口每一个I/O端口都是一个8位寄存器,都有唯一的一个地址(I/O地址范围0000~03FF即0~1023,这与内存物理地址相似),CPU通过I/O端口与I/O外设进行通信。CPU可以从I/O端口读入数据(IN指令),也可以向I/O端口输出数据(OUT指令)。0000H0001H03FFH7.1.1CPU与I/O设备通信通信过程输入过程I/O外设把数据送到I/O接口I/O接口通过端口把数据送进CPU输出过程CPU把数据送到I/O接口I/O外设从I/O接口中的端口中取数据可见,CPU和I/O接口之间通信是通过I/O端口进行的。7.1.1输入输出(I/O)的基本方式CPUI/O设备AX/ALI/O端口I/O端口I/O端口I/O端口…….I/O接口格式:INAL/AX,SRC功能:CPU从指定端口读入数据,送到AL或AX7.1.1输入输出(I/O)的基本方式格式:INAL/AX,SRC;不影响标志位功能:CPU从端口(寄存器)读入数据,送到AL或AXSRC有两种寻址方式:直接寻址。SRC为端口地址,其范围为00H~FFH(0~255)

如: INAL,28H INAX,0F0H(AL)([28H])(AX)([F1H]:[F0H])2.间接寻址。当端口地址大于FFH,即>255时候,要通过寄存器DX进行数据传递。 如: MOVDX,100H;100H=256>255 INAX, DX(AX)([101H]:[100H])7.1.1输入输出(I/O)的基本方式CPUI/O设备AX/ALI/O端口I/O端口I/O端口I/O端口…….I/O接口格式:OUTDST,AL/AX功能:CPU把AL或AX中的数据送到指定端口7.1.1输入输出(I/O)的基本方式格式:OUTDST,AL/AX;不影响标志位功能:CPU从AL或AX输出数据,送到端口(即寄存器里)DST有两种寻址方式:直接寻址。DST为端口地址,其范围为00H~FFH(0~255)

如: OUT28H,AL OUTF0H,AX([28H])(AL)

([F1H]:[F0H])(AX)

2.间接寻址。当端口地址大于FFH,即>255时候,要通过寄存器DX进行数据传递。 如: MOVDX,03FDH;3FDH=1021>255 OUTDX,AX ([3FEH]:[3FDH])(AX)

7.1.1输入输出(I/O)的基本方式输入输出同步问题CPU与外设之间,如何向对方提供联络信息,并以什么方式响应和处理对方提供的联络信息。当多个外设同时要求与CPU交换信息时,以什么策略解决多个外设传输请求。

7.1.1数据输入输出基本方式CPU与I/O设备之间传输信息的三种基本方式:程序直接控制传送方式(查询方式)程序中断控制传送方式(中断方式)存储器直接存取方式(DMA方式)CPUI/O设备I/O接口可实现CPU与I/O设备之间数据信息、状态信息和命令信息的传输。程序直接控制传送方式(查询方式)

查询方式查询方式是CPU在向接口输入或输出数据时,主动去检查I/O外设是否“准备好”,只有当确认I/O外设已具备传输条件后,才进行数据交换。输入状态信息准备好了?输入数据查询输入方式流程图NY状态端口地址:STATUSPORT数据端口地址:DATAPORT状态口的D7位为接口“准备好”位AGAIN:INAL,STATUSPORTANDAL,80H

JZAGAININAL,DATAPORT程序直接控制传送方式(查询方式)

查询方式显然,在查询方式下,CPU需要花费许多时间来查询外设的状态,并等外设进行数据传输的准备。

优点:不需要增加额外的硬件电路,易于实现。

缺点:CPU工作效率很低程序中断控制方式(中断方式)程序中断:指主机在运行程序时,出现了特殊情况,暂时停止执行正在运行的程序,转到另一段处理特殊情况的程序(中断处理子程序),等特殊情况处理程序执行完后,返回到被暂时停止的程序接着运行。内部中断(软件中断)外部中断(硬件中断)特殊情况就是中断。中断中断处理子程序中断请求主机运行程序类似于主程序调用子程序程序中断控制方式(中断方式)

程序中断控制方式:

借助于CPU响应外中断的能力,实现输入输出的控制。

当外设需要向CPU传输数据或者从CPU接收数据时候,首先向 CPU产生一个中断请求,然后CPU相应此请求,从而执行中断处理子程序,进行数据的传输。当然,数据的传输仍然是靠IN或者OUT指令来完成的。程序中断控制方式(中断方式)

程序中断控制方式特点:1.虽然程序中断功能参与了控制,但数据的传输仍然要靠IN或者OUT指令来完成。2.外设要求与 CPU传输数据的状态信息,不是用指令输入和测试的,而是从CPU的中断请求输入端直接加入的。中断控制输入输出是靠硬件和软件相配合来实现的。不需要进行查询,避免了用指令查询外设状态造成的大量时间浪费提高了CPU的时间利用率。需要有专门的接口逻辑电路——中断控制器。程序中断控制方式(中断方式)

程序中断控制方式:在外设没有准备好时候,CPU可以运行与数据传输无关的其他指令。外设准备好后,主动向CPU请求中断, CPU响应这一请求,暂停正在运行的程序而运行与外设进行数据传输的中断处理程序。由此可见,中断方式是CPU和外设进行I/O传输的有效方式,它可以避免因反复查询外设的状态而浪费时间,提高了CPU的工作效率。存储器直接存取方式(DMA方式)

DMA:在外设和存储器(内存)之间开辟直接的数据传输通道,数据传输不靠执行I/O指令,数据不经过CPU的任何寄存器,不破坏任何寄存器原有内容,在存储器与外设之间的通路上直接传输数据。这种I/O方式的实现主要靠硬件的功能。在数据传输时没有程序和指令的介入,但在数据传输前的准备工作,如传输涉及的存储区的开始地址、要传输的字节数等参数,还是要用程序指令来实现的。适合大批量的数据传输。存储器I/O接口I/O外设总线控制逻辑DMA控制器CPU系统总线7.1.2

输入输出接口的基本结构I/O接口包含硬件主机板上的接口逻辑;

系统总线;具体外设的接口逻辑。总线控制逻辑ROMRAM协处理器RT/COMSRAMI/O接口板组键盘磁盘驱动器网卡CRT显示器打印机微处理器MODEM鼠标主机板系统总线7.1.2

输入输出接口的基本结构2.IBMPC系统提供的接口资源IBMPC/XT及其兼容机的基本配置包括:主机箱、键盘、CRT显示器、打印机和软、硬盘机。IBMPC系统为I/O接口提供的资源:

1.硬件接口资源 2.软件接口资源7.1.2

输入输出接口的基本结构IBMPC系统为I/O接口提供的硬件资源:

(1)在扩充插槽上提供了系统级总线;(2)主机板上有键盘接口逻辑和扬声器接口逻辑;(3)主机板上有以两片8259为核心组成的中断控制逻辑;(4)主机板上以两片8237DMA控制器为核心组成的DMA传送控制逻辑;(5)一片8254定时/计数器芯片;(6)基本配置的I/O接口卡:显示器接口;两个并行口;两个RS232串行口;磁盘驱动器接口。7.1.2

输入输出接口的基本结构IBMPC系统为I/O接口提供的软件资源: 1.DOS功能调用 2.BIOS功能调用7.1.2

输入输出接口的基本结构几种常用的系统总线:

1.

最早的是IBMPC/XT系统总线。

2.ISA(industrialstandardarchitecture)总线标准是IBM公司1984年为推出PC/AT机而建立的系统总线标准,所以也叫AT总线。 3.EISA总线是1988年由Compaq等9家公司联合推出的总线标准。它是在ISA总线的基础上使用双层插座,在原来ISA总线的98条信号线上又增加了98条信号线,也就是在两条ISA信号线之间添加一条EISA信号线。 4.VESA(videoelectronicsstandardassociation)总线是1992年由60家附件卡制造商联合推出的一种局部总线,简称为VL(VESAlocalbus)总线。7.1.2

输入输出接口的基本结构几种常用的系统总线:

5.PCI(peripheralcomponentinterconnect)总线是当前最流行的总线之一,它是由Intel公司推出的一种局部总线。它定义了32位数据总线,且可扩展为64位。PCI总线主板插槽的体积比原ISA总线插槽还小,其功能比VESA、ISA有极大的改善,支持突发读写操作,最大传输速率可达132MB/s,可同时支持多组外围设备。PCI局部总线不能兼容现有的ISA、EISA、MCA(microchannelarchitecture)总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。 6.CompactPCI的意思是“坚实的PCI”,是当今第一个采用无源总线底板结构的PCI系统,是PCI总线的电气和软件标准加欧式卡的工业组装标准,是当今最新的一种工业计算机标准。7.1.5

IBMPC/AT机的I/O端口地址分配I/O端口(类似于内存单元)是存在于I/O接口中的8位的数据寄存器。每一个I/O端口都有一个唯一的I/O端口地址。I/O端口与内存单元的编址可有两种方式:

1.统一编址 2.单独编址(常用此种)单独编址: 1.内存单元的编址:00000H~FFFFFH 2.I/O端口编址:0000H~03FFH(0~1023)7.1.5

IBMPC/AT机的I/O端口地址分配用户可使用的I/O地址有:100H~1EFH220H~26FH280H~2AFH300H~35FH

PC/AT系统I/O端口地址分配:P349,表7.27.2中断系统主讲内容:中断功能外部中断和8259中断控制器应用中断功能7.2中断系统中断功能-主讲内容:中断种类和中断类型号中断向量表实模式下中断响应和返回操作过程7.2中断系统7.2.1微处理器的中断功能中断:指CPU暂停正在执行的程序,转去执行处理中断事件的中断服务程序,待执行完中断服务程序再返回到原来被中断的程序继续执行。中断源:引起中断的事件7.2.1微处理器的中断功能1.中断的种类和中断类型号(1)外部硬中断

微处理器外部事件发生,产生中断请求信号,中断请求信号再通过微处理器芯片上的接受中断请求信号的引脚加入微处理器而出现的中断。7.2.1微处理器的中断功能CPUINTRNMI不可屏蔽中断可屏蔽中断可屏蔽中断(INTR):CPU中标志寄存器中的IF位对该中断有控制作用。 1.IF=1,CPU将响应可屏蔽中断的中断请求。(STI) 2.IF=0,CPU将不响应可屏蔽中断的中断请求。(CLI)7.2.1微处理器的中断功能

可屏蔽中断(INTR)通常用于: 1.常规外部设备-键盘、打印机、磁盘、串口等 2.自己开发的接口设备或专用接口。本节主要讨论的可屏蔽中断(INTR)操作及应用。不可屏蔽中断(NMI):CPU中标志寄存器中的IF位对该中断没有控制作用,CPU对不可屏蔽中断请求的响应是无条件的,一旦CPU查询到NMI有请求,就立即响应。7.2.1微处理器的中断功能

NMI在外部中断源中的优先级是最高的,通常用于处理系统故障: 主机板上RAM奇偶校验错 扩展槽中I/O通道错 电源故障等。内部中断:可分为软中断和异常中断两类。软中断:是中断指令INT执行时所产生的中断。软中断和其它中断一样,发生软中断时,将转去执行中断服务子程序。不过,这样的子程序不是用户自己编写的子程序,而是由系统软件(主要是操作系统)提供的子程序。

INT指令实际上就是在编写汇编语言程序时,用软中断来实现用户程序调用系统提供的子程序。7.2.1微处理器的中断功能异常中断:可分为0、1、3、4号中断。0号中断:-被除零中断

当CPU执行除运算时,若出现除数为0,则0号中断。7.2.1微处理器的中断功能1号中断:-单步中断

CUP执行一条指令前,若检测到PSW的TF=1,则在该指令执行之后立即停止,引起1号中断,该中断支持程序但不跟踪的功能。异常中断:可分为0、1、3、4号中断。7.2.1微处理器的中断功能3号中断:-断点中断

该中断主要供调试程序使用。通常调试程序时,把程序按需分成若干段,每段设置一个断点。当CPU执行到断点时产生中断,供程序员检查各寄存器及有关存储单元的内容。4号中断:-益处中断

在执行单字节指令INTO时,如果CPU检测到溢出标志位,则产生4号中断,进行溢出处理。OF=0时,不产生中断。在微处理器中,不同的中断是以中断类型号来区别的。每种中断都有固定的中断类型号。

7.2.1中断类型号中断类型号: 对中断的类型进行编号。中断类型号的范围为0~255(00H~FFH),即最多有256个。

7.2.1中断类型号中断外部硬中断内部中断可屏蔽中断不可屏蔽中断异常中断软中断提供中断类型号:外部中断控制逻辑提供中断类型号:2由指令本身提供

7.2.1中断类型号中断类型号的作用:在中断发生时,借助中断类型号,能使程序转入相对应的中断服务子程序。7.2.1微处理器的中断功能2.中断向量表7.2.1微处理器的中断功能每种中断都有自己相应的中断服务子程序。CPU响应任何中断,就要进入相应的中断服务子程序中,执行子程序的程序,来处理中断。中断处理子程序中断请求主机运行程序2.中断向量表7.2.1微处理器的中断功能当响应中断后,系统怎样进入中断服务子程序?

获取中断服务子程序的入口地址。(即首地址—段地址和偏移地址)

如何获取入口地址?

1.中断类型号 2.中断向量表(实模式下)7.2.1微处理器的中断功能什么是实模式?

CPU的工作模式有三种: 1.实地址模式(实模式) 2.保护模式 3.虚地址模式任何情况下,CPU每次加电或复位后,都从实模式开始工作。实模式:是最基本的工作模式,8086/8688只能工作于实模式。实模式:

只允许CPU寻址空间是内存的第一个1MB存储空间。7.2.1中断向量表

中断向量:即中断服务子程序的入口地址,包括段地址(置入CS)和偏移地址(置入IP)。低字节高字节低字节高字节低字,送入IP高字,送入CS假如:某个中断服务子程序的入口地址----2856:0255H55H02H56H28H偏移地址段地址注:每种中断都有入口地址,所以每种中断都有一个中断向量。7.2.1微处理器的中断功能

中断向量表:由中断向量按照中断类型号的顺序组成的表,就是中断类型表。在实模式下,存储器地址最低的1024单元,即地址0000H~03FFH,用于存储各种中断服务的入口地址。从0000H开始,每4个内存单元存放一个中断服务子程序的入口地址(中断向量)。前两个内存单元的16位是段内偏移地址,后两个内存单元的16位是段地址。当要执行中断服务子程序时候,偏移地址送入IP中,段地址送入CS中。7.2.1微处理器的中断功能中断类型号是中断向量表的索引中断类型号*4---该中断的中断向量在中断向量表中的开始位置。中断类型号与中断向量表的关系例如:中断类型号为1,则其中断向量在中断向量表中的开始位置:0004H其中断向量在中断向量表中的位置:0004H~0007H7.2.1微处理器的中断功能中断类型号与中断向量表的关系例如:中断类型号为1,则其中断向量在中断向量表中的开始位置:00004H其中断向量在中断向量表中的位置:00004H~00007H55H02H56H28H偏移地址段地址存储器00004H00005H00006H00007H物理地址单步中断在中断向量表中的位置注-2856:0255H是单步中断的中断向量2.中断向量表7.2.1微处理器的中断功能7.2.1微处理器的中断功能中断向量在中断向量表中的位置是不能改变的。在中断向量表中,第一个中断向量,肯定是类型号为0的中断,第二个中断向量,肯定是类型号为1的中断。中断向量的值是可以改变的。假如:类型号为1个中断服务子程序的入口地址----2856:0255H,如果修改了其中的服务子程序的入口地址为-------2200:1244H,则需要重新装入新的入口地址。55H02H56H28H送入IP送入CS00004H00005H00006H00007H44H12H00H22H送入IP送入CS00004H00005H00006H00007H中断过程

从引起中断到中断结束,共有三个过程: 1.中断响应过程 2.中断处理过程 3.中断返回过程7.2.1实模式下的中断响应3.实模式下的中断响应中断响应过程:从提出中断请求到CPU进入中断服务子程序为止,所经过的过程成为中断响应过程。其对可屏蔽中断,不可屏蔽中断和内部中断是不尽相同的。7.2.1微处理器的中断功能在IF位为1(即开中断)情况下,从INTR端加入中断请求信号开始,到进入中断服务程序为止所经过的一系列操作,称为可屏蔽中断的响应过程。一可屏蔽中断的响应操作从CPU中止现行程序转中断服务程序这一过程,用两个总线周期。

第一个响应周期:使AD15-AD0、/S7、A19/S6-A16/S3悬空。第二个响应周期:外设向数据总线上输送一个字节的中断类型号。中断响应周期中断响应周期7.2.1微处理器的中断功能可屏蔽中断的响应过程:①等待当前指令(CPU正执行的其它指令)结束,然后进入中断响应周期。②从微处理器外部的中断控制逻辑获得中断类型号。③当前的PSW、CS和IP的内容依次压入堆栈。(保护断点的地址和状态)④清除PSW中的IF位和TF位为0。⑤把中断服务程序的入口地址置入IP和CS。把地址为4*n和4*n+1两个单元的16位作为中断服务子程序入口地址的偏移地址送入IP中,把4*n+2和4*n+3的两个作为中断服务子程序入口地址的段地址送入CS中。中断向量假如可屏蔽中断的中断类型号为:0EH,那么,那么把1244H送入IP中,把2200H送入CS中。44H12H00H22H送入IP送入CS0EH*40EH*4+10EH*4+20EH*4+3中断传送流程二、不可屏蔽中断的响应过程不可屏蔽的中断请求在CPU中的NMI引脚加入。CPU对它的响应不受IF位的控制(但可以在外部逻辑中对加入NMI端的信号进行控制)。

7.2.1微处理器的中断功能不可屏蔽中断的响应过程为:

1.等待当前指令结束,然后进入中断响应周期。2.将当前的PSW、CS和IP的内容依次压入堆栈3.清除PSW中的IF位和TF位为0。4.把中断服务程序的入口地址置入IP和CS。把地址为4*2和4*2+1两个单元的16位作为中断服务子程序入口地址的偏移地址送入IP中,把4*2+2和4*2+3的两个作为中断服务子程序入口地址的段地址送入CS中。7.2.1微处理器的中断功能三、内部中断的响应操作所有的内部中断都有以下共同特点:①中断类型号要么是指令码给定的,要么是处理硬件决定的,都不需要从外部逻辑输入。②没有包括信号的响应周期。③不受IF位的控制,但单步中断受TF位控制。中断优先级:除数为0中断,INTn和INTO指令的优先级最高,NMI次之,INTR再次,单步中断优先级最低。④除单步中断之外,其它内部中断都比外部中断优先响应。7.2.1微处理器的中断功能三、内部中断的响应操作1.将当前的PSW、CS和IP的内容依次压入堆栈。(保护断点的地址和状态)2.清除PSW中的IF位和TF位为0。3.把中断服务程序的入口地址置入IP和CS。把地址为4*n和4*n+1两个单元的16位作为中断服务子程序入口地址的偏移地址送入IP中,把4*n+2和4*n+3的两个作为中断服务子程序入口地址的段地址送入CS中。思考可屏蔽中断与非可屏蔽中断的响应过程有什么不同?可屏蔽中断与内部中断的响应过程有什么不同?非可屏蔽中断省去第2步内部中断省去第1、2步清除TF位当TF=1时,每执行完一条指令时引起一次单步中断,在中断服务子程序中显示各寄存器的内容和状态字信息。如果不清除TF位,当进入中断服务子程序时,将不断的引起中断,每次中断都执行同一条指令而不能返回。只有清除TF位才能避免这种现象的发生。在中断服务子程序期间,TF为0,到IRET指令恢复PSW值时候,才恢复TF位。7.2.1微处理器的中断功能中断返回

无论内部中断还是外部中断,都是由中断服务子程序的末尾设置IRET指令实现的。IRET指令的操作时恢复断点处的地址和PSW的内容,即依次从堆栈弹出保存的IP、CS和PSW值,使被中断了的程序继续执行7.2.2外中断控制逻辑和中断控制芯片8529A外部输入输出设备利用中断机制与CPU交换信息,实际上就是利用外部可屏蔽中断。对CPU来说,与可屏蔽中断有关的两个引脚是INTR和INTA。INTR---中断请求信号引脚INTA---中断响应信号引脚CPU外设I/O接口INTRINTA7.2.2外中断控制逻辑和8529A的关系80286以及以后的微机系统中,用两片8259A组成了可屏蔽中断的中断控制逻辑。I/O接口板组I/O外设总线控制逻辑CPUI/O接口在主机板上,总线控制逻辑包括:

1.支持访问扩充板上存储器操作的逻辑2.支持执行输入输出指令的逻辑3.支持外部中断方式的以8259为核心的中断控制逻辑4.支持存储器直接读写(DMA)操作的以8237为核心组成的DMA控制逻辑7.2.2外中断控制逻辑和中断控制芯片8529ACPUINTRINTA7.2.2外中断控制逻辑和中断控制芯片8529A80286及其以后的微机系统中,用两片8259A级联组成了可屏蔽中断的外部控制逻辑。上面的是主片,下面的是从片。主8259A的INT端(输出)与CPU的中断请求输入端INTR相接,而从片的INT端与主片的IR2端相连。主片和从片的INTA端都和CPU的INTA端相连。7.2.2外中断控制逻辑和中断控制芯片8529A每片8259A有8个输入端IR0~IR7,可分别接受8个外部的中断请求,两片级联,可以接受15级外部的中断请求。同时标出了对应的中断类型号: 主片:08H~0FH 从片:A0H~A7H每个8259A分配两个端口:

主片8259A:20H和21H, 从片8259A:A0H和A1H。在图的最左侧,给出了系统常规配置下对各个中断请求端的应用分配。通常,自己开发的接口应用那些标有‘保留’的请求端。1.8259的外部引脚图

7.2.2外中断控制逻辑和中断控制芯片8529ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A1)数据总线D7~D0

双向,用于CPU和8259A之间的数据通信。2)读写控制

RD,读信号,输入,低电平有效。WR,写信号,输入,低电平有效CS,片选信号,输入,低电平有效。有效时,该8259A芯片被选中A0,端口选中信号,输入。每片8259A均分配两个端口,如20H和21H两个端口。 当A0=0时,选中偶地址端口; 当A0=1时,选中奇地址端口。1.8259的外部引脚图

7.2.2外中断控制逻辑和中断控制芯片8529ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A3)级联引脚CAS0~CAS2

8259A可工作于多片级联方式。级联引脚是级联信号线。主片的级联引脚是输出从片的级联引脚是输入。SP/EN:1.当8259A工作在非缓冲模式下,用作输入端,用于区别主片与从片。在多片级联中,主片的SP/EN接高电平,表示是主片;而从片的接低电平,表示是从片。2.当8259A工作在缓冲模式下,用作输出端,控制缓冲器的接受和发送。1.8259的外部引脚图7.2.2外中断控制逻辑和中断控制芯片8529AINTAINT8259A4)中断信号INT:中断请求输出端,与CPU的INTR输入端相连;INTA:中断响应输入端,与CPU的INRA输出端相连。CPUINTRINTAIR0~IR7外部设备IR0~IR7:是外设加入8259A的中断请求输入端。过程:外设 8259A CPU 8259A1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A其内部逻辑结构主要由下面几个部分组成: 1.中断请求寄存器:IRR 2.中断服务寄存器:ISR 3.中断优先级分析器:PR 4.初始化命令字:ICW1~ICW4 5.操作命令字:OCW1~OCW3 6.读写控制逻辑 7.级联缓冲器/比较器以上所有的寄存器(除了优先级分析器外)和命令字,均是8bit的寄存器。 1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A1.中断请求寄存器:IRR IRR是一个8bit的寄存器,用于记录外部中断请求。D7D6D5D4D3D2D1D0 D0~D7,每一位分别与外部中断请求信号IR0~IR7一一对应。 当IRi(i=0~7)有中断请求时,IRR中的相应位置‘1’。例如:某时刻,当IR3有中断请求时,D3就被置‘1’, (IRR)=****1***B1.训练

7.2.2外中断控制逻辑和中断控制芯片8529AD7D6D5D4D3D2D1D0某时刻,IR1,IR2,IR5同时有中断请求时,问IRR里的内容是多少? 当IR1,IR2,IR5有中断请求时 D1,D2,D5就被置‘1’(IRR)=**1**11*B1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A2.中断服务寄存器:ISR是一个8bit的寄存器,用于存放当前正在被CPU服务的中断请求的标志。D7D6D5D4D3D2D1D0D0~D7,每一位分别与外部中断请求信号IR0~IR7对应。当CPU正在响应IRi(i=0~7)时,其相应的Di就被置‘1’。1.8259的内部逻辑结构7.2.2外中断控制逻辑和中断控制芯片8529A2.中断服务寄存器:ISR例如:当CPU正在响应IR3的中断请求,则响应D3被置‘1’。此时,(ISR)=****1***B当然,如果此时有个比D3优先级更高的中断请求(如IR5),则就有了中断嵌套。CPU就暂时停止处理IR3的中断请求,转而响应IR5,此时D5被置‘1’。所以,此时,有两个:D3=1和D5=1。

(ISR)=**1*1***B1.8259的内部逻辑结构7.2.2外中断控制逻辑和中断控制芯片8529A3.中断优先级分析器:PR当只有一个中断请求时,8529A就把该中断请求送入CPU;当有多个中断请求时候,就需要对各个中断请求的优先级进行判别,从而把优先级最高的中断请求送入CPU中。PR-用来确定存放在IRR中各个中断请求信号的对应中断源的优先级,并对他们进行排队判优,以便选出当前中断请求优先级最高的中断请求,并把它送入CPU中。1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A4.中断屏蔽寄存器:IMR(OCW1)是一个8bit的寄存器,用于存放IR0~IR7的中断屏蔽标志。D7D6D5D4D3D2D1D0D0~D7,每一位分别与外部中断请求信号IR0~IR7对应。用于控制IRi(i=0~7)的请求是否被禁止。 当Di=1,则对应的IRi请求被禁止。 当Di=0,则对应的IRi请求被允许。通过指令来对D0~D7进行置0或者置1的。1.8259的内部逻辑结构7.2.2外中断控制逻辑和中断控制芯片8529A4.中断屏蔽寄存器:IMR(OCW1)例如:当置D3=1时,即(IMR)=****1***B则屏蔽掉了IR3的中断请求,无论IR3怎么中断请求,其中的请求都不会进入8259A,所以IR3的中断请求在没有进入CPU之前就被屏蔽掉了。4.训练

7.2.2外中断控制逻辑和中断控制芯片8529AD7D6D5D4D3D2D1D0如果想屏蔽掉了IR0,IR1,IR4的中断请求,问应设置IMR的内容是多少? 置IR0,IR1,IR4相应位D0,D1,D4为‘1’(IMR)=***1**11B7.2.2外中断控制逻辑和中断控制芯片8529A4.中断屏蔽寄存器:IMR(OCW1)因此,对于可屏蔽中断,有两级的中断屏蔽。8259A和CPU两级。CPU外部中断8259AINTRINTAIFIMR第一级注意:1、通过IMR关闭中断时候,相应位Di=1;而通过IF关闭中断时,IF=02、通过IMR只能Di=1来关闭某些级的外部中断,而IF=0,就使CPU不响应所有的外部可屏蔽中断第二级1.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A5.初始化命令字:ICW1~ICW4

每一个都是8bit的寄存器,CPU通过OUT指令,把一组(3个—ICW1~ICW3或者4个—ICW1~ICW4)8bit的数据写入ICW1~ICW4,从而来设置8259A的工作方式。D7D6D5D4D3D2D1D01.8259的内部逻辑结构

7.2.2外中断控制逻辑和中断控制芯片8529A6.操作命令字:OCW1~OCW3

每一个都是8bit的寄存器,CPU通过OUT指令,来设置8259A的中断结束方式等。D7D6D5D4D3D2D1D0

7.2.2外中断控制逻辑和中断控制芯片8529A2.8259的编程对8259的编程可分为两个阶段: 1.初始化阶段 2.操作阶段

7.2.2外中断控制逻辑和中断控制芯片8529A(1)初始化阶段在系统加电或复位后由系统初始化程序完成。这阶段要用输出指令向8259置入初始化命令字。这一阶段的编程是通过OUT指令,把一组数据写入ICW1~ICW4共4个寄存器中。2.8259的编程

7.2.2外中断控制逻辑和中断控制芯片8529A(2)操作阶段要用输出指令向8259发适当的操作命令字,实现对8259的状态,中断方式和过程的控制。这期间一般不再发初始化命令字。这一阶段的编程,是通过OUT指令,把数据写入OCW1~OCW3中。2.8259的编程7.2.2外中断控制逻辑和中断控制芯片8529A设定中断请求信号的有效形式,即是高电平有效,还是低电平向高电平跳变的上升边沿有效。8259是单片工作方式还是级联工作方式。设定8259管理的中断类型号基值,即0级中断IRQ0对应的中断类型号,以便在中断请求响应时,得到中断向量表中相应类型号的地址。设定各级的优先排序规则。设定一次中断处理结束时的结束操作规则。这些任务都是通过向8259发初始命令字ICW实现的。初始化编程阶段的任务-----设置8259的工作方式7.2.2外中断控制逻辑和中断控制芯片8529A①初始化命令字ICW1D7D6D5D4D3D2D1D01LTIM0SNGLIC4×××其中×位表示无关位,可为任何值。D4为1,是ICW1的特征标志。LTIM位为1表示有效的中断请求信号是高电平,为0表示有效中断请求信号是低电平向高电平跳变的上升边。SNGL位为1表示这片8259是单片方式工作,为0表示多片级联方式工作。IC4位为1表示在后面程序还要设置初始化命令字ICW4,为0表示不再设置ICW4。注:设置ICW1需要I/O端口地址为A0=0,即20H(主片)或者A0H(从片)1.ICW1训练7.2.2外中断控制逻辑和中断控制芯片8529A

ICW1=00010001B要求:

边沿触发,级联方式,有ICW4;7.2.2外中断控制逻辑和中断控制芯片8529A②初始化命令字ICW2ICW2用来提供中断类型号的基值。CPU在响应外部可屏蔽中断时,需要获取中断中断类型号,从而来获取该中断服务子程序的入口地址。中断类型号由8259在中断响应期间提供。

中断类型号=基值+相对值D7D6D4D5D3D2D1D0T7T6T5T4T3000

7.2.2外中断控制逻辑和中断控制芯片8529A设置ICW2的地址为A0=1,对于IBMPC系列微机,I/O端口地址分别为21H(主片)和A1H(从片)。中断类型基值就是ICW2,其中低3位必须为0。相对值:则根据IRQ0~IRQ7中是响应哪级中断,分别对应000~111.中断类型号=基值+相对值在IBMPC系列微机中,两片8259A的中断类型号基值主片为08H,ICW2的高5位T7~T3为00001从片为70H,ICW2的高5位T7~T3为011107.2.2外中断控制逻辑和中断控制芯片8529A中断类型号=08H+101B(5)=假如:在IBMPC系列微机中,某片8259A的中断类型号基值为08H,同时,cpu响应了IRQ5,问该中断类型号为多少?中断类型号=基值+相对值0DH2.ICW2训练7.2.2外中断控制逻辑和中断控制芯片8529A③初始化命令字ICW3ICW3是级联命令字,如果中断控制逻辑只有一片8259组成【设置ICW1时D1(SNGL)=1】,则不设置ICW3.只有在多片8259级联的情况下,才设置ICW3。对于主片和从片,设置的ICW3的意义是不同的。7.2.2外中断控制逻辑和中断控制芯片8529A③主片ICW3向主片设置的ICW3,指明主片的哪个或那些输入端IR接有从片。设置ICW3时,那些接有从片的输入端对应的位设置为1,否则为0。D7D6D4D5D3D2D1D0S7S6S5S4S3S2S1S0

7.2.2外中断控制逻辑和中断控制芯片8529A③初始化命令字ICW3如右图,主片的IR2接有从片,所以D2=1,主片的ICW3为:00000100B7.2.2外中断控制逻辑和中断控制芯片8529A③从片ICW3向从片设置的ICW3,其D7~D3为0,只是D2~D0位组成0~7的编码。向不同的从片设置的ICW3值是不同的,所设的值必须与它所接的主片的IR输入端序号相同。D7D6D4D5D3D2D1D000000S2S1S0

7.2.2外中断控制逻辑和中断控制芯片8529A③初始化命令字ICW3如右图,主片的IR2接有从片,所以从片的ICW3为:00000010010的值与主片的IR2的序号相同。7.2.2外中断控制逻辑和中断控制芯片8529A假如:主片的IR2,IR4,IR6接有从片,则主片的ICW3为:3.ICW3训练01010100B主片(ICW3)=从片:IR2:(ICW3)=IR4:(ICW3)=IR6:(ICW3)=00000010B00000100B00000110B7.2.2外中断控制逻辑和中断控制芯片8529A④初始化命令字ICW4只有ICW1中的IC4位为1才能设置ICW4。端口地址A0=1。D7~D5总为0。D4——SFNM,设置该位为1,将工作于特殊的全嵌套方式;该位为0,工作于正常全嵌套方式。IBMPC系统设置该位为0。D3——BUF,该位设置为1,表明缓冲方式,这时芯片的为输出引脚,输出信号可作为数据收发缓冲器(三态门)的控制信号。该位设置为0,表明不工作于缓冲方式,不需要也不输出这种控制信号。D2——M/S,在BUF位为1有效时,该位为1则表示该片为主片;该位为0,则为从片。D1——AEOI,规定中断结束方式。D1=1,自动结束;D1=0,非自动结束方式。D0——μPM,该位为1,表示与80X86微处理器配合工作;该位为0,表示与8080或8085微处理器配合工作。显然,该位应设为1。7.2.2外中断控制逻辑和中断控制芯片8529A7.2.2外中断控制逻辑和中断控制芯片8529A假如:

正常全嵌套方式,非数据总线缓冲方式,中断正常(非自动)结束。4.ICW4训练ICW4=0000

0001B000SFNMBUFM/SAEOIUPM7.2.2外中断控制逻辑和中断控制芯片8529A ICW1 使用A0=0,偶地址即20H或A0H ICW2,ICW3,ICW4 使用A0=1,奇地址21H或A1H初始化命令字的设置次序:首先是ICW1(必须从ICW1开始)。当使用端口地址A0=0(20H)往8259写数据,并且该数据的D4=1,则说明该数据是往ICW1里面写入的。一旦ICW1被设置,以下对地址A0=1(21H)的输出指令一定是设置ICW2,然后依据ICW1中的SNGL位和IC4位的值决定设置ICW3和ICW4.初始化命令字所使用的端口地址7.2.2外中断控制逻辑和中断控制芯片8529AICW1以A0=0(20H)和发出字节D4为1的特征ICW1被设置,以下对地址A0=1(21H)的输出指令一定设置ICW2依据ICW1中的SNGL位和IC4位的值决定设置ICW3和ICW4。7.2.2外中断控制逻辑和中断控制芯片8529A主片:ICW1=00010001,边沿触发,级联方式,有ICW4;ICW2=00001000,中断类型号基值为08H;ICW3=00000100,在IR2端接有从片;ICW4=00000001,正常全嵌套方式,非数据总线缓冲方式,中断正常(非自动)结束。初始化编程举例(1)图7.13外部控制逻辑中,两片8259A设置的初始化命令字:7.2.2外中断控制逻辑和中断控制芯片8529A从片:ICW1=00010001,边沿触发,级联方式,有ICW4;ICW2=01110000,中断类型号基值为70H;ICW3=00000010,该片的识别标志,对应主片的IR2;ICW3=00000001,正常全嵌套方式,非数据总线缓冲方式,中断正常(非自动)结束。

7.2.2外中断控制逻辑和中断控制芯片8529A(2)若主片8259的端口地址为20H和21H,从片8259的端口地址为A0H和A1H,则初始化编程为:主片编程为:INT59:MOVAL,00010001B;设置ICW1OUT20H,AL MOVAL,08H ;设置ICW2OUT21H,AL

MOVAL,00000100B;设置ICW3OUT21H,ALMOVAL,00000001B;设置ICW4OUT21H,AL7.2.2外中断控制逻辑和中断控制芯片8529A从片编程为:MOVAL,00010001B;设置ICW1OUTA0H,AL MOVAL,70H ;设置ICW2OUTA1H,AL

MOVAL,00000010B;设置ICW3OUTA1H,ALMOVAL,00000001B;设置ICW4OUTA1H,AL7.2.2外中断控制逻辑和中断控制芯片8529A(2)操作过程编程

操作过程的编程需要向8259发各种操作命令字。这些命令字决定着中断方式,管理着中断响应次序等。8259可以控制实现的中断方式有:全嵌套方式、循环优先方式、特殊的屏蔽方式和查询方式等。这些方式的实现,都要靠操作命令字的设置。7.2.2外中断控制逻辑和中断控制芯片8529A①操作命令字OCW1OCW1用于设置屏蔽状态。命令字的各位与8259中的中断屏蔽寄存器IMR的各位相对应,用输出指令把OCW1发送到IMR。中断屏蔽寄存器IMR中为1的位所对应的中断级的输入线IR处于被屏蔽状态。设置OCW1的I/O地址是A0=1对同一地址的输入指令将读回OCW1设置的屏蔽字7.2.2外中断控制逻辑和中断控制芯片8529A例如1:要屏蔽8259外部的IR1,IR3,IR5中断请求。则其命令为:ORAL,00101010H OUT21H,AL

INAL,21H

先通过21H读入OCW1通过21H把设置的值写入OCW17.2.2外中断控制逻辑和中断控制芯片8529A②操作命令字OCW2特征标志是D4、D3位组合为00高3位R、SL和EOI组合起来才能指明一种工作方式和中断结束控制方式。设置OCW2的地址是A0=07.2.2外中断控制逻辑和中断控制芯片8529AR:为1指明中断级的优先顺序是循环式的。为0是固定的优先次序,0级最高,7级最低。

SL:该位指明是否要指定一个中断级。为1,L2~L03位组合将指明一个中断级。为0,L2~L0位无意义。EOI:为1,执行结束中断的操作。为0,则不执行结束中断操作。如果初始化时ICW4的AEOI位为1,说明设定的是自动结束中断方式,设置OCW2时EOI位自然应为0。7.2.2外中断控制逻辑和中断控制芯片8529A4.OCW2训练MOVAL,0010

0000B;OUT20H,AL;恢复ISR中D2的值为0通过写OCW2,送中断结束命令EOI7.2.2外中断控制逻辑和中断控制芯片8529A7.2.2外中断控制逻辑和中断控制芯片8529A③操作命令字OCW3D7D6D5D4D3D2D1D00ESMMSMM01PRRRISOCW3用于管理特殊的屏蔽方式和查询方式。发送OCW3的地址也是A0=0。它的特征标志为D4D3=01。7.2.2外中断控制逻辑和中断控制芯片8529A③操作命令字OCW3D7D6D5D4D3D2D1D00ESMMSMM01PRRRISESMM:该位为1则允许特殊屏蔽方式;为0,则禁止。SMM:为1,表示特殊屏蔽方式。只对同级实现屏蔽为0,为非特殊屏蔽方式。用OCW1来设置ESMM位为1,SMM位才有意义。ESMM为0,则SMM位无意义。7.2.2外中断控制逻辑和中断控制芯片8529AD7D6D5D4D3D2D1D00ESMMSMM01PRRRISP位用于控制是否读取中断状态寄存器的内容。P位为1,可通过读入中断状态寄存器的内容,查询是否有中断请求被处理,如有,则给出当前中断的最高优先级。P位为0,则不查询。7.2.2外中断控制逻辑和中断控制芯片8529A该中断状态寄存器的格式为:D7D6D5D4D3D2D1D01----W2W1W0D7=0,表示无中断请求D7=1,表示有中断请求,此时W2~W0才有意义,它们的组合指明请求服务的各中断级中的最高优先级。例如:W2~W0=010,则此时请求服务的各中断级中,IR2的优先级最高。7.2.2外中断控制逻辑和中断控制芯片8529A在读取中断状态字时,先写入中断查询命令,然后读取中断状态字,程序如下: MOVAL,00001100B;使P位为1 OUT20H,AL ;使用20H端口地址 INAL,20H ;使用20H将状态字送入AL中D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS7.2.2外中断控制逻辑和中断控制芯片8529ARR和RIS位用于控制读出8259A的内部寄存器IRR(中断请求寄存器)和ISR(中断服务寄存器)的内容。D7D6D5D4D3D2D1D00ESMMSMM01PRRRISRR=0,无效RR=1,读寄存器内容。

RIS=1,则读IRS寄存器内容,送入AL中;

RIS=0,则读IRR寄存器内容,送入AL中。7.2.2外中断控制逻辑和中断控制芯片8529A读取ISR内容的程序:D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS MOVAL,00001011B OUT20H,AL;使用20H端口,将AL内容写入OCW3中 INAL,20H;将ISR寄存器的内容送入AL中7.2.2外中断控制逻辑和中断控制芯片8529A读取IRR内容的程序:D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS MOVAL,00001010B OUT20H,AL;使用20H端口,将AL内容写入OCW3中 INAL,20H;将IRR寄存器的内容送入AL中7.2.2外中断控制逻辑和中断控制芯片8529AA0D4D3功能01*写ICW11**写ICW21**写ICW31**写ICW41**写OCW1000写OCW2001写OCW38259A端口分配及读写操作功能:7.2.2外中断控制逻辑和中断控制芯片8529A命令字所使用的端口地址:

使用A0=0,偶地址:ICW1,OCW2,OCW3

使用A0=1,奇地址:OCW1,ICW2,ICW3,CW4

7.2.2外中断控制逻辑和中断控制芯片8529A中断响应时序:

INTAINT8259ACPUINTRINTAIR0~IR7外部设备当CPU响应8259A的中断请求INT时,向8259回送中断响应信号INTA,自动进入中断响应总线周期,进行中断处理。INT高电平有效, IRi高电平有效或上升沿跳变有效7.2.2外中断控制逻辑和中断控制芯片8529ACPU一旦响应中断,就自动进入中断响应总线周期。INTA时序图为:T1T1T2T3T4T2T3T4第一个INTA周期第二个INTA周期LOCKINTAD7~D0中断类型nINTIRi7.2.2外中断控制逻辑和中断控制芯片8529A中断响应周期由两个连续的INTA周期组成,每个INTA周期包含4个时钟周期,即T1~T4。在第一个INTA周期的T2~T3状态,CPU向8259发送第一个INTA脉冲,表示响应INTR请求,并利用这个信号将8259的请求信号IRi复位,同时使总线锁存信号LOCK有效,以禁止其他总线主控设备争用总线。在第二个INTA周期,8259将中断类型号n送上数据总线送至CPU,有CPU自动完成向量地址4n运算后,从中断向量表中取出相应的中断向量送入CS:IP中,继而转去执行中断服务程序;同时,还利用第二个INTA周期的后沿将INT复位。在自动结束方式中,也是利用这个后沿,将ISR中的中断服务标志位清除。7.2.2外中断控制逻辑和中断控制芯片8529A中断结束(使ISR位复位)有两种方式:

1.自动结束------ICW4中AEOI位设置为1 2.非主动结束----ICW4中AEOI位设置为0

自动结束: CPU响应中断请求,向8259发第二个INTA脉冲的后沿,使ISR中的对应位复位。可见是在进入中断服务程序之前完成复位。非自动结束: 在指定服务程序中,通常在返回主程序之前,使用指令发一个中断结束命令,使OCW2内的EOI位为1。这样就可以使ISR相应位复位。7.2.3中断系统的应用方法

中断系统的应用: 利用可屏蔽中断来控制实现数据在CPU和I/O接口之间的输入输出。

注意的几点工作: 1.分配合理的中断级。 1.只能利用没被系统占用的IRQ端。 2.任务越急,应分配优先级较高的IRQ端。 2.为中断服务子程序分配合理的存储空间,并把服务子程序的入口地址置入中断向量表。7.2.3中断系统的应用方法把服务子程序的入口地址置入中断向量表。方法是利用DOS功能调用,即INT21H指令。 MOVAH,25H MOVAL,n;送中断向量号 MOVDS,段地址;中断服务子程序的段地址 MOVDX,偏移地址;中断服务子程序的段地址、 INT21H执行INT21H后,就可把中断服务子程序的入口地址置入中断向量表的适当地址中7.2.3中断系统的应用方法例如:中断服务程序的入口地址的标号为:VINTSUB,中断向量号为10,则设置中断向量的指令序列如下: MOVDX,OFFSETVINTSUB PUSHDS MOVAX,SEGVINTSUB MOVDS,AX MOVAL,10 MOVAH,25H

INT21H

温馨提示

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

评论

0/150

提交评论