微型计算机原理与接口技术第9章_第1页
微型计算机原理与接口技术第9章_第2页
微型计算机原理与接口技术第9章_第3页
微型计算机原理与接口技术第9章_第4页
微型计算机原理与接口技术第9章_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

1、第第 九九 章章中断系统与中断系统与 8259A 中断控制器中断控制器 当外设数据未准备好时,当外设数据未准备好时,CPU需要不断查询外设是否准需要不断查询外设是否准备好的状态,效率低备好的状态,效率低读取状态信息读取状态信息数据准备好?数据准备好?从数据口读数据从数据口读数据NY1.中断方式示意中断方式示意 (以输入中断为例以输入中断为例)数据数据中断请求中断请求中断响应中断响应数据数据 断点断点现现行行程程序序中中断断服服务务子子程程序序 现现 行行 程程 序序输输入入设设备备输输入入接接口口启动启动CPU 中断基本概念中断基本概念2. 什么是中断什么是中断? CPU暂停执行现行程序暂停执

2、行现行程序,转而处理随机事件转而处理随机事件,处理完毕后再处理完毕后再返回被中断的程序返回被中断的程序,这一全过程称为中断。这一全过程称为中断。3. 中断源中断源 能够引发能够引发CPU中断的信息源中断的信息源 (1)外部中断源(硬件中断源)外部中断源(硬件中断源) I/O设备设备 如键盘、显示器、打印机如键盘、显示器、打印机 数据通道数据通道 如磁带、磁盘如磁带、磁盘 时钟时钟 如如8254 0#,由此引发的中断由此引发的中断 故障源故障源 如掉电、存贮器奇偶校验错如掉电、存贮器奇偶校验错(2)内部中断源(软件中断源)内部中断源(软件中断源) 执行执行INT软件中断指令软件中断指令 如执行指

3、令如执行指令INT 21H CPU指令执行产生的异常指令执行产生的异常 如被如被0除、单步执行除、单步执行 中断基本概念中断基本概念选通信号选通信号4. 具有中断请求功能的输入接口示意图具有中断请求功能的输入接口示意图输输入入设设备备锁锁存存器器(8)三态三态缓冲缓冲器器(8)CPU 数据线数据线R D Q+5 V中断请求中断请求触发器触发器Q D中断允许触发器中断允许触发器数据线数据线D0位位地址译码器地址译码器INTR地址总线地址总线IOWIOR控制口选中控制口选中数据口选中数据口选中状态标志状态标志寄存器寄存器 中断基本概念中断基本概念5. 中断系统中断系统 为实现中断而采取的硬件和软件

4、的确集合。为实现中断而采取的硬件和软件的确集合。 6.中断系统应具备的基本功能中断系统应具备的基本功能 对于硬件中断对于硬件中断,接口电路应具备接口电路应具备屏蔽屏蔽和和开放开放的功的功能能,这种功能由程序员通过软件去控制。这种功能由程序员通过软件去控制。 能实现中断判优(中断排队),当有多个中断源提出请能实现中断判优(中断排队),当有多个中断源提出请求时求时,应能优先响应高级别的中断源。应能优先响应高级别的中断源。 中断基本概念中断基本概念 能够实现中断嵌套能够实现中断嵌套,即高级别的中断源能够中断低级别的即高级别的中断源能够中断低级别的中断服务程序。中断服务程序。 响应中断后,能自动转入中

5、断处理,处理完毕能自动返回响应中断后,能自动转入中断处理,处理完毕能自动返回断点。断点。现现行行程程序序断点断点为为B服服务务B设备中断设备中断为为A服服务务A设备中断设备中断断点断点为为A服服务务 中断基本概念中断基本概念1. 开中断指令开中断指令 功能:使功能:使F寄存器中寄存器中I标志置标志置1,CPU处于开中断状态。处于开中断状态。2. 关中断指令关中断指令 功能:使功能:使F寄存器中寄存器中I标志置标志置0,CPU处于关中断状态。处于关中断状态。 3. 软件中断指令软件中断指令 n为中断类型码为中断类型码,n为为0255之间有定义的无符号整数。之间有定义的无符号整数。 功能:无条件转

6、向功能:无条件转向n型中断服务子程序。型中断服务子程序。 指令的执行过程指令的执行过程CPU响应软件中断的过程响应软件中断的过程 F寄存器寄存器栈栈(保存保存INT n 之前的之前的F状态状态) 使使F中的中的T标志置标志置0禁止单步操作禁止单步操作 I标志置标志置0CPU处于关中断状态处于关中断状态 断口地址断口地址栈栈先:断口基地址先:断口基地址(CS) 栈,后:断口偏移地址栈,后:断口偏移地址(IP)栈栈 CPU从从4n 4n+3单元取出单元取出n型服务程序入口地址型服务程序入口地址 IP:CS,从而转入从而转入n型中断服务程序。型中断服务程序。 80X8680X86中断指令中断指令4.

