版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章微型机接口9.1微型机接口的基本知识9.2I/O设备数据传送方式9.3中断系统9.4DMA(略)9.1微型机接口的基本知识1、接口的概念2、接口的功能和组成补充:多功能接口芯片823803、I/O端口及其寻址方式4、输入/输出指令IN/OUT课本P305.输入/输出指令01二月202331、接口的概念接口:CPU与“外界”的连接电路,是CPU与外界进行信息交换的中转站。外界:除CPU以外的所有设备和电路; 如主存储器、输入输出设备、通信设备等;连接电路:硬件设备;设置接口的原因:CPU与外设的工作速度不一致;信号线的功能定义、逻辑定义、时序关系等不兼容;减轻CPU的负担,提高CPU的工作效率;有利于CPU和各设备硬件的独立发展。01二月20234接口技术接口技术是硬件和软件的综合技术;使CPU与外界达到最佳连接;实现CPU与外界的高效、可靠地信息交换;接口技术的应用计算机所涉及的所有领域;01二月202352、接口的功能和组成数据寄存器状态寄存器控制寄存器CPU外设DBABCBCBDB接口片内端口地址译码电路数据缓冲/锁存器CB读/写中断控制逻辑其他功能01二月20236接口的功能1
——数据缓冲功能执行作为CPU与外设之间数据中转站;用于CPU与慢速外设之间,可协调二者的速度差异;数据中保存在接口的数据寄存器中;数据缓冲的方式数据缓冲器暂存数据;完成本次数据传送后,其中数据就会发生变化;数据锁存器暂存数据;在有新的数据写入之前,其中数据不会更改;01二月20237接口的功能2
——执行CPU命令功能执行CPU按照控制字格式准备好控制字;接口初始化时,由CPU将控制字写入接口内部寄存器;接口工作时,译码控制字,进行规定的操作;控制字(命令字):一串二进制数据每一位具有不同的含义,表示CPU对外设或接口的控制信息;不同的接口芯片,控制字的数目和格式也不同;01二月20238接口的功能3
——接收外设状态功能执行在外设工作期间,接口接收其工作状态信息,形成状态字,保存于状态寄存器中;状态字随时根据外设状态的变化而改变;CPU需要了解外设工作状态时,从接口中直接读取该状态字;状态字:一串二进制数据每一位具有不同的含义,反映当前外设的某种状态;01二月20239接口的功能4
——设备选择功能执行接口内部的数据寄、控制、状态寄存器都是CPU可访问的;接口外部和内部都需要对CPU当前的操作部件进行选择;选择方式根据CPU发出的地址进行译码,从而确定当前操作部件;01二月202310接口的功能5
——其他功能作用完成CPU与外设之间传送信号的各类转换;功能类型数据宽度转换串行接口中需要的串-并、并-串转换;数据格式转换工程接口中常用的数-模、模-数转换;时序或电平转换时序配合01二月2023113、I/O端口及其编址方式(1)I/O端口接口电路中能被CPU直接访问的寄存器;端口的类型数据端口状态端口命令端口端口与接口的关系:
一个接口电路由若干个端口及其他控制电路组成。不同接口中端口的数目不定,但类型只有三种;每个端口可接收多种格式的同类信息(CPU可读写)(CPU只读)(CPU只写)01二月202312(2)I/O端口的编址方式独立编址方式将I/O系统与主存系统分别编址;特点:I/O端口地址不占用主存空间;使用专用的I/O指令,指令字长短,执行速度快;00000HFFFFFH主存储器I/O设备0000HFFFFH以20位主存地址、16位I/O地址为例01二月2023134、输入/输出指令IN/OUT指令格式输入指令: INAL/AX,PORT/DX输出指令: OUTPORT/DX,AL/AX寄存器AL/AX与指定端口之间的数据交换;指令注意:PORT/DX:根据地址宽度决定表示方法直接寻址:8位端口地址(0~0FFH),可直接在指令中出现;间接寻址:16位端口地址(100H~3FFH),必须由DX表示。I/O指令在书写格式上两操作数的位数不一定一致。一个操作数为数据,另一个操作数为地址。课本P3001二月2023149.2I/O设备数据传送方式9.2.1微型机I/O端口的布局9.2.2I/O端口地址的译码补充详细内容9.2.3CPU与外设之间的信息传送方式01二月2023159.2.1微型机I/O端口的布局I/O接口硬件分类系统板上的I/O芯片:可编程的大规模集成电路;I/O扩展槽上的接口控制卡:若干集成电路按一定的逻辑功能组成的部件I/O端口的地址分配IBM-PC机的I/O端口地址范围为0~3FFH,共1024个。地址分配:0~1FFH:主板芯片200H~3FFH:扩展槽0~0FFH:主板芯片100H~3FFH:扩展槽后改为与具体的系统相关01二月202316常用接口芯片的地址分配接口芯片可用地址范围单片使用的实际地址范围8237A(DMAC)0000~001FH0000~000FH8259A(中断控制器)0020~003FH0020~0021H8253A
(定时计数器)0040~005FH0040~0043H8255A
(并行接口芯片)0060~007FH0060~0063H9.2.2I/O端口地址的译码(1)端口地址译码的概念(2)译码电路的分析与设计01二月202318(1)端口地址译码的概念I/O端口地址译码电路的作用将CPU发出的地址信号转换成对应端口的选通信号;I/O端口地址译码电路的外部信号输入信号地址信号A0~A9读写控制信号IOR#,IOW#DMA地址允许信号AEN输出信号芯片或端口的选通信号,低电平有效。1——非CPU访问IO系统0——是CPU访问IO系统01二月202319片间译码,即接口寻址,产生某接口芯片的有效片选信号。译码器正常工作的任何时刻,只有一根输出信号有效,表示当前CPU对该接口操作。片内译码,即端口寻址,选择当前操作的具体端口。I/O地址译码方法01二月202320(2)译码电路的分析由门电路构成的固定式单端口地址译码电路;由译码器构成的固定式多端口地址译码电路;由地址开关和比较器构成的可选式多端口地址译码电路;01二月202321a)固定式单端口地址译码电路当且仅当A9~A2=10111100时,与非门的输出为0;否则与非门输出均为1。A1~A0为片内译码的地址读写控制10111110011010该接口电路内部共4个端口111111101二月20232274LS138译码器内部结构图
——8个固定式单端口译码电路的叠加A2A201二月202323b)固定式多端口地址译码电路当且仅当A9~A6=1010时,与非门输出为0;则使译码器74LS138的G2B#=0Y0#作为接口芯片的片选,则输入的地址A5~A3=000时,该接口电路被选中。A2~A0作为片内端口选择的地址信号,表示该接口电路中共有8个端口。1011010010001124c)可选式多端口地址译码电路A0A1A2A3B0B1B2B3A=BA<BA>BVccA8A9S0S1ABCG2A#G2B#G1A5
A6A7AENY0#Y1#…………Y6#Y7#74LS138比较器74LS85DIP…………010110001译码地址范围:220H~23FH若S0S1均断开,则Y1#所译码的地址范围是多少?9.2.3CPU与外设之间的信息传送方式1、无条件传送方式2、程序查询传送方式3、中断传送方式4、DMA传送方式01二月2023261、无条件传送方式工作过程CPU需要传送数据时,直接将数据送至指定外设;接口要求接口电路中只需要有数据寄存器即可;程序设计要点使用输入输出指令,CPU主动与指定端口数据传送;适用场合与简单外设的数据传送。(外设始终就绪)01二月2023272、程序查询传送方式工作过程CPU传送数据之前先检查外设的状态,若没有准备好,则继续查询等待,直至外设就绪即进行数据传送;接口要求接口电路中需要数据寄存器和状态寄存器;CPU主动查询,程序控制数据传送过程,简单易行;每次查询之后只能使用IO指令传送一个数据;数据传输率不高,CPU时间浪费较多。适用场合CPU不太忙且对传送速度要求不高的系统。01二月202328程序查询传送方式的程序设计程序设计流程CPU获取外设的状态;使用IN指令,读接口电路的状态端口中的状态字;状态字随外设的工作情况而更新;判断状态字中的对应位,以决定程序的流向;若外设就绪,则进行数据传送;CPU使用IN/OUT指令读写接口电路的数据端口;CPU读外设的状态字N外设就绪?YCPU与外设进行数据传送01二月2023293、中断传送方式工作过程CPU有传送要求时,启动外设后可处理其他事件,当外设准备就绪后,通过中断的方式和CPU完成数据传送工作。接口要求需要附加的中断控制电路。采用软硬件综合控制方式来完成数据传送;一定程度上实现了CPU和外设的并行工作;中断操作过程增加了软硬件的开销;每次数据传送只能传送一个数据,数据传送效率低。适用场合CPU与慢速外设之间的数据传送。01二月202330中断传送方式的程序设计程序设计流程CPU对接口进行初始化,以启动外设;在外设进行数据传送准备的同时,CPU可以执行其他的程序;外设就绪后,向CPU发出硬件的中断请求信号;CPU接受中断请求后进行数据传送;CPU启动外设CPU与外设进行数据传送CPU执行其他程序外设进行准备工作CPU响应中断外设就绪,向CPU发出中断请求01二月202331工作过程在硬件DMA控制器(DMAC)的控制下,存储器与高速外设之间进行大量的数据传送;接口要求需要相应的DMA控制器,电路结构复杂,硬件开销大。特点:数据传送不需要经过CPU,直接由硬件控制;但需要CPU分配总线的使用权;数据传送量大,传送效率高。程序设计方式CPU完成DMAC的初始化设置后,由硬件或软件的DMA请求,触发DMAC控制的数据传送。适用场合数据传输率要求较高的系统中。4、直接存储器存取(DMA)方式9.3中断系统9.3.1中断系统概述9.3.28086/8088的中断系统9.3.3可编程中断控制器8259A9.3.1中断系统概述1、中断的基本概念2、中断的处理过程3、中断的优先权01二月2023341、中断的基本概念定义:中断是指CPU正常运行程序时,由系统内/外部非预期事件或程序中预先安排好的指令性事件引起的,CPU暂停当前程序的执行,转去为该事件服务的程序中执行,服务完毕后,再返回原程序继续执行的过程。注意:中断是一个CPU执行程序的变化过程;所有能引起中断的事件均称为中断源;处理中断事件的中断服务程序是预先设置好的;结束中断返回原程序时,要以原状态返回暂停处继续执行。01二月202335中断过程示意…
…
IRET主程序中断服务程序IP中断请求主程序中断响应中断服务程序中断返回IRET断点IP
IP
IP01二月2023362、中断的处理过程中断请求CPU获得软硬件的中断请求;中断响应CPU获得中断类型号n,转入中断服务程序的过程;中断服务执行中断服务程序;中断返回CPU执行IRET指令时,自动产生中断返回。由硬件实现01二月202337CPU在每个指令周期的最后一个时钟周期,采样各中断请求;优先顺序为内部中断(除单步)NMI中断
INTR中断单步中断;若有中断请求,且允许响应,则直接进入中断响应处理,否则(无请求或不允许),继续按顺序执行下一条指令;若是INTR中断,且IF=1,则CPU响应该INTR中断;若是单步中断,且TF=1,则CPU响应该单步中断;若是NMI中断或内部中断,则CPU立即响应该中断;(1)中断请求01二月202338(2)中断响应关中断,以防止中断响应过程被其他中断请求打断;获取中断类型号n,以从中断向量表中取出对应中断向量:若为内部中断或NMI中断,则CPU直接取其固定的类型号;若为指令中断,则CPU直接取操作数字段作为其类型号;若为INTR中断,则CPU进入中断响应周期,从中断源获取中断类型号;入栈原CS、IP的值及断点状态信息,保护现场;将中断向量装入CS、IP寄存器,转入中断服务程序执行:01二月202339CPU响应INTR请求的中断响应周期中断响应周期CPU通过两个连续的总线周期向中断源发两次INTA#应答信号;INTA1#:通知被响应的外设,准备提供中断类型号;INTA2#:CPU从系统数据线上读入中断源准备好的中断类型号。CLKALE(地址允许)T1T2T3T4T1T2T3T4INTA#(中断响应)D7~D0(数据总线)中断类型号nINTA#1INTA#201二月202340(3)中断服务程序的注意事项中断嵌套的控制若中断期间允许中断嵌套,则中断服务程序中应先开中断;使用STI指令,使IF=1;注意维护主程序的数据一致性一般在中断服务程序中应保护所用到的寄存器;同子程序中的寄存器保护与恢复;中断服务程序最后执行的一条指令必须是IRET;其物理位置不一定是最后一条指令;01二月2023413、中断优先权中断优先权:系统按照中断源的性质以及中断处理的紧急程度,为每个中断源指定优先权,用于决定CPU对中断源的响应顺序。当有多个中断源同时发出请求时,中断源的优先权决定了中断请求是否能够被响应。优先权管理方式固定优先权各中断源的优先权固定,始终保持不变;循环优先权每结束一次中断服务时,自动循环各中断源的优先权;等优先权方式各中断源被响应的机会均等具体的优先级判断方式在后续课程中介绍。9.3.28086/8088的中断系统1、中断向量和中断类型号2、中断源的类型3、中断向量表的读写01二月2023431、中断向量和中断类型号中断向量中断服务程序的入口地址;共4个字节——中断服务程序的段地址和段内偏移地址;中断向量表集中存放系统中所有中断向量的存储区。8086PC机中,将存储器物理地址为0~3FFH的1024个单元作为中断向量表,可容纳256个中断向量;中断类型号每个中断向量在向量表中的位置编号,0~255。01二月202344
……
……
……
……中断向量表0000:00000000:00010000:00020000:0003…………0000:00200000:00210000:00220000:0023…………0000:03FC0000:03FD0000:03FE0000:03FF类型号0类型号8类型号255偏移地址段地址偏移地址段地址偏移地址段地址01二月202345用中断向量赋值CS、IP中断类型号与中断向量中断类型号(n)4=中断向量在表中的偏移地址如:n=8,则应从向量表20H~23H中取出中断向量中断源提供中断类型号n4中断向量在表中的偏移地址访存中断向量CPU转向中断服务程序执行
CPU使用向量中断的过程:01二月2023462、中断源类型中断源外部中断内部中断不可屏蔽中断NMI可屏蔽中断INTR调试中断指令中断INTn由硬件设备的中断请求信号引入,具有随机性和突发性。由中断指令或由CPU运行过程中的的某些错误结果产生的中断。异常中断软件故障中断286以后的中断类型;由程序中发生的错误而引起的中断;01二月202347不可屏蔽中断NMI由CPU的NMI引脚引入该中断请求,CPU得到该中断请求立即响应,不需要CPU发响应信号;中断类型号固定为2;中断优先权高于可屏蔽中断INTR,一般用于系统对紧急情况的处理,用户不能使用;常见的NMI中断:RAM奇偶校验错、I/O通道校验错、协处理器出错等。01二月202348可屏蔽中断INTR由CPU的INTR引脚引入该中断请求;该中断请求只有在CPU的中断允许标志位IF=1时,CPU才会通过发回响应信号的方式响应;CPU对INTR中断的响应控制可由STI(IF=1)、CLI(IF=0)两条指令完成。此类中断的中断类型号由中断源提供;常见的INTR中断:外部设备的中断请求,如I/O设备的数据传送请求,用户可自行设计;01二月202349指令中断INTn由CPU执行在程序中预先安排好的中断指令引起的;该中断是可预期的、且不可屏蔽的;处理该中断时,CPU不需要发响应信号;指令的操作数字段(n)即为中断类型号;中断类型号的范围为5≤n≤255;这类中断包括BIOS中断、DOS中断以及一些未定义的自由中断(可由系统扩充或根据应用需要自定义)。01二月202350软件故障中断在程序运行过程中,出现错误而引起的中断;不可预期的中断除法错中断中断类型号为0;中断的原因执行除法指令时除数为0,或除得的商大于规定位数;溢出中断中断类型号为4;CPU运算时,若结果超出数据表示范围,则置OF=1,引发溢出中断,跳出当前程序的执行;01二月202351调试中断程序调试过程中,人为设置的中断;可预期的中断;单步中断中断类型号为1;单步调试程序时,若TF=1,则在每条指令后自动加一条1号中断指令,产生单步中断;断点中断中断类型号为3;断点调试程序时,则指定指令后自动加一条3号中断指令;01二月202352外部中断指令中断内部中断硬件故障中断01二月2023533、中断向量表的读写系统的中断向量是在开机上电时,由系统软件装入内存中的中断向量表中的。用户使用自定义的中断,则必须编制中断服务程序,保存于存储器中;将该中断的中断向量装入中断向量表中;根据其中断类型号设置相应的硬件连接;使用软件或硬件请求的方式调用中断服务程序;01二月202354中断向量读写的DOS功能调用写入中断向量功能:将(DS:DX)中内容写入向量表中的指定位置;入口参数AH—功能号(25H)、AL—中断类型号、DS:DX—中断向量出口参数:无读出中断向量功能:将向量表中指定位置的向量读出至(ES:BX)中;入口参数AH—功能号(35H)、AL—中断类型号出口参数ES:BX—指定中断类型号的中断向量值01二月202355中断向量的修改为避免系统资源冲突,一般采用中断向量修改的方式来使用中断向量。中断向量修改的方法:利用DOS功能调用利用35H号功能调用,获取原中断向量,并保存;利用25H号功能调用,将新中断向量写入向量表;新中断服务程序执行完毕后,再使用25H号功能调用恢复原中断向量。01二月202356例:采用中断向量修改的方式为中断服务程序INTR1设置中断类型号为60H的中断向量。程序段如下:
MOVAH,35HMOVAL,60HINT21H
……
……
……
…………
……中断向量表程序数据段OLD_OFFOLD_SEGIP60HCS60HIP60HCS60HBXIP60HESCS60H
MOVOLD_OFF,BXMOVBX,ESMOVOLD_SEG,BX…………01二月202357
……
……
……
…………
……IPCS中断向量表程序数据段0000:01800000:01820000:0183OLD_OFFOLD_SEGSEGINTR1OFFSETINTR1IP60HCS60HMOVAH,25HMOVAL,60HMOVDX,SEGINTR1MOVDS,DXMOVDX,OFFSETINTR1INT21HMOVAH,25HMOVAL,60HMOVDX,OLD_SEGMOVDS,DXMOVDX,OLD_OFFINT21H…………IP60H
CS60H0000:01819.3.3可编程中断控制器8259A0、8259A的工作特点1、8259A的引脚和内部结构2、8259A的工作方式3、8259A的编程8259A的命令字和初始化编程4、8259A的应用8259A的单片和级联使用01二月2023590、8259A的工作特点接收和扩充外设的中断请求;单片工作时,每片8259A可接收8个外设中断;两级级联时,最多可用9片8259A管理64个外设中断。对外设中断优先权的排队管理;8259A可采用固定、循环等多种优先权管理方式。向CPU提供中断类型号;通过软硬件配合的方式,由8259A向CPU提供中断类型号。对中断请求的屏蔽和开放;不同的中断屏蔽方式,实现对特定或全部中断源的屏蔽。仅管理INTR中断1、8259A的引脚和内部结构8259A的外部引脚8259A的内部结构01二月2023618259A的外部引脚特性8个外设中断请求引入端双向8位数据总线级联总线双功能引脚向CPU提交中断请求的输出引脚接收CPU发回的中断响应信号的输入引脚片内端口选择的地址引脚片选及读写控制信号01二月2023628259A的外部引脚(1/2)面向CPU的引脚双向数据总线D0~D7输入读写控制信号WR#、RD#输入片选信号CS#输入地址总线A0中断请求和响应信号INT、INTA#8259A与CPU的中断请求和应答联络信号;01二月2023638259A的外部引脚(2/2)中断请求信号IR0~IR7接外设中断源的中断请求信号;双功能级联引脚SP#/EN#非缓冲连接方式,为SP#信号(级联输入信号)用于区分8259A的主从片(0-从片,1-主片);缓冲连接方式,为EN#信号(数据收发允许输出信号)用于控制总线缓冲器的数据传送。级联总线CAS0~CAS28259A级联时,主从片的连接总线,主片输出,从片输入。01二月202364系统总线连接方式非缓冲方式:8259A直接与系统数据总线相连;适用于8259A数目较少的系统;缓冲方式:8259A通过总线缓冲器与系统数据总线相连;适用于多片8259A级联的系统;CPUD0~D7D0~D78259ASP#/EN#INTINTA#INTRINTA#8286B0~B7A0~A7OE#P2292.连接系统总线的方式01二月2023658259A的内部结构01二月202366三个重要的寄存器(1/2)3个8位寄存器,每一位对应着一个中断源;中断请求寄存器记录各中断源的中断请求状态;中断服务寄存器记录当前CPU为各中断源服务的情况;中断屏蔽寄存器记录8259A对各中断源的屏蔽信息;D7D6D5D4D3D2D1D0IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR001没有请求,或已经响应有请求且还未被响应01没有被服务正在被服务01允许中断禁止中断01二月202367中断请求寄存器IRR
其置复位操作由硬件自动完成;IRi的有效信号置位,INTA#的第一个负脉冲复位;根据硬件信号的情况,可多位同时有效;中断服务寄存器ISR
置位操作由硬件完成,复位操作大多由软件完成;INTA#的第一个负脉冲置位,程序中的EOI命令复位;允许中断嵌套时,该寄存器可多位同时被置1。中断屏蔽寄存器IMR
其置复位操作由软件完成。三个重要的寄存器(2/2)01二月202368优先权判别器PRPR根据当前中断源优先权顺序,检查有请求中断源的优先权,并和当前正在执行的中断的优先权比较,以此确定是否向CPU提出新的中断请求;需要配合使用IRR、ISR和IMR;PR的结构相当于一个优先权编码器和一个比较器电路,可实现中断判优及屏蔽的功能。01二月202369PR01二月202370读写控制逻辑CPU对8259A的读/写操作包括:对8259A写初始化命令字(ICW)、操作命令字(OCW);对8259A读取其内部状态信息;CS#WR#RD#A0操作类型0010写ICW1、OCW2、OCW30011写ICW2、ICW3、ICW4、OCW10100读IRR、ISR、查询字0101读IMR01二月202371级联缓冲/比较器在级联、缓冲方式下有效;缓冲方式当8259A和CPU需要传送数据时,产生有效的EN#信号,送往总线缓冲器;级联方式用于保存和比较从8259A的标志码;若8259A级联使用,当CPU响应从片中断时,主片通过CAS0~CAS2输出响应中断所属从8259A的标志码,从片输入并与自己的标志码比较,相同则工作;2、8259A的工作方式优先权排队的方式P2294.优先权排队的方式中断结束的方式P2305.中断结束方式01二月202373优先权排队的方式固定优先权一般全嵌套方式:只允许高级中断嵌套特殊全嵌套方式:允许同级中断嵌套一般用于多片级联结构中的主8259A。循环优先权优先权自动循环一次中断服务结束,当前结束中断源的优先权自动降为最低;优先权特殊循环一次中断服务结束,指定中断源的优先权自动降为最低;假设IRi被响应,则各中断源的优先权为:IRi+1IRi+2
……
IR7
IR0
……
IRi假设指定中断源IRk,则各中断源优先权为:IRk+1
IRk+2
……
IR7
IR0
……
IRk01二月202374中断结束的方式普通EOI命令:复位当前ISR中所有置位位中优先权最高的对应位;适用于8259A单片工作且优先权一般全嵌套的场合。特殊EOI命令:该EOI命令中指定要复位的ISR的对应位;适用于8259A级联工作,且优先权循环的系统中。自动EOI命令:不需要在中断服务程序中发EOI命令,对ISR的复位操作在中断响应期间(第二个INTA#)自动完成;适用于8259A单片工作,且不会发生中断嵌套的场合。中断服务程序中IRET之前的EOI命令;作用:复位8259A的ISR寄存器中的对应位3、8259A的编程(1)8259A的4个初始化命令字(2)8259A的初始化编程(3)8259A的3个操作命令字(4)8259A命令字的使用01二月202376(1)8259A的4个初始化命令字ICW1——芯片控制的初始化命令字初始化必选命令字ICW2——设置中断类型号的初始化命令字初始化必选命令字ICW3——级联主从片的初始化命令字级联结构时的命令字ICW4——方式控制字的初始化命令字
特殊设置时的命令字
写入偶地址端口写入奇地址端口写入奇地址端口写入奇地址端口01二月202377写入ICW1芯片即恢复初始化状态;自动清除IRR、ISR、IMR;一般全嵌套方式的优先权管理方式,并使IR0优先权最高;普通屏蔽方式;①ICW10001LTIM0SNGLIC416位机无效标志位中断请求IRi的触发方式0边沿触发1电平触发无效8259A的工作方式0级联使用1单片使用是否需要ICW40不需要1需要01二月202378例1.若8259A采用电平触发,单片使用,需要ICW4,则命令字ICW1应如何设置?ICW1命令字:ICW1命令字写入8259A的偶地址端口;设端口地址为20H~21H:
MOVAL,1BH OUT20H,AL0001LTIM0SNGLIC411101二月202379②ICW2一片8259A所管理的8个中断源的中断类型号必须是连续的;高5位由ICW2提供,每个芯片一个编号;低3位由中断源的引入端(IRi)决定;用法根据8259A所管理中断源的中断类型号,初始化ICW2;D7D6D5D4D3000中断类型号的高5位不用01二月202380例2.初始化设置某8259A的ICW2为00110000B,则该8259A引入的8个中断源IR0~IR7的中断类型号应分别是多少?答:IR0~IR7的中断类型号是连续的,应为30H~37H。答:中断类型号5AH(0101
1010)高5位01011,决定ICW2应设置为01011000B,低3位决定该中断源应接入IR2引脚。例3.已知某中断源的中断类型号为5AH,则该中断源应接8259A哪个引脚,且其ICW2又应如何设置?01二月202381③ICW3ICW3仅在级联结构中需要,且主从片格式不同;主片ICW3的格式:每一位分别对应着一个IR引脚;1-表示该引脚上接有从片;0-表示该引脚没有接从片,可以引入其他中断源。从片ICW3的格式:从片ICW3仅低3位有效,表示该从片是由主片的哪个IR引脚引入8259A系统的,这个编码也就是从片的标志码;S7S6S5S4S3S2S1S0*****ID2ID1ID001二月202382例4.8259A的级联结构中,两个从片分别接主片的IR3和IR6引脚,则主从片的ICW3应如何设置?主从片ICW3的设置不同,如下主片的ICW3从片1的ICW3从片2的ICW3相关程序段:从8259A:0A2H~0A3HMOVAL,06HOUT0A3H,ALS7S6S5S4S3S2S1S01148H*****ID2ID1ID003H011*****ID2ID1ID006H110主8259A:20H~21HMOVAL,48HOUT21H,AL从8259A:0A0H~0A1HMOVAL,03HOUT0A1H,AL00000001二月202383④ICW4000SFNMBUFM/S#AEOIµPM无效全嵌套方式0一般全嵌套1特殊全嵌套使用系统08位系统116位系统系统连接方式0非缓冲方式1缓冲方式缓冲方式下区分主从片0从片1主片中断结束方式0非自动EOI1自动EOI01二月2023848259A系统中的主从片的区分非缓冲方式8259A的SP#引脚区分主从片;输入高电平,表示单片或主片;输入低电平,表示从片;缓冲方式8259A的SP#/EN#引脚作为EN#信号使用;由初始化命令字ICW4的M/S#位主从片区分;1——主片;0——从片;01二月202385例5.8086系统中,使用两片8259A,采用非缓冲方式连接,非自动EOI方式,则主从8259A的ICW4命令字如何设置?主片ICW4命令字从片ICW4命令字相关程序段:000SFNMBUFM/S#AEOIµPM10001000SFNMBUFM/S#AEOIµPM00001主8259A:20H~21HMOVAL,11HOUT21H,AL从8259A:0A0H~0A1HMOVAL,01HOUT0A1H,AL01二月202386(2)8259A的初始化编程在中断系统运行之前,必须对所有的8259A芯片进行初始化编程,由CPU向8259A写入2~4个初始化命令字ICW;ICW1和ICW2必须设置;ICW1的SNGL位决定是否需要ICW3(0-需要,1-不需要);ICW1的IC4位决定是否需要ICW4(0-不需要,1-需要);若按照条件写出的ICW4=0,则不需要,否则需要;初始化命令字一定是在主程序中设置的。01二月202387初始化命令字设置流程图写ICW1写ICW2设置中断源的中断类型号级联结构?写ICW3需要ICW4?写ICW4YNYN即ICW1的D1(SNGL位)=0?即ICW1的D0(IC4位)=1?01二月202388例6
某8086/8088系统中,使用单片8259A作为中断控制器,工作在全嵌套方式、非自动EOI方式,非缓冲方式,边沿触发请求中断,IR2引脚上中断源的中断类型号为0AH,试写出其初始化程序段。初始化所需要的命令字ICW1ICW2ICW4初始化程序:将各命令字写入对应的命令端口假定该8259A芯片的端口地址为20H、21H;0001LTIM0SNGLIC4D7D6D5D4D3000000SFNMBUFM/S#AEOIµPM01113H08H001H000101二月202389例6初始化程序MOVAL,13HOUT20H,AL;写ICW1MOVAL,08HOUT21H,AL;写ICW2MOVAL,01HOUT21H,AL;写ICW401二月202390(3)8259A的3个操作命令字操作控制字是在8259A工作过程中,根据需要写入的;OCW1——中断屏蔽操作命令字写入奇地址端口OCW2——设置优先权循环及中断结束方式的操作命令字写入偶地址端口OCW3——特殊屏蔽、8259A读操作的命令字写入偶地址端口01二月202391①OCW1-中断屏蔽操作命令字OCW1的作用写8259A的中断屏蔽寄存器IMR;在中断服务程序中,使用OCW1可动态地改变各中断源的优先权顺序;一般,若某系统没有完全使用所有的IR引脚,在初始化程序中设置了ICW之后,可继续写入该命令字,以控制该8259A系统的可用中断源。M7M6M5M4M3M2M1M001二月202392例7.设置8259A的IMR,使IR3允许中断,其他引脚禁止中断。OCW1命令字设端口地址为20H~21H:
MOVAL,0F7H OUT21H,AL若要不影响其他中断源,仅允许IR3中断?采用“读—修改—写”的方式设置;M7M6M5M4M3M2M1M011110111INAL,21HANDAL,0F7HOUT21H,AL01二月202393②OCW2
—设置优先权循环及中断结束方式的操作命令字OCW2的作用:非自动EOI方式时,作为中断结束的EOI命令;改变中断优先权的管理方式;命令字格式RSLEOI00L2L1L0是否优先权轮换命令是否指定中断等级是否中断结束命令标志位中断源编码01二月202394RSLEOI功能000001
010011100101110111取消优先权自动循环,变为固定优先权普通EOI命令,自动复位ISR中优先权最高位特殊EOI命令,由L2L1L0指定ISR的复位位无效设置优先权自动循环普通EOI命令,且优先权自动循环设置优先权特殊循环,由L2L1L0指定中断源特殊EOI命令,且优先权特殊循环OCW2的命令类型01二月202395例7.若8259A采用普通EOI方式,则如何设置其IR3中断服务程序中的EOI命令?EOI命令用于中断服务程序的IRET之前,以复位8259A内部的ISR寄存器;普通EOI命令为:设端口地址为20H~21H:
MOVAL,20H OUT20H,AL若为特殊EOI方式,则命令字为01100011。RSLEOI00L2L1L000100001二月202396例8.若8259A采用普通EOI方式,优先权自动循环方式管理中断源,则如何设置其IR3中断服务程序中的EOI命令?普通EOI+优先权自动循环的命令为:设8259的端口地址为20H~21H:
MOVAL,0A0H OUT20H,AL若为特殊EOI方式,则命令字为11100011;
MOVAL,0E3H OUT20H,ALRSLEOI00L2L1L010100001二月202397③OCW3
——特殊屏蔽、8259A读操作的命令字0ESMMSMM01PRRRIS无效特殊屏蔽设置0×:无效10:复位特殊屏蔽方式11:置位特殊屏蔽方式标志位查询命令读内部寄存器0×:无效10:读IRR寄存器11:读ISR寄存器通知8259A,CPU将在下个RD#有效期间读入查询字。01二月202398例9.试读8259A内部寄存器ISR的值。使用方法:用OCW3向8259A发送指定寄存器的读命令用输入指令读出IRR或ISR的内容送至AL寄存器程序清单:MOVAL,00001011B
OUT20H,ALINAL,20H01二月202399(4)8259A命令字的使用8259A共有7个命令字,其中4个初始化命令字(ICW1~ICW4)和3个操作命令字(OCW1~OCW3)。使用8259A之前,通过ICW的设置使当前8259A对各类中断管理方式进行初始化规定;在8259A使用过程中,通过写入OCW,随时进行所需要的设置;8259A根据各命令字的写入端口、写入顺序、以及命令字中的标志位实现对其区分的。01二月2023100CPU对8259A的读写操作写偶地址端口(20H)
ICW1、OCW2、OCW3写奇地址端口(21H)
ICW2、ICW3、ICW4、OCW1读偶地址端口(20H)
IRR、ISR、查询字读奇地址端口(21H)
OCW1(IMR)01二月20231010001LTIM0SNGLIC4ICW1写入偶地址端口的命令字由命令字中的标志位区分以下三个命令字RSLEOI00L2L1L0OCW2OCW30ESMMSMM01PRRRIS01二月2023102写入奇地址端口的命令字根据写入命令字的顺序区分以下四个命令字M7M6M5M4M3M2M1M0OCW1D7D6D5D4D3000000SFNMBUFM/S#AEOIµPMICW2ICW4S7S6S5S4S3S2S1S000000ID2ID1ID0主ICW3从ICW301二月20231034、8259A的应用单片工作方式最多可以引入8个中断源的中断请求;主要连接为单片8259A与CPU的连接;级联工作方式两级级联时,最多可使用9片8259A接收64个中断源;计算芯片个数和可接收中断源数目之间的关系假定芯片数目为N,则中断源数目=8N-(N-1)主要连接为多片8259A之间的连接,及其与CPU的连接;01二月2023104(1)单片8259A的工作方式不用直接引入各中断源非缓冲方式单片(即主片)01二月2023105IRR(00000000)ISR(00000000)IRR(00010100)1(IR2)0ISR(00000100)IRR(00010000)10nISR(00000000)
EOI命令IF=1中断服务程序01二月2023106(2)多片8259A级联的工作方式硬件连接(非缓冲方式下)主片8259A从片8259AIRiINTINTA#SP#/EN#CAS2~0引脚芯片接中断源或从片的INT接中断源接CPU的INTR引脚接主片的某个IRi引脚直接连于CPU的INTA#引脚,由CPU输出到各主从芯片接高电平接低电平各从片直接连于主片上,由主片输出,从片输入01二月2023107INTA#D7~D0CAS2~0SP#/EN#IR0IR1IR2IR3IR4IR5IR6IR7INT主8259AINTA#D7~D0CAS2~0SP#/EN#INT从8259A(#1)INTA#D7~D0CAS2~0SP#/EN#INT从8259A(#2)IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7IR0CPUA19~A1、WR#、RD#、A0直接连于各8259A芯片的CS#、WR#、RD#、A0引脚D7~D0VCCINTA#INTR01二月2023108级联缓冲比较器的作用当多片8259A级联时,主从片的CAS2~CAS0全部对应相连,主片作为输出,从片作为输入,构成8259A主从式的级联工作结构;该级联总线用于CPU响应从片中断时(第一个INTA#有效期间),主片向各从片传送当前响应中断所属从片的标志码,从而选中需要提供中断类型号的从片;各从片把接收到的标志码与自己级联/缓冲比较器中的标志码比较;若相等,则在第二个INTA#有效期间,将中断类型号送到数据总线上,供CPU读取。01二月2023109IRR(00000000)ISR(00000000)ISR(00000000)IRR(00000000)011110111IR3000IRR(01001000)011111000中断类型号nISR(00000000)ISR(00000100)ISR(00001000)IRR(00000100)IRR(00000000)IRR(00000100)IRR(01000000)IRR(00000000)111
EOI1ISR(00000000)EOI2ISR(00000000)01二月20231108259A级联使用时应注意优先权问题一般主片采用特殊全嵌套方式,使从片的各中断源的优先权得到体现,从而实现对8259系统所接收的所有中断源的一般全嵌套优先权管理。中断服务结束的EOI命令:若CPU响应的是由从片引入的中断,则在中断服务结束时,应首先检测当前从片是否还有其他的中断服务;若没有,则发送两个EOI命令,分别用于复位主片和从片的ISR。若有,则仅发送一个EOI命令,复位从片的ISR即可。01二月2023111例10.某8086系统中,由两片8259A构成级联中断系统,从片接主片IR1,主片的IR4和IR5有中断引入,中断类型号分别是44H和45H,从片的IR3和IR6上有中断请求,中断类型号分别是43H和46H。试进行初始化编程。01二月2023112硬件连接图从8259ACPUD7~D0INTA#INTRINTA#D7~D0CAS2~0SP#/EN#INTIR2IR3IR4IR5IR6IR7IR0IR1INTA#D7~D0CAS2~0SP#/EN#IR0IR1IR2IR3IR4IR5IR6IR7INT主8259AVCC01二月2023113ICW2ICW1主片初始化程序0001LTIM0SNGLIC4D7D6D5D4D3000S7S6S5S4S3S2S1S0000SFNMBUFM/S#AEOIµPMICW3ICW400111H40H0000001002H111HMOVAL,11HOUT20H,AL;写ICW1MOVAL,40HOUT21H,AL;写ICW2MOVAL,02HOUT21H,AL;写ICW3MOVAL,11HOUT21H,AL;写ICW4MOVAL,0CDHOUT21H,AL;写OCW10001M7M6M5M4M3M2M1M0OCW10CDH0001111101二月2023114ICW2ICW1从片初始化程序0001LTIM0SNGLIC4D7D6D5D4D3000000SFNMBUFM/S#AEOIµPMICW3ICW400111H40H01H001HMOVAL,11HOUT0A0H,AL;写ICW1MOVAL,40HOUT0A1H,AL;写ICW2MOVAL,01HOUT0A1H,AL;写ICW3MOVAL,01HOUT0A1H,AL;写ICW4MOVAL,0B7HOUT0A1H,AL;写OCW10001M7M6M5M4M3M2M1M0OCW10B7H1110110100000ID2ID1ID000101二月2023115关于8259A的初始化微机系统中对8259A芯片的初始化是由系统软件完成的,一般不允许用户自己设置;对于8259A的初始化操作可以在没有配置完善操作系统的单板机上进行,例如实验系统中;实际使用中,一般用户只对8259A的OCW1和OCW2进行应用,用于中断的开放/屏蔽和发出EOI命令,OCW3也很少使用。补充:8259A的应用举例1、8259A在微机系统中的应用2、8259A的单片应用3、8259A的级联应用4、8259A与8255A的中断传送01二月20231171、8259A在微机系统中的应用(一)早期微机中,采用单片8259A管理中断;基本设置:端口地址为20H、21H;8个中断请求均为边沿触发;采用一般全嵌套方式管理中断源;设置8个中断源中断类型号的高5位为00001;中断源日时钟、键盘、串口、硬盘、软盘、打印机等;初始化编程需设置ICW1、ICW2和ICW4。01二月2023118单片8259A中断系统的硬件连接CAS0~2+5V8259A82888088CPUINTRD0~D7SP/ENINTD0~D7日时钟键盘保留串行口2串行口1硬盘软盘并行口A0INTR1CS—IRQ0—IRQ1—IRQ2—IRQ3—IRQ4—IRQ5—IRQ6—IRQ7—A0—CSINTARDWRINTAIORIOW01二月2023119单片8259A中断系统的初始化编程;ICW1:边沿触发,单片,需要ICW4MOVAL,00010011B OUT20H,AL;ICW2:中断类型号MOVAL,08H OUT21H,AL;ICW4:一般全嵌套,非缓冲,非自动EOI,16位系统MOVAL,00000001B OUT21H,AL01二月20231201、8259A在微机系统中的应用(二)286以上微机中,采用两片8259A级联的非缓冲方式连接,从片的INT接主片的IR2引脚,共容纳15个中断源;主片端口地址为20H、21H,从片端口地址为0A0H、0A1H;主从片的中断请求均采用边沿触发;所有中断源采用一般全嵌套的优先权管理方式;主片中断类型号的高5位为00001;从片中断类型号的高5位为01110。主从片的初始化均需设置ICW1~ICW4。主片的初始化从片的初始化01二月2023121双片8259A中断系统的硬件连接01二月2023122双片8259A中断系统的主片初始化编程(1/2)主片8259A初始化:;ICW1:边沿触发,级联,有ICW4MOVAL,00010001BOUT20H,AL;I/O端口的延时要求
JMPSHORT$+2;ICW2:中断类型号的高5位
MOVAL,08H OUT21H,AL;ICW3:从片INT接主片IR2
MOVAL,00000100BOUT21H,ALJMPSHORT$+2;ICW4:16位系统,非自动EOI,非缓冲,特殊全嵌套
MOVAL,00010001BOUT 21H,AL01二月2023123双片8259A中断系统的从片初始化编程(2/2)从片8259A初始化:;ICW1:边沿触发,级联,有ICW4
MOVAL,00010001BOUT0A0H,ALJMPSHORT$+2;ICW2
:中断类型号的初值为70HMOVAL,70HOUT0A1H,AL;ICW3:从片INT接主片IR2
MOVAL,00000010BOUT0A1H,ALJMP SHORT$+2 ;ICW4:16位系统,非自动EOI,非缓冲,一般全嵌套MOVAL,00000001B OUT 0A1H,AL01二月20231242、8259A的单片应用
CPU每次响应8259A引入的某一中断时,输出显示字符串“A8259AINTERRUPT!”,中断10次后退出。设该中断的中断类型号为0AH,16位系统,试写出控制程序。仅有一个中断源的中断系统,使用单片8259A即可;中断源的中断类型号为0AH;8259A的ICW2为08H,该中断源接IR2引脚;程序控制每次执行中断服务程序时,计数值减1;主程序在等待中断时,不断地判断计数是否满10次;中断源响应10次后退出;即屏蔽8259A的IR2引脚;处理中断需要编写主程序和中断服务程序;01二月2023125主程序和中断服务程序的一般设置主程序:关中断;初始化8259A;设置中断向量;开中断,等待中断;中断服务程序:保护寄存器;开中断(STI)(或放在最后一步);
[完成中断请求服务]发EOI命令;恢复寄存器;IRET01二月2023126主程序流程图开始关中断设置中断向量8259A初始化设置计数值开中断等待中断,并判断中断次数CLISTIMOVCX,1001二月2023127设置中断向量使用DOS功能调用修改或写入0AH号中断向量;以下为25H号DOS功能调用直接写中断向量的程序段:MOVAH,25H
;DOS调用的功能号送入AH
MOVAL,0AH
;中断类型号送入AL
MOVAX,SEGINT_PROMOVDS,AXMOVDX,OFFSETINT_PRO
;中断向量置于DS:DX中INT21H01二月20231288259A初始化单片8259A使用,16位系统,只有一个中断源;初始化需设置:ICW1、ICW2、ICW4、OCW1;;写OCW1,仅允许IR2的中断请求
MOVAL,11111011BOUT21H,AL;写ICW1,边沿触发,单片使用,需要ICW4MOVAL,00010011BOUT20H,AL;写ICW2,中断类型号0A的高5位——08HMOVAL,08HOUT21H,AL;写ICW4,设置为16位工作系统
MOVAL,01HOUT21H,AL01二月2023129中断次数的判断等待中断的同时判断中断次数
LL:NOP JCXZEXIT
JMPLLEXIT:
MOVAL,0FFHOUT21H,AL HLT01二月2023130中断服务程序开始保护寄存器显示字符串,并记录中断次数恢复寄存器发EOI命令开中断IRET使用了寄存器:DS、DX、AX;CX是主程序与中断服务程序之间的传递参数普通EOI命令:MOVAL,20HOUT20H,AL需要保护的寄存器有:DS、DX、AXSTI数据段的定义:DATASEGMENTMESSDB‘A8259AINTERRUPT!’,10,13,‘$’DATAENDS或特殊EOI命令:MOVAL,62HOUT20H,AL以允许下一次该中断的响应01二月2023131显示字符串并记录中断次数调用9号DOS功能,显示字符串;
MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESSMOVAH,09HINT21H;显示字符串记录中断次数:预置计数次数10;
DECCX;计数器减101二月2023132寄存器的保护与恢复寄存器的保护:
PUSHDSPUSHDXPUSHAX寄存器的恢复:
POPAXPOPDXPOPDS注意:寄存器的入出栈顺序相反!01二月2023133源程序清单(1/5)DATA1SEGMENTMESSDB‘A8259AINTERRUPT!’,10,13,‘$’DATA1ENDSCODE1SEGMENT ASSUMECS:CODE1,DS:DATA1INT_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44832-2024瓶装白酒灌装生产线通用技术要求
- 绩效合同模板
- 企业教育课件
- 二零二四年度影视版权代理合同3篇
- 托管协议书模板集合
- 2024年度二手车贷款及金融服务协议3篇
- 铝板型材2024年度采购与加工合同
- 旧房维修安全协议
- 压缩性骨折治疗
- 品质课件教学课件
- 人音版 音乐四年级上册第1课歌唱祖国 教案
- 2024年上海奉贤投资(集团)限公司招聘3人历年(高频重点提升专题训练)共500题附带答案详解
- 各种常用管道管径的表示方法及对照表正式版
- JT-T-816-2011机动车维修服务规范
- 文献信息检索与利用智慧树知到期末考试答案章节答案2024年海南大学
- 园艺植物组织培养-形考作业2-国开-参考资料
- HYT 069-2005 赤潮监测技术规程
- 审计报告中无所有者权益变动表书面声明
- 园林施工安全
- 2024年职业技能“人力资源管理服务”知识考试题库与答案
- 城市管理大数据平台 第2部分:数据分级分类
评论
0/150
提交评论