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

下载本文档

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

文档简介

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.中断系统应具备的基本功能中断系统应具备的基本功能 H 对于硬件中断对于硬件中断,接口电路应具备接口电路应具备屏蔽屏蔽和和开放开放的功的功能能,这种功能由程序员通过软件去控制。这种功能由程序员通过软件去控制。H 能实现中断判优(中断排队),当有多个中断源提出请求能实现中断判优(中断排队),当有多个中断源提出请求时时,应能优先响应高级别的中断源。应能优先响应高级别的中断源。 中断基本概念中断基本概念 能够实现中断嵌套能够实现中断嵌套,即高级别的中断源能够中断低级别的即高级别的中断源能够中断低级别的中断服务程序。中断服务程序。 响应中断后,能自动

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中断指令中断指

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

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

9、00000H:00004H: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 中断向量中断向量H H由由BIOS设计的中断服务程序设计的中断服务程序(如如INT 16H , INT 10H)其中断向量在加电时由其中断向量在加电时由BIOS负责写入中断向量表。负责写入中断向量表。H H由由DOS设计的中断服务程序设计的中断服务程序(如如 INT 21H)其中断向量是在其中断向量是在启动启动DOS时,由时,由DOS

11、负责写入中断向量表。负责写入中断向量表。H H用户程序开发的中断服务程序,由用户程序写入其中断向量。用户程序开发的中断服务程序,由用户程序写入其中断向量。 中断向量中断向量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 MO

13、V AL , 1CH INT 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中断中断用户可开发的中断用户可开发的中断

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

15、 BIOS中断中断,占用了占用了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 BASI

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

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

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

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

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

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

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

23、器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中断屏蔽寄存器中断屏蔽寄存器(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位一一对应位一一对应记录记录C

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

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

27、9A在系统中占用两个口地址在系统中占用两个口地址, ,用末位地址线用末位地址线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执行该中断源的执行该中断源的 中断服务程

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

31、发电平触发常规屏蔽方式常规屏蔽方式特殊屏蔽方式特殊屏蔽方式完全嵌套方式完全嵌套方式特殊嵌套方式特殊嵌套方式优先级循环方式优先级循环方式自动自动EOI方式方式非自动非自动EOI方式方式缓冲方式缓冲方式非缓冲方式非缓冲方式常规常规EOI循环方式循环方式自动自动EOI循环方式循环方式特殊特殊EOI循环方式循环方式常规常规EOI方式方式特殊特殊EOI方式方式8259的编程结构由三组共的编程结构由三组共10个寄存器构成,每个寄存器均为个寄存器构成,每个寄存器均为8位。位。 初始化命令字初始化命令字ICW(Initialization Command Word)通常是系统开机时,由)通常是系统开机时,由

32、初始化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺初始化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺 序填写。序填写。 (1) ICW11 初始化命令字初始化命令字1需要需要ICW40不需要不需要ICW41单片单片8259A0级连级连86系统不用系统不用(通常为通常为0)1电平触发方式电平触发方式0边沿触发方式边沿触发方式86系统不用系统不用(通常为通常为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

33、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 1IR4T7 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

34、 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往主片的往主片的IR0IR7哪个端哪个端子输入。子输入。A0 D7 D6 D5 D4 D3 D2 D1 D01 8259A8259A的编程的编程 186 / 88模式模式080 / 85模式模式1自动自动EOI0非自动非自

35、动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偶地址偶地址ICW3奇地址奇地址ICW4奇地址奇地址 级连方式?级连方式?CPU是是88/X86?准备接受中断请求准备接受中断请求No(SGNL=1) Yes (SGNL=0) No(ICW4=0) Yes (ICW4=1)

36、8259A8259A的编程的编程 由由CPU向向8259A送三个字节的操作命令字送三个字节的操作命令字OCW(Operation Command Word),), 用以规定用以规定8259A的工作方式,如:的工作方式,如: 中断屏蔽中断屏蔽 结束中断结束中断 优线权旋转优线权旋转 中断状态中断状态 等。等。 2 操作命令字操作命令字 8259A8259A的编程的编程(1)OCW1OCW1是中断屏蔽命令字,命令格式如图。是中断屏蔽命令字,命令格式如图。命令字中的命令字中的M7M0对应对应IMR的各位。的各位。Mi=1表示该中断被屏表示该中断被屏蔽,蔽,Mi=0表示该中断开放。表示该中断开放。 1

37、 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时指定的特殊结束或特殊循环时指定的特殊结束或特殊循环时的中断优先级。最常用的常规时的中断优先级。最常用的常规EOI命令字为命令字为20H。(2)OCW2 0 R SL EOI 0 0 L2 L1 L00 0 1 常规常规EOI命令命令0 1 1 特殊特殊E

