中南大学 微机原理第五章1_第1页
中南大学 微机原理第五章1_第2页
中南大学 微机原理第五章1_第3页
中南大学 微机原理第五章1_第4页
中南大学 微机原理第五章1_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 中断接口技术中断接口技术8088的中断系统采用向量中断机制能够处理256个中断用中断向量号0255区别可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理8088的中断类型内部中断除法错中断指令中断溢出中断单步中断外部中断非屏蔽中断可屏蔽中断非屏蔽中断源非屏蔽中断源中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUINTRNMI可屏蔽中断源可屏蔽中断源8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTA1. 外部中断外部中断是由于8088外部提出中断请求引起的程序中断利用外部

2、中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部意外或紧急事件外部中断的原因是处理器外部随机产生的,所以是真正的中断(Interrupt)内部中断的原因是处理器执行程序出现异常,所以经常被称为异常(Exception) 非屏蔽中断通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断8088的非屏蔽中断的向量号为2,非屏蔽中断请求信号为NMI非屏蔽中断主要用于处理系统的意外或故障。例如:电源调电前的数据保护存储器读写错误的处理 可屏蔽中断外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的

3、条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断8088的可屏蔽中断请求和响应信号分别是INTR和INTA*;由IF标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器8088通常需要配合中断控制器8259A共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据IF控制可屏蔽中断的响应控制可屏蔽中断的响应中断标志IF的状态IF0:可屏蔽中断不会被响应关中断、禁止中断、中断屏蔽系统复位,使IF0任何一个中断被响应,使IF0执行指令CLI,使IF0IF1:可屏蔽中断会被响应开中断、允许中断、中断开放执行指令STI,使IF1执行指令IRET恢复原IF状态明确

4、明确IF标志的状态是关键标志的状态是关键8088的中断响应过程查询中断的顺序,决定了各种中断源的优先权软件中断除法错中断指令中断溢出中断非屏蔽中断可屏蔽中断单步中断NMIN软件中断软件中断INTRTF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IF1NNNNYYYYY高高低低8088的中断响应过程(续)8088各种中断源的优先权,实际上是指被识别出来的先后多种中断同时请求时,最先响应的则可能是单步中断或NMI中断Y还有还有NMITEMP1标志寄存器入栈标志寄存器入栈TEMPTF,IFTF0CS:IP入栈入栈获取中断向量获取中断向量执行服务程序执行服务程序

5、弹出弹出CS:IP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)(2)(3)(4)(5)NNY(6)8088的中断向量表中断向量:中断服务程序的入口地址(首地址)逻辑地址含有段地址CS和偏移地址IP(32位)每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始256个中断占用1KB区域,就形成中断向量表向量号为向量号为N的中断向量的的中断向量的物理地址物理地址N4内部中断服务程序编写内部中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP第1条指令通常为开中断指令STI最后用中断返回

6、指令IRET通常采用寄存器传递参数主程序需要调用中断服务程序调用前,需要设置中断向量利用INT n指令调用中断服务程序例 内部中断服务程序编写80H号中断服务程序功能:显示以“0”结尾字符串的功能利用显示器功能调用INT 10H字符串缓冲区首地址为入口参数DS:DX(段地址:偏移地址)传递参数数据段intoffdw ?intsegdw ?intmsgdb A Instruction Interrupt !db 0dh,0ah,0回车、换行回车、换行以以“0”结尾结尾保存中断向量mov ax,3580hint 21hmov intoff,bx;保存偏移地址mov intseg,es;保存段基地址

