1、2022-8-31第7章 输入输出系统22022-8-3第7章 输入输出系统 n7.1 I/O接口技术概述 n7.2 CPU与外设之间数据传送的方式 n7.3 中断系统 n7.4 8086/8088中断系统 n7.5 可编程中断控制器Intel8259A n7.6 DMA传送和DMA控制器8237 32022-8-37.1 I/O接口技术概述 n主机与外界交换信息称为输入/输出(I/O)n主机与外界的信息交换是通过输入/输出设备进行的 42022-8-37.1.1 I/O接口 n对于主机,I/O接口提供了外部设备的工作状态及数据n对于外部设备,I/O接口记忆了主机送给外设的一切命令和数据n使主
2、机与外设之间协调一致地工作 52022-8-3主机与外设的连接 图7-1 主机与外设的连接 62022-8-3I/O接口的作用 n外部设备不能直接和CPU数据总线相连,要借助于接口电路使外设与总线隔离,起缓冲、暂存数据的作用,并协调主机和外设间数据传送速度不配的矛盾;n接口电路为主机提供有关外设的工作状态信息及传送主机送给外设的控制命令;n借助于接口电路对信息的传输形式进行变换。72022-8-37.1.2 CPU与外设交换的信息 nPC机与I/O设备之间交换的信息可分为数据信息、状态信息和控制信息三类n在接口中,这三种信息是在不同的寄存器中分别存放的 82022-8-31数据信息 n数据信息
3、可以通过输入设备送到计算机的输入数据,也可以是经过计算机运算处理和加工后,送到输出设备的结果数据n传送可以是并行的,也可以是串行的 92022-8-32.状态信息 n状态信息作为CPU与外设之间交换数据时的联络信息,反映了当前外设所处的工作状态,是外设通过接口送往CPU的n状态信息能够保障CPU与外设正确地进行数据交换 102022-8-33控制信息 n控制信息是CPU通过接口传送给外设的,CPU通过发送控制信息设置外设(包括接口)的工作模式、控制外设的工作 112022-8-37.1.3 I/O接口的功能和基本结构 1.接口的功能 n实现主机和外设的通信联络控制 n进行地址译码和设备选择 n
4、实现数据缓冲 n数据格式的变换 n传递控制命令和状态信息 122022-8-32.接口的基本结构 图7-2 一个典型的I/O接口 132022-8-3注意n输入/输出操作所用到的地址总是对端口而言,而不是对接口而言的n接口和端口是两个不同的概念,若干个端口加上相应的控制电路才构成接口 142022-8-33.接口的类型(1)按数据传送方式分类 n并行接口。外设和I/O接口间的传送宽度是一个字节(或字)的所有位,具有一次传输信息量大,数据线数目隧传送数据宽度增加而增加的特点;n串行接口。外设和I/O接口间的传送数据是一位一位串行传输的,具有一次传输信息量小,数据线只需一条的特点。152022-8
5、-3(2)按主机访问I/O设备的控制方式分类 n分为程序查询式接口、程序中断接口和DMA接口等 162022-8-3(3)按功能选择的灵活性分类 n可编程接口。功能及操作方式是由程序来改变或选择的n不可编程接口。不可编程接口则不能由编程来改变其功能,只能用硬连线逻辑来实现不同的功能 172022-8-3(4)按通用性分类 n有通用接口。可供多种外设使用的标准接口,通用性强n专用接口。是为某类外设或某种用途专门设计的 182022-8-3(5)按输入输出的信号分类 n数字接口。输入输出全为数字信号n模拟接口。模数转换器和数模转换器属于模拟接口 192022-8-3(6)按应用来分类 n运行辅助接
6、口。该接口是计算机日常工作所必需的接口器件,包括:数据总线、地址总线和控制总线的驱动器和接收器、时钟电路、磁盘接口和磁带接口。n用户交互接口。这类接口包括:计算机终端接口、键盘接口、图形显示器接口及语音识别与合成接口等。n传感接口。如温度传感接口、压力传感接口和流量传感接口等。n控制接口。这类接口用于计算机控制系统。202022-8-37.1.4 I/O端口的编址 nI/O端口实际上指那些在接口电路中完成信息的传送,并可由编程人员寻址进行读/写的寄存器。若干个口加上相应的控制电路而构成接口n一个接口往往含有几个端口nCPU可通过输入/输出指令向这些端口取或存信息nPC系统中I/O端口编址方式有
7、两种:I/O端口与内存单元统一编址和 I/O端口与内存单元独立编址 212022-8-31I/O端口与内存单元统一编址 图7-3 I/O端口与内存单元统一编址 222022-8-3统一编址方式特点nCPU对I/O端口的输入/输出操作如同对存储单元的读/写操作一样无需专门的I/O指令,简化了指令系统的设计n对存储器的各种寻址方式也同样适用于对I/O端口的访问,给使用者提供了很大的方便n不足之处在于I/O端口地址占用了一部分存储器空间n访问指令长度一般比专用的I/O指令长,从而取指周期较长,又多占了指令字节 232022-8-32I/O端口与内存单元独立编址 图7-4 I/O端口与内存单元独立编址
8、 242022-8-3独立编址方式特点n存储器地址空间不受I/O端口地址空间的影响,专用的输入/输出指令与访问存储器指令有明显区别,便于理解和检查n专用I/O指令增加了指令系统复杂性nI/O指令类型少,程序设计灵活性较差n要求CPU提供专门的控制信号以区分对存储器和I/O端口的操作,增加了控制逻辑的复杂性 252022-8-33I/O端口的地址译码 nPC系统常用的I/O接口电路一般都被设计成通用的I/O接口芯片,一个接口芯片内部可以有若干可寻址的端口n所有接口芯片都有片选信号线和用于片内端口寻址的地址线 262022-8-38位接口与16位数据总线D0D7的连接方法 图 7-5 8位接口与1
9、6位数据总线D0D7的连接方法 272022-8-38位接口与16位数据总线的连接方法 图 7-6 8位接口与16位数据总线的连接方法 282022-8-38.1.5 I/O端口读/写技术 nIBM PC/XT I/O地址线有16条,对应的I/O端口地址空间为64KBnIBM公司当初设计PC机主板及规划接口卡时,其端口地址译码采用的是部分译码方式,即只考虑了低10位地址线A0A9n其I/O端口地址范围是0000H03FFH,总共只有1024个端口n前512个端口(A9=0)分配给了系统板n后512个端口(A9=1)分配给了扩展槽上的常规I/O设备,即0200H03FFH地址范围作为扩展插槽用的
10、端口地址,用户接口一般在此范围进行地址译码 292022-8-31.IBM PC/XT机的系统总线 nIMB PC/XT系统总线的微处理器是8088 CPU,总线的地址为20位,数据线为8位,称其为8位总线n80286 CPU组成的IBM PC/AT系统级总线称为ISA(Industry Standard Architecture)总线,又称PC/AT总线 302022-8-31)地址总线 nA0A19,方向为输出,是系统存储器和I/O端口公用的地址总线n存储器地址选择时,20位地址总线全部采用nI/O端口地址译码只用其中的A0A9共10条线 312022-8-32)数据总线 nD0D7,数据
11、总线,双向 322022-8-33)控制总线(1)扩充板上存储器操作需要的控制信号线 n ,方向为输出,存储器读控制信号,低电平有效n ,方向为输出,存储器写控制信号,低电平有效MEMRMEMW332022-8-3(2)I/O读/写操作需要的控制信号线 n ,方向为输出,I/O端口读操作控制信号,低电平有效n ,方向为输出,I/O端口写操作控制信号,低电平有效nAEN,方向为输出,控制信号。在DMA操作时为高;执行IN和OUT指令时为低 n ,外部输入信号,低电平有效。在扩充板上的存储器或I/O端口上。如果校验有错产生低电平加入,将引起NMI中断 OCHCK/IIOWIOR342022-8-3
12、(3)存储器读/写和I/O读/写需要的信号线 nALE,输出的“地址锁存”控制信号nI/OCHRDY,外部输入信号。它向CPU提供是否“准备好”信息。实现CPU操作与低速外设操作在时间上的同步 352022-8-3(4)中断请求信号线 nIRQ2IRQ7,27级的中断请求信号输入端n允许有6个外部的中断信号源n这6级中,级2优先级最高,级7优先级最低n级0和级1被主机板上定时中断和键盘中断占用 362022-8-3(5)DMA操作请求和响应信号线 nDRQ1DRQ3,方向为输入,高电平信号有效。3 个通道的DMA传送请求信号端。DRQ1的级别最高,DRQ3的级别最低。DRQ0在主机板内部,用于
13、控制动态存储器的刷新n ,方向为输出,低电平有效。是CPU对DMA请求的回答(允许)信号,它们分别对应DRQ0、DRQ1DRQ3,nT/C,方向为输出,来自于DMA控制器,当某个通道计数到终值(0)时,该端输出高电平信号 0DACK3DACK372022-8-3(4)其它信号线 nOSC,输出信号,输出14.318 MHz的方波 nCLK,输出信号,是OSC信号经过三分频形成的4.77 MHz基本时钟脉冲 nRESETDRV,输出信号,在系统加电或复位时产生,在时间上与时钟信号的下降边同步,高电平有效,用于对接口或外设的初始化 n电源输出为+5V、-5V、+12V、-12V和GN 382022
14、-8-32.I/O指令需要的接口逻辑 n输入指令(IN)的源操作数地址是一个I/O端口地址,目的为AL或AX寄存器n输出指令(OUT)的源操作数在AL或AX寄存器中,目的为一个I/O端口地址 nI/O指令执行时,都必须有I/O端口地址的选择 392022-8-3单端口部分地址译码电路图7-7单端口部分地址译码电路 402022-8-37.2 CPU与外设之间数据传送的方式 n程序控制的输入/输出方式 n程序中断的输入/输出方式 n直接存储器存取(DMA)方式 412022-8-37.2.1程序传送方式 n程序控制的输入/输出方式是指在程序的编制中利用I/O指令来完成CPU与接口间交换信息的一种
15、方式n根据外设性质的不同,这种传送方式又可分为无条件传送及有条件传送两种 422022-8-31无条件传送方式 图 7-8 无条件数据传送 432022-8-3无条件传送方式结构 图7-9 无条件传送方式(a)无条件传送数据输入;(b)无条件传送数据输出 442022-8-3无条件传送方式特点n程序设计和接口电路都很简单n为保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁n对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法 452022-8-32程序直接控制传送方式(查询传送方式)n查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的
16、状态,CPU才执行输入/输出指令与外设交换信息 462022-8-3有条件数据传送流程图 7-10 有条件数据传送 472022-8-3查询式输入的接口电路图7-11 查询式输入的接口电路 482022-8-3查询式输出的接口电路图7-12 查询式输出的接口电路 492022-8-3查询传送方式特点n主要优点是能保证主机与外设之间协调同步地工作,且硬件线路比较简单,程序也容易实现n缺点:浪费CPU时间,实时性差。不能发现和处理预先无法估计的错误和异常情况n适用于数据输入/输出不太频繁且外设较少、对实时性要求不高的情况502022-8-3举例【例7-1】如一输出设备接口的状态端口(8位)地址为P
17、S,状态端口的D3位为1表明准备好。数据端口(8位)的地址为PD,采用查询传送方式传送1字节数据(数据在BL中)512022-8-3程序 MOV DX,PS ;状态端口地址传送给DXLP:IN AL,DX ;读状态端口TEST AL,08H ;测试状态端口的D3位是否为1JZ LP ;不为1(未准备好),则重复读取状态MOV AL,BL ;为1(准备好),则进行数据输出MOV DX,PD OUT DX,AL 522022-8-37.2.2 程序中断控制方式 n中断(Interrupt)传送方式是指当外设需要与CPU进行信息交换时,由外设向CPU发出请求信号,使CPU暂停正在执行的程序,转去执行
18、数据的输入/输出操作,数据传送结束后,CPU再继续执行被暂停的程序n中断传送方式是由外设主动向CPU发出请求,等候CPU处理,在没有发出请求时,CPU和外设都可以独立进行各自的工作 532022-8-3中断传送方式特点n优点:CPU不必查询等待,工作效率高,CPU与外设可以并行工作;发现和处理预先无法估计的错误和异常情况 n缺点:为了能接受中断的请求信号,CPU内部要有一些线路来控制;利用中断输入/输出,每传送一次数据就要中断一次CPU。542022-8-37.2.3 存储器直接存取方式(DMA)1DMA传送方式 nDMA(Direct Memory Access)传送方式是在存储器和外设之间
19、、存储器和存储器之间直接进行数据传送(如磁盘与内存间交换数据、高速数据采集、内存和内存间的高速数据块传送等)nDMA传送方式需要一个专用接口芯片DMA控制器(DMAC)对传送过程加以控制和管理n传输速度基本取决于存储器和外设的速度n在进行DMA传送期间,CPU放弃总线控制权,将系统总线交由DMAC控制n传送结束后DMAC再将总线控制权交还给CPU 552022-8-3DMA系统结构框图图7-13 DMA系统结构框图 562022-8-32DMA控制器的工作方式 1)单字节传输方式 n在该方式下,DMAC每次控制总线后只传输一个字节,传输完后即释放总线控制权572022-8-32)成组传输方式(
20、块传输方式)n用这种方式,DMAC每次控制总线后都连续传送一组数据,待所有数据全部传送完后再释放总线控制权n成组传输方式的数据传输率要比单字节传输方式高n成组传输期间CPU无法进行任何需要使用系统总线的操作 582022-8-33)请求传输方式 n在该方式下,每传输完一个字节,DMAC都要检测I/O接口发来的DMA请求信号是否有效n若有效,则继续进行DMA传输;否则就暂停传输,将总线控制权交还给CPU,直至DMA请求信号再次变为有效,再从刚才暂停的那一点继续传输 592022-8-33DMA操作的基本操作 图 7-14 DMA传送流程图 602022-8-3DMA传送基本操作 n外设可通过DM
21、A控制器向CPU发出DMA请求;nCPU响应DMA请求,把总线控制权交给DMA控制器,使系统转变为DMA工作方式;n由DMA控制器发出I/O数据的存储地址,并决定传送数据块的长度;n执行DMA传送;nDMA操作结束,并将控制权交还给CPU。612022-8-37.3 中断系统 n中断是现代计算机有效合理地发挥效能和提高效率的一个十分重要的功能nCPU中通常设有处理中断的机构中断系统 622022-8-37.3.1 中断的基本概念 1.中断的定义 n中断:在CPU执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需暂停正在执行的程序,转去处理该事件(执行中断服务程序),并在处理完毕
22、后返回断点处继续执行被暂停的程序的过程632022-8-3中断过程图 7-15 中断过程 642022-8-32中断源 n任何能够引发中断的事件都称为中断源n分为硬件中断源和软件中断源两类:硬件中断源主要包括外设(如键盘、打印机等)、数据通道(如磁盘机、磁带机等)、时钟电路(如定时计数器8253)和故障源(如电源掉电)等;软件中断源主要包括为调试程序设置的中断(如断点、单步执行等)、中断指令(如INT 21H等)以及指令执行过程出错(如除法运算时除数为零)等 652022-8-33中断处理过程 n几个步骤:中断请求、中断响应、保护断点、中断处理和中断返回 662022-8-31)中断请求 n中
23、断请求是中断源向CPU发出的请求中断的要求n软件中断源是在CPU内部由中断指令或程序出错直接引发中断;n硬件中断源必须通过专门的电路将中断请求信号传送给CPU,CPU也有专门的引脚接收中断请求信号 672022-8-3中断请求与可屏蔽接口电路图7-16 中断请求与可屏蔽接口电路 682022-8-32)中断响应 nCPU在每条指令执行的最后一个时钟周期检测其中断请求输入端,判断有无中断请求n若CPU接收到了中断请求信号,CPU内部的中断允许触发器的状态为1nCPU在现行指令执行完后,发出信号响应中断 INTA692022-8-3CPU内部设置可屏蔽中断允许触发器图7-17 CPU内部设置中断允
24、许触发器 702022-8-33)保护断点 nCPU一旦响应中断,需要对其正在执行程序的断点信息进行保护,以便在中断处理结束后仍能回到该断点处继续执行 n对于8086/8088 CPU,保护断点的过程由硬件自动完成,主要工作是关中断、将标志寄存器内容入栈保存以及将CS和IP内容入栈保存 712022-8-34)中断处理 n中断处理的过程实际就是CPU执行中断服务程序的过程n用户编写的用于CPU为中断源进行中断处理的程序称为中断服务程序n不同中断源在系统中的作用不同,所要完成的功能不同,不同中断源的中断服务程序内容也各不相同 722022-8-35)中断返回 n执行完中断服务程序,返回到原先被中
25、断的程序,此过程称为中断返回n为能正确返回到原来程序的断点处,在中断服务程序的最后应专门放置一条中断返回指令(如8086/8088的IRET指令)732022-8-37.3.2 中断优先级和中断的嵌套中断优先级和中断的嵌套 1中断优先级 n中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以响应和处理,这个响应的次序称为中断优先级n对于不同级别的中断请求,一般的处理原则:不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执
26、行。高优先级中断正在处理,出现低优先级请求,可暂不响应。中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。742022-8-32中断嵌套 nCPU在执行低级别中断服务程序时,又收到较高级别的中断请求,CPU暂停执行低级别中断服务程序,转去处理这个高级别的中断,处理完后再返回低级别中断服务程序,这个过程称为中断嵌套n为实现中断嵌套,应在低级别中断服务程序的开始处加一条开中断指令STI。752022-8-3中断嵌套示意图图7-18 中断嵌套示意图 762022-8-33.中断控制方式的优点 n分时操作。在中断方式下,CPU和外设可并行工作。n实时处理。在实时控制系统中,现场随机产
27、生的各种参数、信息需要CPU及时处理时,可以利用中断方式向CPU发出中断请求,CPU可立即响应(在中断标志为开放的情况下),进行相应的处理。n故障处理。在计算机运行过程中,如果出现事先预料不到的情况,或出现一些故障,则可利用中断系统运行相应的服务程序自行处理,而不必停机或报告工作人员。772022-8-37.4 8086/8088中断系统中断系统7.4.1中断类型 图7-19 8086/8088中断源 782022-8-31硬件中断(外部中断)n非屏蔽中断NMI(中断类型号为2)。整个系统只有一个非屏蔽中断,它不受IF标志位的屏蔽出现在NMI上的请求信号是上升沿触发的,一旦出现,CPU将予以响
28、应其中断矢量号不由外部中断源提供,而是由系统固定分配。非屏蔽中断通常用来处理应急事件,如总线奇偶错、电源故障或电源掉电等。n可屏蔽中断INTR可屏蔽中断请求信号从INTR引脚送往CPU,高电平有效。它受中断允许标志位IF的影响和控制当IF置1(STI指令)时,表明可屏蔽中断被允许,CPU响应可屏蔽中断当IF置0(CLI指令)时,表明可屏蔽中断被禁止 792022-8-32软件中断(内部中断)n处理运算过程中某些错误的中断 除法错中断(中断类型号为0)溢出中断INTO(中断类型号为4)n为调试程序设置的中断 单步中断(中断类型号为1)断点中断(中断类型号为3)n中断指令INT n引起的中断(中断
29、类型号为n)802022-8-338086/8088中断源的优先级 8086/8088中断源的优先级顺序由高到低依次为:n除数为0中断nINT nnINTO指令nNMInINTRn单步中断 812022-8-37.4.2 中断向量表 n中断向量表是存放中断向量的一个特定的内存区域n中断向量,就是中断服务程序的入口地址n 8086/8088可以处理256种中断,每种中断对应一个中断类型号,每个中断类型号与一个中断服务程序的入口地址相对应 n地址范围为00000H003FFH,为1K个单元 n服务程序入口地址在中断向量表中的位置=中断类型号4 822022-8-38086/8088的中断向量表 图
30、7-20 8086/8088的中断向量表 832022-8-37.4.3 8086/8088中断处理过程 n中断响应的操作过程分为:可屏蔽中断、非可屏蔽中断和内部中断 842022-8-31.可屏蔽中断的响应和处理过程 图 7-21 可屏蔽中断的响应和处理过程 852022-8-3可屏蔽中断响应过程CPU要响应可屏蔽中断请求,必须满足一定的条件,即中断允许标志置1(IF=1),无内部中断,没有非可屏蔽中断(NMI=0),没有总线请求;当某一外部设备通过其接口电路中断控制器8259A发出中断请求信号时,经8259A处理后,得到相应的中断矢量号,并同时向CPU申请中断INT=1;CPU执行完当前指
31、令后便向8259A发出中断响应信号,表明CPU响应该可屏蔽中断请求;8259A连续两次(2个总线周期)接收到的中断响应信号后,便通过总线将中断矢量号送CPU;保护断点。将标志寄存器内容、当前CS内容及当前IP内容压入堆栈;清除IF及TF(IF0,TF0),以便禁止其它可屏蔽中断或单步中断发生;根据8259A向CPU送的中断向量号n求得中断向量,从中断向量表中得到相应中断处理程序首地址(段内偏移地址和段地址),并将其分别置入IP及CS中;中断处理程序包括保护现场、中断服务、恢复现场等部分。中断处理程序执行完毕,最后执行一条中断返回指令IRET,将原压入堆栈的标志寄存器内容及程序断点地址重又弹出至
32、原处。862022-8-32.非可屏蔽中断的响应和处理过程 n非可屏蔽的中断请求在NMI端加入nCPU对它的响应不受IF位的控制(但可以在外部逻辑中对加入NMI端的信号进行控制)n与可屏蔽中断一样,非可屏蔽中断也要等待当前指令执行结束 872022-8-33.内部中断的响应和处理过程 n中断类型号要么是指令码给定的,要么是处理硬件决定的,都不需要从外部逻辑输入;n没有包括信号的响应周期;n不受IF位的控制,但单步中断受TF位控制;n内部中断响应也要执行可屏蔽中断响应的项操作。882022-8-38086/8088 CPU中断处理的基本过程 图7-22 8086/8088 CPU中断处理的基本过
33、程 892022-8-37.4.4中断服务程序的设计 图7-23 中断服务程序的一般结构 902022-8-31DOS系统功能调用法 功能号:(AH)=25H。入口参数:(AL)=中断类型号 (DS)=中断服务程序入口地址的段地址 (DX)=中断服务程序入口地址的偏移地址 912022-8-3举例程序段完成中断类型号为80H的入口地址置入,设其中断服务程序为NEWINT。PUSH DS ;保护DSMOV DX,OFFSET NEWINT;取服务程序偏移地址MOV AX,SEG NEWINT;取服务程序段地址MOV DS,AXMOV AH,25H ;送功能号MOV AL,80H ;送中断类型号I
34、NT 21H ;DOS功能调用POP DS ;恢复DS 922022-8-32直接装入法 n用传送指令直接将中断服务程序首地址置入矢量表中 932022-8-3举例设中断类型号为80H(此类型号对应的矢量表地址为从00200H开始的四个连续存储单元),其中断服务程序为NEWINT。程序段如下:XOR AX,AXMOV DS,AXMOV AX,OFFSET NEWINTMOV DS:0200H,AX;置服务程序偏移地址MOV AX,SEG NEWINTMOV DS:0200H+2,AX;置服务程序所在代码段的段地址 942022-8-33.使用字符串指令装入法 MOV AX,0MOV ES,AX
35、MOV DI,n*4MOV AX,OFFSET NEWINTCLDSTOSWMOV AX,SEG NEWINTSTOSW其中:n为中断类型号 952022-8-37.5 可编程中断控制器可编程中断控制器Intel8259A7.5.1 8259A的功能 n8259A是可编程中断控制器(Programmable Interrupt Controller)芯片n用于管理和控制80 x86的外部中断请求n可实现中断优先级判定,提供中断类型号,屏蔽中断输入等功能n单片8259A可管理8级中断,若采用级联方式,最多可以用9片8259A构成两级中断机构,管理64级中断n具有的多种中断优先级管理方式可以通过主
36、程序在任何时候进行改变或重新组织 962022-8-31.8259A的内部结构 图7-24 8259A内部结构框图 972022-8-3(1)中断请求寄存器IRR(Interrupt Request Register)n8位,接受并锁存来自IR0IR7的中断请求信号n当IR0IR7上出现某一中断请求信号时,IRR对应位被置1 982022-8-3(2)中断屏蔽寄存器IMR(Interrupt Mask Register)n8位,若IRR中记录的各级中断中有任何一级需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求进入优先权判别器 992022-8-3(3)中断服务寄存器ISR(In-S
37、ervice Register)n8位,保存当前正在处理的中断请求 1002022-8-3(4)优先权判别器PR(Priority Resolver)n能够将各中断请求中优先级最高者选中,并将ISR中相应位置1 n在中断服务程序结束时,向8259A发中断结束命令,该命令将ISR寄存器的相应位清0,中断处理结束 1012022-8-3(5)数据总线缓冲器n是8259A与系统之间传送信息的数据通道 1022022-8-3(6)读/写控制逻辑n读/写控制逻辑包含了初始化命令字寄存器和操作命令字寄存器 1032022-8-3(7)级联缓冲/比较器n用来存放和比较在系统中用到的所有8259A的级联地址n
38、主控8259A通过CAS0、CAS1和CAS2发送级联地址,选中从控8259A 1042022-8-328259A的外部引脚 图7-25 8259A引脚 1052022-8-37.5.2 8259A的编程 n8259A的编程分两步:第一步,在系统加电和复位后,用初始化命令字对8259A芯片进行初始化编程;第二步,在操作阶段,用操作命令字对8259A进行操作过程编程,即实现对8259A的状态、中断方式和中断响应次序等的管理。n一般不再发初始化命令字 1062022-8-31.初始化命令字 n共有4个初始化命令字ICW1ICW4 1072022-8-3(1)ICW1命令字 1082022-8-3(
39、2)ICW2命令字nICW2命令字用来设置中断类型号基值n低3位根据当前CPU响应的中断是IR0IR7中的哪一个而定,分别对应000111 1092022-8-3(3)ICW3命令字 n仅用于8259A级联方式1102022-8-3(4)ICW4命令字 1112022-8-32初始化编程 图 7-26 8259A初始化编程流程图 1122022-8-3初始化编程注意n在ICWl中指明需要ICW3和ICW4以后,才发送ICW3和ICW4n一旦初始化以后,若要改变某一个ICW,则必须重新再进行初始化编程,不能只是写入单独的一个ICW 1132022-8-3举例例如,两片8259A设置的初始化命令字
40、如下:主片:ICW1=00010001,边沿触发,有ICW4,级联方式;ICW2=00001000,中断类型号基值为08H;ICW3=00000100,在IR2端接有从片;ICW4=00000001,非数据总线缓冲方式,中断正常(非自动)结束,正常全嵌套方式。从片:ICW1=00010001,边沿触发,有ICW4,级联方式;ICW2=01110000,中断类型号基值为70H;ICW3=00000010,该片的识别标志,对应主片的IR2;ICW4=00000001,非数据总线缓冲方式,中断正常(非自动)结束,正常全嵌套方式。1142022-8-33操作命令字n系统初始化完成以后,可以在应用程序中
41、随时向8259A送操作命令字,以改变8259A的工作方式,读出8259A内部寄存器的值等 1152022-8-3(1)OCW1操作命令字n该命令字用来设置中断源的屏蔽状态 1162022-8-3(2)OCW2命令字n用来控制中断结束方式及修改优先权管理方式 1172022-8-3(3)操作命令字OCW3n用来管理特殊的屏蔽方式和查询方式 1182022-8-37.5.3 8259A的工作方式 n对8259A置入初始化命令字后,8259A便处于准备就绪状态,等待中断源发来的中断请求信号,并处于完全嵌套中断方式n若想变更8259A的中断方式和中断响应次序,应向8259A写入操作命令字n操作命令字可
42、在主程序中写入,也可在中断服务程序中写入n8259A的中断方式有5种:完全嵌套方式循环优先方式特殊循环方式特殊屏蔽方式查询方式 1192022-8-31中断优先级管理方式(1)全嵌套方式 n也称固定优先级方式n这种方式下,由IR端引入的中断请求具有固定的优先级,IR0最高,IR7最低nPC机在对8259A初始化后若没有设置其他优先级方式,则默认为全嵌套方式n可用发操作命令字OCW2=00将8259设置为这种排序方式 n完全嵌套方式下,应通过发非指定中断级的结束命令字,即OCW2=20H,使ISR寄存器中的对应位ISRi=0,来实现中断结束操作 1202022-8-3(2)自动循环方式 n等优先
43、权方式n其特点是某一中断请求被响应后,该中断级便自动成为最低的中断级,其它中断源的优先级别也相应循环改变,以使各中断源被优先响应的机会相同,亦即优先等级是轮流的 1212022-8-3(3)指定最低级的循环排序方式 n也称特殊循环方式n这种方式下,能在主程序或服务程序中通过指定某中断源的优先级为最低级,而其它中断源的优先级也随之改变的方法,来改变各中断源的优先等级 1222022-8-3(4)查询法排序方式 n用查询的方法响应与8259A相连的8级中断请求n采用该方式时,8259A的INT引脚不用,或CPU处于关中断状态,以便CPU不能响应INT线上来的中断请求 1232022-8-32中断屏
44、蔽方式(1)普通屏蔽方式 n通过对中断屏蔽寄存器(IMR)的设定,实现对中断请求的屏蔽 1242022-8-3(2)特殊屏蔽方式 n该方式与完全嵌套方式的排序方法不同,除了用操作命令字OCW1屏蔽掉的中断级和正在服务和中断级外,允许其它任何级的中断请求中断正在服务的中断 1252022-8-33中断结束方式n中断结束(EOI)是指对8259A内部中断服务寄存器ISR的对应位复位的操作n有两种方法:自动EOI方式和EOI命令方式 1262022-8-3(1)自动EOI方式 n指在第二个 脉冲的后沿之后,由8259A自动清除ISR中已置位的那些位中优先级最高的位n这种自动结束中断方式只适用于非多重
45、中断的情况 INTA1272022-8-3(2)一般中断结束方式 n该方式用于全嵌套方式下的中断结束nCPU在中断服务程序结束时,向8259A发常规中断结束命令,将8259A的中断服务寄存器中最高优先级的ISR位清0n全嵌套方式下,应通过发非指定中断级的结束命令字,即OCW2=20H,将把ISR寄存器内为1的所有位中优先级最高的位置0,来实现中断结束操作1282022-8-3(3)特殊中断结束方式(SEOI)n在非全嵌套方式下,根据ISR的内容无法确定最后所响应和处理的是哪一级中断n这种情况下,在程序中要发一条特殊中断结束命令,该命令指出了要清除ISR中的哪一位。n注意:在级联方式下,一般不用
46、中断自动结束方式,而是用一般结束方式或特殊结束方式在中断处理程序结束时,必须发两次中断结束命令,一次是发往主片,另一次发往从片 1292022-8-34.完全嵌套方式响应过程举例 图7-27 完全嵌套方式响应过程举例 1302022-8-37.5.4 8259A应用举例 图7-28 8259A 在PC/XT机中的连接 1312022-8-3举例n假设某外设的中断请求信号由IR2端引入,要求编程实现CPU每次响应该中断时屏幕显示字符串“WELCOME!”。n已知主机启动时8259A中断类型号的高5位已初始化为00001,故IR2的类型号为0AH(00001010B)n8259A的中断结束方式初始
47、化为非自动结束,即要在服务程序中发EOI命令;8259A的端口地址为20H和21H 1322022-8-3程序段MESS DB WELCOME!,0AH,0DH,$MOVAX,SEG INTPRM MOV DS,AX MOV DX,OFFSET INTPRM MOV AX,250AH INT 21H ;置中断向量表 IN AL,21H ;读中断屏蔽寄存器 AND AL,0FBH ;开放IR2中断 OUT 21H,AL STILL:JMP LL ;等待中断INTPRM:MOV AX,SEG MESS ;中断服务程序 MOV DS,AX MOV DX,OFFSET MESS MOV AH,09 I
48、NT 21H ;显示每次中断的提示信息 MOV AL,20H OUT 20H,AL ;发出EOI结束中断 IN AL,21H OR AL,04H ;屏蔽IR2中断 OUT 21H,AL STI IRET 1332022-8-37.6 DMA传送和DMA控制器8237 nDMA传送控制逻辑是微处理器CPU外围控制逻辑的重要部分n它一侧与微处理器相接,其中重要的两条信号线是HOLD(总线控制权请求)和HLDA(总线控制权应答)n它所形成的接受DMA请求信号线DRQ和DMA请求确认信号线DACK作为系统级总线的一部分 1342022-8-37.6.1 DMA传送的基本原理 n基本特点是直接实现存器与
49、I/O设备之间的数据传送n在IMB PC系统中,DMA方式传送一个字节的时间通常是一个总线周期,即5个时钟周期时间nDMA传送方式特别适合用于外部设备与存储器之间高速成批的数据传送 1352022-8-3DMA传送的基本原理图 图7-29 DMA传送的基本原理图 1362022-8-3DMA传送3个阶段 n第1阶段是准备阶段。这是一个程序工作阶段,包括对DMA控制器的初始化,工作方式基本参数的设置;对I/O设备及其接口的初始化,如寄存器的清除、设备工作的启动等 n第2阶段是DMA传送操作阶段。传送需要的地址信息和控制信号由DMA控制器产生和发出;执行传送阶段每传送一个字节计数器减1,待到计数器
50、减为0值,作为传送结束的标志(TC)n第3阶段是传送结束处理阶段。在这一阶段通常是引入一段程序(可由中断方法或基本I/O测试状态法引入),对传送的结果进行处理,或者同时完成下一次传送的第1阶段的任务,为下次DMA传送作准备1372022-8-37.6.2 DMA控制器8237的结构和引脚 图7-30 8237的结构框图 1382022-8-3 8237引脚图 图7-31 8237引脚图 1392022-8-37.6.3 DMA的工作方式和时序 1.8237 DMA的工作方式 n8237的 4 种工作方式 1402022-8-3(1)单字节传送方式 n每次仅传送一个字节数据n传送后,字节数寄存器