38、OI命令命令 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 的的 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中断结束中断结束特殊旋转特殊旋转用于控制用于控制

39、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特殊屏蔽方式特殊屏蔽方式0 1 0 10 0 1 1无作用无作用取消取消特殊特殊屏蔽屏蔽设置设置特殊特殊屏蔽屏蔽 系统加电后由系统加电后由BIOS对对8259A初始化编程,设定中断管理方式初始化编程,设定中断管理方式

40、: 系统系统8259A,中断触发方式为中断触发方式为边沿触发边沿触发,即,即 为中断为中断请求。请求。 中断屏蔽方式采用中断屏蔽方式采用常规屏蔽方式常规屏蔽方式即应用时,向即应用时,向8259A中断屏蔽寄存器写入适当屏蔽字即可中断屏蔽寄存器写入适当屏蔽字即可屏蔽屏蔽/开放某一级中断。开放某一级中断。 中断源为中断源为固定优先级固定优先级 即即IR0IR0中断请求级别最高,中断请求级别最高,IR7IR7中断请求级别最低。中断请求级别最低。采用采用常规中断结束方式常规中断结束方式 即在中断服务子程序结束之前向即在中断服务子程序结束之前向82598259送中断结束命令。送中断结束命令。对对82598

41、259A A编程分二步进行:编程分二步进行:H H对对82598259A A进行初始化编程进行初始化编程 H H对对82598259A A进行应用编程进行应用编程 每一个硬件中断服务程序结束前必须向每一个硬件中断服务程序结束前必须向82598259A A送中断送中断 命令字,通知命令字,通知82598259A A本次中断结束,否则本次中断结束,否则82598259A A不能响不能响 应同一中断源的下次中断。应同一中断源的下次中断。 需要时,向需要时,向82598259A A中断屏蔽寄存器写入屏蔽字。中断屏蔽寄存器写入屏蔽字。 82598259A A收到中断结束命令后,把收到中断结束命令后,把I

42、SRISR中的置中的置1 1位清位清0 0! :可屏蔽中断,非屏蔽中断可屏蔽中断,非屏蔽中断 CPU CPU有有2 2个接收中断请求信号的引脚。个接收中断请求信号的引脚。 输入到输入到INTRINTR引脚的中断请求信号,引脚的中断请求信号, 引发的中断。引发的中断。 输入到输入到NMINMI引脚的中断请求信号,引脚的中断请求信号, 引发的中断。引发的中断。INTRNMI 有可屏蔽中断请求,没有有可屏蔽中断请求,没有DMADMA请求,没有非屏蔽中请求,没有非屏蔽中 断请求断请求 有非屏蔽中断请求,没有有非屏蔽中断请求,没有DMADMA请求请求 一条指令执行完一条指令执行完 CPUCPU一条指令执