7、 中断返回指令中断返回指令 功能:依次从栈顶弹出功能:依次从栈顶弹出6个元素个元素 IP,CS,F 如果栈顶是如果栈顶是INT n 的断口地址,则执行的断口地址,则执行 IRET后,返回断点,否则不能。后,返回断点,否则不能。 执行执行INT n 栈顶示意图栈顶示意图执行执行IRET 示意图示意图sp 断口偏移地址断口偏移地址断口段基址断口段基址FCSFIPsp 80X8680X86中断指令中断指令 中断向量是实模式下,中断服务子程序的中断向量是实模式下,中断服务子程序的 入口地址入口地址 它由它由2部分组成部分组成: 服务程序所在代码段的段基址服务程序所在代码段的段基址 2 个字节个字节 服

8、务程序入口的偏移地址服务程序入口的偏移地址 2 个字节个字节每个中断都指定了一个类型每个中断都指定了一个类型码码,也称为中断号。,也称为中断号。每一种中断每一种中断对应对应有一个中断服务程序有一个中断服务程序(Interrupt Service Program ISP ) 中断类型码通过一个中断类型码通过一个与中断服务程序的入口地址相联系:与中断服务程序的入口地址相联系: 下:下: 该表称为该表称为;下:该表称为下:该表称为。CPU规定规定:在实模式下,中断在实模式下,中断向量表需设置在系统的向量表需设置在系统的RAM最低端的最低端的1K单元单元(00000H 003FFH)00000H:00

9、004H:003FCH:0型中断向量型中断向量1型中断向量型中断向量255型中断向量型中断向量n型中断向量型中断向量4*n: 中断向量中断向量如:如:“21H”型中断向量:存放在型中断向量:存放在84H 87H单元中单元中问:问:9CH型中断向量存放在何处?型中断向量存放在何处?解:解: 9CH 4=1001110000=270H 9CH型中断向量存于型中断向量存于 270H 273H单元中单元中4n+0+2+3+1 n 型服务程序入口的偏移地址型服务程序入口的偏移地址 n 型服务程序入口的段基址型服务程序入口的段基址n 型中断型中断向量向量 中断向量中断向量YYXX21H型中断向量型中断向量

10、4 21H 用户程序用户程序MOV AH,1INT 21HMOV DL,AL NEXT:F寄存器内容寄存器内容堆栈区堆栈区NEXT的有效地址的有效地址NEXT的段基址的段基址XX:YY21H型服务程序型服务程序IRETIPCSIPCSFIRET 中断向量中断向量 由由BIOS设计的中断服务程序设计的中断服务程序(如如INT 16H , INT 10H)其中断向量在加电时由其中断向量在加电时由BIOS负责写入中断向量表。负责写入中断向量表。 由由DOS设计的中断服务程序设计的中断服务程序(如如 INT 21H)其中断向量是在其中断向量是在启动启动DOS时,由时,由DOS负责写入中断向量表。负责写

11、入中断向量表。 用户程序开发的中断服务程序,由用户程序写入其中断向量。用户程序开发的中断服务程序,由用户程序写入其中断向量。 中断向量中断向量XX:YY用户编写的用户编写的n型型中断服务程序中断服务程序IRETYYXX中断向量表中断向量表4 n? 中断向量中断向量CLIPUSH DSMOVAX, 0000HMOVDS, AXMOVBX, 4*nMOVAX, OFFSET SERVICEMOVBX, AXMOVAX, SEG SERVICEMOVBX+2, AXPOP DSSTI 中断向量中断向量方方 INT 21H 的的35H子功能子功能 功能:读出功能:读出n型中断向量型中断向量入口:入口:

12、AL=中断类型码中断类型码出口:出口:ES:BX=n型中断向量型中断向量 INT 21H 的的25H子功能子功能 功能:写入功能:写入n型中断向量型中断向量入口:入口:DS=中断服务程序所在代码段的段基址中断服务程序所在代码段的段基址 DX=中断服务程序入口的偏移地址中断服务程序入口的偏移地址 AL=中断类型码中断类型码出口:无出口:无 中断向量中断向量例:把用户程序中以例:把用户程序中以“TIMER”命名的中断服务子程序命名的中断服务子程序的入口地址的入口地址 4 1CH 4 1CH+3单元单元数:数:OLD1C DD ?代:代: MOV AH , 35H MOV AL , 1CH INT

13、21H MOV WORD PTR OLD1C , BX MOV WORD PTR OLD1C+2 , ES PUSH DS MOV AX , CS MOV DS,AX MOV DX , OFFSET TIMERMOV AH , 25HMOV AL , 1CHINT 21HPOP DS 中断向量中断向量CPU中断中断硬件中断硬件中断(外部中断外部中断)软件中断软件中断PC机机256种种中断中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断BIOS中断中断DOS中断中断DOS专用中断专用中断DOS保留中断保留中断用户可用用户可用DOS中断中断用户可开发的中断用户可开发的中断CPU中断逻辑中断逻辑CPU中

14、断中断软件中断(软件中断(INT n指令)指令)非屏蔽中断请求非屏蔽中断请求中断控制系统中断控制系统NMI可屏蔽中断请求可屏蔽中断请求INTR 系统中断的分类系统中断的分类 CPU中断是指中断是指:CPU执行某些操作而引发的中断执行某些操作而引发的中断,这类中断这类中断使用了使用了0、1、3、4、6、7中断号。中断号。 系统中断的分类系统中断的分类 执行执行有定义的有定义的INT n指令而引发的中断指令而引发的中断,称为软件中断。称为软件中断。 软件中断使用软件中断使用05H,10HFFH中的若干个中断号。又分为:中的若干个中断号。又分为:(1) BIOS中断中断 BIOS中断中断,占用了占用

