信息工程学院信息论教研室1第七章中断技术信息工程学院信息论教研室2本章的主要内容本章主要介绍:•I/O的基本知识(接口的功能与作用,端口编址方式,信息传送方式,端口地址分配与地址译码等)•中断的基本原理(中断请求、判优、响应、处理、返回)•8086中断系统(中断源,中断向量表,中断类型号,中断响应过程等)•中断控制器8259A(内部结构,工作原理,工作方式及编程)•PCXT/AT机中的外部中断逻辑信息工程学院信息论教研室3第一节I/O接口信息工程学院信息论教研室4一、I/O接口的重要作用•输入和输出设备是计算机系统的重要组成部分。外设与计算机主机连接是通过各种I/O接口实现的。所以,I/O接口在系统中起着重要的桥梁作用。如图:总线主设备(CPU)总线I/O接口外设数据状态命令/控制图7.1I/O接口在系统中的位置信息工程学院信息论教研室5一、I/O接口的重要作用(续)◎I/O接口:连接外设与总线之间的逻辑电路的总称。即总线主设备与外设之间的桥梁。♦通过I/O接口,总线与外设可以交换数据,主设备可以控制该I/O口的工作(向I/O口写入命令);监测与管理I/O口的工作状态;必要时,I/O口还可产生中断请求。♦主设备与外设交换数据还存在以下问题需要解决:•速度不匹配•信号电平不匹配(TTL,CMOS,RS-232等)•信号格式不匹配(并行、串行、模拟、数字等)•时序不匹配(外设有自己的定时与控制逻辑)信息工程学院信息论教研室6微机系统中的各种I/O接口内存CPU内存接口电源输入接口输出接口通信接口过程控制接口外存接口智能仪器接口键盘光笔数字化仪声音输入图形输入打印机显示器绘图仪记录仪终端MODEM电传机通信仪表ADCDAC开关量输入/输出磁带机磁盘机光存储器各种数字化仪器图7.2微机系统各种I/O接口示意图系统总线信息工程学院信息论教研室7二、I/O接口的主要功能●数据缓冲功能(解决速度差异)●设备选择(端口地址,译码)●信号转换功能(电平,并、串,数、模等转换)●对外设的控制与监测功能(发命令,监测状态等)●中断请求与管理●可编程功能信息工程学院信息论教研室8三、I/O端口的编址方式●I/O端口:把I/O接口电路中能被CPU直接访问的寄存器或某些特定器件称之为端口(Port)。I/O接口中常设有数据口、命令口和状态口。●I/O端口的编址方式•与存储器统一编址(或存储器映射方式)优点:指令多且齐全;端口空间大。缺点:指令长且慢;占用内存空间。•I/O独立编址优点:指令短(设有单独的I/O指令)执行快;不占内存空间;程序易读。缺点:端口空间小;需要单独的I/O读、写信号。信息工程学院信息论教研室9四、CPU与I/O端口之间传送信息的方式◎无条件传送电路简单,CPU访问时总认为I/O已准备好。下面是一个无条件传送的输入方式电路:来自外设数据三态缓冲器地址译码器数据总线地址总线AENIORA0~A9Y图7.3无条件传送的输入方式图中,AEN是地址允许信号。当AEN=0由CPU控制总线;当AEN=1时,由DMA控制总线。CPU读三态缓冲器时总认为数据已准备就绪信息工程学院信息论教研室10四、CPU与I/O端口之间传送信息的方式(续)◎程序查询传送方式读I/O端口状态信息,若准备就绪,就输入或输出,否则,就继续查询等待。显然,该方式CPU的大部分时间都用在了查询和等待了,所以传送效率不高。下图是一个查询输入的接口电路。其查询程序如下:wait1:movdx,stportinal,dxtestal,80h;当ready=1,数据已准备好。jzwait1;当ready=0,数据未准备好。movdx,dtport;准备好,读端口数据inal,dx信息工程学院信息论教研室11四、CPU与I/O端口之间传送信息的方式(续)读状态信息READY=1?NY输入数据输入设备锁存器(8)三态缓冲器(8)缓冲器(1)地址译码器状态信息A0~A9IORAENAENIOR(读状态)(读数据)到数据总线ReadyDRQ+5V图7.4查询输入的接口电路与输入程序流程图信息工程学院信息论教研室12四、CPU与I/O端口之间传送信息的方式(续)◎中断传送方式该方式可大大提高CPU的工作效率。该方式是:当外设要求CPU交换数据时,可向CPU发出中断请求,CPU在执行完当前指令后,即可中断当前任务的执行,根据中断源提供的中断类型号,转入相应的中断处理程序,以实现对外设的数据传送和管理。该方式可实现CPU和外设并行工作。信息工程学院信息论教研室13四、CPU与I/O端口之间传送信息的方式(续)传送查询等待I/O工作传送查询等待I/O工作传送tCPU外设图7.5查询传送方式下CPU与外设工作过程示意图CPUCPU做其他工作I/O工作CPU做其他工作I/O工作外设中断处理中断处理中断处理t图7.6中断传送方式下CPU与外设工作过程示意图信息工程学院信息论教研室14四、CPU与I/O端口之间传送信息的方式(续)◎DMA传送方式DMA(DirectMemoryAccess)传送方式又称直接存储器存取方式。其原理就是在存储器与外设之间开辟一条高速数据通道,使外设与内存之间直接交换数据。这一数据通道是通过DMA控制器来实现的。在DMA传送期间,不需要CPU的任何干预,而是由DMA控制器控制系统总线,在其控制下完成数据传送任务。对于高速数据传送和与外设频繁交换信息的场合,DMA方式比中断传送方式效率高。因为中断传送要不断的保护断点和现场,使CPU的工作效率大为降低。信息工程学院信息论教研室15四、CPU与I/O端口之间传送信息的方式(续)DMA传送原理示意图如下:信息工程学院信息论教研室16五、PC机系列I/O端口地址分配•地址分配:前256个端口给系统板,后768个端口给扩展版•系统板上接口芯片的端口地址(000H~00FFH)I/O芯片端口地址DMA控制器1DMA控制器2DMA页面寄存器000~01FH0C0~0DFH080~09FH中断控制器1中断控制器2020~03FH0A0~0BFH定时器并口CMOSRAM协处理器040~05FH060~06FH070~07FH0F0~0FFH信息工程学院信息论教研室17五、PC机系列I/O端口地址分配(续)•扩展槽上接口控制卡的端口地址(100H~3FFH)I/O接口名称端口地址游戏控制卡200~20FH并行口控制卡1并行口控制卡2370~37FH270~27FH串行口控制卡1串行口控制卡23F8~3FFH2F8~2FFH用户实验卡300~31FH同步通信卡1同步通信卡23A0~3AFH380~38FH单显MDA彩显CGA彩显EGA/VGA3B0~3BFH3D0~3DFH3C0~3CFH硬驱控制卡软驱控制卡1F0~1FFH3F0~3F7HPC网卡360~36FH信息工程学院信息论教研室18六、I/O端口地址译码•译码电路的两种译码方式–固定式端口地址译码–可选式端口地址译码•译码电路的实现途径–门电路译码–译码器译码–GAL、FPGA器件实现译码(译码电路对外可保密)(由于涉及到开发工具与GAL编程,不要求掌握)信息工程学院信息论教研室19六、I/O端口地址译码(续)•全译码电路:读2F8H端口(A9~A0=1011111000B)•用门电路实现译码,IOR也参与译码注:AEN=0非DMA传送AEN=1DMA传送74LS2074LS30A9A8A3A2A1A0AENIORY74LS32信息工程学院信息论教研室20六、I/O端口地址译码(续)•读写2F8H端口(IOR与IOW都参与译码)74LS2074LS30A9A8A3A2A1A0AENYIORIOW读2F8口写2F8口74LS3274LS3274LS32信息工程学院信息论教研室21六、I/O端口地址译码(续)•举例74LS2074LS30A9A8A3A2A1A0AENYIORIOW读2F8口写2F8口74LS3274LS3274LS3274LS373LEOED0-D7Q0-Q7CPUDataBus74LS245GDIRABMOVDX,2F8HINAL,DXOUTDX,AL信息工程学院信息论教研室22六、I/O端口地址译码(续)•采用译码器可同时译出多个端口地址–常用译码器有3-8译码器74LS138、4-16译码器74LS154,双2-4译码器74LS139等ABCG2BG2AGY0Y1Y2Y3Y4Y5Y6Y774LS138信息工程学院信息论教研室23六、I/O端口地址译码(续)•例:采用74LS138译码器实现PC机系统板上的端口地址译码ABCG2BG2AGY0Y1Y2Y3Y4Y5Y6Y774LS138DMACS(000-01FH)INTRCS(020-03FH)T/CCS(040-05FH)PPICS(060-07FH)WRTDMAPGWRTNMIREG080-09FH0A0-0BFHIOWA5A6A7A8A9AEN信息工程学院信息论教研室24六、I/O端口地址译码(续)•用比较器和开关实现A0-A9的变化:000001010xxxx0011xx100101110111A0A1A2B1B2B3A=BABAB74LS85A3B0A=BABCG2BG2AGY0Y1Y2Y3Y4Y5Y6Y774LS138A6A7A8A9A2A3A4A5AENVCCB0-3A0-3输出0B0-3=A0-3输出1信息工程学院信息论教研室25六、I/O端口地址译码(续)•该译码器可译出16组(A9~A6可变)不同的地址空间,每组有32个(A4~A0可变)地址,即:每组有8个(A4~A2被译码)子组,每个子组有4个地址(A1,A0译码)•译码器可译出的最小地址为:000H(A9~A0=0000000000)•译码器可译出的最大地址为:3DFH(A9~A0=1111011111)信息工程学院信息论教研室26六、I/O端口地址译码(续)•用跳接开关实现74LS2074LS30A9A8A3A1A0AENY74LS32信息工程学院信息论教研室27IORIOWA0A1A2A3A4A5A6A7A8A9AEN+5VDIP+5VQ7Q6Q5Q0Q1Q2Q3Q4P0P1P2P3P4P5P6P7P=QLS688LS138+5VG1G2BG2AABCG1G2BG2AABCLS138Y0Y1Y2Y3Y4Y5Y6Y7Y0Y1Y2Y3Y4Y5Y6Y7图7.10开关式可选译码电路六、I/O端口地址译码(续)信息工程学院信息论教研室28第二节中断的基本概念信息工程学院信息论教研室29中断的概念和全过程*什么是中断?所谓中断就是当CPU正常运行程序时,由于随机的事件包括内部事件和外部事件)引起CPU暂时中止正在运行的程序,转去执行请求中断的中断源的中断服务程序,中断服务结束后再返回被中止的程序。这一过程被称为中断。*中断源广义地说,能引起CPU产生程序中断的随机事件就是中断源。例如:外设故障、传输错误、定时器时间到等都可以是中断源;某外设需要传送数据向CPU发出中断请求,该外设即是中断源。对主机来说,系统掉电、硬件故障、软件错误、设置断点、单步操作等也是中断源。信息工程学院信息论教研室30中断的概念和全过程(续)*中断过程中断的全过程分为以下五步:中断请求,中断判优,中断响应,中断服务(处理),中断返回。◎中断请求中断请求分为边沿请求和电平请求。请求信号由低到高或有高到低的跳变为边沿触发请求;请求信号为高电平或低电平为电平触发请求。◎中断判优1、软件判优2、硬件判优信息工程学院信息论教研室31中断的概念和全过程(续)◎中断响应中断响应就是CPU”中断”现正在进行的处理任务,转向中断请求相对应的处理程序的过程。中断响应过程应解决如下问题:*保护断点*保护现场*CPU关中断*转到中断请求所对应的处理程序(控制权转移:方法有固定入口地址;矢量中断)信息工程学院信息论教研室32中断的概念和全过程(续)◎中断处理(服务)中断处理就是执行中断服务程序,完成中断源提出的处理要求。实际上是软件编程问题。中服程序与子程序的区别:随机事件与意料之