2020/2/11《机械系统计算机控制课件》1第6章输入输出及中断系统机械系统计算机控制机电学院2020/2/11《机械系统计算机控制课件》26输入/输出及中断系统I/O接口中断原理8259A中断控制器2020/2/11《机械系统计算机控制课件》36.1输入/输出接口I/O接口接口的定义:是完成数据、地址和控制三总线转换和连接的一组电路CPU数据总线DB地址总线AB控制总线CB存储器RAMROMI/O芯片8259825382558251…I/O设备显示器打印机键盘鼠标2020/2/11《机械系统计算机控制课件》46.1输入/输出接口I/O接口(续)一般接口方式(三总线)(图例)DB直接连接接口芯片D7-D0地址A15-A0低连高译(得到I/O接口芯片地址)控制总线对应连接2020/2/11《机械系统计算机控制课件》5CPUI/O设备译码数据端口状态端口控制端口DBABCB一个典型的I/O接口6.1输入/输出接口接口电路基本结构数据口(输入/输出):双向;数据寄存器状态口:只能由CPU读入。状态寄存器控制口:只能由CPU写出。控制寄存器每个口由译码电路分配一个唯一的地址。2020/2/11《机械系统计算机控制课件》66.1输入/输出接口I/O端口的寻址方式I/O统一编址(存储器映像寻址)I/O端口单独寻址专门I/O指令,64K端口地址I/O端口地址译码方法独立编址时,一般用地址线的高位部分和控制信号(如RD#、WR#、M/IO#)进行组合(译码)产生I/O接口电路的片选信号(CS);用地址线的低位部分直接连到I/O接口芯片实现端口的选择.2020/2/11《机械系统计算机控制课件》7接口芯片译码例子门电路译码(译码固定)分析8259的CS要求低电平或门输入必须为0;与非门输入必须为1;非门输入必须为0满足结果的输入地址信号为:A9A8=00A7A6A5=001≥1&&CS8259AA9A8A7A6A5“0”“0”“0”“0”“0”“1”“0”“0”2020/2/11《机械系统计算机控制课件》8接口芯片译码例子译码器译码(74LS138)译码条件:接G2A#、G2B#的A9A8必须00译码结果:接CBA的A7A6A5000对Y0低8259CS(00000xxxxxB)001对Y1低8253CS(00001xxxxxB)010对Y2低8255CS(00010xxxxxB)111对Y7低8251CS(00111xxxxxB)A5A6A7A8A9AENAY0BY1CY2Y3Y4G2A#Y5G2A#Y6G1Y7CS8259CS8253CS8255CS825174LS1382020/2/11《机械系统计算机控制课件》9多接口芯片综合实验例825574LS138PA10PA1174LS48abcdefghPA12PA13IOWCSA0A1CSWRRDIORPA8253IOWCSA0A1CSWRRDIORGATE08259IOWCSA0CSWRRDIORIR0CLK0OUT0IRQ01.19Mhz+5VA7A6A50Y1Y2Y3YAG2BG21GA4A3A2IR6IR7CBA+5VXD0-XD7XD0-XD7XD0-XD72020/2/11《机械系统计算机控制课件》106.1输入/输出接口CPU与外设数据传送的方式CPU与外设交换的数据信息从广义上来讲包括数据信息、状态信息、控制信息。这三者都用IN和OUT指令来传送的,只不过是分别送入不同的部件,起不同的作用。数据信息:数字量、开关量、模拟量。状态信息:BUSY,READY等,反映外设的状态。控制信息:CPU发出的命令如读写等。CPU与外设数据传送的三种方式程序方式:无条件传送和查询方式(条件传送)中断方式存储器直接存取方式(DMA方式)2020/2/11《机械系统计算机控制课件》116.1输入/输出接口无条件传送在该方式中,外设总被认为已处于准备就绪和准备接收状态,程序不必查验外设的状态。当需要与之交换数据时,直接执行输入输出指令,就开始接收和发送数据。查询方式(条件传送)CPU从接口(状态口)中读取状态字CPU检测状态字,满足条件,CPU从数据口输入(输出)数据不满足条件,CPU重新读取状态字输入数据查外设是否“准备就绪”。输出数据时查外设是否处于“忙”或“空闲”2020/2/11《机械系统计算机控制课件》126.1输入/输出接口CPU与外设数据传送的三种方式(续)中断方式中断CPU目前工作,与外设进行数据传送的I/O方式CPU与外设并行工作减少查询时间存储器直接存取方式(DMA方式)通过专用DMA控制器,直接控制I/O设备与RAM的数据传送;不需要CPU接入;过程:请求、响应、传送和结束四个步骤。2020/2/11《机械系统计算机控制课件》136.2中断原理中断基本概念80x86中断类型中断源识别及判优中断优先级和嵌套中断响应中断处理过程2020/2/11《机械系统计算机控制课件》146.2.1中断基本概念定义:CPU暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。中断过程(五个步骤)中断请求→中断判优→中断响应→中断服务→中断返回中断处理的隐操作:程序状态及程序断点地址的进栈及出栈。2020/2/11《机械系统计算机控制课件》156.2.1中断基本概念中断系统具有的功能:支持多中断源和多种中断源。支持中断屏蔽处理。支持中断嵌套处理。支持中断优先级修改。支持中断结束方式选择。2020/2/11《机械系统计算机控制课件》166.2.280x86中断类型1.外部硬件(如键盘、鼠标,串口,并口打印机等)中断中断请求:多个中断请求的排队和判优由中断控制器完成,产生的有无中断请求的信号送到CPU的INTR引脚。中断类型号:通过数据总线送到CPU中。中断响应条件:FLAGS寄存器的IF位影响CPU对中断请求的响应。处理器在当前指令执行结束的时候启动中断识别INTA总线周期。属性:硬件、可屏蔽、向量。2020/2/11《机械系统计算机控制课件》176.2.280x86中断类型2.不可屏蔽中断中断请求:中断请求的信号送到CPU的NMI引脚。中断类型号:固定为2。中断响应条件:CPU不需要进行中断识别,直接处理中断。NMI由0跳变到1以后要维持至少4个连续的处理器时钟周期的高电平才被识别。NMI由1跳变到0以后要维持至少4个连续的处理器时钟周期的低电平,新的NMI中断才能被识别。属性:硬件、不可屏蔽、向量。2020/2/11《机械系统计算机控制课件》186.2.280x86中断类型3.软件中断中断请求:指令执行中或程序调用产生。中断类型号:CPU规定或指令给出。CPU专用中断:溢出(O)、单步(1)、断点中断(3)。BIOS中断:I/O设备控制、实用服务、特殊中断、专用参数中断。DOS中断:公开/未公开、可调用、系统功能。自由中断:未定义(20H~3FH中未使用的中断)。中断响应条件:CPU不需要进行中断识别,直接处理中断。属性:软件、不可屏蔽、向量。2020/2/11《机械系统计算机控制课件》19常用的软件中断中断号功能中断号功能10H显示服务中断13H软硬盘控制中断14H串行口中断15H各种IO设备中断16H键盘中断17H并行打印口中断20H返回DOS21HDOS功能调用23HCtrl+Break处理24HDOS严重错误33H鼠标中断2FH31HDOS保护方式接口BIOS、DOS、自由中断的汇编调用方式:INTn;n为中断向量号,如INT10H2020/2/11《机械系统计算机控制课件》206.2.280x86中断类型4.内部中断和异常中断请求:指令执行中产生。中断类型号:CPU规定。失效:错误在指令完成前,错误指令的CS:IP压栈。该指令会重做。陷阱:错误在指令完成后,错误指令下一指令的CS:IP压栈。中止:不保存,重启机器。中断响应条件:CPU不需要进行中断识别,直接处理中断。属性:软件、不可屏蔽、向量。2020/2/11《机械系统计算机控制课件》216.2.3中断识别及其优先级1.中断识别只有外部硬件中断需要进行识别,其余不需要识别。中断识别由中断控制器完成。2.中断优先级原则:按机器故障、DMA、外围硬件、软件递减。结果:CPU专用DMA外围硬件BIOSDOS自由。即基本按中断向量表排序。外围硬件一般可由用户修改其优先权。2020/2/11《机械系统计算机控制课件》226.2.4中断响应在当前指令结束后,可屏蔽中断根据FLAGS寄存器IF位决定是否响应;其他中断给予响应。中断响应的步骤:1.保护断点通过堆栈及相关硬件实现FLAGS、CS、IP的保护。并清除IF和TF。压栈的顺序是FLAGS、CS、IP2.取得中断类型号对外部硬件中断通过中断响应周期取得中断类型号。非外部硬件中断直接取得入口地址,无须第2步2020/2/11《机械系统计算机控制课件》236.2.4中断响应中断响应的步骤(续)3.取得中断服务程序入口地址对向量中断,通过中断类型号查中断向量表或中断描述符表取得。4.转入中断处理程序从中断处理程序入口地址转到中断处理程序。执行对中断的处理。5.返回断点恢复断点(IP、CS、FLAG顺序出栈)继续执行主程序。2020/2/11《机械系统计算机控制课件》246.2.4中断响应中断矢量地址入口地址中断类型号0000:03FEH0000:03FCHCSIP……........0000:0086H0000:0084H4030H21型DOS中断2010H……….…0000:0012H0000:0010HCS4型溢出中断IP0000:000EH0000:000CHCS3型断点中断IP0000:000AH0000:0008HCS2型非屏蔽IP0000:0006H0000:0004HCS1型单步中断IP0000:0002H0000:0000HCS0型除数为0中断IP中断服务程序入口中断向量:中断服务程序的入口地址中断向量表(80x86):按中断类型号依次存放中断向量的存储区。在0段从0000H-003FFH区间中断类型号:中断的编号16进制表示。共256种中断类型号与中断向量关系:中断向量=类型号x4取双字例:21H中断的中断向量21Hx4=84H21Hx4+2=86H中断向量=CS:IP=(0000:0086H):(0000:0084H)=4030H:2010H2020/2/11《机械系统计算机控制课件》25保护现场开中断中断处理关中断非自动结束方式,中断结束。恢复现场中断返回IRET6.2.5中断处理过程2020/2/11《机械系统计算机控制课件》266.38259A中断控制器8259A主要任务8259A引脚及内部结构8259A工作方式8259A的操作功能及命令8259A初始化编程2020/2/11《机械系统计算机控制课件》276.3.18259A主要任务接受外部的中断请求;管理所有外部的中断请求(排队、判优、屏蔽、嵌套);向CPU产生中断请求INTR及中断类型号;进行中断结束处理;接受CPU命令及返回状态。2020/2/11《机械系统计算机控制课件》286.3.28259A引脚及内部结构1.8259A引脚CPU侧:DB0~DB7;CS;RD、WRA0INT、INTA外设侧:IR0~IR7;级联:SP/EN、CAS0~CAS2。2020/2/11《机械系统计算机控制课件》296.3.28259A引脚及内部结构2.8259A内部结构接口电路:CPU接口、I/O接口。2020/2/11《机械系统计算机控制课件》306.3.28259A引脚及内部结构2.8259A内部结构(续)内部逻辑:IRR、IMR、PR、ISR及控制电路。中断请求过程:IRx-INT。&INTISR编码中断请求优先级编码器