您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 005_微机原理-输入输出系统与中断技术_3
微机原理与接口技术第五章输入输出接口与中断本节内容5.3.1概述5.3.28259A的内部结构、引脚功能与级联5.3.38259A的工作方式5.3.48259A寄存器编程5.3.58259A在PC机中的使用5.3.1概述微机系统中的中断分为内部中断和外部中断内部中断,如除法中断、溢出中断等,由CPU自身进行管理(中断触发、中断类型码的提供等)外部中断分为非屏蔽中断与可屏蔽中断,通常需要在CPU外部附加中断逻辑控制,对中断进行管理,特别是对于可屏蔽中断5.3.1概述可屏蔽中断的中断逻辑控制与中断优先级管理软件查询方式:使用灵活,效率低简单硬件方式:中断响应速度快,优先级固定专用控制芯片:使用灵活,中断响应速度快,如Intel8259AIRQ0定时IRQ1键盘IRQ2保留IRQ3串口1IRQ4串口2IRQ5硬盘IRQ6软盘IRQ7打印机5.3.1概述Intel8259A是可编程的中断控制芯片,用于微机系统的中断管理,具有以下主要功能单片可管理8级中断,通过级联可管理最多64级中断。每一级中断都可以屏蔽或允许在中断响应周期,向CPU提供中断的类型码具有多种中断管理模式,可以通过编程进行选择5.3.28259A的内部结构IR0~IR7:中断请求,输入;INT:中断请求,输出;INTA:中断响应,输入;D7~D0:数据线,双向;CS:片选允许,输入;WR:写信号;输入;RD:读信号;输入;CAS0~CAS2:级联信号,主片:输出,从片:输入;SP/EN:双功能端缓冲方式使能,输出;级联时主、从,输入;A0:寄存器选择,输入;5.3.28259A的引脚功能5.3.28259A的级联主片INT连接至CPU的INTR引脚,从片INT连接至主片的IRi主片与从片的/INTA通过公共线路与CPU的/INTA引脚相连主片与从片的D0~D7连接至数据总线主片CAS0~CAS2与CAS0~CAS2相连主片/SP接+5V,从片/SP接地5.3.38259A的工作方式中断触发方式中断嵌套方式中断优先级的管理方式中断屏蔽方式中断结束方式边沿触发方式:8259A将中断请求输入端出现的上升沿,作为中断请求信号,在8259A收到第一个中断响应脉冲之前不应出现第二个跳变沿。80X86采用这种触发方式电平触发方式:8259A将中断请求输入端出现的高电平作为中断请求信号两种触发方式下高电平的保持时间:至少保持到收到第一个中断响应脉冲之前,之后对于边沿触发可一直保持,而对于电平触发应及时撤销,以避免引发第二次中断。5.3.38259A的工作方式-中断触发方式5.3.38259A的工作方式-中断嵌套方式中断嵌套:在执行某个中断的中断服务程序过程中,响应另一中断,转向执行另一中断的服务程序一般全嵌套方式:只允许高优先级中断低优先级,禁止同级和较低级的中断请求特殊全嵌套方式:类似完全嵌套方式,不同之处是允许同级的中断请求;5.3.38259A的工作方式–中断优先级的管理方式固定优先级:各中断源的优先级是固定的,IR0最高,IR7最低,默认的优先级管理方式优先级自动循环方式:优先级是循环变化的,一个中断的服务完成后,其优先级自动降为最低,将最高优先级赋给原来比它低一级的中断源,其它中断源的优先级也相应作循环变化。相当于等优先权方式优先级特殊循环方式:类似自动循环方式,不同之处是自动循环方式中优先级初始队列固定不变:IR0-IR7,特殊循环方式下,优先级初始队列可设置。如设IR4为最低优先级,则优先级为:IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR45.3.38259A的工作方式-中断屏蔽方式中断屏蔽方式普通屏蔽方式:将IMR中相应的位置1,屏蔽相应的中断请求特殊屏蔽方式:仅屏蔽本级中断,可响应高级或低级的中断请求,将IMR中相应位置“1”的同时,清ISR相应位5.3.38259A的工作方式-中断结束方式中断结束方式(EOI)普通中断结束方式:全嵌套方式中,CPU中断服务结束前,向8259A发送‘常规中断结束’命令字,清除ISR中优先级别最高的置位自动中断结束方式:8259A在第二个INTA响应脉冲后,自动执行普通EOI操作,不需CPU发命令;要防止“中断重复嵌套”特殊中断结束方式:特殊屏蔽方式中,CPU发特殊命令字,指明复位ISR中的哪一位8259A的控制寄存器分为两组:初始化命令字ICW1~ICW4,操作命令字OCW1~OCW3;有两个端口地址:A0=0,A0=1;ICW1:设置8259A的基本方式:CPU类型,单片/多片,触发方式5.3.48259A寄存器编程0A7A6A51LTMADISNGLIC4A0D7D6D5D4D3D2D1D0ICW2:设置8259A的中断类型码1A0D7D6D5D4D3D2D1D0T7T6T5T4T3XXXLTM:0,边沿触发/1,电平触发SNGL:0,级联/1,单片IC4:0,无ICW4/1,有ICW45.3.48259A寄存器编程S7S6S5S4S3S2S1S0ICW3:设置8259A的级联操作1A0D7D6D5D4D3D2D1D000000ID2ID1ID01A0D7D6D5D4D3D2D1D0主片:Si=0:接外设中断请求/Si=1:接从片中断请求从片:高5位固定为0,低3位用于指定从片标识码ICW4:设置8259A的中断结束,优先级,CPU类型,缓冲方式1A0D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPMSFNM:0,一般全嵌套/1,特殊全嵌套;BUF:0,非缓冲/1,缓冲方式MS:0,从片/1,主片,仅当BUF=1时有效AEOI:0,正常中断结束/1,自动中断结束;uPM:0,80808085/1,8086/80888259的初始化:ICW1使用偶数地址,ICW2~ICW4使用奇数地址初始化时,必须按顺序写入例:若8259端口地址为20H,21H,8259初始化方式如下:;设置ICW1,边沿触发,单片,需设ICW4MOVAL,00010011HOUT20H,AL;设置ICW2,起始中断类型号为08HMOVAL,00001000HOUT21H,AL;设置ICW4,;全嵌套,非缓冲,正常EOI,8086CPUMOVAL,00001001BOUT21H,AL5.3.48259A寄存器编程1M7M6M5M4M3M2M1M0A0D7D6D5D4D3D2D1D0OCW2:设置8259A的中断结束,优先级循环方式0A0D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW1:设置8259A的中断屏蔽寄存器(IMR),相应位置1屏蔽中断5.3.48259A寄存器编程RSLEOIL2,L1,L0XESMMSMM01PRRRISOCW3:设置8259A的中断屏蔽方式,查询方式0A0D7D6D5D4D3D2D1D0ESMM:0,禁止SMM位起作用/1,允许SMM位起作用SMM:0,普通屏蔽/1,特殊屏蔽,仅当ESMM=1时有效D4D3:为OCW3标志位,固定为01P=1时,设置8259A为查询方式,紧接的读操作读出中断状态字;P=0时,RR/RIS=10,读IRR;RR/RIS=11,读IRR,紧接的读操作读出相应寄存器的内容5.3.48259A寄存器编程I××××W2W1W0D7D6D5D4D3D2D1D05.3.48259A寄存器编程-寄存器的读写IBMPC/XT微机中,使用单片8259A管理外部8个中断,其端口地址为:20H、21H;启动时,ROMBIOS对8259A进行初始化,设置如下:中断触发方式采用边沿触发;中断屏蔽方式采用普通方式;中断优先级采用全嵌套方式;中断结束采用普通EOI方式ROMBIOS初始化程序:MOVAL,13HOUT20H,AL;设置ICW1,边沿触发,单片,需设ICW4MOVAL,08HOUT21H,AL;设置ICW2,起始中断类型号为08HMOVAL,09HOUT21H,AL;设置ICW4,全嵌套,8086CPU5.3.58259A在PC机中的使用IRQ0定时IRQ1键盘IRQ2保留IRQ3串口1IRQ4串口2IRQ5硬盘IRQ6软盘IRQ7打印机5.3.58259A在PC机中的使用例:单脉冲发生器输出端连接8259中断请求输入端IR7,通过手动方式产生单个中断请求信号,每次中断在屏幕上显示一次提示信息“THISISANIRQ7INTERRUPT!”,中断10次后程序退出。IRQ7单脉冲发生器STACKSEGMENTSTACKSTADB100DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTMSGDB‘THISISANIRQ7INTERRUPT!’,0AH,0DH,‘$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOP5.3.58259A在PC机中的使用CLI;清中断标志位MOVAL,0FH;保存原0FH中断向量MOVAH,35HINT21HPUSHES;原0FH中断向量压入堆栈PUSHBXPUSHDSMOVAX,SEGINT7MOVDS,AX;DS中断服务程序段地址MOVDX,OFFSETINT7;DX为中断服务程序偏移量MOVAL,0FH;AL=0FH中断类型码MOVAH,25H;AH=25H置中断向量INT21H;设置中断向量POPDSINAL,21H;读中断屏蔽寄存器ANDAL,01111111B;D7=0、开放IRQ7中断OUT21H,AL;OCW1写入82595.3.58259A在PC机中的使用STI;开可屏蔽中断MOVBH,00HLP:CMPBH,10HJNZLPCLIINAL,21HORAL,10000000B;屏蔽IR7中断OUT21H,AL;OCW1写入8259POPDX;恢复原中断向量POPDSMOVAL,0FHMOVAH,25HINT21HSTIMOVAH,4CH;返回DOSINT21H5.3.58259A在PC机中的使用INT7PROCFARPUSHAXPUSHDXMOVDX,OFFSETMSG;显示每次中断的提示信息MOVAH,09INT21HINCBHMOVAL,20H;OCW2=20H表示以普通结束方式结束中断OUT20H,AL;中断处理返回前发出EOI结束中断POPDXPOPAXIRET;中断返回INT7ENDPCODEENDSENDSTART5.3.58259A在PC机中的使用1、中断应答周期内,CPU完成哪些操作?INTA的作用是什么?2、微机系统中断服务程序结束前,为什么要有:MOVAL,20H和OUT20H,AL两条指令?它们对8259A什么寄存器做了什么操作?3、若8086系统中采用单片8259A,某中断类型码为0DH,则其中断向量表中地址指针是多少?该中断源应连接IRQ的哪一个输入端?若中断服务程序入口地址为D000H:EF00H,则其中断向量区对应的4个单元的数值依次是多少?习题
本文标题:005_微机原理-输入输出系统与中断技术_3
链接地址:https://www.777doc.com/doc-3262397 .html