15、了05H、10H1FH中断号中断号,用户程序执用户程序执行相关的软中断指令可以调用相应的中断服务程序。行相关的软中断指令可以调用相应的中断服务程序。 INT 05H 屏幕打印屏幕打印;INT 10H 屏幕显示屏幕显示 I/O;INT 11H 设备配置检测设备配置检测; 系统中断的分类系统中断的分类INT 12H 测试内存容量测试内存容量;INT 13H 磁盘磁盘I/O;INT 14H 串行通信串行通信I/O;INT 15H BIOS扩展功能扩展功能;INT 16H 键盘键盘I/O;INT 17H 打印机打印机I/O;INT 18H 启动启动PC机机ROM BASIC(AT机机)无无;INT 1

16、9H 重新装入引导程序重新装入引导程序;INT 1AH 实时时钟管理。实时时钟管理。 中断号中断号1DH,1EH,1FH,41H,46H也被也被BIOS占用了。但是,占用了。但是,与这些中断号对应的并不是中断服务程序。与这些中断号对应的并不是中断服务程序。 系统中断的分类系统中断的分类(2) DOS中断中断 DOS中断中断,又分为又分为DOS专用中断专用中断,DOS保留中断保留中断,用户可调用的用户可调用的DOS中断以及保留给用户开发的中断。中断以及保留给用户开发的中断。 DOS专用中断专用中断 22H型中断型中断 23H型中断型中断 24H型中断型中断 28H3FH型中断型中断 系统中断的分

17、类系统中断的分类用户可调用的用户可调用的DOS中断中断 20H型中断型中断 21H型中断型中断 25H型中断型中断 26H型中断型中断 27H型中断型中断用户可开发的用户可开发的DOS中断中断 DOS保留的中断保留的中断 系统中断的分类系统中断的分类外部硬件中断外部硬件中断是由是由CPU以外的中断请求而引发的。如果有多以外的中断请求而引发的。如果有多个中断请求,怎样连接至个中断请求,怎样连接至CPU呢?呢?中断中断0中断中断n中断请求中断请求80X86INTR?8259A数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRD

18、WRA0 控制逻辑控制逻辑INTINTA中断中断服务服务寄存器寄存器(ISR) 优先权优先权电路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRDWRA0 控制逻辑控制逻辑中断中断服务服务寄存器寄存器(ISR) 优先权优先权电路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS寄

19、存引脚寄存引脚IR0IR7的中断请求信号的中断请求信号,IRRi位置位置1,表明,表明IRi引脚上有了中断请引脚上有了中断请求信号求信号 8259A8259A内部结构内部结构寄存程序员写入的中断屏蔽字,屏蔽字某位寄存程序员写入的中断屏蔽字,屏蔽字某位=1(IMRi位位=1),则与该位对应的则与该位对应的中断请求信号中断请求信号(IRRi位位)就不能送到中断优先权电路。就不能送到中断优先权电路。数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRDWRA0 控制逻辑控制逻辑中断中断服务服务寄存器寄存器(ISR) 优先权优先权电

20、路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS 8259A8259A内部结构内部结构如:如:MOV AL , 11111100B OUT 屏蔽寄存器口地址,屏蔽寄存器口地址,AL ;屏蔽屏蔽IRR7 IRR2的请求开放的请求开放IRR1,IRR0如:如: IN AL,屏蔽寄存器口地址屏蔽寄存器口地址 AND AL,11110111B OUT 屏蔽寄存器口地址,屏蔽寄存器口地址,AL ;开放开放IRR3的请求的请求 ;对其它位的请求不改变屏蔽对其它位的请求不改变屏蔽/开放的状态开放的状态 82

21、59A8259A内部结构内部结构优优先先权权电电路路Q3Q4IR3IR4Q3Q4IMRIRR.数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRDWRA0 控制逻辑控制逻辑中断中断服务服务寄存器寄存器(ISR) 优先权优先权电路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS 8259A8259A内部结构内部结构比较比较CPU正为之服务的中断源和刚进入优先权电路的中正为之服务的中断源和刚进入优先权电路的中断源,哪一个级别更高

22、。断源,哪一个级别更高。 通过判优通过判优选中选中其中级别最高的中断源,然后通过其中级别最高的中断源,然后通过控制电路,从控制电路,从INT端向端向CPU提中断请求。提中断请求。 比较同时送达优先权电路的中断请求,哪一个比较同时送达优先权电路的中断请求,哪一个 级别最高。级别最高。 8259A8259A内部结构内部结构数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRDWRA0 控制逻辑控制逻辑INTINTA中断中断服务服务寄存器寄存器(ISR) 优先权优先权电路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2

