微机接口ppt课件第7章微型计算机与外设间的数据传递_第1页
微机接口ppt课件第7章微型计算机与外设间的数据传递_第2页
微机接口ppt课件第7章微型计算机与外设间的数据传递_第3页
微机接口ppt课件第7章微型计算机与外设间的数据传递_第4页
微机接口ppt课件第7章微型计算机与外设间的数据传递_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术微机原理与接口技术作者:徐建平作者:徐建平 成贵学成贵学 第第7 7章章 微型计算机与外设间的数据微型计算机与外设间的数据传递传递n在微型计算机系统的工作过程中,大量数据在微型计算机系统的工作过程中,大量数据要在要在cpucpu、存储器和输入、存储器和输入/ /输出设备接口之间输出设备接口之间进行传送。为保证数据在进行传送。为保证数据在cpucpu与外设之间正确、与外设之间正确、有效地传送,不同场合下需要采用不同的数有效地传送,不同场合下需要采用不同的数据传递方式。据传递方式。n本章主要介绍微型计算机同外设间数据传递本章主要介绍微型计算机同外设间数据传递的基本方式,并在此基础

2、上学习的基本方式,并在此基础上学习8259a8259a中断控中断控制器和制器和8237a dma8237a dma控制器两个专用芯片的使用控制器两个专用芯片的使用方法方法 【本章内容提要】【本章内容提要】 掌握掌握cpucpu与外设间数据传递的基本方式及其与外设间数据传递的基本方式及其工作原理工作原理掌握掌握8259a8259a中断控制器的引脚、内部结构、中断控制器的引脚、内部结构、工作过程和编程方式工作过程和编程方式掌握掌握8237a dma8237a dma控制器的引脚、内部结构和控制器的引脚、内部结构和工作方式工作方式7.1 cpu与外设数据传递方与外设数据传递方式概览式概览 cpu与外

3、设之间的数据传递方式有与外设之间的数据传递方式有三种,分别是:三种,分别是:1.程序控制数据传送方式程序控制数据传送方式2.中断数据传送方式中断数据传送方式3.直接存储器存取方式。直接存储器存取方式。7.1.1 程序控制数据传送方式程序控制数据传送方式有两种方式:有两种方式:1.无条件数据传送无条件数据传送2.查询式数据传送查询式数据传送n在无条件数据传送方式下,外设必须总是处在无条件数据传送方式下,外设必须总是处于准备好的状态,即随时准备接收于准备好的状态,即随时准备接收cpucpu送来的送来的数据,或者随时准备向数据,或者随时准备向cpucpu提供数据。提供数据。n无条件数据传送是最简单的

4、数据传送方式,无条件数据传送是最简单的数据传送方式,主要用于与慢速、简单外设间的数据传送。主要用于与慢速、简单外设间的数据传送。n无条件数据传送所需要的软件和硬件少,且无条件数据传送所需要的软件和硬件少,且接口电路和程序简单,适用于接口电路和程序简单,适用于cpucpu与外设的各与外设的各种动作时间固定且已知的情况下。种动作时间固定且已知的情况下。 2 2查询式数据传送查询式数据传送n查询式数据传送是指,查询式数据传送是指,cpucpu在进行数据传送在进行数据传送之前,必须先查询一下外设的状态,确认外之前,必须先查询一下外设的状态,确认外设是否准备好。设是否准备好。n如果外设没有准备好,则继续

5、查询,直到外如果外设没有准备好,则继续查询,直到外设准备好后,才进行数据传送。设准备好后,才进行数据传送。【例例7-1】n假设接口的数据输入端口地址为假设接口的数据输入端口地址为40h40h,数据输出端口,数据输出端口地址为地址为42h42h,状态端口地址为,状态端口地址为44h44h。(1 1)假定)假定状态寄存器状态寄存器中第中第1 1位为输入状态标志,为位为输入状态标志,为1 1时时表示输入缓冲器中已经有表示输入缓冲器中已经有1 1个字节准备好,可以进行个字节准备好,可以进行输入;为输入;为0 0时表示输入缓冲器处于忙状态。时表示输入缓冲器处于忙状态。(2 2)假定)假定状态寄存器状态寄

6、存器中第中第0 0位为输出状态标志,为位为输出状态标志,为0 0时时表示输出缓冲器为空,表示输出缓冲器为空,cpucpu可以向外设输出数据。可以向外设输出数据。编写程序,要求:编写程序,要求:n实现从输入设备输入一串数据到内存缓冲区;实现从输入设备输入一串数据到内存缓冲区;n再将内存缓冲区中数据送到输出端口输出;再将内存缓冲区中数据送到输出端口输出;n串长度为串长度为100100。具体程序如下:具体程序如下:eseg segment buffer db 100 dup(?);定义内存缓冲区定义内存缓冲区eseg endscseg segment assume es: eseg, cs:cseg

