| 网站首页 | 电脑论坛 | 计算机原理 | 电脑主板 | cpu中央处理器 | 内存 | 硬盘 | 软驱 | 光驱 | usb设备 | 显卡 | 
 | 显示器 | 声卡 | 电脑音箱 | 耳机耳麦 | 网卡 | 局域网的组建 | 鼠标 | 键盘 | 电脑电源 | 电脑机箱 | 电脑组装与维修 | 
 | 电脑摄像头 | 网友留言 | 网站地图 | 网站地图2 | 
您现在的位置: 电脑硬件知识网 >> 计算机原理 >> 中断系统 >> 文章正文  
[组图]8259A的操作命令字OCW         ★★★
8259A的操作命令字OCW
作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-2-22 21:30:44
 

8259A的操作命令字OCW
    8259A在初始化后就进入工作状态,准备接收IR端的中断请求。此后,可通过操作命令字,改变它的某方面的操作方式或指示它进行某种操作。操作命令字共有3个:OCWl~OCW3,它们可单独使用。
1.OCWI
OCWl用来进行屏蔽操作,直接将中断屏蔽寄存器IMR的相应位置位或复位。OCW的格式、含义如图5.17所示。


 2.OCW2
OCW2用来设置中断结束方式和优先级循环方式,其格式和含义如图5.18所示。
  OCW2的D4,D3固定为0,0,作为OCW2的标志,这是因为它和OCW3同用A0=0选择。


 其D2~Do位(L2~L0)只有在SL位为“1”时才有效,此时,有两个用途:一是当OCW2设置为特殊的中断结束命令时,由这3位指出要清除ISR寄存器中的哪一位;另一个用途是当0CW2设置为优先权特殊循环方式时,由L2~I0指出循环的开始阶段哪个中断源的优先级最低。其D7~D5位(R、sL、EOI)通过组合起作用,用来设置优先权循环方式和中断结束方式以及作为中断结束命令,但是它们的每一位为l时具有各自基本的含义,其中:
  ·R位为1表示采用优先权循环方式;
  ·sL位为1表示D2一D0位(L2~L0)有效;
  ·EOI(End of Interrupt)位为1表示中断结束命令,要将ISR中某一位复位。
  OCW2的D7~D5位(R,SL,EOI)真正起作用的是它们的组合,其组合的表示意义见表5.1,其中功能说明中的“EOI"表示“中断结束”。


    需要指出,在一般的应用系统中是将8259A设置成固定优先级、一般全嵌套方式、非自动中断结束方式,所以,在表5.1中用得最多的组合还是第一种,连同其他的5位其地址为00100000B=20H。每当中断服务结束和返回之前都要给8259A发一个这样的OCW2(20H)来结束中断(将ISR中当前级别最高的置1的位复位)。
3.OCW3
    OCW3用来设置中断屏蔽方式、置8259A为查询方式和规定要读出其内容的寄存器,其格式和含义如图5.19所示。


     其中间两位(D4、D3)固定为01,作为OCW3的标志。
    SMM位用来选择中断屏蔽方式,取0表示使用一般屏蔽方式,取1表示使用特殊屏蔽方式。ESMM是SMM位的控制位,为l允许SMM位起作用,否则禁止它起作用。
    P位决定是否将8259A置成查询方式(P=1时为查询方式)。所谓查询,是通过程序来了解是否有中断发生。当8259A被置成查询方式后,随后送到8259A的引脚的读信号被理解为中断响应信号,8259A将一个字节的数据送上数据总线,如图5.20所示。该字节数据的最高位表示有没有中断发生(为1表示有中断发生),最低的3位在有中断发生的情况下给出请求中断服务的最高优先级的IR编码。可用程序来识别这个字节,若有中断,则转去执行相应的中断服务程序。由此可见,查询是8259A响应中断的又一种方法。


   在微机系统运行过程中,有时需要读8259A的可编程寄存器的内容。中断屏蔽寄存器IMR的内容可以随时读出,而中断请求寄存器IRR或正在服务寄存器ISR的内容不能直接读出,必须先发一个OCW3命令,置成允许读寄存器状态并且指明要读哪个寄存器。OCW3的最低2位就用于这个目的:RR位为读寄存器允许(为1时允许),RIS位为读寄存器选择,为0表示读IRR,为1表示读ISR。如果要读IRR的内容,必须先发一个()CW3命令,其RR、RIs为1 0,然后再读。如果要读ISR的内容,必须先发一个OCW3命令,其RR、RIs为ll,然后再读。
  这里结合实际的机器来说明如何读寄存器的内容。在PC/AT机中采用了两片8259A级联的结构,主片的端口地址为20H和21H,从片的端口地址为AOH和A1H。由于在8259A中IRR和ISR都是用端口寻址线A0为0来选择的,所以在:PC/AT机中主片的IRR和ISR的地址一样,为20H,从片的IRR和ISR的地址一样,为AOH。由于在8259A中IMR是用端口寻址线A0为1来选择的,所以在PC/AT机中主片的IMR的地址为21H,而从片的IMR的地址为A1H。
    下面的c程序段是读主片的IRR:
    outtportb(0x20,OxOa);    /*这里的Ox20是主片OCW3的写入口地址*/
                                                  /*OxOa是具体的OCW3,二进制值为00001010*/
    m irr=inportb(0x20);         /*这里的Ox20是主片的IRR的口地址*/
    下面的c程序段是读从片的:ISR:
    outportb(0xa0,0xob);    /*这里的0xa0是从片OCW3的写入口地址*/
                                                /*0xOb是具体的OCW3,二进制值为0000101l*/
    s irr=inportb(OxaO);      /*这里的OxaO是从片的ISR的口地址*/
    下面的c语句是读主片的IMR:
    m isr=inportb(0x21);    /*0x21是主片的IMR的口地址,*/
    下面的c语句是读从片的IMR:
    s isr=inportb(0xal);    /*0xal是从片的IMR的口地址,*/
    从上面介绍的8259A的初始化命令字和操作命令字可以看出,它是一种功能相当强的中断控制器。8259A是本教材介绍的第一种可编程芯片,和其他可编程芯片一样,芯片设计者在设计时,总是尽量考虑到多种用户的需要、多种应用的需求,功能尽可能全一些,对某一个具体的应用场合,可能只用到其中一部分功能,甚至只用到一小部分功能(对后面要介绍的可编程接口芯片尤为如此)。请读者注意可编程芯片的这一特点。

本篇文章属于主题:可编程中断控制器8259A,了解更多请点击:可编程中断控制器8259A
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目

    电脑硬件知识站导读

    最 新 热 门

    最 新 推 荐
    相 关 文 章
    8259A的初始化编程
    8259A的初始化命令字ICW
    8259A的工作方式
    8259A的内部结构及引脚信…
    可编程中断控制器8259A
    最 新 文章
    文章 下载 图片
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
            我与电脑共舞