23、IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS 8259A8259A内部结构内部结构通过通过INTA接收接收CPU送来的中断响应信号,中断响应信号送来的中断响应信号,中断响应信号是是2个连续的负脉冲。个连续的负脉冲。INTA使使8259向向CPU送出被选中的中断源的中断类型码送出被选中的中断源的中断类型码使与被选中的中断源对应的使与被选中的中断源对应的ISRi位置位置1,IRRi位置位置0 寄存一组初始化命令字和操作命令字,通过译码产寄存一组初始化命令字和操作命令字,通过译码产 生内部控生内部控制信号制信号当判优电路选中一个中断源时向当判优电路选中一个

24、中断源时向CPU提中断请求提中断请求 (INT) 8259A8259A内部结构内部结构数据数据总线总线缓冲器缓冲器D0 D7读读/写写逻辑逻辑级连级连/缓冲缓冲比较器比较器CAS1CAS0CAS2SP/ENRDWRA0 控制逻辑控制逻辑INTINTA中断中断服务服务寄存器寄存器(ISR) 优先权优先权电路电路中断中断请求请求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)内部总线内部总线CS 8259A8259A内部结构内部结构 8位寄存器,位寄存器,ISRi位与位与IRRi位一一对应位一一对应记录记录CPU正为之服务的是哪一个中断源

25、,怎样记录?正为之服务的是哪一个中断源,怎样记录?反之,反之,如果如果ISR0位由位由1 0,表明,表明IR0的中断服务程序执行完了的中断服务程序执行完了所以所以ISR的每一位都是响应中断源的中断服务标志位。的每一位都是响应中断源的中断服务标志位。如:通过判优电路如:通过判优电路IRR0位的请求被选中,位的请求被选中,8259A向向CPU发中发中断请求,通过断请求,通过INTA收到第一个中断响应信号后,收到第一个中断响应信号后,ISR0位置位置1,IRR0位置位置0。ISR0位置位置1,表明,表明CPU正在准备正在准备(或正在或正在)执行执行IR0的服务程序。的服务程序。 8259A8259A

26、内部结构内部结构完成与完成与CPU数据线配接数据线配接接收初始化命令字,操作命令字接收初始化命令字,操作命令字当收到第二个中断响应脉冲时,通过他们当收到第二个中断响应脉冲时,通过他们向向CPU送出被选中的中断源的中断类型码送出被选中的中断源的中断类型码n 在这之后在这之后CPU从从4n+04n+3单元取出单元取出n型中断向量,型中断向量, 从而从而转入转入n型服务程序。型服务程序。 8259A8259A内部结构内部结构接收片选信号接收片选信号CS CS 、端口选择信号、端口选择信号A0A0和读写控制信和读写控制信 号号RDRD、WRWR。 一片一片8259A8259A在系统中占用两个口地址在系

27、统中占用两个口地址, ,用末位地址线用末位地址线A0A0选选择端口择端口, ,其它地址线通过译码产生其它地址线通过译码产生8259A8259A的片选信号。的片选信号。 一位一位8259A可以管理可以管理8级中断,二片级中断,二片8259A“级连级连”可管理可管理15级中断,级连级中断,级连/缓冲比较器是为完成多片缓冲比较器是为完成多片8259A级连设置的级连设置的模块。模块。 8259A8259A内部结构内部结构 :外部中断请求信号输入外部中断请求信号输入 :输出,指向:输出,指向CPU的的INTR端端 :输入,接收:输入,接收CPU发来的中断响应发来的中断响应 :输入:输入/输出,数据总线输

28、出,数据总线 :片选信号:片选信号 :地址线:地址线A0,用于选择内部端口,用于选择内部端口 :读:读/写控制信号写控制信号:用于:用于8259级联级联 :用于:用于8259级联级联CS WRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS21 282 273 264 255 246 237 228 219 2010 1911 1812 1713 1614 15管脚信号管脚信号首先由中断请求寄存器寄存加到引脚首先由中断请求寄存器寄存加到引脚IR0IR7上的中上的中 断请求。断请求。 在中断屏蔽寄存

29、器的管理下在中断屏蔽寄存器的管理下,没有被屏蔽的中断请求被没有被屏蔽的中断请求被 送到优先权电路判优。送到优先权电路判优。 经过优先权电路的判别经过优先权电路的判别,选中当前级别最高的中断源选中当前级别最高的中断源,然然 后从引脚后从引脚INT向向CPU发出中断请求信号。发出中断请求信号。 CPU满足一定条件后满足一定条件后,向向8259A发出发出2个中断响应信号个中断响应信号(负负脉冲脉冲)。 在实模式下在实模式下,CPU从从4n4n3单元取出该中断源单元取出该中断源 的中断向量的中断向量IP、CS,从而引导从而引导CPU执行该中断源的执行该中断源的 中断服务程序。中断服务程序。 8259A

30、从引脚从引脚INTA收到第收到第1个中断响应信号之后个中断响应信号之后,立即立即 使中断服务寄存器中与被选中的中断源对应的那一位使中断服务寄存器中与被选中的中断源对应的那一位 置置1,同时把中断请求寄存器中的相应位清同时把中断请求寄存器中的相应位清0。 从引脚从引脚INTA收到第收到第2个中断响应信号后个中断响应信号后,8259A把选中把选中 的中断源类型码的中断源类型码n,通过数据线送往通过数据线送往CPU。 中断触发方式中断触发方式中断屏蔽方式中断屏蔽方式中断优先级管理方式中断优先级管理方式中断结束方式中断结束方式总线连接方式总线连接方式边沿触发边沿触发电平触发电平触发常规屏蔽方式常规屏蔽