7、start: mov ax, eseg mov ds, ax mov es, ax mov di, offset buffer mov cx, 100;设置循环次数设置循环次数 clddata_in: in al, 44h;读入状态信息读入状态信息 test al, 02h ;检测标志位寄存器第检测标志位寄存器第1位是否为位是否为1 jz data_in ;标志位为标志位为0,则数据未准备好,继续,则数据未准备好,继续读入状态信息读入状态信息 in al, 40h ;数据准备好,可以从数据输入端口读入数据准备好,可以从数据输入端口读入数据数据 and al, 7fh ;将数据存入缓冲区,数据位

8、宽为将数据存入缓冲区,数据位宽为7位位 stosb ;al内容送内容送di所指的存储单元所指的存储单元 loop data_in mov si, offset buffer mov cx, 100data_out:in al, 44h ;读入状态信息读入状态信息 test al, 01h;检测标志位寄存器第检测标志位寄存器第0位是位是否为否为1 jnz data_out;标志位为标志位为1,则设备忙,继,则设备忙,继续读入状态信息续读入状态信息 lodsb;设备空闲,从数据输出端口设备空闲,从数据输出端口输出数据输出数据 out 42h, al loop data_out cseg ends

9、end start7.1.2 中断数据传送方式中断数据传送方式n中断数据传送方式是指:中断数据传送方式是指:n在在cpucpu执行程序的过程中,执行程序的过程中,n当外设要求与当外设要求与cpucpu进行数据传送时,通过进行数据传送时,通过i/oi/o端口向端口向cpucpu发出中断请求发出中断请求n使得使得cpucpu暂停当前正在执行的程序,及时响应暂停当前正在执行的程序,及时响应接口的中断请求,转去执行中断服务程序。接口的中断请求,转去执行中断服务程序。n待输入输出操作执行完毕后,待输入输出操作执行完毕后,cpucpu再返回继续再返回继续执行原来被中断的程序,如图所示。执行原来被中断的程序

10、,如图所示。1中断相关概念中断相关概念ncpucpu在执行程序的过程中,由于某种事件的发在执行程序的过程中,由于某种事件的发生,使得生,使得cpucpu暂时中断正在运行的程序,转去暂时中断正在运行的程序,转去执行中断服务程序(或中断处理程序),事执行中断服务程序(或中断处理程序),事件处理完后再继续执行被中断的程序,这个件处理完后再继续执行被中断的程序,这个过程称为过程称为中断中断。n如图如图7-67-6所示。所示。 n外部中断又分为非屏蔽中断和可屏蔽中断。外部中断又分为非屏蔽中断和可屏蔽中断。n非屏蔽中断请求信号由非屏蔽中断请求信号由cpucpu的的nminmi引脚输入。引脚输入。nminm

11、i为边沿触发,信号一旦产生,为边沿触发,信号一旦产生,cpucpu将立即将立即响应非屏蔽中断请求。响应非屏蔽中断请求。n可屏蔽中断请求由可屏蔽中断请求由cpucpu的的intrintr引脚输入。当引脚输入。当intrintr为高电平时,产生可屏蔽中断请求信号。为高电平时,产生可屏蔽中断请求信号。n有可屏蔽中断请求时,有可屏蔽中断请求时,cpucpu可以响应,也可可以响应,也可以不响应,能否响应此中断请求信号取决以不响应,能否响应此中断请求信号取决于中断允许标志位于中断允许标志位ifif的状态。的状态。nifif为为1 1时(开中断),时(开中断),cpucpu响应可屏蔽中断响应可屏蔽中断请求;

12、否则,不响应此中断请求。请求;否则,不响应此中断请求。nifif的值可以通过指令的值可以通过指令stisti和和clicli进行设置。进行设置。n8086cpu8086cpu最多可以处理最多可以处理256256个中断源,对这个中断源,对这些中断源引起的中断统一编号为些中断源引起的中断统一编号为02550255,称,称为为中断类型号中断类型号(或(或中断向量号中断向量号)。)。n每一个中断服务程序在内存中都有一个确每一个中断服务程序在内存中都有一个确定的入口地址,称为定的入口地址,称为中断向量中断向量。n所有的中断向量按中断类型号从小到大的所有的中断向量按中断类型号从小到大的顺序排列组成一个列表