7、获取中断向量(获取中断向量(DOS功能调用功能调用INT 21H)功能号:功能号:AH35H入口参数:入口参数:AL中断向量号中断向量号出口参数:出口参数:ES:BX中断向量(段地址:偏移地址)中断向量(段地址:偏移地址)设置中断向量push dsmov dx,offset new80hmov ax,seg new80hmov ds,axmov ax,2580hint 21hpop ds设置中断向量(设置中断向量(DOS功能调用功能调用INT 21H)功能号:功能号:AH25H入口参数:入口参数:AL中断向量号中断向量号DS:DX中断向量(段地址:偏移地址)中断向量(段地址:偏移地址)调用中断

8、服务程序;设置入口参数:DS段地址(已设置)DX偏移地址mov dx,offset intmsgint 80h ;调用80H中断服务程序A Instruction Interrupt !进入中断服务程序;80H号内部中断服务程序:;显示字符串(以“0”结尾);入口参数:DS:DX缓冲器首地址new80hprocsti;开中断push ax;保护寄存器push bxpush siA Instruction Interrupt !显示字符串mov si,dxnew1:mov al,sicmp al,0jz new2mov bx,0mov ah,0ehint 10hinc sijmp new1A I

9、nstruction Interrupt !退出中断服务程序new2:pop si;恢复寄存器pop bxpop axiret;中断返回new80hendpA Instruction Interrupt !主程序结束mov dx,intoffmov ax,intsegmov ds,axmov ax,2580hint 21hmov ax,4c00hint 21hA Instruction Interrupt !5.1.1 8259A中断控制器中断控制器Intel 8259A是可编程中断控制器PIC可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断82

10、59A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择(一)8259A的内部结构和引脚D7D0INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑1. 中断控制中断请求寄存器IRR保存8条外界中断请求信号IR0IR7的请求状态Di位为1表示I

11、Ri引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许2. 与处理器接口 A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1写入写入ICW1、OCW2和和OCW3写入写入ICW2ICW4和和OCW1读出读出IRR、ISR和查询字和查询字读出读出IMR数据总线高阻状态数据总线高阻状态数据总线高阻状态数据总线高阻状态3. 中断级联一个系统中,

12、8259A可以级联,有一个主8259A,若干个(最多8个)从8259A级联时,主8259A的三条级联线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*1)还是从片(SP*0)动画动画示例示例4. 8259A的中断过程CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期响应周期8259A工作波形工作波形INT第一个周期第一个周期T1 T2 T3 T4ALECLK 第二个周期第二个周期T1

13、 T2 T3 T4第一个前保持为高电平第一个前保持为高电平 INTALOCK动画动画5.1.2 8259A的工作方式的工作方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自动循环方式自动循环方式特殊循环方式特殊循环方式优先权固定方式优先权固定方式优先权循环方式优先权循环方式设置优先权方式设置优先权方式普通中断结束方式普通中断结束方式特殊中断结束方式特殊中断结束方式自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式结束中断处理方式结束中断处理方式屏蔽中断源方式屏蔽中断源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式中断触发方式中断触发方式边沿触发方式边沿触发方

14、式电平触发方式电平触发方式数据线连接方式数据线连接方式缓冲方式缓冲方式非缓冲方式非缓冲方式1. 设置优先权方式普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套特殊全嵌套方式优先权自动循环方式优先权特殊循环方式2. 结束中断处理方式什么是什么是8259A的中断结束?的中断结束?8259A利用中断服务寄存器利用中断服务

15、寄存器ISR判断:判断:n某位为某位为1,表示正在进行中断服务;,表示正在进行中断服务;n该位为该位为0,就是该中断结束服务。,就是该中断结束服务。这里说明如何使这里说明如何使ISR某位为某位为0,不反映不反映CPU的工作状态。的工作状态。2. 结束中断处理方式自动中断结束方式普通中断结束方式配合全嵌套优先权方式使用当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位特殊中断结束方式配合循环优先权方式使用CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位3. 屏蔽中断源方式普通屏蔽方式将IM

16、R的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU如果IMR的Di位置0,则允许IRi中断产生特殊屏蔽方式将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置04. 中断触发方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号电平触发方式中断请求端出现的高电平是有效的中断请求信号5. 数据线连接方式缓冲方式8259A的数据线需加缓冲器予以驱动8259A把SP*/EN*引脚作为输出端,输出允许信号,用以锁存或开启缓冲器非缓冲方式SP*/EN*引脚为输入端若8259A级联,由其确定是主片或从片 5.1.3 8259A的编程的编程初始化

17、编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICW中断操作编程在8259A工作期间可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解他的工作状态1. 初始化命令字ICW初始化命令字ICW最多有4个8259A在开始工作前必须写入必须按照ICW1ICW4顺序写入ICW1和ICW2是必须送的ICW3和ICW4由工作方式决定流程流程D7D6D5D4D3D2D1D0ICW11LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0) 1只能为只能为1,作为

18、标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式,电平触发方式LTIM0,边沿触发方式,边沿触发方式 规定单片或级联方式:规定单片或级联方式:SNGL1,单片方式,单片方式SNGL0,级联方式,级联方式是否写入是否写入ICW4IC41,要写入,要写入ICW4IC40,不写入,不写入ICW4,即,即ICW4规定的位全为规定的位全为0ICW2T7T6T5T4T3D7D6D5D4D3D2D1D0设置中断向量号设置中断向量号nT7T3为中断向量号的高为中断向量号的高5位位n低低3位由位由8259A自动确定:自动确定:nIR0为为000、IR1为为001、IR7为为111ICW3S7S