31、方式特殊屏蔽方式特殊屏蔽方式完全嵌套方式完全嵌套方式特殊嵌套方式特殊嵌套方式优先级循环方式优先级循环方式自动自动EOI方式方式非自动非自动EOI方式方式缓冲方式缓冲方式非缓冲方式非缓冲方式常规常规EOI循环方式循环方式自动自动EOI循环方式循环方式特殊特殊EOI循环方式循环方式常规常规EOI方式方式特殊特殊EOI方式方式中断触发方式中断触发方式 IRi出现上升沿表示有中断请求出现上升沿表示有中断请求 IRi出现高电平表示有中断请求出现高电平表示有中断请求 在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平 MR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所

32、对应的中断所对应的中断:IMi=1 禁止,禁止, IMi=0 允许。允许。 提供了允许较低优先级的中断能够得到响应的特殊手段。提供了允许较低优先级的中断能够得到响应的特殊手段。 原理原理:假定当前正在处理:假定当前正在处理IR6,先,先进入特殊屏蔽方式,然进入特殊屏蔽方式,然后后设置设置IM6=1。这时,除。这时,除IR6外的所有中断请求均能得到外的所有中断请求均能得到响应。响应。 特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令结束中断。命令结束中断。两类优先级控制方式:两类优先级控制方式: 所有中断请求所有中断请求IRi的中断优先级固定不变的中断优先级固定不变 优先级排列顺序可编程改变

33、优先级排列顺序可编程改变 加电后加电后8259A的默认方式,默认优先级顺序从高到低的默认方式,默认优先级顺序从高到低为为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变 中断源轮流处于最高优先级,即自动中断优先级循环中断源轮流处于最高优先级,即自动中断优先级循环 初始优先级顺序可用编程改变初始优先级顺序可用编程改变 某中断请求某中断请求IRi被处理后,其优先级别自动降为最低,被处理后,其优先级别自动降为最低,原来比它

34、低一级的中断上升为最高级原来比它低一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi 在中断处理过程中允许被更高优先级的事件所中断称为在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。中断嵌套。8259A有两种中断嵌套方式:有两种中断嵌套方式:一中断正被处理时,只有更高优先级的事件可以打一中断正被处理时,只有更高优先级的事件可以打断当前的中断

35、处理过程而被服务。断当前的中断处理过程而被服务。一中断正被处理时,允许同级或更高优先级的事件一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注: 特殊全嵌套仅用于多个特殊全嵌套仅用于多个8259A级连时的主级连时的主8259A,而,而不能用于从属不能用于从属8259A或单或单8259A系统。系统。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应特殊嵌套方式:特殊嵌套

36、方式:因主片不封锁从片的因主片不封锁从片的INT,故级别高的,故级别高的IR0-IR2中断可以得到响应。中断可以得到响应。( (但但IR3-IR7仍被本从仍被本从片封锁片封锁) )C.假定假定IR发生发生中断中断,并获得服并获得服务务一般嵌套方式:一般嵌套方式:IR的中断被服的中断被服务时,这些中断务时,这些中断将被封锁。将被封锁。B.特殊嵌套方式:特殊嵌套方式:IR4的中断被服的中断被服务 时 , 只 封 锁务 时 , 只 封 锁IR5-IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式