13、,称为顺序排列组成一个列表,称为中断向量表中断向量表。n在在80868086系统中,中断向量表存放在内存中系统中,中断向量表存放在内存中最低地址开始的最低地址开始的1kb1kb地址范围内。地址范围内。 2.中断处理过程中断处理过程一个完整的中断处理过程包括:一个完整的中断处理过程包括:n中断请求中断请求n中断判优中断判优n中断响应中断响应n中断处理中断处理n中断返回中断返回(1)中断请求中断请求n当外设要求与当外设要求与cpucpu进行数据传送时,首先要向进行数据传送时,首先要向cpucpu发出一个中断请求信号。发出一个中断请求信号。n发出中断请求的外设就是发出中断请求的外设就是中断源中断源,

14、8086cpu8086cpu的的intrintr和和nminmi引脚负责接收外部中断请求信号。引脚负责接收外部中断请求信号。n每个中断源都设置了一个每个中断源都设置了一个中断请求触发器中断请求触发器,当有中断请求时,该触发器被置位;直到当有中断请求时,该触发器被置位;直到cpucpu对其进行响应后,该触发器被清除。对其进行响应后,该触发器被清除。(2 2)中断优先级判优)中断优先级判优n当若干个中断源同时发出中断请求信号时,当若干个中断源同时发出中断请求信号时,n由于由于cpucpu每次只能响应并处理一个中断请求,每次只能响应并处理一个中断请求,n故系统会自动对各中断源按照中断优先级进故系统会

15、自动对各中断源按照中断优先级进行排队,行排队,n对优先级别最高的中断请求信号进行响应,对优先级别最高的中断请求信号进行响应,处理完后再转去响应优先级较低的中断请求处理完后再转去响应优先级较低的中断请求n这个过程被称为这个过程被称为中断优先级判优中断优先级判优。n评判中断优先级的方法分为软件判优和评判中断优先级的方法分为软件判优和硬件判优两种。硬件判优两种。n软件判优是指,顺序查询多个中断请求软件判优是指,顺序查询多个中断请求标志位的状态,查询的顺序决定了优先标志位的状态,查询的顺序决定了优先级别的高低,即先查询的中断请求优先级别的高低,即先查询的中断请求优先级别最高。级别最高。n硬件判优是采用

16、硬件电路来实现的,可硬件判优是采用硬件电路来实现的,可节省节省cpucpu时间,但成本较高。时间,但成本较高。 n在在80868086系统中,对中断优先级的管理是系统中,对中断优先级的管理是通过中断控制器完成的。通过中断控制器完成的。n下一节中我们将对典型的中断控制器下一节中我们将对典型的中断控制器8259a8259a芯片进行介绍。芯片进行介绍。 (3 3)中断响应)中断响应ncpucpu在当前指令执行的最后一个时钟周期采在当前指令执行的最后一个时钟周期采样中断请求信号,执行完当前指令后,判断样中断请求信号,执行完当前指令后,判断是否允许是否允许cpucpu进行响应。进行响应。n若允许响应,若

17、允许响应,cpucpu就中断当前正在运行的程就中断当前正在运行的程序,转向相应的中断处理程序。序,转向相应的中断处理程序。n如果是内部中断或非屏蔽中断,如果是内部中断或非屏蔽中断,cpucpu必须作必须作出响应,并自动获得中断服务程序的入口地出响应,并自动获得中断服务程序的入口地址,转去执行相应子程序;址,转去执行相应子程序;n如果是可屏蔽中断且如果是可屏蔽中断且ifif1 1,则,则cpucpu向中断源向中断源发出一个中断应答信号发出一个中断应答信号intainta,进入中断响应,进入中断响应周期。周期。n为保证中断结束后为保证中断结束后cpucpu能返回被中断的程序继能返回被中断的程序继续

18、执行,硬件会自动进行断点保护。续执行,硬件会自动进行断点保护。n即将标志寄存器、即将标志寄存器、cscs(被中断程序下一条指(被中断程序下一条指令的段地址)和令的段地址)和ipip(偏移地址)的内容压入(偏移地址)的内容压入堆栈,将标志寄存器堆栈,将标志寄存器ifif和和tftf复位(关中断)。复位(关中断)。n不同的中断源对应着不同的中断服务程序;不同的中断源对应着不同的中断服务程序;ncpucpu可根据中断类型号自动计算出中断向量的可根据中断类型号自动计算出中断向量的偏移地址(中断类型号偏移地址(中断类型号* *4 4),),n以便从中断向量表中取出相应的中断向量,以便从中断向量表中取出相

