📜  8259 PIC的命令字

📅  最后修改于: 2022-05-13 01:57:01.353000             🧑  作者: Mango

8259 PIC的命令字

8259的命令字分为两部分:

  • 初始化命令字(ICW)
  • 操作指令字(OCW)

初始化命令字(ICW):

  • ICW 在 8259 的初始化期间即在其开始运行之前给出。
  • ICW 1和 ICW 2命令对于初始化是强制性的。
  • ICW 3命令在级联配置期间给出。
  • 如果需要 ICW 4 ,则在 ICW 1中指定。
  • 给出 ICW 命令的顺序是固定的,即首先给出 ICW 1 ,然后给出 ICW 2 ,然后给出 ICW 3
  • 任何 ICW 命令都不能重复,但如果需要,可以重复整个初始化过程。

操作指令字(OCW):

  • OCW 在 8259 运行期间给出,即微处理器开始使用 8259。
  • OCW 命令对于 8259 不是强制性的。
  • 给出 OCW 命令的顺序是不固定的。
  • OCW 命令可以重复。

8259的初始化顺序:

ICW 1命令:

  • 当 A 0 = 0 且 D 4 = 1 时,控制字被识别为 ICW 1
  • 它具有边沿和电平触发模式、单/级联模式、调用地址间隔以及是否需要 ICW4 的控制位。
  • 地址线 A 7到 A 5用于中断向量地址。

当加载 ICW 1时,执行的初始化是:

  • 边沿检测电路复位,因为默认情况下,8259 中断是边沿触发的。
  • 中断屏蔽寄存器被清除。
  • IR7 分配给优先级 7。
  • 从模式地址分配为 7。
  • 当 D 0 = 0 时,这意味着不需要 IC 4命令。因此,IC4 中使用的功能被复位。
  • 特殊屏蔽模式被复位,状态读取被分配给 IRR。

ICW 2命令:

  • 当 A 0 = 1 时,控制字被识别为 ICW 2
  • 它存储有关中断向量地址的信息。
  • 在基于 8085 的系统中,A15 到 A 8位控制字用于中断向量地址。
  • 在基于 8086 的系统中,插入 T 6到 T 3位而不是 A 15到 A 8并且 A 10到 A 8用于选择中断级别,即 IR 0为 000,IR 7为 111。

通过 ICW1 和 ICW2 命令字初始化 8259

ICW 3
当系统中存在多个 8259 时使用 ICW 3命令字,即当 ICW 1中的 SNGL 位为 0 时,它将加载 8 位从寄存器。

ICW3

ICW 4

  • 当 AEOI = 1 时,选择自动结束中断模式。
  • 当 SFMN = 1 时,则选择特殊的完全嵌套模式。
  • 当 BUF = 0 时,使用非缓冲模式(即 M/S 不关心),当 M/S = 1 时,则 8259 为主机,否则为从机。
  • 当 µPM = 1 时,执行 8086 次操作,否则执行 8085 次操作。

ICW4

操作命令字(OCW):

开放式武器1 –
用于设置和复位 IMR(中断屏蔽寄存器)中的屏蔽位。 M 7 – M 0描述 8 个掩码位

开放式武器2
用于选择8259的工作模式。这里L 2到L 0用于描述需要执行动作的中断级别。

详细操作如下图所示。

开放式武器3

  • 当 ESMM(启用特殊屏蔽模式)位被设置时,SMM 位是无关紧要的。如果 SMM = 1 且 ESMM = 1,则 8259 将进入特殊掩码模式。
  • 如果 ESMM = 1 且 SMM = 0,则 8259 将返回正常掩码模式。
  • RR 和 RIS 用于给出读寄存器命令。
  • P = 1 用于轮询命令。