37、的区别 去去CPU 当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当服务。当服务结束后,则必须清零该结束后,则必须清零该ISRi位。使位。使ISRi=0是通过向是通过向8259A发出中断结束命令(发出中断结束命令(EOI命令)实现的。命令)实现的。 自动自动EOI(AEOI)(自动(自动EOI方式)方式) 非指定非指定EOI(NSEOI)(正常(正常EOI方式)方式) 指定指定EOI(SEOI)(特殊(特殊EOI方式方式)在第在第2个个INTA#结束时,由结束时,由8259A使使ISRi自动复位;自动复位; 因不保留当前正在服务的中断的状态,故因不保留当

38、前正在服务的中断的状态,故AEOI不能不能用于中断嵌套方式用于中断嵌套方式由由CPU发出一条发出一条SEOI命令,该命令,该EOI命令中指出了命令中指出了所要复位的所要复位的ISR的位号。的位号。 用于特殊屏蔽方式用于特殊屏蔽方式由由CPU发出正常发出正常EOI命令,该命令,该EOI命令使命令使ISRi=1的位中优先级最高的那一位复位。的位中优先级最高的那一位复位。 用于普通全嵌套方式用于普通全嵌套方式中断服务程序中断服务程序向从向从PIC发发EOI命令命令读从读从PIC的的ISR全全0?向主向主PIC发发EOI命令命令YIRET恢复现场恢复现场Nn只有当从只有当从PIC的中的中断全部处理完后

39、,才断全部处理完后,才能向主能向主PIC发发EOI命命令令 8259A的控制命令分为的控制命令分为 初始化命令字初始化命令字ICW ICW1ICW4 向向8259A写入写入ICW的过程称为的过程称为初始化编程初始化编程 操作命令字操作命令字OCW OCW1OCW3 向向8259A写入写入OCW的过程称为的过程称为操作方式编程操作方式编程CS# RD# WR#A0D4D3读写操作读写操作010000写写OCW2写写OCW3写写ICW1写写ICW2,ICW3,ICW4,OCW1(顺序写入顺序写入)00101x1xx00101xx读出读出IRR、ISR读出读出IMRn需要需要CS#、A0、RD#、W

40、R#和和D4、D3的配合的配合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表: 初始化命令字初始化命令字ICW(Initialization Command Word)通常是系统开机时,由)通常是系统开机时,由 初始化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺初始化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺 序填写。序填写。(1) ICW11 初始化命令字初始化命令字1需要需要ICW40不需要不需要ICW41单片单片8259A0级连级连86系统不用系统不用(通常为通常为0)1电平触发方式电平触发方式0边沿触发方式边沿触发方式86系统不用系统不用

41、(通常为通常为0)A0 D7 D6 D5 D4 D3 D2 D1 D0 0 1 LTIM ADI SNGL ICW4 8259A8259A的编程的编程1 T7 T6 T5 T4 T3 A0 D7 D6 D5 D4 D3 D2 D1 D01注:注: T7T3 中断向量类型码高位,中断向量类型码高位, 由编程决定由编程决定 低三位低三位 自动设置为自动设置为 IR0 IR7 的类型编码的类型编码(000 111) D7 D6 D5 D4 D3 D2 D1 D0IR7T7 T6 T5 T4 T3 1 1 1IR6T7 T6 T5 T4 T3 1 1 0IR5T7 T6 T5 T4 T3 1 0 1I

42、R4T7 T6 T5 T4 T3 1 0 0IR3T7 T6 T5 T4 T3 0 1 1IR2T7 T6 T5 T4 T3 0 1 0IR1T7 T6 T5 T4 T3 0 0 1IR0T7 T6 T5 T4 T3 0 0 0 8259A8259A的编程的编程 1 S7 S6 S5 S4 S3 S2 S1 S0 1IR输入带有一输入带有一个个 从控制器从控制器 0IR输入不带一输入不带一个个 从控制器从控制器A0 D7 D6 D5 D4 D3 D2 D1 D01 1 0 0 0 0 0 ID2 ID1 ID0从控制器从控制器ID,编码,编码000111分别对应该从片的分别对应该从片的INT往

43、主片的往主片的IR0IR7哪个端哪个端子输入。子输入。A0 D7 D6 D5 D4 D3 D2 D1 D01 8259A8259A的编程的编程 186 / 88模式模式080 / 85模式模式1自动自动EOI0非自动非自动EOI 0 X 非缓冲方式非缓冲方式 1 0 缓冲方式缓冲方式/从控制从控制器器 1 1 缓冲方式缓冲方式/主控制主控制器器1特殊完全嵌套方式特殊完全嵌套方式0非特殊完全嵌套方式非特殊完全嵌套方式A0 D7 D6 D5 D4 D3 D2 D1 D010 0 0 SFNM BUF M / S AEOI PMPM 8259A8259A的编程的编程ICW1奇地址奇地址ICW2偶地址

44、偶地址ICW3奇地址奇地址ICW4奇地址奇地址 级连方式?级连方式?CPU是是88/86?准备接受中断请求准备接受中断请求No(SGNL=1) Yes (SGNL=0) No(ICW4=0) Yes (ICW4=1) 8259A8259A的编程的编程 由由CPU向向8259A送三个字节的操作命令字送三个字节的操作命令字OCW(Operation Command Word),), 用以规定用以规定8259A的工作方式,如:的工作方式,如: 中断屏蔽中断屏蔽 结束中断结束中断 优线权旋转优线权旋转 中断状态中断状态 等。等。 2 操作命令字操作命令字 8259A8259A的编程的编程(1)OCW1

45、OCW1是中断屏蔽命令字,命令格式如图。是中断屏蔽命令字,命令格式如图。命令字中的命令字中的M7M0对应对应IMR的各位。的各位。Mi=1表示该中断被屏表示该中断被屏蔽,蔽,Mi=0表示该中断开放。表示该中断开放。 1 M7 M6 M5 M4 M3 M2 M1 M0中断屏蔽中断屏蔽1置屏蔽置屏蔽0复位屏蔽复位屏蔽A0 D7 D6 D5 D4 D3 D2 D1 D01中断结束命令字中断结束命令字,命令格式如图。命令格式如图。 R、SL、EOI的不同组合决定了的不同组合决定了8259A的几种工作方式。的几种工作方式。 L2L0 这几位确定当这几位确定当SL=1时指定的特殊结束或特殊循环时指定的特殊

46、结束或特殊循环时的中断优先级。最常用的常规时的中断优先级。最常用的常规EOI命令字为命令字为20H。(2)OCW2 0 R SL EOI 0 0 L2 L1 L00 0 1 常规常规EOI命令命令0 1 1 特殊特殊EOI命令命令 1 0 1 常规常规EOI,按优先级循环按优先级循环1 0 0 以自动以自动EOI方式旋转(设置)方式旋转(设置) 自动旋转自动旋转 0 0 0 取消自动取消自动EOI时的优先级循环时的优先级循环1 1 1 特殊特殊EOI,按优先级循环按优先级循环1 1 0 置优先权命令置优先权命令0 1 0 无操作无操作0 0 0 0 有有 0 0 1 1 效效 0 1 0 2

