首页 第六章输入输出和中断技术

第六章输入输出和中断技术

举报
开通vip

第六章输入输出和中断技术*第六章输入输出及中断技术*主要内容基本概念输入输出系统I/O接口和端口端口的编址方式简单接口芯片及其应用基本输入输出方法中断的基本概念及工作过程*§6.1输入输出系统*了解和掌握:接口的基本功能端口的概念端口的编址方式I/O地址译码*一、为什么要引入I/O接口微机和I/O设备的信息类型和格式可能不一样。微机和I/O设备信号传输处理的速度可能不匹配。不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。*接口的功能数据的缓冲与暂存...

第六章输入输出和中断技术
*第六章输入输出及中断技术*主要 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 基本概念输入输出系统I/O接口和端口端口的编址方式简单接口芯片及其应用基本输入输出方法中断的基本概念及工作过程*§6.1输入输出系统*了解和掌握:接口的基本功能端口的概念端口的编址方式I/O地址译码*一、为什么要引入I/O接口微机和I/O设备的信息类型和格式可能不一样。微机和I/O设备信号传输处理的速度可能不匹配。不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。*接口的功能数据的缓冲与暂存信号电平与类型的转换增加信号的驱动能力对外设进行监测、控制与管理,中断处理接口的功能*数据缓冲功能:通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口。接受和执行CPU命令功能:存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。设备选择功能:CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口和I/O接口中连接的不同的设备。信号转换功能:协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。可编程功能:增加接口的灵活性和智能性。接口的概念*定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。分类:存储器接口和I/O接口。位置:介于系统总线与外部设备之间。*常见接口插槽PS2鼠标PS2键盘千兆网10/100M网卡USB并行口MIDI/游戏接口显示器接口13941394a音箱/线入接口/麦克风串行口*二、I/O端口数据端口状态端口控制端口端口电脑“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。*数据信息数据信息是最基本的一种信息。它又包括3种:数字量:通常为8位二进制数或ASCII代码。模拟量:连续变化的物理量(如温度、压力、流量、位移、速度等开关量:是一些“0”或“1”两个状态的量,用一位“0”或“1”二进制数 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示。一台字长为8位的微机一次输入或输出可控制8个这类物理量。*状态信息状态信息是反映外设当前所处工作状态的信息,以作为CPU与外设间可靠交换数据的条件。状态信息在输入与输出时的作用:当输入时,它告知CPU:有关输入设备的数据是否准备好(Ready=1?);输出时,它告知CPU:输出设备是否空闲(Busy=0?)。CPU是通过接口电路来掌握输入输出设备的状态,以决定可否输入或输出数据。*控制信息控制信息用于控制外设的启动或停止。CPU与外设传送的信息存放在哪里?存储器或寄存器中,引入端口的概念CPU与外设传送的控制信息与状态信息是不同的性质的信息,如何将它们区分开?使用不同的端口,所以接口中有若干的端口,每个端口给予不同的地址**I/O端口CPU数据状态控制外设I/O接口DB*接口和端口┅┅┅┅接口1接口2接口N端口1端口2端口m端口1端口1端口2端口2端口m端口m端口编址端口地址=芯片地址(高位地址)+片内地址*三、I/O端口的编址方式8086/8088的寻址能力:内存:1MB端口:64K个编址方式:与内存统一编址独立编址*端口与内存的统一编址特点:指令及控制信号统一;内存地址资源减少内存地址960KBI/O地址64KB00000HF0000HFFFFFH*端口的独立编址特点:内存地址资源充分利用能够应用于端口的指令较少内存地址I/O地址00000HFFFFFHFFFFH0000H*端口的寻址8088/8086寻址端口数:64K个寻址端口的信号:IOR、IOWA15~A0在输入输出指令中直接写上8位I/O端口地址号。例:INAL,50H;50H端口的字节读入AL例:OUT80H,AX;AX中的内容输出到80H、81H两个端口直接寻址16/8位I/O端口地址号存入DX,在输入输出指令中写DX,表示从其指示的I/O端口中输入输出数据。例:MOVDX,0050H    INAX,DX;从DX和DX+1所指的2个端口输入1个字例:MOVDX,FF02HOUTDX,AL;AL中的字节输出到DX所指端口中注意:16位I/O端口地址必须使用DX寄存器间接寻址间接寻址指令格式:INAL/AX/EAX,imm8/DXOUTimm8/DX,AL/AX/EAX例:输入字数据movdx,20h;间接寻址,字数据输入inax,dxinax,20h;直接寻址,字数据输入inal,21h;直接寻址,字节数据输入movah,alinal,20h三段功能相同;字数据传送实际上实现了连续的两个端口地址的字节数据传送。输入指令执行过程输入输出指令*8088/8086的I/O端口编址采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用IO/M来区分I/O操作只使用20根地址线中的16根:A15~A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0~FFFFHIBMPC只使用了1024个I/O地址(0~3FFH)*四、I/O地址的译码目的:确定端口的地址参加译码的信号:IOR,IOW,高位地址信号OUT指令将使总线的IOW信号有效IN指令将使总线的IOR信号有效*I/O译码的地址信号当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。*I/O地址译码例某外设接口有4个端口,地址为2F0H——2F3H,由A15~A2译码得到,而A1、A0用来区分接口中的4个端口。试画该接口与系统的连接图。*I/O地址译码例地址范围:××××001011110000××××001011110011任意状态A11片内地址图中不接入*I/O地址译码例译码电路图:≥1A11A10A18A3A2A9A7A4┇&CEA1A0接口芯片IORIOW&*§6.2简单接口电路*掌握:接口电路的分类及特点;两类简单接口芯片的应用*一、接口的基本构成数据线控制线状态线DBCBAB数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑*接口的基本构成数据输入/输出寄存器暂存输入/输出的数据,又称数据输入端口、数据输出端口,合成数据端口。暂存输入/输出的数据。输入端口具有三态输出能力;输出常用锁存器实现;命令寄存器又称命令端口或控制端口。存放CPU发出的控制命令(信息),控制接口的工作方式及功能和控制外设按命令要求动作;状态寄存器又称状态端口,存放外设或接口的状态信息,供CPU读;译码电路CPU执行I/O指令时,从地址总线发送16位外部设备端口地址,其中高位地址线通过译码选中某接口芯片,低位地址线用来选择该接口芯片内不同端口;控制逻辑产生接口内部控制信号和对外控制信号,以协调处理器和外设间的输入/输出操作。*二、接口的类型及特点按传输信息的方向分类:输入接口输出接口按传输信息的类型分类:数字接口模拟接口按传输信息的方式分类:并行接口串行接口*接口特点输入接口:要求对数据具有控制能力常用三态门实现输出接口:要求对数据具有锁存能力常用锁存器实现*三、三态门接口高电平、低电平、高阻态*74LS244典型芯片74LS244,没有锁存功能的3态8位缓冲器(含8个三态门),3态是:高电平、低电平、高阻态。当控制端有效时,三态门导通,输出等于输入;否则输出高阻态。例:编写程序判断下图中的开关状态。如果所有开关都闭合,则程序转向标号NEXT1执行,否则转向标号为NEXT2执行。典型应用:开关接口接口电路图如下:83FCH~83FFH译码器MOVDX,83FCHINAL,DXANDAL,0FFHJZNEXT1JMPNEXT2所有开关全闭合转NEXT1,否则转NEXT2。*四、锁存器接口通常由D触发器构成;特点:具有对数据的锁存能力;不具备对数据的控制能力74LS273(二态锁存):是一种带清除功能的8D触发器,D0~D7为数据输入端,Q0~Q7为数据输出端,CP正脉冲(上升沿)触发将Di端数据锁存到Qi端,S低电平清除Qi端。常用作8位地址锁存器或输出接口。74LS374(三态锁存器):可作输入/输出缓冲器接口。74LS374带了三态门,它比74LS273多了一个输出允许端OE。只有当OE=0时,74LS374的输出三态门才导通,OE=1时呈高阻态。译码器11.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW#74LS273R设该输出接口地址是0FFFFH,则下列程序段的功能?NOVDX,0FFFFHMOVAL,01000001BOUTDX,AL锁存器芯片74LS273锁存器芯片74LS374做输出端口:三态门一直处于导通状态。做输入端口:CP正脉冲锁存输入数据,译码选中时OE=0,CPU读取数据。*I/O接口综合应用例根据开关状态在7段数码管上显示数字或符号设输出接口的地址为F0H设输入接口地址为F1H当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’利用74LS244和74LS273作为输入和输出接口,编写程序,根据开关状态在LED数码管显示十六进制数码。共阳极7段LED数码管结构(7段码表见下页)符号形状7段码.gfedcba符号形状7段码.gfedcba’0’00111111’8’01111111’1’00000110’9’01100111’2’01011011’A’01110111’3’01001111’B’01111100’4’01100110’C’00111001’5’01101101’D’01011110’6’01111101’E’01111001’7’00000111’F’01110001O1I1O2I2O3I3O4I4#E1K0~K3+5VGG2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP74068个反相器74LS273Rx8≥174LS138D0~D7IOW#IOR#Y0Y1F0H=0000000011110000BF1H=0000000011110001B&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路……Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71H……LEABX,Seg7;取7段码表基地址MOVAH,0GO:MOVDX,0F1H;开关接口的地址为F1HINAL,DX;读入开关状态ANDAL,0FH;保留低4位MOVSI,AX;作为7段码表的表内位移量MOVAL,[BX+SI];取7段码MOVDX,0F0H;7段数码管接口的地址为F0HOUTDX,ALJMPGO*§6.3基本输入/输出方法*基本输入/输出方法无条件传送查询式传送中断方式传送直接存储器存取(DMA)程序控制方式*一、无条件传送适用于总是处于准备好状态的外设,输入输出指令的执行就是数据传送过程;以下外设可采用无条件传送方式:开关;发光器件(发光二极管、7段数码管、灯泡等);继电器;步进电机。优点:软件及接口硬件简单;缺点:只适用于简单外设,适应范围较窄。*无条件传送例读取开关的状态;当开关闭合时,输出编码使发光二极管亮。DCPQD0D1输出口地址38F3H输入口地址38F0H+5V1*二、查询工作方式仅当条件满足时才能进行数据传送;每满足一次条件只能进行一次数据传送。适用场合:外设并不总是准备好对传送速率和效率要求不高工作条件:外设应提供设备状态信息接口应具备状态端口READY?进行一次数据交换读入并测试外设状态YN传送完?Y结束N每满足一次条件只能进行一次数据传送查询工作方式 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY结束N*查询工作方式例外设状态端口地址为03FBH,第5位(bit5)为状态标志(=1忙,=0准备好)外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。试画出其电路图,并将DATA下100B数据输出。D5D7-D0A9|A3≥1&A15|A10≥13F8HA2A1A0≥13FBH状态端口地址:0000001111111011数据端口地址:0000001111111000LEASI,DATAMOVCX,100AGAIN:MOVDX,03FBHWAITT:INAL,DXTESTAL,20HJNZWAITTMOVDX,03F8HMOVAL,[SI]OUTDX,ALINCSILOOPAGAINHLT读状态进行一次传送Bit5=1?传送完否?修改地址指针初始化YNNY结束控制程序查询工作方式优点:软硬件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢**三、中断控制方式特点:外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序。优点:CPU效率高,实时性好,速度快。缺点:程序编制相对较为复杂。*以上三种I/O方式的共性信息的传送均需通过CPU软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。缺点:程序的执行速度限定了传送的最大速度*四、DMA控制方式特点:外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。这种专门的硬件电路就是DMA控制器,简称为DMAC。该集成电路产品有Zilog公司的Z80-DMA,Intel公司的8257,8237A和Motorola的MC6844等。*DMA控制方式DMAC外设接口CPUDRQMEMDACKHOLDHLDA…BUS控制信号地址信号*DMA控制方式的工作过程外设向DMA控制器发出“DMA传送请求”信号DRQ;DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD;CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进行响应;DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK。*8086用DMA方式传送单个数据*DMA控制方式工作过程例例:从外设向内存传送若干字节数据DMAC向I/O接口发出读信号;向地址总线上发出存储器的地址;发出存储器写信号和AEN信号;传送数据并自动修改地址和字节计数器判断是否需要重复传送操作;若数据传送完,DMA控制器撤销发往CPU的HOLD信号;CPU检测到HOLD失效后,则撤销HLDA信号,并在下一时钟周期重新开始控制总线。*DMA工作方式周期窃取:每个DMA周期只传送一个字节或一个字就立即释放总线。数据块传送:DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。直接存取方式:DMA的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在DMA控制器中由硬件完成。周期窃取的DMA方式:NYN允许DMADMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个数据块结束?释放总线至少一个总线周期地址增量,计数器减量DMAC释放总线Y测试I/O的DREQDMA请求?*DMA控制方式数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率。控制复杂,硬件成本相对较高。*§6.4中断技术*掌握:中断的基本概念中断响应的一般过程中断向量表及其初始化8088/8086中断系统中断示意图一、中断的基本概念日常生活中类似“中断”的例子:例1:门铃响时,放下手中正在做的事情,跑去开门,招待客人;客人走后,接着做原来的事情。例2:教师讲课过程中,同学遇有疑问,不同理解之处,随时向老师提问。*在中断的整个处理过程中,外部事件发出的中断请求和CPU对中断的响应与当前正在执行的指令之间没有任何关系。——随机性主程序调用子程序的过程则是程序员事先通过编程,利用CALL指令来实现的,当CPU执行到该指令时,就会转去执行被调用的子程序。——确定性中断与子程序的异同*引入中断的原因提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对特殊事件的实时响应。*中断源引起CPU中断的事件,发出中断请求的来源。内部中断(软中断)外部中断(硬中断)异常中断软件中断可屏蔽中断非屏蔽中断异常事件引起中断指令引起INTR中断NMI中断*软件中断硬件中断软中断通过INTn来引发,可屏蔽中断通过INTR引脚输入,不可屏蔽中断通过NMI引脚输入可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理**二、外部中断响应的一般过程中断请求中断源识别及中断判优中断响应中断处理(服务)中断返回*中断请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。NMIINTR*中断源的识别中断源识别及判优由硬件系统完成CPU响应INTR中断时,会产生两个中断响应总线周期,要求PIC在第2个中断响应总线周期把中断类型码放到数据总线上,供CPU读入。*中断判优当有多个中断源同时提出请求时,需要确定首先响应哪一个中断源。优先级法则低优先级的中断程序允许被高优先级的中断源所中断排队法则先来先响应中断嵌套*中断判优软件判优顺序查询中断请求,先查询的先服务即先查询的优先级别高**INAL,PORT_R;PORT_R是锁存器地址CLCRCRAL,1JCINTS01;转向故障处理A1:RCRAL,1JCINTS02;转向告警处理A2:…………INTS01:……JMPA1INTS02:……JMPA2……*硬件判优链式判优、并行判优(中断向量法)*INTAinCPUINTAINTR外设1外设2外设接口1菊花链逻辑电路外设接口2外设3外设接口3≥1菊花链逻辑电路菊花链逻辑电路┇IREQIREQIREQ中断确认硬件优先权排队-----链式判优电路原理图INTAinINTAin中断确认中断确认菊花链逻辑电路INTAinIREQINTR&≥1INTAoutDB三态门中断向量码E外设接口中断确认菊花链逻辑电路*中断响应向中断源发出INTA中断响应信号;关中断保护硬件现场将FLAGS压入堆栈保护断点将CS、IP压入堆栈获得中断服务程序入口地址由硬件系统完成*中断处理执行中断服务子程序中断服务子程序的特点:为“远过程”用IRET指令返回*中断服务子程序完成的工作关中断,保护现场,保护断点,找入口地址保护软件现场(参数)开中断(STI)中断处理关中断(CLI)恢复现场中断返回*中断返回执行IRET指令,使IP、CS和FLAGS从堆栈弹出恢复断点和硬件现场中断处理过程流程**三、8086/8088的中断系统与中断有关的控制线为:NMI、INTR、INTA8086系统的中断源(256个)内部中断软件中断:即INTn指令,类型号n(0-255)。除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)断点中断:类型号3,这是一个软件中断,即INT3指令。溢出中断:类型号4,这是一个软件中断,即INTO指令。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。*中断源优先级除法出错中断最高最低软件中断INTn溢出中断INTO非屏蔽中断NMI可屏蔽中断INTR单步中断NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断可屏蔽中断请求n430128086/8088中断源类型:除法溢出中断在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法溢出中断例如:MOVBL,0IDIVBL;除数BL=0,产生除法溢出中断MOVAX,200HMOVBL,1DIVBL;商=200H,不能用AL表达;产生除法溢出中断指令软中断在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,称为指令中断其中向量号为3的指令中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的溢出中断在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断例如:MOVAX,2000HADDAX,7000H;2000H+7000H=9000H,溢出:OF=1INTO;因为OF=1,所以产生溢出中断单步中断若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试不可屏蔽中断通过不可屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为不可屏蔽中断8086的不可屏蔽中断的向量号为2,不可屏蔽中断请求信号为NMI不可屏蔽中断主要用于处理系统的意外或故障。例如:电源掉电前的数据保护存储器读写错误的处理可屏蔽中断外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断8086的可屏蔽中断请求和响应信号分别是INTR和INTA*;由IF标志控制可屏蔽中断是否允许响应(CLI或STI);向量号来自外部中断控制器8086通常需要配合中断控制器8259A共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据*中断向量:是中断处理子程序的入口地址,每个中断类型对应一个中断矢量中断向量表:在内存中,开辟一个区域存放中断服务程序的入口地址的表。对于8086,这个区域的首地址00000H(固定)中断向量表**┇┇00000H003FFH1KB每个入口占用4Bytes,低字为段内偏移,高字为段基址;表的地址位于内存的00000H~003FFH,大小为1KB,共256个入口。*8086中断向量表8086中断矢量表的初始化格式:┇MOVDX,OFFSETINT;中断服务程序偏移量→DXMOVAX,SEGINTMOVDS,AXMOVAL,n;中断矢量号n→ALMOVAH,25H;功能号25H→AHINT21H┇方法一:采用DOS系统功能调用,即INT21H的25H号(设置中断向量)功能调用已知:某一中断服务程序的入口地址为INT(逻辑地址)方法二:直接将中断服务程序的入口地址装入中断矢量表中MOVAX,0MOVES,AXMOVDI,n;中断矢量号n→DISHLDI,1;n×2SHLDI,1;n×4MOVAX,OFFSETINT;中断服务程序的偏移量→AXMOVBX,SEGINT;中断服务程序的段基址→BXMOVES:[DI],AX;中断服务程序的偏移量→矢量表MOVES:[DI+2],BX;中断服务程序的段基址→矢量表已知:某一中断矢量号为n,中断服务程序的入口地址为INT(逻辑地址)常用的BIOS中断调用特点:BIOS中断调用要比DOS中断调用复杂些,但运行速度快,功能更强些BIOS中断调用颇具特色的是显示中断子程序,其矢量号是10H(1)设置显示方式矢量号:10H功能号:AH=0入口参数:AL=常用显示方式号(0~6)显示方式号显示方式040列×25行黑白文本方式140列×25行彩色文本方式280列×25行黑白文本方式380列×25行彩色文本方式4320列×200行黑白图形方式5320列×200行彩色图形方式6640列×200行黑白图形方式注意:对于高分辨率,只支持黑白显示例:屏幕设置成80×25彩色文本方式程序:MOVAH,0;设功能号MOVAL,3;设显示方式INT10H(2)设置光标位置矢量号:10H功能号:AH=2入口参数:BH=页号,通常取0页DH=行号,取值0~24DL=列号,对于40列文本,取值0~39对于80列文本,取值0~79程序:MOVBH,0MOVDH,10MOVDL,30MOVAH,2INT10H例:将光标置在第10行30列(3)在当前光标处写字符和属性矢量号:10H功能号:AH=9入口参数:BH=页号AL=显示字符的ASCII码BL=属性CX=重复显示的次数L位为1时表示背景闪烁,否则不闪I位为1时表示前景为高亮度,否则为一般亮度文本方式16种颜色的组合例:用兰色清屏,然后在第10行30列显示20个红底白字‘A’程序:MOVAL,0;AL=0时,清屏参数MOVBL,10H;蓝色背景,无闪烁,属性→BLMOVAH,6;清屏功能号6MOVCX,0;从0行到0列MOVDH,24;到24行MOVDL,79;79列INT10H;清屏幕MOVAH,2MOVBH,0;页号MOVDH,10MOVDL,30INT10H;光标设置在第10行30列MOVAL,’A’MOVCX,20;重复显示20个字符‘A’MOVBH,0;页号MOVBL,4FH;属性→BL,红底,白字MOVAH,9INT10H;显示20个字母‘A’(4)设置图形方式显示的背景和彩色组矢量号:10H功能号:AH=0BH入口参数:当BH=0时,BL=背景颜色,范围0~15当BH=1时,BL=颜色组,范围0~1:0表示绿/红/黄,1表示青/品红/白位7、6、5表示波特率:000110波特001150波特010300波特011600波特1001200波特1012400波特1104800波特1119600波特位4、3表示奇偶校验设定:00无奇偶校验01奇校验11偶校验位2表示停止位数设定01位停止位12位停止位位1、0表示通信数据位数设定107位数据通信118位数据通信*例:键盘中断的矢量号为09H,它的中断服务程序入口地址为0BA9H:0125H,求它在中断矢量表中的地址及相应单元内容解:键盘中断对应的中断矢量表位于0000:0024H(09H×4=24H)开始的4单元这4个单元的内容见表:*8088内部中断与NMI中断特点:无INTA周期中断类型码固定或由指令给出8088/8086的中断响应和处理流程四、可编程中断控制器8259A*Intel8259A是一种可编程的中断控制器PIC(ProgrammableInterruptController)可为CPU管理和处理8个中断源电路的中断,并对它们进行优先级管理。可与其它8个8259A芯片组成主从式中断系统,实现64级中断源控制。优先级方式在执行程序时可动态改变,有多种中断管理方式。每一中断源中断都可以屏蔽或允许,可通过编程选择。能自动送出中断类型号,使CPU方便的找到中断服务程序的入口地址。*8259A的结构功能1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A引脚图内部结构说明D7~D0双向三态数据线,传送数据/RD读信号,低电平有效/WR写信号,低电平有效/CS片选信号,低有效,给8259分配地址A0用于选择8259内部不同的寄存器。CAS2~CAS0级联信号线,当8259为主片时为输出,从片时为输入SP/EN在非缓冲工作方式时,用作输入,决定8259A为主片还是从片;在缓冲工作方式时,用作输出,由它打开总线缓冲器*INTAINT数据总线缓冲器读/写控制逻辑级连缓冲比较SP/EN控制电路控制逻辑初始化命令寄存器组操作命令寄存器组中断请求寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断服务寄存器(ISR)中断优先级分析器中断屏蔽寄存器(IMR)D7~D0RDWRCSA0CAS1CAS2CAS0级联逻辑控制8259A的主从工作方式8259内部结构说明IRR—中断请求寄存器,保存8个输入端IR0~IR7的中断申请状态,输入可高电平有效,也可上升沿有效;ISR—中断服务寄存器,保存CPU正在处理的中断请求;IMR—中断屏蔽寄存器,对中断申请进行屏蔽控制;中断优先级分析器决定中断申请的优先级;控制逻辑初始化命令寄存器组:ICW1~ICW4操作命令寄存器组:OCW1~OCW3INT中断申请输出,高电平有效,可连接8086INTR引脚INTA中断响应输入,接收8086发出的中断响应信号,有效时8259应输出中断类型码*8259A的工作过程8259A对中断请求的处理过程如下:当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求检测到第1个INTA信号后,置ISRi=1,IRRi=0检测到第2个INTA信号后,把ISRi=1中最高优先级的中断类型码放到DB上若工作在AEOI方式,在第2个INTA结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位*对8086CPU而言,响应中断申请后,向8259A回送两个负脉冲INTA第一个INTA到达时,8259A做3件事:①IRR锁存功能失效,不接受任何申请②使ISR相应位置位,提供判优依据③使IRR清零*8259A的工作方式8259A的工作方式有如下几类:中断优先方式与中断嵌套中断结束处理方式屏蔽中断源的方式中断触发方式级联工作方式*中断优先方式与中断嵌套中断优先方式两类优先级控制方式:固定优先级和循环优先级固定优先级方式所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变*中断优先方式与中断嵌套(续)循环优先级方式中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi*中断优先方式与中断嵌套(续)中断嵌套方式在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:普通全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。*D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别去CPU*中断结束处理方式当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)——(自动EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)*AEOI:在第2个INTA#结束时,由8259A使ISRi自动复位;因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式SEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。用于特殊屏蔽方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式*中断服务程序┇向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场N特殊全嵌套方式下的EOI处理只有当从PIC的中断全部处理完后,才能向主PIC发EOI命令*屏蔽中断源的方式IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1禁止,IMi=0允许。特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。*中断触发方式边沿触发IRi出现上升沿表示有中断请求电平触发IRi出现高电平表示有中断请求在第1个INTA结束前,IRi必须保持高电平*级联工作方式单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源;8*(n-1)+8-(n-1)=7*n+1级连时只能有一片8259A为主片,其余的均为从属片;涉及到的8259A引脚包括:CAS0-CAS2SP#/EN#IRiINT*级连电路连接方法主片:IR3有申请IRR:00001000ISR:00001000主片向CPU发INTR信号CPU发回答信号INTA2个从片都收到INTA主片向从片送识别码:CAS0~CAS2=0111#从片IR5有申请IRR:00100000ISR:00100000向主片发INT信号从片地址与主片地址同1#从片与识别码一致,1#从片送出中断类型码1#从片挂在主片的IR32#从片挂在主片的IR68259A的编程结构*8259A的编程使用8259A的控制命令分为初始化命令字ICWICW1~ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCWOCW1~OCW3向8259A写入OCW的过程称为操作方式编程*8259A内部寄存器的寻址方法需要CS、A0、RD、WR和D4、D3的配合8259A有两个I/O端口地址,9个寄存器的读写均通过这两个端口实现,根据写入数据的特征位和写入的先后顺序区分是对哪个寄存器进行操作CS#RD#WR#A0D4D3读写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMR*8259A的初始化顺序8259的初始化流程如图注意次序不可颠倒写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY初始化8259A必须从ICW1开始,写ICW1意味着重新初始化8259A,写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。ICW1:芯片控制初始化命令字ICW2:设置中断类型码的ICW3:主片/从片的初始化命令字ICW4:方式控制初始化命令字8259A的初始化命令字:ICWi*ICW1——初始化字LTIM:触发方式=1高电平触发=0上升沿触发SNGL:级连控制=1单片=0级连IC4:ICW4控制=1要写ICW4(对于8086系统都置1)=0不写ICW4(默认ICW4为全0)A0D7D6D5D4D3D2D1D00xxx1LTIMxSNGLIC4*ICW2——中断向量码T7~T3:中断向量码的高5位T2~T0:最低3位为中断源的序号IRn000~111分别对应IR0~IR7由8259A根据中断源的序号自动填入例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。A0D7D6D5D4D3D2D1D01T7T6T5T4T3xxx*ICW3——级连控制字主片的级联控制字Si=1对应IRi线上连接了从片A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0从片的级联控制字ID2~ID0标识码,说明本从片连接到主片的哪个IR引脚上。000~111分别对应IR0~IR7。A0D7D6D5D4D3D2D1D0100000ID2ID1ID0*ICW3——级连控制字(续)ICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。*ICW4——中断结束方式字SFNM:特殊全嵌套1特殊全嵌套方式0一般全嵌套方式AEOI:自动EOI1自动EOI方式0非自动EOI方式A0D7D6D5D4D3D2D1D01000SFNMBUFM/SAEOI1BUF:缓冲方式M/S:主/从缓冲选择BUFM/S11缓冲方式/主PIC10缓冲方式/从PIC0x非缓冲方式/正常两种方式(总线连接方式):缓冲方式和非缓冲方式①缓冲方式多片8259A级连的大系统中,8259A通过总线驱动器和数据总线相连,即为缓冲方式。该方式下,将8259A的端和总线驱动器的允许端相连。主从片的确定由ICW4规定。②非缓冲方式当系统中只有单片8259A时,将它直接与数据总线相连;在某些不太大的系统中,即使有多片8259A工作在级连方式,只要片数不多,也可将8259A直接与数据总线相连。在非缓冲方式下,8259A的端作为输入端。当系统中只有单片8259A时,此端必须接高电平;主从片由硬件引脚确定:主片的端接高电平,从片的端接低电平。PC机初始化为非缓冲方式图:8259A缓冲方式下级连结构74LS245:8路同相三态双向总线收发器例.PC/XT机,CPU为8088,8259A与系统总线间采用缓冲器连接,非自动结束方式,只用1片8259A,正常完全嵌套。ICW4=00001101B=0DHMOVAL,0DHOUT21H,AL例.TP86单板机,CPU为8086,采用非自动结束方式,使用2片8259A,非缓冲方式,采用特定完全嵌套方式。ICW4=00010001B=11HMOVDX,FFDEHMOVAL,11HOUTDX,AL*8259A的操作命令字OCWOCW用于设置8259的工作状态在初始化后写入OCW的写入顺序可任意写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0)*OCW1——中断屏蔽字Mi=1中断请求线IRi被屏蔽(不允许中断)=0允许该IRi中断OCW1将写入IMR寄存器。A0=1时读OCW1可读出设置的IMR内容。A0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0*OCW2——中断结束和优先级循环L2~L0:优先级编码或者ISR的位号:0~7R:优先级自动循环SL:指定优先级EOI:结束中断命令RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0编码复位ISR101NSEOI命令,优先级自动循环100自动EOI,设置优先级自动循环000自动EOI,取消优先级自动循环(固定优先级)111SEOI命令,按L2-L0编码循环优先级(L2-L0设为最低优先级)110按L2-L0编码循环优先级(L2-L0设为最低优先级)A0D7D6D5D4D3D2D1D00RSLEOI00L2L1L0*01100110-------结束IR6的中断11000110———IR6为最低级开始循环方式A0D7D6D5D4D3D2D1D00RSLEOI00L2L1L0*OCW3——屏蔽方式和读出控制字ESMM:允许使能特殊屏蔽方式SMM:特殊屏蔽方式ESMMSMM11特殊屏蔽方式置位10特殊屏蔽方式复位0x非特殊屏蔽方式P(Polling):=1查询方式=0非查询方式A0D7D6D5D4D3D2D1D000ESMMSMM01PRRRISRR:读寄存器RIS:ISR/IRR选择RRRIS11读ISR10读IRR0x无效*特殊屏蔽例:;IR4中断处理程序CLIMOVAL,68H;OCW3:01101000?OUT0C0H,AL;设置特殊屏蔽方式INAL,0C2HORAL,10H;屏蔽IR4OUT0C2H,ALSTI;IR7请求,响应,返回CLI;为设命令字INAL,0C2H;读出屏蔽字ANDAL,0EFH;清除IMR4OUT0C2H,ALMOVAL,48H;OCW3:01001000OUT0C0H,AL;取消特殊屏蔽STI;继续IR4中断服务MOVAL,20H;OCW2:00100000(EOI)OUT0C0,ALIRET *OCW3(续)查询方式允许8259A不工作于中断方式,而是以查询方式工作。CPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节:IxxxxR2R1R0I=1表示有中断请求,中断请求号为R2-R0此查询步骤可反复执行,以响应多个同时发生的中断。读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。8259A不通过INT信号向CPU发中断请求信号,因为CPU内部的中断允许触发器复位,所以禁止了8259A对CPU的中断请求。CPU要使用软件查询来确定中断源,才能实现对外设的中断服务。因此,中断查询方式既有中断的特点,又有查询特点。中断查询方式一般用在多于64级中断的场合,或者用在一个中断服务程序中几个模块分别为几个中断设备服务的情况。CPU所执行的查询程序应包含如下过程:①系统关中断。②用OUT指令使CPU向8259A端口(偶端口)送OCW3命令字。③若外设已发出过中断请求,8259A在当前中断服务寄存器中使对应位置"1",且立即组成查询字。④CPU用IN指令从端口(偶地址)读取8259A的查询字。*例1若该8259A为主片,请用查询方式,查询哪个从片有中断请求。MOVAL,00001100B;发OCW3,欲查询是否有中断请求OUT20H,ALINAL,20H;读查询字,并判断最高位是否为1TESTAL,80HJZDONEANDAL,07H;判断中断源的编码(低三位为最高优先级请求的序号)……DONE:HLT说明:查询字的结构D7:=1表示有中断D2~D1:最高优先级序号*8259A编程举例按以下要求初始化8259A:接口地址为20H和21H;中断为上升沿触发;单片8259A;不写ICW4;与IR0-IR3对应的中断向量码为08H-0BH;IR4-IR7不使用。*根据要求,各初始化参数及工作参数如下:ICW1=00010010=12HICW2=08H中断向量码OCW1=11110000=0F0H中断屏蔽字A0D7D6D5D4D3D2D1D00xxx1LTIMxSNGLIC4A0D7D6D5D4D3D2D1D01T7T6T5T4T3xxxA0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0ICW1ICW2OCW18259与计算机的连接8259A单片工作方式的接口电路高位地址线A15~A5,通过74LS30(8输入与非门)和74LS138进行部分译码,控制/CS,端口范围为020H~03FH,常用20H和22H两个偶端口8259采用D7~D0传送数据低位地址线A1接8259的A0引脚,用于选择8259内部寄存器D7~D0D7~D0RDWRINTINTAA0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7CAS2CAS1CAS0IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7日时钟(08H)键盘(09H)保留(0AH)COM2(0BH)COM1(0CH)硬盘(0DH)软盘(0EH)打印机(0FH)+5VIORIOWINTRINTAA174LS3074LS04A9+5VA8A7A6A5+5VCBA74LS138Y1Y0G2AG2B8259A与计算机的连接两片8259级联管理15级中断收到第一个INTA时,主片通过CAS2~CAS0通知有中断申请的从片在第二个INTA时送出中断类型码从片8259A的中断申请端INT接主片的IR2+5VINT8259主片SP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2CAS1CAS0D7~D0CS8259从片SP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2CAS1CAS0INT/CS220H~3FHA0H~BFH/CS1/INTA/RD/WRA0INTARDWRA0D7~D0实时时钟改向INT0A协处理器CSINTR/INTA/IOR/IOWA1D7~D0主片的SP/EN接+5V,从片的SP/EN接地,主从片的CAS2、CAS1、CAS0对应连接IRQ0~IRQ7的中断类型码:08H~0FHIRQ8~IRQ15的中断类型码:70H~77H8259与计算机的连接说明从片8259A的中断申请端INT接主片的IRQ2主片的SP/EN接+5V,从片的SP/EN接地,主从片的CAS2、CAS1、CAS0对应连接。主片的端口地址INTA1、CS为020H~03FH,从片的端口地址INTA2、CS为0A0~0BFH.8086系统主从芯片都用偶地址传递信息。主芯片A0接在8086的那根地址线上??*例1某系统分配给8259A的端口地址为20H和21H,中断类型号为40H~47H,初始化要求:高电平触发方式、缓冲器方式,中断结束采用EOI方式,采用全嵌套方式。◆主程序初始化编程:◆中断服务程序:............MOVAL,1BHMOVAL,20HOUT20H,ALOUT20H,ALMOVAL,40HIRETOUT21H,ALMOVAL,09HOUT21H,AL......*例2读8259A相关寄存器的内容。设8259A的端口地址为20H、21H,请读入IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中。MOVAL,00001010B;发OCW3,读取IRR命令OUT20H,ALINAL,20H;读入并保存IRR的内容MOV[2000H],ALMOVAL,00001011B;发OCW3,读取ISR命令OUT20H,ALINAL,20H;读入并保存ISR的内容MOV[2001H],ALINAL,21H;直接读入并保存IMR的内容MOV[2002H],AL例3【例】某级联系统,从片INT引脚接到主片IR5引脚。主片:IR1、IR6引入中断请求,中断类型号31H和36H。中断向量2000H:1000H和2000H:6000H。从片:IR4、IR5引入中断请求,中断类型号44H和45H。向量3000H:3500H和3000H:4500H。主片初始化MOVAL,19H;ICW1:级联连接,高电平触发OUT80H,ALMOVAL,30H;ICW2:中断类型号为30HOUT81H,ALMOVAL,20H;ICW3:从片连接在IR5引脚OUT81H,ALMOVAL,11H;ICW4:特殊全嵌套方式,非缓冲方式OUT81H,ALMOVAL,9DH;OCW1:允许IR1、IR5和IR6中断OUT81H,AL从片初始化MOVAL,11H;ICW1:级联连接,边沿触发OUT90H,ALMOVAL,40H;ICW2:中断类型号为40HOUT91H,ALMOVAL,05H;ICW3:从片连接在主片的IR5引脚OUT91H,ALMOVAL,01H;ICW4:全嵌套方式,非缓冲方式OUT91H,ALM
本文档为【第六章输入输出和中断技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
旋律
几年的财务工作经验,现认财务主管一职!精通各种财务管理软件
格式:ppt
大小:3MB
软件:PowerPoint
页数:0
分类:企业经营
上传时间:2018-06-02
浏览量:1