导图社区 7.常用接口技术
这是一篇关于7.常用接口技术的思维导图
编辑于2022-02-27 17:18:49常用接口技术
8253可编程计数器
8253的结构与引脚
数据总线缓冲器
数据总线缓冲器是三态,双向,8位的缓冲器,作为系统总线和8253的接口,缓冲器根据CPU的输入和输出指令实现数据传送
CPU向8253写入的控制字经过数据总线缓冲器和8253的内部数据总线传送给控制字寄存器进行寄存
CPU向某计数器写入计数初值送入指定的计数器
CPU读取某个计数器的现行值时,该现行值经过内部总线和缓冲器传送到系统的数据总线上,被CPU读取
读/写逻辑
CS片选信号,低电平有效
RD读信号,低电平有效
WR写信号,低电平有效
A1A0地址信号
00 计数器0
01 计数器1
10 计数器2
11 控制寄存器
控制寄存器
寄存数据总线缓冲器送来的控制字,控制寄存器有3个,都是8位寄存器,分别对应3个计数器,控制字的最高2位决定送入哪个计数器的控制寄存器寄存,各自的控制字决定各自的工作方式和所执行的操作
计数器
计数器0与计数器1和计数器2是三个独立的计数器,它们的内部结构相同,都具有计数器的初始值,减一计数器,输出寄存器
计数初值寄存器:接收CPU写入的计数器的初始值
减一计数器:在ClK脉冲(GATE允许)作用下进行递减计数,直至计数值为0,输出OUT信号
输出寄存器:输出寄存器的值随着减一计数器变化,仅当写入锁存控制字时,它锁存减一计数器的当前计数值,CPU读取后,解除锁存状态。
CLK:时钟脉冲
GATE:允许标志
OUT:计数器输出信号
8253的控制字
D7D6
计数器选择
00 :选计数器0
01 :选计数器1
10 : 选计数器2
11 :无效
D5D4
计数初值长度选择
00 :计数器的数据锁存于缓冲器
01 : 只读 /写低8位,高8位默认为0
10 :只读/写高8位,低8位默认为0
11 :先读/写低8位,再读/写高8位
D3D2D1
工作方式选择
000 :方式0
001 :方式1
X10 :方式2
X11 :方式3
100 :方式4
101 :方式5
D0
数制选择
0 :二进制
1 :BCD码
读出计数值
在计数过程中,当8253收到控制字D5D4=00时,计数器的当前值被锁存到16位的输出锁存器中。CPU读取计数值的方法:先读写低8位,在读写高8位
计数范围
二进制的计数范围0~65536,0为最大计数初值,代表65536
十进制的计数范围0~10000,0为最大计数初值,代表10000,十进制的计数初值以BCD码的形式写入计数器
8253的工作方式
方式0 (计数结束中断)___----
软件启动:GATE为高电平
不自动重复计数
OUT初始状态为低电平,计数结束后OUT端输出高电平
方式1(硬件触发单稳负脉冲)out端输出 N*clk 个负脉冲
硬件启动: GATE端由低到高触发,在下一个CLK脉冲开始计数
不自动重复工作方式,可重复触发(计数结束后,GATE端由低到高跳变,开始新一轮计数)
OUT初始状态为高电平,计数开始,OUT端由高变低,计数结束OUT端输出高电平,OUT端的负脉冲宽度 = 计数初值N * Tclk
方式2(分频器)
可以软件启动,也可以硬件启动
软件启动:在写入控制字和计数初值期间GATE一直为高电平,则在下一个CLK开始计数
硬件启动:若写入计数初值时GATE为低电平,则要等到GATE由低到高时才启动
计数器自动重复工作
OUT端初始状态为高电平,计数结束,OUT端由高变低,输出一个宽度为Tclk的负脉冲信号,其脉冲周期为 To = N * Tclk,脉冲频率: fo = Fc/N
方式3(方波发生器)
可以软件启动,也可以硬件启动
软件启动:写入控制字后,如果GATE为高,写入初值后开始减一计数
硬件启动:写入控制字后,等待GATE由低到高的跳变,计数器开始工作
计数器自动重复工作
OUT端初始状态为高电平,当计数值减到N/2时,OUT端输出变为低电平,直到计数值为0,自动重新装入初值,OUT变为高电平,计数器自动重复工作,OUT端输出对称方波
方式4(软件触发选通) out端输出一个负脉冲
软件启动:GATE为高电平,写入控制字,计数器装入初值,启动计数,在计数过程中若GATE为低,则停止计数
不自动重复计数方式
OUT端初始状态为高电平,计数结束后,OUT端输出宽度为Tclk的负脉冲
方式5(硬件触发选通)out端输出一个负脉冲
硬件启动:写入控制字,计数初值,GATE由低到高跳变,计数器开始计数(在计数过程中,GATE产生由低到高跳变,则重新装入计数初值,开始计数)
不自动重复的工作方式
OUT端初始状态为高电平,计数结束后,OUT端输出一个脉冲宽度为Tclk的负脉冲信号
8253的初始化编程
进行控制字的写入,和写入计数初值
控制字写入8253的控制寄存器,3个控制字可以连续写入控制寄存器
计数初值应写入相应的计数器中,计数初值的写法要符合控制字的要求
8255A可编程并行通信接口芯片
8255A的内部结构
数据总线缓冲器
是一个三态双向8位缓冲器,它是8255与系统数据总线的接口。输入输出的数据以及CPU发出的命令控制字和外设的状态信息,都通过数据总线缓冲器传送
读/写控制逻辑:负责控制8255A与CPU之间的数据传送过程
A组控制
控制A端口与C端口的上半部分(PC7~PC4)
根据CPU的命令字控制8255工作方式的电路
B组控制
控制B端口与C端口的下半部分(PC3~PC0)
根据CPU的命令字控制8255工作方式的电路
端口A,B,C
端口A,B,C都是8位端口,可以选择作为输入或输出,可以将端口C的高四位和低四位分开使用,分别作为输入或输出
当端口A和端口B作为选通输入或输出的数据端口时,端口C的指定位与端口A和端口配合使用,用作控制信号或状态信号
A0,A1
芯片内部寄存器地址选择信号
A1A0 = 00 A口地址,A1A0 = 01 B口地址,A1A0 = 10 C口地址 A1A0 = 11 控制端口地址
RD,WR
读,写信号,低电平有效
CS
芯片选择信号,输入,低电平有效
RESET
复位信号,高电平有效,当RESET有效时,将所有内部寄存器,包括控制寄存器清零,把A,B,C三个端口都设置为输入方式,对应的引脚为高阻态
8255A的工作方式
8255A在使用之前要先写入一个工作方式控制字,指定A,B,C三个端口各自的工作方式
方式0(基本输入输出方式)
方式0最适用于无条件传送方式,也可以用于查询工作方式,不能工作在中断方式
三个端口的均可工作在方式0
A口,B口,C口的高四位,C口的低四位,可分别定义为输入和输出
C口可按位进行置位和复位
方式1(选通输入输出方式)
方式1适用于程序查询和中断控制方式,不能工作在无条件传送方式
A口,B口可以工作在方式1
选通输入输出方式:A口,B口作为数据的输入口或输出口,C口的某些位来提供控制信号
方式1选通输出
A口,B口都可以选通输出数据,C口的6条线作为选通控制信号,PC3,PC6,PC7配合A口,PC0,PC1,PC2配合B口
ACK:外设收到数据的应答信号
OBF:输出缓冲器满信号
INTR:中断请求信号
INTE:中断允许状态
查询方式工作过程:CPU先查询PC7,查看输出缓冲器是否满,如果未满,则发送数据,如果已满,则继续查询等待
中断方式工作过程:置位PC6,使INTE为1允许中断请求,如果外设收到数据,发出应答信号,OBF将被置为1,8255A将发出中断请求,CPU响应中断,向8255A发送数据,缓冲器满OBF将会为低电平,外设再次接收数据,并发出应答信号,OBF被置1,8255A再次发出中断请求
查询方式工作过程:CPU先查询PC1,查看输出缓冲器是否满,如果未满,则发送数据,如果已满,则继续查询等待
中断方式工作过程:置位PC2,使INTE为1允许中断请求,如果外设收到数据,发出应答信号,OBF将被置为1,8255A将发出中断请求,CPU响应中断,向8255A发送数据,缓冲器满OBF将会为低电平,外设再次接收数据,并发出应答信号,OBF被置1,8255A再次发出中断请求
方式1选通输入
A口,B口都可以选通输入数据,C口的6条线作为选通控制信号,PC3,PC4,PC5配合A口,PC0,PC1,PC2配合B口
STB:输入选通信号
IBF:数据输入缓冲器满信号
INTR:中断请求信号
INTE:中断允许状态位
查询工作过程:CPU查询PC5,如果数据输入缓冲器满,则取走数据,否则将继续等待查询
中断工作过程:CPU置位PC4,允许中断,外部设备输入数据,发出输入选通信号,当数据输入缓冲器满,则向CPU发出中断请求,CPU响应中断,取走数据,数据输入缓冲器满信号消失,外设继续发送数据,当数据输入缓冲器满,再次请求中断
查询工作过程:CPU查询PC1,如果数据输入缓冲器满,则取走数据,否则将继续等待查询
中断工作过程:CPU置位PC2,允许中断,外部设备输入数据,发出输入选通信号,当数据输入缓冲器满,则向CPU发出中断请求,CPU响应中断,取走数据,数据输入缓冲器满信号消失,外设继续发送数据,当数据输入缓冲器满,再次请求中断
方式2(双向输入输出方式)
方式2适用于程序查询和中断控制方式,不能工作在无条件传送方式
只有A口可以工作在方式2
A口的输入输出均具有数据锁存能力,数据的输入输出均可以引起中断,在此方式下,C端口的PC3~PC6作为应答控制信号和中断请求线配合A口
8255A的编程
8255A的内部有两种控制字工作方式控制字和C端口按位置位/复位控制字
工作方式控制字:用于设置各个端口的工作方式,规定接口功能
C端口按位置位/复位控制字:专门用于对C端口的任何一位实现置"1"或置"0"的控制字
工作方式控制字
8255A的方式控制字通过8255A的控制口写入到8255A的控制寄存器中
D7位:方式控制字的特征位,D7=1,表示向作方式控制字写入数据,D7=0,表示向C端控制字写入数据
D6D5:选择A口工作方式
0 0 :方式0
0 1 :方式1
1 0 :方式2
D4 : 选择A口输入/输出
0 :输出
1 :输入
D3:PC7~PC4输入/输出
0:输出
1:输入
D2:B口工作方式
0:方式0
1:方式1
D1:B口输入/输出
0:输出
1:输入
D0:PC3~PC0输入/输出
0:输出
1:输入
C端口按位置位/复位控制字
C口的按位置位/复位控制字必须跟在方式选择控制字之后写入控制字寄存器,即使仅使用该功能,也应先选送一个方式控制字,方式控制字只需要写入一次,之后就可以多次使用C口按位置位/复位控制字对C口的某些位进行置1或清0
D7:特征位,D7 = 0
D6D5D4:未定义,为 000
D3D2D1:C口的位选择
D0: D0=0,即对C的某一位进行清0,D0=1,即对C的某一位进行置1