IO设计基本理论
1. IO接口和IO端口
IO端口是IO接口内可由CPU进行读写操作的各种寄存器。可分为数据端口、状态端口和控制端口。
2. IO端口的编址方式
统一编址:IO端口与存储器共享一个地址空间;
独立编址:IO端口与存储器有相互独立的地址空间。
3. IO输入输出的基本方式
无条件传送:
默认IO设备永远处于准备好状态,无需CPU读取其状态;
只需要设计数据端口,无需设计状态端口和控制端口;
程序查询法:
程序中不断查询IO口状态,当IO设备准备好之后再进行操作;
优点:实现威廉希尔官方网站
简单;缺点:程序效率低。
IO中断法:
IO设备准备好之后向CPU提出中断,CPU在中断相应程序中对IO进行操作。
最优的方法。
MDA法:
利用外部硬件操控IO设备。
定时/计数器8253
1. 基本结构
内含三个独立的计数器:计数器0、计数器1和计数器2;
每个计数器可以通过其方式控制寄存器进行单独控制;
总共占用4个端口地址,每个计数器各占用一个端口地址,三个控制字共用一个端口地址;
每个计数器内部有四个寄存器:控制字、初值寄存器、计数寄存器、输出锁存器;
控制字为一个字节,高2位控制选择计数器,次2位控制读写规则,再次3位控制工作方式,最后1位控制数据类型:
当RL1
RL2为00时,为计数寄存器锁存命令,将此时CE的值锁存到OL中,接下来再读相应计数器端口时可以读走锁存在OL中的值,读完之后自动解锁;
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组中,作为控制辅助;
总共占用四个端口地址:三个端口寄存器和一个控制寄存器。
2. 控制字管理
当A1A0为11时,表示访问控制寄存器;
可以通过控制字控制A组、B组工作方式,端口A、B方向,端口C高四位、低四位方向,端口C各位的值。
控制字各位的含义:
如果控制字最高位写1,则是在选择工作方式、如果写0,则是在对PC口进行位管理;
3. 工作方式管理
方式0:基本的输入/输出;
方式1:有联络信号的输入/输出(PA、PB)。
IO设计基本理论
1. IO接口和IO端口
IO端口是IO接口内可由CPU进行读写操作的各种寄存器。可分为数据端口、状态端口和控制端口。
2. IO端口的编址方式
统一编址:IO端口与存储器共享一个地址空间;
独立编址:IO端口与存储器有相互独立的地址空间。
3. IO输入输出的基本方式
无条件传送:
默认IO设备永远处于准备好状态,无需CPU读取其状态;
只需要设计数据端口,无需设计状态端口和控制端口;
程序查询法:
程序中不断查询IO口状态,当IO设备准备好之后再进行操作;
优点:实现威廉希尔官方网站
简单;缺点:程序效率低。
IO中断法:
IO设备准备好之后向CPU提出中断,CPU在中断相应程序中对IO进行操作。
最优的方法。
MDA法:
利用外部硬件操控IO设备。
定时/计数器8253
1. 基本结构
内含三个独立的计数器:计数器0、计数器1和计数器2;
每个计数器可以通过其方式控制寄存器进行单独控制;
总共占用4个端口地址,每个计数器各占用一个端口地址,三个控制字共用一个端口地址;
每个计数器内部有四个寄存器:控制字、初值寄存器、计数寄存器、输出锁存器;
控制字为一个字节,高2位控制选择计数器,次2位控制读写规则,再次3位控制工作方式,最后1位控制数据类型:
当RL1
RL2为00时,为计数寄存器锁存命令,将此时CE的值锁存到OL中,接下来再读相应计数器端口时可以读走锁存在OL中的值,读完之后自动解锁;
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组中,作为控制辅助;
总共占用四个端口地址:三个端口寄存器和一个控制寄存器。
2. 控制字管理
当A1A0为11时,表示访问控制寄存器;
可以通过控制字控制A组、B组工作方式,端口A、B方向,端口C高四位、低四位方向,端口C各位的值。
控制字各位的含义:
如果控制字最高位写1,则是在选择工作方式、如果写0,则是在对PC口进行位管理;
3. 工作方式管理
方式0:基本的输入/输出;
方式1:有联络信号的输入/输出(PA、PB)。
举报