19、应的中断向量,n转去执行相应的中断服务程序。转去执行相应的中断服务程序。n每个中断向量占据每个中断向量占据4 4个连续的内存单元,个连续的内存单元,n前两个单元存放中断服务程序的偏移地址,前两个单元存放中断服务程序的偏移地址,后两个单元存放中断服务程序的段地址,后两个单元存放中断服务程序的段地址,n由此确定中断服务程序在内存中的入口地址。由此确定中断服务程序在内存中的入口地址。n可屏蔽中断可屏蔽中断是从是从cpucpu外部的外部的中断控制逻辑中断控制逻辑获获得中断类型号得中断类型号n非可屏蔽中断非可屏蔽中断的中断类型号是的中断类型号是2 2n内部中断的中断类型号内部中断的中断类型号由指令或硬件

20、决定。由指令或硬件决定。(4 4)中断处理)中断处理ncpucpu对中断请求作出响应后,开始执行中断对中断请求作出响应后,开始执行中断服务程序。服务程序。n为使中断服务程序不破坏主程序中寄存器的为使中断服务程序不破坏主程序中寄存器的内容,首先应进行现场保护内容,首先应进行现场保护n即将中断服务程序中要使用到的即将中断服务程序中要使用到的寄存器的内寄存器的内容容压入堆栈,再调用中断服务程序。压入堆栈,再调用中断服务程序。(5 5)中断返回)中断返回n在中断处理完毕后,要恢复现场,即将前在中断处理完毕后,要恢复现场,即将前面保护起来的寄存器的内容从堆栈中弹出。面保护起来的寄存器的内容从堆栈中弹出。

21、n最后执行中断返回指令最后执行中断返回指令iretiret,将原来程序,将原来程序中被保护的中被保护的断点地址断点地址和和标志寄存器标志寄存器的内容,的内容,从堆栈中弹出至从堆栈中弹出至cscs、ipip和标志寄存器中。和标志寄存器中。n这样,这样,cpucpu又回到被中断程序继续执行。又回到被中断程序继续执行。7.1.3直接存储器存取直接存储器存取(dma)方方式式n程序控制数据传送方式和中断数据传送方式都是通程序控制数据传送方式和中断数据传送方式都是通过过cpucpu执行程序来实现数据传送的,过程中取指令、执行程序来实现数据传送的,过程中取指令、执行指令、断点保护、断点恢复等都要花费执行指

22、令、断点保护、断点恢复等都要花费cpucpu的时的时间。间。ndmadma(direct memory accessdirect memory access)方式是指)方式是指,在内存和,在内存和外设之间传送数据时,不需要外设之间传送数据时,不需要cpucpu干预,通过干预,通过dmadma控控制器对系统总线进行控制,实现数据在内存与外设制器对系统总线进行控制,实现数据在内存与外设之间的传送,从而大大提高了数据传送速度。之间的传送,从而大大提高了数据传送速度。ndmadma方式常用于传送速度快、数据量大的系统中。方式常用于传送速度快、数据量大的系统中。7.2 8259a中断控制器中断控制器n当

23、前用于中断优先级管理的最常用的方法是当前用于中断优先级管理的最常用的方法是采用中断控制器。采用中断控制器。8259a是一种功能很强、是一种功能很强、使用方便灵活的使用方便灵活的可编程中断控制器可编程中断控制器(programmable interrupt controller) 主要体现在以下几方面:主要体现在以下几方面:n可实现对可实现对8 8个中断源的优先级控制;个中断源的优先级控制;n通过级联可扩展至对通过级联可扩展至对6464个中断源实现优先级个中断源实现优先级控制;控制;n每一级中断都可以被屏蔽或被允许;每一级中断都可以被屏蔽或被允许;n可根据中断源向系统提供不同的中断类型号;可根据

24、中断源向系统提供不同的中断类型号;n可通过编程设置不同的工作方式。可通过编程设置不同的工作方式。7.2.1 8259a的引脚及功能的引脚及功能n8259a8259a是具有是具有2828条引脚的双列直插式芯片,条引脚的双列直插式芯片,其外部引脚如图所示。其外部引脚如图所示。n下面分别介绍各个引脚的功能。下面分别介绍各个引脚的功能。 ncscs:片选信号,低电平有效。该信号为低电平时,:片选信号,低电平有效。该信号为低电平时,表示该芯片被选中,允许表示该芯片被选中,允许cpucpu对该芯片进行访问。对该芯片进行访问。nwrwr:写信号,低电平有效。该信号为低电平时,:写信号,低电平有效。该信号为低