19、6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级联命令字级联命令字n主片主片8259A:Si1对应对应IRi接有从片;接有从片;否则否则IRi没有连接从片没有连接从片n从片从片8259A:ID0ID2编码说明从片编码说明从片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚ICW4000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)数据线的缓冲方式:数据线的缓冲方式:n缓冲方式(缓冲方式(BUF1)n非缓冲方式(非缓冲方式(BUF

20、0) 主片主片/从片选择:从片选择:n主片(主片(M/S=1)n从片(从片(M/S=0)中断结束方式:中断结束方式:n自动中断结束(自动中断结束(AEOI1)n非自动中断结束(非自动中断结束(AEOI0)微处理器类型:微处理器类型:n16位位80 x86( PM1)n8位位8080/8085( PM0)2. 操作命令字OCW8259A工作期间,可以随时接受操作命令字OCWOCW共有3个:OCW1OCW3写入时没有顺序要求,需要哪个OCW就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字内容写入中断屏蔽寄存

21、器内容写入中断屏蔽寄存器IMRDiMi对应对应IRi,为,为1禁止禁止IRi中断;中断;为为0允许允许IRi中断。各位互相独立。中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配合使配合使用用产生中断结束产生中断结束EOI命命令和改变优先权顺序令和改变优先权顺序L2L0的的3位编码位编码指定指定IR引脚引脚 OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式设置中断屏蔽方式P、RR和和RIS规定随后读取的规定随后读取的状态字状态字含义含义3. 读取状态字CPU可读出IRR、ISR、I

22、MR和查询字A0为低,由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字而A0引脚为高电平时读取的都是IMR查询字反映8259A是否有中断请求D7D6D5D4D3D2D1D0查询字IW2W1W0D7D6D5D4D3D2D1D0中断位中断位I位为位为1,有外设请求中断有外设请求中断W2W0的编码的编码当前中断请求的当前中断请求的最高优先级最高优先级4. 命令字和状态字的区别方法 利用读写信号区别写入的控制寄存器和读出的状态寄存器 利用地址信号区别不同I/O地址的寄存器 由控制字中的标志位说明是哪个寄存器 由芯片内顺序控制逻辑按一定顺序识别不同的寄存器 由前面的控制字

23、决定后续操作的寄存器接口电路中常用的方法接口电路中常用的方法5. 8259A应用举例例1 在某个8086最小方式系统中接有一片8259A,有一外设中断请求从IR7输入,8259A端口地址如图5-18所示。试按要求写出8259A的初始化程序。要求:单片工作方式;8259A的工作方式为:中断请求信号上升沿触发;采用全嵌套方式;采用普通EOI方式;中断向量号分布为0CH0C7H;屏蔽IR0IR6的中断请求,允许IR7的中断请求。如图所示,8259A具有两个端口地址,有CPU的地址线A1控制,其端口号地址的高位由译码器的输出端 提供,组合逻辑电路可以使其8259A为偶地址,因而8259A的命令等可以由

24、808 6CPU低8位数据线传输,端口地址为80H和82H。从IR7输入的中断向量号为0C7H,8086 CPU获得中断向量号并乘以4,从中断服务入口地址表中找到相应的中断服务程序的地址,然后转去执行中断服务程序。初始化程序包括对8259A的设置,和将中断服务程序首地址填入中断向量表中。5. 8259A应用举例 例1续5. 8259A应用举例 例1续源程序INTRRUP SEGMENT AT 0ORG 0C7H*4DW OFFSET INTR_IR7 ;填写中断向量表DW SEG INTR_IR7MAIN SEGMENTMOV AL, 00010011B ;写ICW1,表示上升沿触发及单片工作

25、方式;并要设ICW4OUT 80H, ALMOV AL, 0C0H ;写ICW2,表示中断向量基值为0C0H OUT 82H, AL MOV AL,01111111B ;写OCW1 中断屏蔽字 OUT 82H,AL5. 8259A应用举例 例1续STI由于ICW4所设定的优先级方式为全嵌套方式,中断结束管理方式是为普通EOI方式,所以在中断服务子程序INTR_IR7结束是,要给8259A传输一个EOI命令,使8259A将ISR寄存器中级别最高的位“1”复位为“0”。执行:MOV AL, 20 ;写OCW2OUT 80H, AL5. 8259A应用举例 例2例2 若8086系统采用级联方式,主8259A的中断类型码从30H开始,端口地址为20H,21H。从8259A的INT接主片的IR7,从片的中断类型码从40H开始,端口地址为0A0H,0A1H。均不要ICW4.试对其进行,进行初始化编程。源代码如下:M8259 EQU 20H ;主8259a地址S8259 EQU 0A0H ;从8259A地址STACK SEGMENT STACKSTA DW 50 DUP(?)TOPEQU LENGTH STASTACK ENDS5. 8259A应用举例 例2续CODE SEGMENT ASSUME CS:CODE,DS:CODE,SS:STACKSTART: ;主8259A初始化 MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论