8086CPU I/O系统组织 8253芯片 8255A芯片

IO设计基本理论

1. IO接口和IO端口

  • IO端口是IO接口内可由CPU进行读写操作的各种寄存器。可分为数据端口、状态端口和控制端口。

8086CPU I/O系统组织 8253芯片 8255A芯片

2. IO端口的编址方式

  • 统一编址:IO端口与存储器共享一个地址空间;

  • 独立编址:IO端口与存储器有相互独立的地址空间。

3. IO输入输出的基本方式

无条件传送:

  • 默认IO设备永远处于准备好状态,无需CPU读取其状态;

  • 只需要设计数据端口,无需设计状态端口和控制端口;

程序查询法:

  • 程序中不断查询IO口状态,当IO设备准备好之后再进行操作;

  • 优点:实现电路简单;缺点:程序效率低。

IO中断法:

  • IO设备准备好之后向CPU提出中断,CPU在中断相应程序中对IO进行操作。

  • 最优的方法。

MDA法:

  • 利用外部硬件操控IO设备。

定时/计数器8253

1. 基本结构

  • 内含三个独立的计数器:计数器0、计数器1和计数器2;

  • 每个计数器可以通过其方式控制寄存器进行单独控制;

  • 总共占用4个端口地址,每个计数器各占用一个端口地址,三个控制字共用一个端口地址;

8086CPU I/O系统组织 8253芯片 8255A芯片

  • 每个计数器内部有四个寄存器:控制字、初值寄存器、计数寄存器、输出锁存器;

8086CPU I/O系统组织 8253芯片 8255A芯片

  • 控制字为一个字节,高2位控制选择计数器,次2位控制读写规则,再次3位控制工作方式,最后1位控制数据类型:

8086CPU I/O系统组织 8253芯片 8255A芯片

  • 当RL1
    RL2为00时,为计数寄存器锁存命令,将此时CE的值锁存到OL中,接下来再读相应计数器端口时可以读走锁存在OL中的值,读完之后自动解锁;

8086CPU I/O系统组织 8253芯片 8255A芯片

2. 工作方式分析:

(1)000 计数达到终值而中断:

  • 先向8253写入方式控制字,再写入时常数,此时OUT变低电平;

  • 写入时常数之后,下一个CLK脉冲CR内容被置入CE中;

  • 在后续CLK脉冲中,进行CE减一计数,当计数到0时OUT输出一个高电平(可用作中断请求);

  • GATE控制计数,当GATE=1时允许计数,当GATE=0时暂停计数。

(2)001 单脉冲形成:

  • 先向8253写入控制字,再写入时常数,此时OUT为高电平;

  • 当GATE端检测到一个上升沿的时候,触发单脉冲形成,OUT变低,且CR被置入CE中;

  • 在后续CLK脉冲中,进行CE减一计数,当计数到0时OUT变高电平;

  • 等待下一个GATE信号到,重复上述操作。

(3)*10 分频器:

  • 先向8253写入控制字,再写入时常数,此时OUT为高电平;

  • 写入时常数之后,下一个CLK脉冲CR内容被置入CE中,在后续CLK脉冲中,进行CE减一计数;

  • 当CE减到01h时,在OUT端输出一个负脉冲,并重新将CR置入CE中开始写一个循环;

  • 正常情况下,时常数为N,则输出信号为时钟的N分频;

  • GATE控制计数,当GATE=1时允许计数,当GATE=0时暂停计数。

(4)*11 方波产生器:

  • 先向8253写入控制字,再写入时常数,此时OUT为高电平;

  • 若置入的为奇数,将在CR置入CE时将其-1变成偶数;

  • 时常数置入完毕的下一个CLK脉冲期间,CR置入CL并开始-2计数;当CE计数到0时OUT变低,同时再次将CR置入CE中进行-2计数,当CE为0时OUT再变高,从而生成方波;

  • 正常情况下,时常数为N,则输出信号为时钟的N分频方波信号;

  • GATE控制计数,当GATE=1时允许计数,当GATE=0时暂停计数。

并行接口芯片8255A

1. 基本结构和概念

  • 计算机接口的分类

并行接口:数据在多根线上同时传送;

串行接口:数据按位顺序在一根线上分时传送。

  • 8255A的端口:三个数据端口一个控制端口

有三个对应的端口数据寄存器:PA0-PA7,PB0-PB7,PC0-PC7;

端口C又可以分为高四位和第四位,分别位于A组和B组中,作为控制辅助;

总共占用四个端口地址:三个端口寄存器和一个控制寄存器。

8086CPU I/O系统组织 8253芯片 8255A芯片

2. 控制字管理

  • 当A1A0为11时,表示访问控制寄存器;

  • 可以通过控制字控制A组、B组工作方式,端口A、B方向,端口C高四位、低四位方向,端口C各位的值。

  • 控制字各位的含义:

8086CPU I/O系统组织 8253芯片 8255A芯片

  • 如果控制字最高位写1,则是在选择工作方式、如果写0,则是在对PC口进行位管理;

8086CPU I/O系统组织 8253芯片 8255A芯片

3. 工作方式管理

  • 方式0:基本的输入/输出;

  • 方式1:有联络信号的输入/输出(PA、PB):

方式1输入:

8086CPU I/O系统组织 8253芯片 8255A芯片

方式1输出:

8086CPU I/O系统组织 8253芯片 8255A芯片