25、电平时,允许允许cpucpu将数据写入芯片。将数据写入芯片。nrdrd:读信号,低电平有效。该信号有效时,允许:读信号,低电平有效。该信号有效时,允许数据从芯片读至数据从芯片读至cpucpu。nd d7 7dd0 0:双向数据线,与:双向数据线,与cpucpu的数据总线相连,是的数据总线相连,是与与cpucpu之间传送数据的通道。之间传送数据的通道。ncascas2 2cascas0 0:级联控制信号,用来构成主从式级联:级联控制信号,用来构成主从式级联控制结构,用作主片时为输出,用作从片时为输控制结构,用作主片时为输出,用作从片时为输入。入。nsp/en:低电平有效。当芯片工作在非缓冲方低电

26、平有效。当芯片工作在非缓冲方式时,式时,spsp是输入信号,用于设置为主片还是从片,是输入信号,用于设置为主片还是从片,接高电平为主片,接低电平为从片接高电平为主片,接低电平为从片;当芯片工作;当芯片工作在缓冲方式时,在缓冲方式时,enen是输出信号,用于控制缓冲器是输出信号,用于控制缓冲器接收和发送信息。接收和发送信息。nint:中断请求输出信号,用于向中断请求输出信号,用于向cpucpu发出中断发出中断请求,高电平有效。此引脚直接与请求,高电平有效。此引脚直接与cpucpu的的intrintr引引脚连接。脚连接。ninta:中断响应信号,用于接收中断响应信号,用于接收cpucpu发来的中断

27、发来的中断响应信号,低电平有效。此引脚直接与响应信号,低电平有效。此引脚直接与cpucpu的的inta引脚连接。引脚连接。nir7ir0:中断请求输入端,用于接收中断请求输入端,用于接收从外设发来的中断请求信号,高电平或从外设发来的中断请求信号,高电平或上升沿有效。上升沿有效。na0:内部寄存器选择信号,用于对芯片内部寄存器选择信号,用于对芯片内部的两个可编程寄存器进行选择。内部的两个可编程寄存器进行选择。 7.2.2 8259a的内部结构的内部结构n8259a8259a的内部结构如图所示,主要包括的内部结构如图所示,主要包括8 8个个部分:部分:中断请求寄存器(中断请求寄存器(irrirr,

28、interrupt request interrupt request registerregister):):8 8位寄存器,用来保存从外设位寄存器,用来保存从外设发来的中断请求信号发来的中断请求信号irir0 0irir7 7。如果某一个中断请求信号为高电平,则如果某一个中断请求信号为高电平,则irrirr的相应位置为的相应位置为1 1。优先级分析器(优先级分析器(prpr,priority resolverpriority resolver):):用来识别各中断请求信号的优先级别。用来识别各中断请求信号的优先级别。当多个中断请求信号同时出现时,由当多个中断请求信号同时出现时,由prpr判

29、判断哪一个信号的优先级别最高,断哪一个信号的优先级别最高,cpucpu将首先将首先响应优先级别最高的中断请求。响应优先级别最高的中断请求。如果新出现的中断请求比当前正在处理的如果新出现的中断请求比当前正在处理的中断具有更高的优先级,则进入多重中断中断具有更高的优先级,则进入多重中断处理。处理。n中断服务寄存器(中断服务寄存器(isrisr,interrupt service interrupt service registerregister):):8 8位寄存器,用来记录正在处位寄存器,用来记录正在处理中的中断请求。理中的中断请求。n在收到第一个中断响应信号在收到第一个中断响应信号intai

30、nta时,根据优时,根据优先级分析器的判断结果,将具有最高优先级先级分析器的判断结果,将具有最高优先级的中断请求信号的的中断请求信号的isrisr的相应位置为的相应位置为1 1,表示,表示该请求正在被服务。该请求正在被服务。n当它被服务完毕,将当它被服务完毕,将isrisr的相应位清的相应位清0 0。n当某个中断请求尚未服务完而中途被更高优当某个中断请求尚未服务完而中途被更高优先级的中断请求中断时,会有多个先级的中断请求中断时,会有多个isrisr位为位为1 1,形成多重中断。形成多重中断。n中断屏蔽寄存器(中断屏蔽寄存器(imrimr,interrupt mask interrupt mas

31、k registerregister):):8 8位寄存器,用来保存中断请位寄存器,用来保存中断请求的屏蔽信号。求的屏蔽信号。n每个中断请求都设置了一个屏蔽位,它们之每个中断请求都设置了一个屏蔽位,它们之间是相互独立的。间是相互独立的。n如果如果imrimr的某位被置为的某位被置为1 1,则与之对应的中断,则与之对应的中断请求被屏蔽,该请求不能进入下一级的优先请求被屏蔽,该请求不能进入下一级的优先级分析器,但不会影响其他没有被屏蔽的中级分析器,但不会影响其他没有被屏蔽的中断请求。断请求。数据总线缓冲器:数据总线缓冲器:8 8位双向三态缓冲器,与位双向三态缓冲器,与cpucpu数据总线相连,用来

