博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对8259中断控制器
阅读量:6549 次
发布时间:2019-06-24

本文共 1662 字,大约阅读时间需要 5 分钟。


补充知识:对8259中断控制器的说明2

3. 8259A的编程

因为8259A是可编程的中断控制器,所以它的操作是用软件通过命令进行控制的。8259A的编程命令字有两类:一是初始化命令字(ICW),二是操作命令字(OCW)。相应的8259A的控制部分有一些可编程的位,它们分布在7个8位寄存器中。这些寄存器分成两组,一组用作存ICW,另一组存OCW。当计算机刚开机时,用初始化程序设定ICW,即由CPU按次序发送2~4个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。相反操作命令字(OCW)用于动态控制中断处理,是在需要改变或控制8259A操作时发送的。注意:当发出ICW或OCW时,CPU中断申请脚INTR应关闭(使用CLI关中断指令)。

1. ICW(ICW1、ICW2、ICW3、ICW4)初始化命令字编程格式

(1) ICW1(芯片控制初始化命令字)功能介绍

 

 

A0

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

1

LTIM

ADI

SNGL

IC4

 

16位机无效

标志位

电平触发

无效

弹片使用

需要ICW4

ICW1负责启动8259A和进行初始化工作:

1) 清除IMR

2) 把最低优先权分配给IR7

3) 把最高优先权分配给IR0

4) 将从设备标志ID置成7

5) 清除特殊屏蔽方式以及设置读IRR方式

(2) ICW2(中断类型号的设置)功能介绍:

 

 

A0

D7

D6

D5

D4

D3

D2

D1

D0

1

T7

T6

T5

T4

T3

0

0

0

 

中断类型号的高5位

16位机无效

ICW2负责规定中断类型号字节。编程时规定高5位T7---T3,低3位由IR的编码写入。

例8.3.1:输入时地址线A0=1,IR0---IR7的中断向量为08H---0FH,PC/XT机中的T7—T3==00001,当IR4申请时8259向CPU发出中断申请的类型号为00001100==0CH。

(3) ICW3(主/从片初始化命令字)功能介绍:

主片ICW3:

A0

D7

D6

D5

D4

D3

D2

D1

D0

1

S7

S6

S5

S4

S3

S2

S1

S0

主片ICW3负责记录与从片哪一个输入端与从片相连。

当主片输入端IRi上连接有从片的INT时,则Si=1;否则Si=0

从片ICW3:

A0

D7

D6

D5

D4

D3

D2

D1

D0

1

*

*

*

*

*

ID2

ID1

ID0

从片ICW3负责自己连接到主片的哪一端。

应用ICW3时的注意点:

一是什么时候用ICW3:即当ICW1中的SNGI位为0时,也就是工作于级联方式,才需要ICW3设置8259A的状态。

二是(主片接出)判断哪个引脚(IR7—IR0)有级联:当D7—DO的某位为1时则接有从片,为0时不接从片。

三是(从片接入)判断接入主片的哪个引脚:是通过对D2 D1 D0三位的组合来判断接入的引脚。

(4) ICW4(方式控制初始化命令字)功能介绍:

A0

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

SFNM

BUF

M/S

AEOI

uPM

ICW4负责缓冲器方式和中断结束方式的设置。

应用ICW4时的注意点:

一是什么时候写入ICW4:当ICW1的IC=1时,才使用ICW4。

二是命令字各位所代表的含义:

UPM:指定CPU类型:UPM=0时,工作于8080(8位机);UPM=1时,工作于8086(16位机)

AEOI:指定是否自动中断结束方式:1:自动中断结束方式;0:非自动中断结束方式。

BUF:8259A是否工作于缓冲方式:1:工作于缓冲方式、0:不工作于缓冲方式

SFNM:决定8259A在级联时是否工作于特殊全嵌套方式:1:工作于特殊全嵌套方式0:工作于一般全嵌套方式。

转载于:https://www.cnblogs.com/wanghj-dz/archive/2011/05/10/2042078.html

你可能感兴趣的文章
TensorFlow 架构与设计-编程模型【转】
查看>>
如何运行Struts2官网最新Demo?
查看>>
'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
查看>>
XDebug 教程
查看>>
js 去html 标签
查看>>
好久不见
查看>>
小tips:JS中的children和childNodes
查看>>
二叉树的遍历
查看>>
Oracle的FIXED_DATE参数
查看>>
NDK配置
查看>>
(转)@ContextConfiguration注解说明
查看>>
[置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)...
查看>>
Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用
查看>>
JQuery UI Widget Factory官方Demo
查看>>
Atlas揭秘 —— 绑定(Binding)
查看>>
install xcode_3.2.5_and_iOS_sdk_4.2 _final with mac lion10.7.3
查看>>
一起谈.NET技术,C# 委托,事件和Lambda表达式
查看>>
远离云计算风险三步走
查看>>
Silverlight 游戏开发小技巧:技能冷却效果2(Cool“.NET研究”down)2
查看>>
An Introduction to Asynchronous Programming and Twisted (2)
查看>>