您好,欢迎访问三七文档
输入输出与中断技术学习要点:输入输出的基本功能;端口和端口的编址方式;输入输出数据传送的四种方式;中断处理的过程;8086CPU中断向量与中断向量指针的关系;中断控制器8259A的中断工作过程、工作方式和初始化编程。微型计算机中I/O接口的作用存储器MI/O接口输入设备II/O接口数据总线DB控制总线CB地址总线AB输出设备OCPUCPU与外设之间传递的信息类型1.数据信息。2.控制信息。3.状态信息。第一节输入/输出接口接口电路的结构数据寄存器控制寄存器状态寄存器总线驱动地址译码控制逻辑CPU外部设备ABDBCB数据状态控制接口电路的内部结构•CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:⑴数据寄存器–保存外设给CPU和CPU发往外设的数据⑵状态寄存器–保存外设或接口电路的状态⑶控制寄存器–保存CPU给外设或接口电路的命令理解端口接口电路的外部特性主要体现在引脚上,分成两侧信号面向CPU一侧的信号:–用于与CPU连接–主要是数据、地址和控制信号面向外设一侧的信号:–用于与外设连接–提供的信号五花八门–功能定义、时序及有效电平等差异较大接口电路的可编程性•许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种•接口需要进行物理连接,还需要编写接口软件•接口软件有两类:–初始化程序段——设定芯片工作方式等–数据交换程序段——管理、控制、驱动外设,负责外设和系统间信息交换接口的功能(1)对输入/输出数据进行缓冲、隔离和锁存;(2)对信号的形式和数据格式进行转换与匹配;(3)提供信息交换的应答联络信号;端口地址的编址方式(1)独立编址:I/O地址空间独立于存储地址空间如8086/8088(2)统一编址:I/O地址和存储器地址共享一个地址空间如单片机I/O端口单独编址•优点:–I/O端口的地址空间独立–控制和地址译码电路相对简单–专门的I/O指令使程序清晰易读•缺点:–I/O指令没有存储器指令丰富内存空间I/O空间FFFFF0FFFF80x86采用I/O端口独立编址I/O端口与存储器统一编址•优点:–不需要专门的I/O指令–I/O数据存取与存储器数据存取一样灵活•缺点:–I/O端口要占去部分存储器地址空间–程序不易阅读(不易分清访存和访问外设)内存部分I/O部分存储器空间00000FFFFF第二节CPU与接口之间传送信息的方式(1)无条件传送方式(2)条件传送方式(查询方式)(3)中断传送方式(4)DMA传送方式(DirectMemoryAccess)存储器直接存取方式四种传送方式(程序方式)无条件传送方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,前提:CPU与外设进行数据传送时,外设保证已准备好。如开关、发光器件(如发光二极管、7段数码管、灯泡等)、继电器、步进电机等。2.软硬件十分简单。条件传送方式(查询传送方式)实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,再才执行I/O指令,实现数据传送。特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配;2.CPU的工作效率低,响应速度慢;3.适用于简单、慢速的或实时性要求不高的外设.(程序方式之二)NY从状态端口读入状态信息从数据端口传送一个数据外设准备好否?编程流程AWAIT:INAL,02HTESTAL,01HJZAWAITINAL,01H查询式输入AWAIT:INAL,04HTESTAL,80HJNZAWAITMOVAL,BLOUT03H,AL查询式输出中断传送方式实现方法:1.当外设准备好,向CPU发出中断请求2.CPU在满足响应中断的条件下,发出中断响应信号;3.CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;4.CPU从中断服务程序返回,继续执行被中断的程序中断服务程序发申请中断服务程序发申请中断方式下CPU执行程序流程外设硬件中断---NMI与INTR两根线申请中断(与CALL差别大)软件中断---INTn与INTO指令(与CALL功能类似)时间随机两者无关1.CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程。2.中断传送方式提高了CPU的效率。3.对外设的请求能作出实时响应,可处理故障。4.适于实时、快速、复杂的外设,但不适用于大量、高速频繁数据交换。中断传送方式的特点DMA传输方式•前面3种I/O方式共性:都需要CPU作为中介:外设CPU内存两个含义:1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的;2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。•缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决办法:DMA传输外设内存DMACDMA传送方式(直接存储器存取方式)实现方法1.由专用接口芯片DMA控制器(称DMAC)控制传送过程,2.当外设需传送数据时,通过DMAC向CPU发出总线请求HOLD;3.CPU发出总线响应信号HLDA,释放总线;4.DMAC接管总线,控制外设、内存之间直接数据传送1.外设和内存之间,直接进行数据传送,不通过CPU,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。2.电路结构复杂,硬件开销较大。DMA传送方式的特点•什么是中断?–与生活场景的比较正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回第三节微型计算机中断系统CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。中断请求IRET中断服务程序主程序ו引起CPU中断的外部设备和内部原因——中断源。•中断源分类:外部中断、内部中断–内部中断:CPU内部执行程序(INTn等)时自身产生的中断–外部中断:CPU以外的设备、部件产生的中断(1)设备中断(2)指令中断(3)故障中断(4)实时时钟中断(5)CPU内部运算产生的某些错误所引起的中断中断处理过程大致包含:中断请求中断响应中断处理中断处理过程•多个中断源发出中断请求,CPU首先为谁服务?——中断优先级排队问题。•中断优先级控制要处理两种情况:–对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;–对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。•中断优先级的控制方法:–硬件判优——链式判优、并行判优(中断向量法)–软件判优——顺序查询中断请求,先查询的先服务(即先查询的优先级别高)•通常将中断判优与中断源识别合并在一起进行处理。–x86系统中,这项任务由中断控制器(8259)和CPU(8086/8088)共同完成。中断判优软件判优软件判优是指由软件来安排各中断源的优先级别。软件判优需要相应硬件电路支持,如图所示。软件判优的特点查询方法的优点是:(1)查询的次序即是优先权的次序。显然,最先查询的,优先权的级别最高。(2)省硬件。不需要有判断与确定优先权的硬件排队电路。但随之而来的缺点是:由查询转至相应的服务程序入口的时间长,尤其是在中断源较多的情况下。硬件判优硬件判优是指利用专用的硬件电路或中断控制器来安排各中断源的优先级别。(1)中断向量法此方法的核心思想是由不同的中断源提供不同的中断类型码(也称中断向量码)来确定中断源。中断类型码是为每一个中断源分配的一个编号,通过该编号可方便地找到与中断源相对应的中断服务程序的入口。硬件电路中用一个优先级判别器来判断出哪个中断请求的优先级最高,然后在CPU响应中断时把此中断源对应的中断类型码送给CPU,CPU就可根据中断类型码找到相应的中断服务程序入口,对此中断进行处理。与8086/8088CPU配套的8259芯片就是利用中断向量法来管理中断源的,它可对多达64级的中断进行优先级管理。(2)链式判优电路链式判优的基本思想是将所有的中断源构成一个链(称为菊花链),各中断源在链中的前后顺序是根据中断源的优先级别的高低来排列的,排在链前面的高优先级别的中断会自动封锁低优先级别的中断。链式优先排队电路如图所示。8088/8086的中断系统8088/8086系统的中断源1.外部中断与中断有关的控制线为:NMI和INTR、INTA非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号n由8259提供。IF=1时CPU才能响应,CPU响应信号为INTA。矢量型中断,有256个中断类型号(矢量号、设备号)(0~255)2.内部中断除法溢出:类型号0,执行除法指令时,若发现除数为0或商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生。断点中断:类型号3,这是一个软件中断,即INT3指令。一般用于程序调试,在断点中断服务程序中,可显示有关寄存器、存储单元等内容,以便程序员分析到断点为止程序是否正确。溢出中断:类型号4,这是一个软件中断,即INTO指令。若算术指令的执行结果发生溢出(OF=1),则执行指令后立即产生一个中断类型码为4的中断。用户自定义的软件中断:即INTn指令,类型号n(5-255)。以上所述内部中断的类型码均是固定的或包含在软中断指令中,除单步中断外,用于中断处理的中断服务程序需用户自行编制。中断向量表•中断服务程序的入口地址CS:IP(段基址CS和偏移地址IP)——中断向量•每个中断向量占用4Bytes,低字为段内偏移IP,高字为段基址CS•系统将所有的中断向量组织起来存放在主存的某一连续区域内,这个用来存放中断向量的存储区域称为中断向量表。•8086/8088CPU将存储器00000H~003FFH的区域用于存放中断向量,大小为1KB,共可容纳256个中断向量。•根据中断类型号n获得中断服务程序入口的方法:(n为中断类型号)中断向量存放地址=4×n——中断向量指针例如软磁盘调用指令INT13H,它的中断向量为0F000H(CS):0EC59H(IP),当CPU执行该中断指令时,根据中断类型号13H形成中断向量的第一个字节的指针,即13H×4=004CH,从它开始连续4个字节单元用来存放INT13H的中断向量,如图所示。中断向量表的初始化•初始化——将中断服务程序的入口地址装入向量表例:中断类型码n为48H的中断处理子程序的段基址为1000H,偏移地址为0030H,编写程序段将该中断处理子程序的入口地址(中断向量)放入中断向量表。中断向量表的初始化方法一:利用传送类指令实现CLIMOVAX,0;也可XORAX,AXMOVDS,AXMOVSI,60H*4MOVAX,0030HMOV[SI],AXMOVAX,1000HMOV[SI+2],AXSTI方法二:将中断服务程序的入口地址直接写入中断向量表,其程序段为:┇MOVBX,60H*4;中断号×4→BXMOVAX,0030H;中断服务程序偏移地址MOV[BX],AX;装入偏移地址PUSHCSPOPAX;中断服务程序段基址MOV[BX+2],AX;装入段基址┇方法三:采用DOS功能调用“INT21H”中的25H号功能来装入中断向量,其程序段为:MOVAX,1000HMOVDS,AX;DS指向中断程序段基址MOVDX,0030H;DX指向中断程序偏移量MOVAL,60H;中断类型号MOVAH,25H;设置中断向量INT21H用DOS的25H号功能调用装入中断向量时,要求DS:DX指针指向中断服务程序的入口地址。第四节可编程中断控制器8259A功能:管理输入到CPU的中断请求,实现优先级判决,提供中断类型号,屏蔽中断输入等功能,能直接管理8级中断,通过级联,可管理64级中断。内部结构及引脚特性•8259A的内部结构–中断请求寄存器
本文标题:输入输出与中断技术
链接地址:https://www.777doc.com/doc-3967882 .html