第六章:微型计算机的中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1微型计算机原理及其应用——第六章:输入输出控制嘉兴学院机电工程学院2输入输出的控制方式:程序控制方式、中断方式、DMA方式一、无条件传送方式二、有条件传送方式三、中断传送方式四、DMA传送方式6.1输入输出数据的传输控制方式3一、无条件传送方式当外部设备的各种动作时间是固定的,且已知就可采用这种方式,把软件延时时间设计大于这个固定动作时间,不用状态判断。这种方式一般只需一个数据端口4无条件传送的输入方式无条件传送的输入方式三态缓冲器数据总线DB地址总线数据来自外设RDIO/M地址译码器85无条件传送的输出方式无条件传送的输出方式锁存器数据总线DB地址总线到外设WRIO/M地址译码器CE74LS23786二、有条件传送方式(又叫查询传送方式)无条件传送必须确认外设已经准备好才能用,有条件传送采用查询外设状态,这样接口部分除数据端口外,还须有状态信号端口。查询方式输入其接口电路如下:7查询式输入接口电路A7~A0ooooo•oooo+5VIO/MRDReady(D4)RDIO/MCSCS输入装置数据•›选通信号DQ锁存器缓冲器缓冲器地址译码地址译码状态口数据口数据去DB状态信息R数据端口状态端口8当输入装置数据准备好①发出一个选通信号,一面把数据锁存起来,一面送D触发器的CLK端,将D=1打入Q端,使Q=1;②CPU读入状态信息READY;③当READY=1,输入数据;④读入数据同时,将状态信号清零。9⒉查询式输出如图示查询式输出接口电路A7~A0地址译码oooooooo••IO/MWRIO/MRD+5VQDRACK“BUSY”DB去DB状态信息BUSY(D0)输出数据端口状态端口数据输出装置锁存器缓冲器地址译码CSCS地址译码10在输出时CPU需了解外设的状态,如无空则等待,有空执行输出指令,过程如下:①当输出装置输出数据后,发ACK信号,将D触发器置0,即BUSY=0②CPU查询BYSY,若为0,转入③,否,继续查③执行输出指令,把数据送至锁存器④同时令D触发器置1,它一方面告知外设,数据已准备好,另一方面让BUSY=1,阻止CPU输出新的数据11例题1要求采用查询方式从某输入设备上输入一组60个数据送缓冲区BUFF,接口电路如上所讲,其中READY接数据总线的D0位。若缓冲区已满,则输出提示信息“BUFFEROVERFLOW”,然后结束。设备的启动地址为FCH,数据端口地址为F8H,状态端口地址为FAH。程序如下:;-----------------------------------------------------段定义DATASEGMENTMESS1DB‘BUFFEROVERFLOW’,’$’BUFFDB60DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX12;--------------------------------------初始化MOVBX,OFFSETBUFFMOVCX,60OUT0FCH,AL;启动设备;--------------------------------------数据输入WAIT1:INAL,0FAH;查询状态,若为0,则等待TESTAL,01HJZWAIT1INAL,0F8H;输入数据MOV[BX],ALINCBXLOOPWAIT1;检测缓冲区是否满,不满继续输入MOVDX,OFFSETMESS1;缓冲区满,输出提示字符MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART13三、中断传送方式采用查询方式,CPU要不断查询外设,当有些外设速度较低(例键盘、打印机),CPU要等待,效率低,采用中断方式可提高CPU效率。INTR主程序中断服务程序CPU外设14当外设准备好(输入)或闲(输出),向CPU发出申请,CPU响应后,暂停执行原程序,转去执行中断服务程序。中断传送的接口电路如下:15中断传送接口电路装置中断允许oooooo••输入装置数据锁存器缓冲器缓冲器中断类型码去DBINTA(中断响应信号)INT去数据总线DB地址总线选通IOR+5VDQ&RCS地址译码中断传送接口电路16以输入为例:输入装置输入一数据,发出选通信号,一方面把数据存入锁存器,一方面又使D触发器置1,在中断允许下,发出INT,CPU在现行指令执行完后,发出INTA,把外设送来的中断向量放到DB上,于是CPU转入中断服务程序,读入数据,同时清除中断请求INT,中断处理完,CPU返回被中断处理的程序继续执行。17中断过程是指中断请求、中断判优、中断响应、中断处理、中断返回这五个过程。中段请求、中断判优、中断响应由硬件完成,中断处理、中断返回由软件完成。中断请求1)外部设备发中断请求的条件:当外设准备就绪或本身工作已经完成时,才向CPU提出中断请求。2)外部设备中断请求的标志:当外设要求和CPU进行数据交换时,将中断请求信号送往中断请求触发器或中断控制器,经它们处理后,向CPU发出中断请求。中断响应如果CPU处于开中断状态,经判优后响应其中最高优先级的中断请求,关中断,将断点压入堆栈中(有的微机还将程序状态字和相关寄存器的内容压入堆栈)保存,以备返回原程序,紧接着将相应的中断处理程序入口地址或中断向量送CPU,转入中断服务程序。18中断过程中断处理保护现场。将在中断处理程序中使用的有关寄存器的内容压入堆栈保护起来。在现场保护的过程中,绝对不允许被中断(应禁止中断),否则现场将被破坏。当现场保护好后应开中断。中断服务。即该中断所要执行的具体指令内容。恢复现场。当中断服务结束后,应用中断结束命令清除中断标志,立即关中断,以保证恢复现场的过程不受干扰。恢复现场就是把原来压入堆栈的有关寄存器的内容弹出。现场恢复后应开中断,以便CPU响应更高级的中断请求。中断返回将压入的断点地址弹出,保证被中断的程序按原来状态执行下去。19中断服务程序中断处理和中断返回中的所有内容,也叫做中断服务程序。即:20中断优先级当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。软件查询方法只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级。21简单硬件方法将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。22专用硬件方法采用可编程的中断控制器芯片,如Intel8259A。23中断服务子程序:流程:保护现场-开中断-为相应设备服务-恢复现场-返回例3:将上章习题7扩展,要求将计数通道的输出作为中断源向CPU发出中断请求,每计完120圈后产生中断,编制完成具体计价计算更新的中断服务子程序。分析:可以选用通道0,工作在方式0,计数初值为120。控制字为:000100000B计价金额和单价分别存在SUM和VAL中中断服务子程序如下:24;---------------------计算新的计价金额INTSTART:PUSHAX;保护现场MOVAX,SUMADDAX,VALMOVSUM,AXCALLSHOW;---------------------重新初始化8253计数器MOVAL,00010000BOUTCPORT,ALMOVAL,120OUTTD0PORT,AL;----------------------中断返回POPAXIRET到34页256.28086/8088中断操作1.中断分类与中断类型码2.中断向量与中断向量表3.中断过程与时序26中断分类及中断类型码中断源可以分为两大类,即外部(硬件)中断和内部(软件)中断。硬件中断:即通过外部的硬件产生的中断,如打印机、键盘等。硬件中断又可分为:可屏蔽中断和不可屏蔽中断。不可屏蔽中断:由NMI引脚引入,它不受中断允许标志IF的影响,每个系统中仅允许有一个,都是用来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应。可屏蔽中断:由INTR引脚引入,它受中断允许标志的影响,也就是说,只有当IF=1时,可屏蔽中断才能进入,反之则不允许进入,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。软件中断:即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INTn指令产生。27中断分类及中断类型码8086/8088系统最多可处理256级不同类型的中断。中断分类外部中断(硬件中断)内部中断(软件中断)可屏蔽中断(INTR)非屏蔽中断(NMI,中断类型码2)单步中断(中断类型码1)断点中断(中断类型码3)溢出中断(中断类型码4)Intn中断28中断分类及中断类型码中断类型码:8086为每个中断源分配了一个中断类型码,其取值范围为0~255,即可处理256种中断。其中包括软件中断,系统占用的中断以及开放给用户使用的中断。中断类型码或者包含在指令中,或者预先规定;所有内部中断和NMI中断都不执行INTA总线周期;除单步中断外,任何内部中断都无法禁止且都比外部中断优先级高;中断优先级内中断(除法错,INTO,INT)最高最低非屏蔽中断NMI可屏蔽中断INTR单步中断29中断向量和中断向量表中断向量:把各个中断服务子程序的入口都称为一个中断向量;中断向量表:将这些中断向量按一定的规律排列成一个表,就是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。向量表地址:中断向量在中断向量表中的位置。8086中断系统中的中断向量表是位于0段的0~03FFH的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址(CS),也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。30中断向量和中断向量表中断向量在向量表的位置中断类型号*4即可计算某个中断类型的中断向量在整个中断向量表中的位置。如类型号为20H,则中断向量的存放位置为20H×4=80H,(设中断服务子程序的入口地址为4030:2010,则在0000:0080H~0000:0083H中就应顺序放入10H、20H、30H、40H。当系统响应20H号中断时,会自动查找中断向量,找出对应的中断向量装入CS、IP,即转入该中断服务子程序。3100H~04H----系统专用10H~1FH----BIOS用40H~FFH----用户用08H~0FH----硬件中断20H~3FH----DOS用32中断向量的装入(放在主程序的开始部分)PUSHDSMOVDX,SEGINTSTARTMOVDS,DXMOVDX,OFFSETINTSTARTMOVAL,60HMOVAH,25HINT21HPOPDS假设中断服务子程序入口地址为:CS:IP=4530:2000到24页45302000类型600000:018033中断响应过程346.3可编程中断控制器8259A8259A性能概述1.具有8级中断优先控制,通过级连可以扩展至64级优先权控制;2.每一级中断都可以通过初始设置为允许或屏蔽状态;3.8259A的工作方式,可以通过编程进行设置,因此,使用非常灵活;4.8259A采用NMOS制造工艺,只需要单一的+5V电源。358259A的内部结构和工作原理数据总线缓冲器:它是8259A与系统数据总线的接口,是8位双向三态缓冲器。CPU与

1 / 70
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功