32、接收数据总线相连,用来接收cpucpu发来的控发来的控制命令字,或者向制命令字,或者向cpucpu发送中断向量号和状发送中断向量号和状态信息。态信息。控制逻辑:控制逻辑:用来向用来向cpucpu发送中断请求信号发送中断请求信号intint和接受和接受cpucpu发送来的中断响应信号发送来的中断响应信号intainta。它包括它包括4 4个初始化控制寄存器个初始化控制寄存器icwicw1 1icwicw4 4和和3 3个操作控制寄存器个操作控制寄存器ocwocw1 1ocwocw3 3。读读/ /写逻辑:写逻辑:用来接收来自用来接收来自cpucpu的读的读/ /写命令,其操写命令,其操作过程由作

33、过程由cscs、rdrd、wrwr和和a a0 0共同控制完成。共同控制完成。级联缓冲级联缓冲/ /比较器:比较器:用来实现多片用来实现多片8259a8259a的级联。的级联。级联时,一片级联时,一片8259a8259a作为主控制器,作为主控制器,irir7 7irir0 0的每的每一个中断输入端都可以连接一片一个中断输入端都可以连接一片8259a8259a作为从控制作为从控制器,所以系统总共可以连接器,所以系统总共可以连接9 9片片8259a8259a,最多能处,最多能处理理6464个中断请求输入信号。个中断请求输入信号。7.2.3 8259a的中断响应过程的中断响应过程n8259a8259

34、a的中断响应过程如下:的中断响应过程如下:n 当某中断请求当某中断请求iriri i有效时,中断请求寄存器有效时,中断请求寄存器irrirr的的相应位相应位置置1 1;n 若中断屏蔽寄存器若中断屏蔽寄存器imrimr中的相应位为中的相应位为0 0,则该中,则该中断请求信号送入优先级分析器断请求信号送入优先级分析器prpr;否则被屏蔽掉。;否则被屏蔽掉。n如果此时没有正在处理的中断请求,这次中断请求如果此时没有正在处理的中断请求,这次中断请求使得使得8259a8259a的的intint端输出高电平,向端输出高电平,向cpucpu发出中断请发出中断请求,否则新的中断请求和正在处理的中断比较,从求,

35、否则新的中断请求和正在处理的中断比较,从而决定哪一个优先级更高;而决定哪一个优先级更高;n cpu cpu进入中断响应周期,发出两个中断响应信进入中断响应周期,发出两个中断响应信号号intainta。8259a8259a接收到第一个接收到第一个intainta后,使后,使irrirr的锁的锁存功能失效,将存功能失效,将isrisr中相应位置中相应位置1 1,将,将irrirr中的对应中的对应位清位清0 0;n 8259a 8259a接收到第二个接收到第二个intainta后,将相应的中断类后,将相应的中断类型号送到数据总线上,恢复型号送到数据总线上,恢复irrirr的锁存功能;的锁存功能;n

36、中断响应周期结束后,发出中断结束命令,使中断响应周期结束后,发出中断结束命令,使相应的相应的isrisr复位。复位。7.2.4 8259a的初始化编程的初始化编程n8259a8259a内部有两组寄存器,一组为内部有两组寄存器,一组为4 4个初始个初始化控制寄存器,用于存放化控制寄存器,用于存放cpucpu写入的初始化写入的初始化命令字命令字icw1icw1icw4icw4;另一组为;另一组为3 3个操作控制个操作控制寄存器,用于存放寄存器,用于存放cpucpu写入的操作命令字写入的操作命令字ocw1ocw1ocw3ocw3。n系统在正式工作前,需要先由初始化程序系统在正式工作前,需要先由初始化

37、程序写入初始命令字写入初始命令字icw1icw1icw4icw4,然后再对它,然后再对它的工作方式进行设置。的工作方式进行设置。1初始化命令字初始化命令字n由于由于8259a仅使用两个端口地址,其中,仅使用两个端口地址,其中,icw1使用使用a00的端口,的端口,icw2icw4使用使用a01的端口。因此,在进行初始化编的端口。因此,在进行初始化编程时,先写入程时,先写入icw1,其他初始化命令字必,其他初始化命令字必须按照一定的顺序写入,写入流程如图须按照一定的顺序写入,写入流程如图7-10所示。初始化命令字一旦写入,在系统所示。初始化命令字一旦写入,在系统工作过程中就不再改变。工作过程中就

