freducn2002
驱动小牛
驱动小牛
  • 注册日期2002-06-26
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望29点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1584回复:2

PC中断原理(吐血推荐)

楼主#
更多 发布于:2002-08-13 13:36
PC中断原理(吐血推荐)

    [帝国老手 吐血推荐:好象是一个叫Yu Hwang的大做,题目是我加的,文章我略微
整理了一下。看罢文章真佩服作者的毅力,“厉害”]

  现在主题是什么呢? 我就写一些电脑内部中断用法及讲一些 8259 IC 是如何动作及如
何RESET 并说明为何 RESET 会造成 S-ICE OR GAMEBUTER AND GAMETOOLS等软体无法执行
请用心看喔!不然你会渐渐看不懂我的意思了..劝您最好用列表机印出来喔!

 图(一)
┌━━━━┬━━━━━━━━┬━━━━━━━━━━━━━━━━━━━━━━━┐
┃位   址 ┃中  断  编  号  ┃  中      断      名       称                 ┃
├━━━━┼━━━━━━━━┼━━━━━━━━━━━━━━━━━━━━━━━┤
┃  0-3   ┃  INT   0       ┃ 除零中断                                     ┃
┃  4-7   ┃        1       ┃ 单步中断                                     ┃
┃  8-B   ┃        2       ┃ 不可罩盖中断                                 ┃
┃  C-F   ┃        3       ┃ 断点中断                                     ┃
┃ 10-13  ┃        4       ┃ 溢位中断                                     ┃
┃ 14-17  ┃        5       ┃ 萤幕列印中断                                 ┃
┃ 18-1B  ┃        6       ┃ 保留                                         ┃
┃ 1C-1F  ┃        7       ┃ 保留                                         ┃
┃ 20-23  ┃        8       ┃ 计时中断 (8259 #1 IRQ 0)                     ┃
┃ 24-27  ┃        9       ┃ 键盘介面中断 (8259 #1 IRQ 1)                 ┃
┃ 28-2B  ┃        A       ┃ 保留 (8259 #1 IRQ 2)                         ┃
┃ 2C-2F  ┃        B       ┃ 通讯 1 介面中断 (8259 #1 IRQ 3)              ┃
┃ 30-33  ┃        C       ┃ 通讯 2 介面中断 (8259 #1 IRQ 4)              ┃
┃ 34-37  ┃        D       ┃ 列表机介面 2 中断 (8259 #1 IRQ 5)            ┃
┃ 38-3B  ┃        E       ┃ 磁碟机介面中断 (8259 #1 IRQ 6)               ┃
┃ 3C-3F  ┃        F       ┃ 列表机介面 1 中断 (8259 #1 IRQ 7)            ┃
┃ 40-43  ┃       10       ┃ 影像中断                                     ┃
┃ 44-47  ┃       11       ┃ 设备检查中断                                 ┃
┃ 48-4B  ┃       12       ┃ 记忆体大小中断                               ┃
┃ 4C-4F  ┃       13       ┃ 磁碟 I/O 中断                                ┃
┃ 50-53  ┃       14       ┃ 通讯 I/O 中断                                ┃
┃ 54-57  ┃       15       ┃ 卡带 I/O 中断                                ┃
┃ 58-5B  ┃       16       ┃ 键盘 I/O 中断                                ┃
┃ 5C-5F  ┃       17       ┃ 列表机 I/O 中断                              ┃
┃ 60-63  ┃       18       ┃ Basci 进入中断                               ┃
┃ 64-67  ┃       19       ┃ 启动程式中断 (Boot strap)                    ┃
┃ 68-6B  ┃       1A       ┃ 计时中断                                     ┃
┃ 6C-6F  ┃       1B       ┃ 键盘 Break 中断                              ┃
┃ 70-73  ┃       1C       ┃ 计时器滴声中断                               ┃
┃ 74-77  ┃       1D       ┃ 影像参数中断                                 ┃
┃ 78-7B  ┃       1E       ┃ 磁片参数中断                                 ┃
┃ 7C-7F  ┃       1F       ┃ 影像图形字元中断                             ┃
┃ 80-83  ┃       20       ┃ DOS 程式结束中断                             ┃
┃ 84-87  ┃       21       ┃ DOS 功能呼叫中断                             ┃
┃ 88-8B  ┃       22       ┃ DOS 结束位址中断                             ┃
┃ 8C-8F  ┃       23       ┃ DOS CTRL+BREAK 出口位址中断                  ┃
┃ 90-93  ┃       24       ┃ DOS 严重错误出口位址中断                     ┃
┃ 94-97  ┃       25       ┃ DOS 绝对磁碟读取                             ┃
┃ 98-9B  ┃       26       ┃ DOS 绝对磁碟写入                             ┃
┃ 9C-9F  ┃       27       ┃ DOS 程式结束,但保留在记忆体中断              ┃
┃ AO-FF  ┃     28-3F      ┃ DOS 保留                                     ┃
┃100-17F ┃     40-5F      ┃ 保留                                         ┃
┃180-19F ┃     60-67      ┃ 供使用者程式之中断                           ┃
┃1A0-1BF ┃     68-6F      ┃ 不用                                         ┃
┃1C0-1C3 ┃       70       ┃ 即时时脉中断 (8259 #2 IRQ 8)                 ┃
┃1C4-1C7 ┃       71       ┃ 保留未用     (8259 #2 IRQ 9)                 ┃
┃1C8-1CB ┃       72       ┃ 保留未用     (8259 #2 IRQ10)                 ┃
┃1CC-1CF ┃       73       ┃ 保留未用     (8259 #2 IRQ11)                 ┃
┃1D0-1D3 ┃       74       ┃ 保留未用     (8259 #2 IRQ12)                 ┃
┃1D4-1D7 ┃       75       ┃ 80287 错误处理中断 (8259 #2 IRQ13)           ┃
┃1D8-1DB ┃       76       ┃ 硬式磁碟机控制器 (8259 #2 IRQ14)             ┃
┃1DC-1DF ┃       77       ┃ 保留未用 (8259 #2 IRQ15)                     ┃
┃1E0-1FF ┃     78-7F      ┃ 不用                                         ┃
┃200-217 ┃     80-85      ┃ Basic 保留                                   ┃
┃218-3C3 ┃     86-F0      ┃ 执行 Basic 时 , 供 Basic 解译器使用          ┃
┃3C4-3FF ┃     F1-FF      ┃ 不用                                         ┃
└━━━━┴━━━━━━━━┴━━━━━━━━━━━━━━━━━━━━━━━┘
                以上是 PC /AT  中断向量表的功能表

 再来就是讲 8259 IC 的一些动作方式及设定方法

 图(二)         ┌━━━━━┐  ┌━━━━━┐
            /CS ┃1         └━┘        28┃VCC
            /WA ┃2                       27┃A0
            /RD ┃3     ⒏⒉⒌⒐ A       26┃/INTA
        ┌   D7 ┃4                       25┃IR7
  连接到┃   D6 ┃5                       24┃IR6
        ┃   D5 ┃6     主  I  C       23┃IR5
  CPU┘   D4 ┃7                       22┃IR4
        ┐   D3 ┃8                       21┃IR3
    中  ┃   D2 ┃9     各接脚图说明      20┃IR2
        ┃   D1 ┃10                      19┃IR1
        └   D0 ┃11                      18┃IR0
            CAS0┃12                      17┃INT
            CAS1┃13                      16┃/SP / /EN
             GND┃14                      15┃CAS2
                └━━━━━━━━━━━━━┘

VCC 电源    
/CS 晶片选取
GND 接地          当此脚信号为『低电位』时,表示 8259被致能;反之,则是禁能
/RD 读取
      当此脚为『低电位』时,CPU会要求 8259A 送出 IRR (中断要求到暂存器)
      ISR (中断服务暂存器),及 IMR (中断罩盖暂存器) 其中之一到 D0-D7上。
/WR 写入
      当此脚为『低电位』时,CPU要送控制字组 ( control word) 给 8259A。
D0~D7 资料线
        为跟 CPU 连接线
A0  存取线
      此信号与/R0,/WR,/CS合起来决定 CPU 要对那一个暂存器(IMR,IRR,ISR...)做读写
      动作
INT 中断
      此信号是用来通知CPU有周边设备要求中断服务,此线接到 80x86 的/INTA 接脚上
/INTA 中断认知
        为CPU认可一个中断请求的认知讯号,此信号须接到 80x86 /INTA 输出线上
IR0~IR7 中断请求 0~7
          这八条讯号线是用来连接外部周边设备作为它们的中断要求信号线。
/SP / /EN 主IC规划 及 缓冲致能
            此脚具二种功能 一是:若为缓冲型态时,此接脚是用来做为缓冲器的收发
                           二是:若不是缓冲型态,则是用来指定 8259 IC为主 (SP=1)
                                或仆 (SP=0)
CAS0~CAS2 串接线
            这三条是用来接多颗的 8259 IC,最多可以串接 5个喔! 每颗8259 IC可以处
            理八个中断请求,所以共可以使用 64 个中断请求。 在PC AT中有 16个中断
            请求。 如附图(三)

图(三) 8259 中断控制器方块图    ┌━┐
                                ┃  ┃
          ┌━━━━━━━━┐  ┃内┃  ┌━━━━━━━━━━━━━━━━━┐
D7-D0 <-->┃资料汇流排缓冲器┃┌┤  ├━┤  控    制    逻   辑   单   元   ┃
          └━━━━━━━━┘┃┃  ┃  └━━━━━━━━━━━━━━━━━┘
          ┌━━━━━━━━┐┃┃部┃    ┃         ┃         ┃
  /RD --->┤读/写 逻辑电路  ┃┃┃  ┃    ┃         ┃         ┃
  /WR --->┤                ├┤┃  └━━━━━━━━━━━━━━━━━━┐
  A0  --->┤                ┃┃┃汇                                      ┃
          └━━━┬━━━━┘┃┃  ┌━━━━━━━━━━━━━━━━━━┘
                  ┃          ┃┃  ┃    ┃         ┃         ┃
  /CS --->━━━━┘          ┃┃  ┃ ┌━━━┐   ┌━━┐   ┌━━━┬ IR0
                              ┃┃流┃ ┃中暂  ┃   ┃优  ┃   ┃中暂  ┃ ...
          ┌━━━━━━━━┐┃┃  ┃ ┃断存  ┃<->┃先  ┃<->┃断存  ┃ ...
 CAS0 --->┤串联缓冲器      ┃┃┃  ┃ ┃处器  ┃   ┃调器┃   ┃要器  ┃ ...
 CAS1 --->┤     /比较器    ├┘┃排┃ ┃理 ISR┃   ┃解  ┃   ┃求 IRR┃ ...
 CAS2 --->┤                ┃  ┃  ┃ └━━━┘   └━━┘   └━━━┴ IR7
          └━━━┬━━━━┘  ┃  ┃    ┃         ┃         ┃
/SP / /EN --->━━┘            ┃  ┃┌━━━━━━━━━━━━━━━━━┐
                                └━┘┃ 中  断  罩  盖  暂  存  器 (IMR) ┃
                                      └━━━━━━━━━━━━━━━━━┘

  中断请求暂存器 ( Interrupt Request Register 简称 IRR)
  中断罩盖暂存器 ( Interrupt Mask Register    简称 IMR)
  中断处理暂存器 ( Interrupt Service Register 简称 ISR)

-------------------------------------------------------------------------------
shenhd
驱动牛犊
驱动牛犊
  • 注册日期2001-09-09
  • 最后登录2005-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-03 11:41
请问问题:windows下驱动程序的中断是不是也是向Linux下一样通过中断线来 通知的阿?我看看了看
好象是系统映射的中断向量来通知的!是这样吗?他和linux下有什么不同吗?现在我遇到
了一个怪问题!我做好了一个视频压缩卡的驱动程序在pc机上跑一点问题都没有,但是一
到pc104(型号是p5e)上跑有一个槽上的视频卡中断是乱的!即本来是槽2上硬件产生的中
断,但是系统却被告知是槽2产生的中断。而这个pc104如果装windows98,所有的槽上的卡
都能正常工作!为什么了?难道windowns和linux的中断处理机制差别很大吗?望那位高人
 指点迷津!


peyoot
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2004-01-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-03 20:58
这不过是DOS时代的中断!
这种表格到处可以查
游客

返回顶部