浅议可编程中断控制器8259A程序设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅议可编程中断控制器8259A程序设计

浅议可编程中断控制器8259A程序设计   【摘要】在《微计算机技术》中,中断技术的引入为主机和外设的数据交换解决了很多实际问题,可编程中断控制器8259A是中断系统中的核心器件,是Intel公司专门为处理中断开发的可编程芯片,为计算机管理大量中断。本文从8259A角度认识中断,并且对编程过程中涉及的初始化流程和命令字进行详细解析,为学习中断提供思路。   【关键词】中断;可编程控制器;8259A;命令字   1.引言   最初,中断技术引入计算机系统,只是为了解决快速的CPU与慢速外设之间传送数据的矛盾,随着计算机技术的发展,越来越多的功能通过中断技术来实现,如计算机的故障检测与自动处理,实时信息处理,多道程序分时操作和人机交互等。中断承载越来越多的功能,具体实现相对复杂,能熟练掌握中断控制器的工作方式就尤为重要。   2.中断   中断是指CPU在执行程序过程中,由于某种外设请求或内部事件的作用,强迫CPU停止当前正在执行的程序,专去为该事件服务,待事件服务结束后,能自动的返回到被中断的程序继续执行。中断的智慧来源于生活,如我们在看DVD时,热水烧开了,我们便暂停去处理开水,回来继续。中断需要硬件和软件协同工作,构成中断系统。中断一般分为外部中断和内部中断,外部中断亦称硬件中断,又分为不可屏蔽和可屏蔽中断,分别通过CPU的NMI和INTR引脚提出请求;内部中断又称软件中断,是内部程序调试、程序异常和程序设计需要主动设置的必要中断,但对CPU来说,中断只有一种,处理过程都是去执行一个中断服务程序。   3.8259A及中断处理过程   3.1 8259A芯片   为了帮助CPU管理中断,Intel公司为80X86CPU专门设计了可编程中断控制器,该芯片有很强的中断管理功能,单片8259A可以管理8级外部中断,并对中断可以有效屏蔽、多个中断进行判优、嵌套、多种结束方式的管理,该芯片还提供级联,并且与CPU相连不需要任何额外电路。   3.2 中断处理过程   中断处理过程通常由中断请求、中断应答、判优,执行中断及返回多个环节构成,下面结合8259A的内部结构图来描述该过程:   8259A内部结构图如图1所示。   中断请求:外部中断请求通过电平或跳变触发时,通过IRi引脚记录,再通过IMR寄存器过滤,有允许的中断时通过INT引脚向CPU发出请求;   中断应答:当IF=1,且CPU执行完当前指令时检测INT引脚,如果有请求,给出请求应答信号;   判优:8259A收到应答信号之后,对IRi进行优先级的判断,将优先级最高的请求送ISR,8259A的优先级管理是众多工作方式的一种,通过OCW2进行设置;   执行中断:所有过程都为了执行中断做准备,中断服务程序可以是系统的,也可以是用户编写的,都需要妥善安排中断向量,这个过程也体现8259A管理中断的灵活性;   返回:中断服务程序执行完毕,返回原先被中断的程序上继续执行。   以上过程是连续的,需要软硬件协作完成,硬件依赖电路,软件依赖程序。   4.8259A程序设计要点   8259A的工作方式设定及运行中的控制,均由8086发来的命令字(1byte代码)决定。命令字分初始化命令字和操作命令字两种,系统向8259A两个端口之一写入,由于8259A受端口选择线A0的限制,片内寄存器只能使用两个端口地址,因此多个寄存器使用相同端口,为了区别不同寄存器,一些寄存器的设置了特征位,8259A根据接收命令字的端口号特征位及顺序决定命令字的属性,具体说来,ICW(Initialization Command Word)有严格的接收顺序的要求,OCW(Operation Command Word)有端口号的要求。   4.1 初始化过程   初始化命令字有四个:ICW1~ICW4,有接收顺序要求,关于每一个初始化命令字的具体含义本文不再赘述,以流程图的形式给出初始化过程:   8259A初始化过程如图2所示。   首先对芯片本身进行初始化,即触发方式,是否级联等,因涉及硬件设置需要提前安排,在第一步ICW1中完成设置,之后更换成奇地址,在ICW2中预置中断类型码,这里只给出高5位,D2~D0位取决于IR0~IR7中哪一个中断,组合以后的ICW2送CPU;ICW3用来设置多片级联,如果没有直接进入ICW4,如果有级联,需要在主从片初始化过程中分别写ICW3,并将二者级联位置对应;ICW4主要用来设置中断结束方式。   初始化过程涉及到中断系统的软硬件的诸多问题,一旦完成初始化,相应硬件和中断服务程序也会受其制约,所以需要对中断系统的全局有控制能力的程序员完成初始化工作,在80X86系统中,对系统的8259A的初始化编程在系统启动以后BIOS自动完成,用户在使用过程中不能对再对其进行初始

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档