38、不再改变。(1)icw1nicw1icw1用于启动用于启动8259a8259a的初始化过程,其格的初始化过程,其格式如图式如图7-117-11所示。所示。d7 d5:在:在8086/8088系统中,此系统中,此3位无意位无意义,通常设置为义,通常设置为0。d4:icw1的特征标志位,总是设置为的特征标志位,总是设置为1。d3(ltim):设置中断请求输入端:设置中断请求输入端iri的触的触发方式。如果发方式。如果ltim1,则中断请求为,则中断请求为电平触发电平触发方式;如果方式;如果ltim0,则中断,则中断请求为请求为边沿触发边沿触发方式。方式。d2(adi):在:在8080/8085系统

39、中,用于设置调用系统中,用于设置调用地址间隔。如果地址间隔。如果adi1,则调用地址间隔为,则调用地址间隔为4;如 果如 果 adi 0, 则 调 用 地 址 间 隔 为, 则 调 用 地 址 间 隔 为 8。 在。 在8086/8088系统中,该位无效。系统中,该位无效。d1(sngl):指示:指示8259a在系统中使用的是单片在系统中使用的是单片还是多片级联。如果还是多片级联。如果sngl1,则系统中为单,则系统中为单片片8259a;如果;如果sngl0,则系统中为多片,则系统中为多片8259a级联。级联。d0(ic4):指示是否需要初始化:指示是否需要初始化icw4。如果。如果ic40,

40、则需要初始化,则需要初始化icw4;如果;如果ic41,则不,则不需要初始化需要初始化icw4。(2)icw2nicw2用于设置中断类型号,其格式如用于设置中断类型号,其格式如图图7-12所示。所示。d7(t7)d3(t3):中断类型号的高:中断类型号的高5位。位。d2(id2) d0(id0):中断类型号的低:中断类型号的低3位,位,自动填入根据中断源自动填入根据中断源iri下标生成的下标生成的3位位二进制编码。二进制编码。 提示:提示:8259a为为8个中断源分配了个中断源分配了8位的位的中断类型号,其中中断类型号的高中断类型号,其中中断类型号的高5位都位都是相同的。是相同的。(3)icw

41、3nicw3用于多片用于多片8259a的级联,只有在的级联,只有在icw1中的中的sngl0时才进行设置。在级时才进行设置。在级联系统中,主片和从片都必须设置联系统中,主片和从片都必须设置icw3。主片主片icw3的格式如图的格式如图7-13所示。所示。d7 d0:分别与:分别与ir7ir0对应。如果对应。如果di1,则对应的则对应的iri端连有从片端连有从片8259a;如果;如果di0,则对应的,则对应的iri端不接从片。端不接从片。d7 d3:未用,通常设置为:未用,通常设置为0。d2(id2) d0(id0):指示从片接到主片的:指示从片接到主片的哪个哪个ir,对应着,对应着iri的下标

42、号的的下标号的3位二进位二进制编码。制编码。(4)icw4nicw4用于设定用于设定8259a的工作方式,其格的工作方式,其格式如图式如图7-15所示。所示。d7 d5:未用,通常设置为0。d4(sfnm):设置嵌套方式。sfnm1表示设置为特殊全嵌套方式;sfnm0表示设置为一般全嵌套方式。d3(buf):设置缓冲方式。buf1为缓冲方式;buf0为非缓冲方式。d2(m/s):设置在缓冲方式下本片是主片还是:设置在缓冲方式下本片是主片还是从片,只在从片,只在buf1时有效。时有效。m/s1时本片时本片为主片;为主片;m/s0时本片为从片。时本片为从片。d1(aeoi):设置中断结束方式。如果

43、:设置中断结束方式。如果aeoi1,则设置为自动中断结束方式;如果,则设置为自动中断结束方式;如果aeoi0,则设置为非自动中断结束方式。,则设置为非自动中断结束方式。d0(pm):设置:设置cpu模式。模式。pm1为为8086/8088模式;模式;pm0为为8080/8085模式。模式。2操作命令字操作命令字n在对在对8059a进行初始化后,可通过写入操作命进行初始化后,可通过写入操作命令字来设置对令字来设置对8259a的操作。的操作。n操作命令字没有严格的写入顺序。操作命令字没有严格的写入顺序。n其中,其中,ocw1必须写入必须写入a01的端口,的端口,ocw2和和ocw3写入写入a00的