47、的的 0 1 1 3 中中1 0 0 4 断断1 0 1 5 请请 1 1 0 6 求求 1 1 1 7 级级 别别A0 D7 D6 D5 D4 D3 D2 D1 D00中断结束中断结束特殊旋转特殊旋转用于控制用于控制8259A的运行方式。命令格式如图。的运行方式。命令格式如图。(3)OCW3 0 0 ESMM SMM 0 1 P RR RIS1 = 查询命令查询命令0 = 非查询命令非查询命令A0 D7 D6 D5 D4 D3 D2 D1 D00读寄存器命令读寄存器命令0 1 0 10 0 1 1无作用无作用在下一个在下一个读脉冲时读脉冲时读读IRR在下一个在下一个读脉冲时读脉冲时读读ISR

48、特殊屏蔽方式特殊屏蔽方式0 1 0 10 0 1 1无作用无作用取消取消特殊特殊屏蔽屏蔽设置设置特殊特殊屏蔽屏蔽 按以下要求初始化按以下要求初始化8259A: 端口地址为端口地址为20H和和21H; 中断为上升沿触发;单片中断为上升沿触发;单片8259A;不写;不写ICW4; 与与IR0-IR3对应的中断向量码为对应的中断向量码为08H-0BH; IR4-IR7不使用。不使用。 根据要求,各初始化参数及工作参数如下:根据要求,各初始化参数及工作参数如下: ICW1 = 00010010 = 12H ICW2 = 08H 中断向量码中断向量码 OCW1 = 11110000 = 0F0H 中断屏

49、蔽字中断屏蔽字 初始化程序如下:初始化程序如下:INIT8259A:MOV DX,20H;A0=0,写,写ICW1MOV AL,12H;上升沿触发,单片,不写;上升沿触发,单片,不写ICW4OUTDX,ALMOV DX,21H;A0=1,写,写ICW2,OCW1MOV AL,08H;ICW2OUTDX,ALMOV AL,0F0H;OCW1:屏蔽:屏蔽IR4-IR7OUTDX,AL 系统加电后由系统加电后由BIOS对对8259A初始化编程,设定中断管理方式初始化编程,设定中断管理方式 : 系统系统8259A,中断触发方式为中断触发方式为边沿触发边沿触发,即,即 为中断为中断请求。请求。 中断屏蔽

50、方式采用中断屏蔽方式采用常规屏蔽方式常规屏蔽方式即应用时,向即应用时,向8259A中断屏蔽寄存器写入适当屏蔽字即可中断屏蔽寄存器写入适当屏蔽字即可屏蔽屏蔽/开放某一级中断。开放某一级中断。 中断源为中断源为固定优先级固定优先级 即即IR0IR0中断请求级别最高,中断请求级别最高,IR7IR7中断请求级别最低。中断请求级别最低。采用采用常规中断结束方式常规中断结束方式 即在中断服务子程序结束之前向即在中断服务子程序结束之前向82598259送中断结束命令。送中断结束命令。对对82598259A A编程分二步进行:编程分二步进行: 对对82598259A A进行初始化编程进行初始化编程 对对825

51、98259A A进行应用编程进行应用编程 每一个硬件中断服务程序结束前必须向每一个硬件中断服务程序结束前必须向82598259A A送中断送中断 命令字,通知命令字,通知82598259A A本次中断结束,否则本次中断结束,否则82598259A A不能响不能响 应同一中断源的下次中断。应同一中断源的下次中断。 需要时,向需要时,向82598259A A中断屏蔽寄存器写入屏蔽字。中断屏蔽寄存器写入屏蔽字。 82598259A A收到中断结束命令后,把收到中断结束命令后,把ISRISR中的置中的置1 1位清位清0 0! :可屏蔽中断,非屏蔽中断可屏蔽中断,非屏蔽中断 CPU CPU有有2 2个接

52、收中断请求信号的引脚。个接收中断请求信号的引脚。 输入到输入到INTRINTR引脚的中断请求信号,引脚的中断请求信号, 引发的中断。引发的中断。 输入到输入到NMINMI引脚的中断请求信号,引脚的中断请求信号, 引发的中断。引发的中断。INTRNMI 有可屏蔽中断请求,没有有可屏蔽中断请求,没有DMADMA请求,没有非屏蔽中请求,没有非屏蔽中 断请求断请求 有非屏蔽中断请求,没有有非屏蔽中断请求,没有DMADMA请求请求 一条指令执行完一条指令执行完 CPUCPU一条指令执行完毕一条指令执行完毕 DMA DMA请求级别高于非屏蔽中断高于可屏蔽中断。请求级别高于非屏蔽中断高于可屏蔽中断。 CPU