43、行完毕一条指令执行完毕 DMA DMA请求级别高于非屏蔽中断高于可屏蔽中断。请求级别高于非屏蔽中断高于可屏蔽中断。 CPUCPU处于开中断状态(处于开中断状态(I I标标=1=1) IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7日时钟日时钟键盘键盘IRQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7辅串口辅串口主串口主串口并口并口2 2软盘软盘并口并口1 1CSCSA0A0主片片选主片片选地址线地址线A0A0CAS2CAS20 0INTINTINTRINTRS2S20 0D7D7D0D0CPUCPUINTAINTAR

44、DRDWRWRSP/ENSP/ENS2S20 0INTAINTAIORIORIOWIOW主主82598259总线控制器总线控制器+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 CA

45、S2CAS20 0主主82598259相应引脚相应引脚IR1IR1IR3IR3IR5IR5IR7IR7IR0IR0IR2IR2IR4IR4IR6IR6实时时钟实时时钟IRQ10IRQ10IRQ9IRQ9IRQ12IRQ12IRQ11IRQ11用户中断用户中断保留保留保留保留保留保留保留保留协处理器协处理器主主8259中断源中断源中断类型中断类型从从8259中断源中断源中断类型中断类型IR0日时钟日时钟08HIR0实时时钟实时时钟70HIR1键盘键盘09HIR1用户中断用户中断71H改向改向0AHIR2从从8259IR2保留保留72HIR3辅串口辅串口0BHIR3保留保留73HIR4主串口主串口

46、0CHIR4保留保留74HIR5并行口并行口20DHIR5协处理器协处理器75HIR6软盘软盘0EHIR6硬盘硬盘76HIR7并行口并行口10FHIR7保留保留77H主主8259 中断源中断源中断级别中断级别 从从8259 中断源中断源中断级别中断级别IR0日时钟日时钟 最高最高 次高次高 高高 最低最低IR0实时时钟实时时钟 高高 低低IR1键盘键盘IR1用户中断用户中断IR2从从8259IR2保留保留IR3辅串口辅串口IR3保留保留IR4主串口主串口IR4保留保留IR5并行口并行口2IR5协处理器协处理器IR6软盘软盘IR6硬盘硬盘IR7并行口并行口1IR7保留保留 中断屏蔽寄存器中断屏蔽

47、寄存器 口地址口地址接收中断结束命令的寄接收中断结束命令的寄存器口地址存器口地址主主825921H20H从从8259A1HA0H 命令字命令字=20H 接入主接入主8259 IR0 IR7的中断源的中断源 其服务程序结束要向主其服务程序结束要向主8259送中断结束命令字送中断结束命令字 MOV AL,20H OUT 20H,AL 恢复现场恢复现场 IRET MOV AL,20H OUT 20H,AL OUT 0A0H,AL 恢复现场恢复现场 IRET接入从接入从82598259的中断源,其服务程序结束应分别向的中断源,其服务程序结束应分别向 主、从主、从82598259各送一个中断结束命令字各

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

49、驱马达关闭时间IRETIRET1 1CHCH服务程序服务程序 向主向主82598259送中断结束命令送中断结束命令恢复现场,恢复现场,IRET IRET 执行执行INT 1CHINT 1CH 日时钟中断处理流程:日时钟中断处理流程: 什么是什么是“日时钟计数器日时钟计数器” ” BIOSBIOS系统规定:系统规定:4040H:6CHH:6CH40H:6FH40H:6FH这这4 4个单元个单元(共(共3232位)为日时钟计数器,每位)为日时钟计数器,每5555msms加加1 1次,计数次,计数 到到:001800:001800B0HB0H,为为2424小时小时, ,其计数值供系统软件使用。其计数

50、值供系统软件使用。 系统启动时系统启动时CPUCPU执行执行BIOSBIOS中的一段程序,读取中的一段程序,读取CMOSCMOS实实时时钟电路的时间值时时钟电路的时间值计数值计数值4040: :6 6CHCH40:6FH40:6FH做做为日时钟计数器的计数初值。为日时钟计数器的计数初值。关于关于1 1CHCH服务程序服务程序 8# 8#服务程序,每隔服务程序,每隔5555msms在在DS=40HDS=40H的前提下,调用一次的前提下,调用一次1 1CHCH服务程序,之后又返回服务程序,之后又返回8 8型!型! 所以所以1 1CHCH中断是日时钟的外扩中断,用户可开发新的中断是日时钟的外扩中断,

51、用户可开发新的1 1CHCH中断(完成每中断(完成每5555msms一次的定时操作)取代原来的中断服一次的定时操作)取代原来的中断服务子程序。务子程序。 IRETIRET1 1CHCH服务程序服务程序 中断源中断源: : 系统总线插槽系统总线插槽B4B4端引入的端引入的用户设计用户设计的硬件中断请求信号的硬件中断请求信号用户中断请求的途径用户中断请求的途径 用户用户中断中断请求请求80X86INTRIR2IR2 INT INTIMRIMR主主8259 INT INTIR1IR1IMRIMR从从8259用户中断请求从用户中断请求从ISAISA总线总线B4B4端子(端子(IRQ9IRQ9)引入,经

52、过主引入,经过主82598259,从,从82598259二级二级中断管理,最后由主中断管理,最后由主82598259向向CPUCPU提中断。提中断。 只有从只有从82598259IMR1IMR1置置0 0,主,主82598259IMR2IMR2置置0 0,其中断请求方能送到,其中断请求方能送到CPUCPU。 B4实现用户中断必须对主、从实现用户中断必须对主、从82598259应用编程应用编程, ,保证中断申请由保证中断申请由82598259中断控制器提向中断控制器提向CPUCPU IN AL,0A1HAND AL,11111101BOUT 0A1H,AL ;开放用户中断开放用户中断IN AL,

53、21HAND AL,11111011BOUT 21H,AL ;开放从开放从8259中断中断 BIOSBIOS为为“71“71H H型型”设计的服务程序如下:设计的服务程序如下: PUSH AXMOV AL,20HOUT 0A0H,ALPOPAXINT0AH待开发待开发 用户服务程序用户服务程序IRETIRET用户中断的中断类型用户中断的中断类型 CPU响应用户中断后,自动转向响应用户中断后,自动转向“”服务程序服务程序 用户中断服务程序结束用户中断服务程序结束 若用户中断定义为若用户中断定义为0 0AHAH型,型, 服务程序结束前只向主服务程序结束前只向主82598259送结束命令送结束命令

54、若用户中断定义为若用户中断定义为71H 服务程序结束前,向主从服务程序结束前,向主从8259各送一中断结束命令各送一中断结束命令 用户定义的中断服务程序有两个设计方法用户定义的中断服务程序有两个设计方法: 定义用户中断服务程序为定义用户中断服务程序为“71H型型” 中断程序的准备工作:置换中断程序的准备工作:置换71H型中断向量,即把用户型中断向量,即把用户 中断的中断向量中断的中断向量471H 471 H+3单元单元 定义用户中断服务程序为定义用户中断服务程序为“0“0AHAH型型” 中断程序的准备工作:置换中断程序的准备工作:置换0 0AHAH型中断向量,即把型中断向量,即把 用户中断的中

55、断向量用户中断的中断向量440 0AH AH 4 40AH+30AH+3单元单元 IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7日时钟日时钟键盘键盘IRQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7辅串口辅串口主串口主串口并口并口2 2软盘软盘并口并口1 1CSCSA0A0主片片选主片片选地址线地址线A0A0CAS2CAS20 0INTINTINTRINTRS2S20 0D7D7D0D0CPUCPUINTAINTARDRDWRWRSP/ENSP/ENS2S20 0INTAINTAIORIORIOWIOW主主8259

56、8259总线控制器总线控制器+5+5V V从从8259 8259 INTINT从从8259 8259 CAS2CAS20 0从从82598259相应引脚相应引脚中断源中断源 : 主板键盘接口电路主板键盘接口电路中断类型:中断类型: 9 9 键盘中断全过程:键盘中断全过程: 主板主板键盘接口电路键盘接口电路键盘中断键盘中断IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行扫描码并行扫描码键盘电路键盘电路串行扫描码串行扫描码 键盘接口分键盘接口分2 2部分:部分: 一部分装在键盘盒内一部分装在键盘盒内键盘电路键盘电路 另一部分装在主机板另一部分装在主机板键

57、盘接口电路,键盘接口电路,2 2 部分之间通过部分之间通过5 5芯电芯电 源连接。源连接。 主板主板键盘接口电路键盘接口电路键盘中断键盘中断IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行扫描码并行扫描码键盘电路键盘电路串行扫描码串行扫描码键盘电路以单片机为核心,加电后固化在单片机键盘电路以单片机为核心,加电后固化在单片机 内部的键盘扫内部的键盘扫描程序,不断扫描每一个按健,一旦有键闭合,就把闭合键的扫描描程序,不断扫描每一个按健,一旦有键闭合,就把闭合键的扫描码(位置码)码(位置码) 键盘接口电路。键盘接口电路。 键盘接口电路:键盘接口电路: 把串

58、行扫描码通过移位寄存器转换成并行扫描码把串行扫描码通过移位寄存器转换成并行扫描码口地址为口地址为6060H H的端的端口寄存器口寄存器 主板主板键盘接口电路键盘接口电路键盘中断键盘中断IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行扫描码并行扫描码键盘电路键盘电路串行扫描码串行扫描码串并转换完毕,向主串并转换完毕,向主82598259接中断请求接中断请求 CPUCPU响应后,转响应后,转9 9型服务程序型服务程序 键盘中断处理流程键盘中断处理流程 H H开中断,保护现场(开中断,保护现场(DSDS压栈)压栈) H H4040H DS H DS H H

59、从从6060H H口地址寄存器取并行扫描码分析,处理转口地址寄存器取并行扫描码分析,处理转 换成换成2 2字节键代码存入键盘缓冲区字节键代码存入键盘缓冲区 H H向向82598259发中断结束命令发中断结束命令 H H恢复现场恢复现场 IRET IRET 键盘缓冲区键盘缓冲区 BIOS BIOS规定:系统规定:系统RAM 40:1EH RAM 40:1EH 40:3DH 40:3DH为键盘缓冲区共为键盘缓冲区共3232个单元,实际使用个单元,实际使用3030个单元,存放个单元,存放1515个键的键代码。键盘缓个键的键代码。键盘缓冲区是以冲区是以“先进先出先进先出”的规则存取。的规则存取。 由由

60、9 9型服务程序写入键代码,用户用型服务程序写入键代码,用户用INT 16HINT 16H访问键盘缓访问键盘缓冲区,冲区,键盘缓冲区键盘缓冲区是是9 9型硬中断和型硬中断和INT 16HINT 16H软中断之间交换软中断之间交换信息的缓冲区信息的缓冲区 。由键盘中断处理由键盘中断处理程序写入键代码程序写入键代码键盘缓冲区键盘缓冲区40:140:1E E40:3D40:3D由由INT 16HINT 16H读取键代码读取键代码 应用背景应用背景 在许多应用中,在许多应用中,需要每隔一定时间完成一次预定的操作需要每隔一定时间完成一次预定的操作定时操作定时操作。如定时数据采集、定时显示、定时键盘扫描。

温馨提示

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

评论

0/150

提交评论