44、端口。的端口。(1)ocw1nocw1的各位与中断屏蔽寄存器的各位与中断屏蔽寄存器imr的的各位相对应,用于设置对各位相对应,用于设置对8259a的中断屏的中断屏蔽操作。蔽操作。ocw1的格式如图的格式如图7-16所示。所示。d7(m7)d0(m0):分别与:分别与ir7ir0对应,对应,如果如果mi1,则对应的中断源,则对应的中断源iri被屏蔽,被屏蔽,即不允许中断;如果即不允许中断;如果mi0,则允许该,则允许该iri中断。中断。(2)ocw2nocw2用于设置中断优先级方式和中断用于设置中断优先级方式和中断结束方式,其格式如图结束方式,其格式如图7-17所示。所示。d7(r):设置中断优

45、先级方式。如果:设置中断优先级方式。如果r1,则设置,则设置为循环优先级方式;如果为循环优先级方式;如果r0,则设置为固定优,则设置为固定优先级方式。先级方式。d6(sl):控制:控制l2l0是否有效。如果是否有效。如果sl1,则,则l2l0定义有效;如果定义有效;如果sl0,则,则l2l0定义无效。定义无效。d5(eoi):设置中断结束方式,只有在:设置中断结束方式,只有在icw4中的中的aeoi0时使用。如果时使用。如果eoi1,则在中断服务子,则在中断服务子程序结束时向程序结束时向8259a发出中断结束命令发出中断结束命令eoi,将当,将当前中断服务寄存器中最高优先权位复位;如果前中断服

46、务寄存器中最高优先权位复位;如果eoi0,则不发出中断结束命令,则不发出中断结束命令eoi。d7d5组合的命令编码如表组合的命令编码如表7-1所示。所示。d4和和d3:ocw2的标志位,这两位总是设置为的标志位,这两位总是设置为0。d2(l2) d0(l0):中断源编码,在特殊循环优:中断源编码,在特殊循环优先级方式下指明先级方式下指明ir的最低优先级。的最低优先级。(3)ocw3nocw3用于设置查询方式和特殊屏蔽方式,以用于设置查询方式和特殊屏蔽方式,以及读取寄存器的状态,其格式如图及读取寄存器的状态,其格式如图7-18所示。所示。d7:设置中断优先级方式。如果:设置中断优先级方式。如果r

47、1,则设,则设置为循环优先级方式;如果置为循环优先级方式;如果r0,则设置为,则设置为固定优先级方式。固定优先级方式。d6(esmm)和和d5(smm):设置特殊屏蔽方式。:设置特殊屏蔽方式。当当esmm1、smm1时,允许特殊屏蔽方时,允许特殊屏蔽方式;当式;当esmm1、smm0时,不允许特殊时,不允许特殊屏蔽方式;当屏蔽方式;当esmm0时,无效。时,无效。d4和和d3:ocw3的标志位,总是设置为的标志位,总是设置为0和和1。d2(p):设置查询方式。如果:设置查询方式。如果p1,则设置,则设置为查询方式;如果为查询方式;如果p0,则设置为非查询方,则设置为非查询方式。式。 提示:提示

48、:在查询中断方式下,在查询中断方式下,8259a不发出不发出int信号,当信号,当cpu查询到中断请求后才执行查询到中断请求后才执行相应的中断过程。相应的中断过程。d1(rr)和和d0(ris):设置读:设置读irr或或isr命令。命令。当当rr1、ris0时,读取时,读取irr命令;当命令;当rr1、ris1时,读取时,读取isr命令;当命令;当rr0时,时,无效。无效。【例【例7-2】n某微机系统使用单片某微机系统使用单片8259a管理中断,接口地管理中断,接口地址为址为20h和和21h,中断为上升沿触发,与,中断为上升沿触发,与ir0ir3对应的中断类型号为对应的中断类型号为08h0bh

49、,ir4ir7不使用。根据要求编写不使用。根据要求编写8259a的初始的初始化程序。化程序。mov dxmov dx,20h20hmov almov al,12h12h; ;上升沿触发,单片不写上升沿触发,单片不写icwicw4 4,icwicw1 1000100100001001012h12hout dxout dx,alal;a;a0 00 0,写,写icwicw1 1mov dxmov dx,21h21hmov almov al,08h08h; ;设置中断类型号设置中断类型号08h08hout dxout dx,alal;a;a0 01 1,写,写icwicw2 2mov almov al,0f0h0f0h; ;屏蔽屏蔽irir4 4irir7 7,ocwocw1 111110000111100000f0h0f0hout dxout dx,alal; ;写写ocwocw1 17.2.5 8259a7.2.5 8259a的连接的连接n单片单片8259a与系统总线的电

温馨提示

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

评论

0/150

提交评论