53、CPU处于开中断状态(处于开中断状态(I I标标=1=1) IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7日时钟日时钟键盘键盘IRQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7辅串口辅串口主串口主串口并口并口2 2软盘软盘并口并口1 1CSCSA0A0主片片选主片片选地址线地址线A0A0CAS2CAS20 0INTINTINTRINTRS2S20 0D7D7D0D0CPUCPUINTAINTARDRDWRWRSP/ENSP/ENS2S20 0INTAINTAIORIORIOWIOW主主82598259总线控制器总线

54、控制器+5+5V V从从8259 8259 INTINT从从8259 8259 CAS2CAS20 0从从82598259相应引脚相应引脚可屏蔽中断硬件结构可屏蔽中断硬件结构(1)(1)可屏蔽中断硬件结构可屏蔽中断硬件结构(2)(2)硬盘硬盘CSCSA0A0从片片选从片片选地址线地址线A0A0CAS2CAS20 0INTINTD7D7D0D0INTAINTARDRDWRWRSP/ENSP/EN从从82598259主主82598259 IR2IR2主主8259 8259 CAS2CAS20 0主主82598259相应引脚相应引脚IR1IR1IR3IR3IR5IR5IR7IR7IR0IR0IR2I

55、R2IR4IR4IR6IR6实时时钟实时时钟IRQ10IRQ10IRQ9IRQ9IRQ12IRQ12IRQ11IRQ11用户中断用户中断保留保留保留保留保留保留保留保留协处理器协处理器主主8259 中断源中断源中断类型中断类型 从从8259 中断源中断源中断类型中断类型IR0日时钟日时钟08HIR0实时时钟实时时钟 70HIR1键盘键盘09HIR1用户中断用户中断 71H改向改向0AHIR2从从8259IR2保留保留72HIR3辅串口辅串口0BHIR3保留保留73HIR4主串口主串口0CHIR4保留保留74HIR5并行口并行口20DHIR5协处理器协处理器 75HIR6软盘软盘0EHIR6硬盘

56、硬盘76HIR7并行口并行口10FHIR7保留保留77H主主8259 中断源中断源中断级别中断级别 从从8259 中断源中断源中断级别中断级别IR0日时钟日时钟 最高最高 次高次高 高高 最低最低IR0实时时钟实时时钟 高高 低低IR1键盘键盘IR1用户中断用户中断IR2从从8259IR2保留保留IR3辅串口辅串口IR3保留保留IR4主串口主串口IR4保留保留IR5并行口并行口2IR5协处理器协处理器IR6软盘软盘IR6硬盘硬盘IR7并行口并行口1IR7保留保留 中断屏蔽寄存器中断屏蔽寄存器 口地址口地址接收中断结束命令的寄接收中断结束命令的寄存器口地址存器口地址主主825921H20H从从8

57、259A1HA0H 命令字命令字=20H 接入主接入主8259 IR0 IR7的中断源的中断源 其服务程序结束要向主其服务程序结束要向主8259送中断结束命令字送中断结束命令字 MOV AL,20H OUT 20H,AL 恢复现场恢复现场 IRET MOV AL,20H OUT 20H,AL OUT 0A0H,AL 恢复现场恢复现场 IRET接入从接入从82598259的中断源,其服务程序结束应分别向的中断源,其服务程序结束应分别向 主、从主、从82598259各送一个中断结束命令字各送一个中断结束命令字 。 中断的引发方式不同中断的引发方式不同 CPUCPU获取中断类型码的方式不同获取中断类

58、型码的方式不同 CPUCPU响应的条件不同响应的条件不同中断处理程序的结束方式不同中断处理程序的结束方式不同 中断源中断源: : 系统系统8254 0#8254 0#计数器,每计数器,每5555msms有一次中断请求有一次中断请求 中断类型中断类型: 8型型 CPU CPU转入转入8 8型中断后,完成下列工作型中断后,完成下列工作 开中断,保护现场(开中断,保护现场(DSDS压栈)压栈) 4040H DSH DS,对对“日时钟计数器日时钟计数器”加加1 1 测算软驱马达关闭时间测算软驱马达关闭时间IRETIRET1 1CHCH服务程序服务程序 向主向主82598259送中断结束命令送中断结束命

59、令恢复现场,恢复现场,IRET IRET 执行执行INT 1CHINT 1CH 日时钟中断处理流程:日时钟中断处理流程: 什么是什么是“日时钟计数器日时钟计数器” ” BIOSBIOS系统规定:系统规定:4040H:6CHH:6CH40H:6FH40H:6FH这这4 4个单元个单元(共(共3232位)为日时钟计数器,每位)为日时钟计数器,每5 54.925493ms4.925493ms (1000ms/18.2=1000ms/18.2= 5 54.925493ms4.925493ms ) )加加1 1次,小时包含次,小时包含6554365543个计时单位个计时单位( 5 54.9254934.

60、925493 65543 655433599.9815s),243599.9815s),24小时包含小时包含1573040(001800B0H)1573040(001800B0H)个计时单位,其计数值供系统软件使用。个计时单位,其计数值供系统软件使用。 系统启动时系统启动时CPUCPU执行执行BIOSBIOS中的一段程序,读取中的一段程序,读取CMOSCMOS实实时时钟电路的时间值时时钟电路的时间值计数值计数值4040: :6 6CHCH40:6FH40:6FH作为作为日时钟计数器的计数初值。日时钟计数器的计数初值。关于关于1 1CHCH服务程序服务程序 8# 8#服务程序,每隔服务程序,每隔

温馨提示

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

评论

0/150

提交评论