八章 并行通信和8255A.docx
《八章 并行通信和8255A.docx》由会员分享,可在线阅读,更多相关《八章 并行通信和8255A.docx(8页珍藏版)》请在冰豆网上搜索。
八章并行通信和8255A
第八章并行通信和8255A
第一节并行通信基础知识
一、并行通信和并行接口
所谓并行通信是指数据通过多条线路同时进行传送;并行接口是实现CPU与外设之间并行通讯的接口。
并行通信速度快,适宜短距离传送。
二、并行接口的内部组成
由控制寄存器、状态寄存器、输入缓冲数据寄存器、输出锁存数据寄存器
三、并行接口输入、输出数据的过程
1、输入过程
外设数据准备好----数据送入接口,发出“STB”信号---状态位置“1”,发出中断请求信号----CPU读取数据,状态位置“0”。
2、输出过程
缓冲器为空----状态位置“1”,发出中断请求信号----CPU向端口送数据,状态位置“0”。
----数据送入外设,发出READY
第二节并行接口芯片8255A
一、内部基本结构
1、内部有三个数据端口:
A口、B口、C口,用以输入、输出数据,其中C口作用较为特殊,可以作为控制口。
2、A口控制部件:
控制A口和C口高四位的读写
3、B口控制部件:
控制B口和C口低四位的读写。
4、读写控制逻辑:
用以接收系统的控制信号,负责对A、B、C口进行控制管理。
5、数据总线缓冲器:
用以暂时存放CPU与外设之间传送的信息。
(状态、控制、数据)
二、8255A的引脚信号
共有40个引脚,分别为:
1、与外设连接的引脚信号:
即A、B、C三个端口。
PA0—PA7:
作为A口与外设间的传递数据通道
PB0—PB7:
作为B口与外设间的传递数据通道
PC0—PC7:
可以作为C口与外设间的传递数据通道,也可以作为A口或B口的控制、联络信号
2、与CPU连接的引脚信号:
(1)RESET:
有效时8255A内部寄存器清零,A、B、C口为输入状态
(2)CS:
片选信号,地址译码器产生(A15—A2)
(3)A0A1:
端口选择信号,从00到11分别选中A、B、C、控制端口(只能写入,不能读出)。
三、8255A的控制字
有两个控制字,分别是方式控制字和C口按位置、复位控制字。
1、方式控制字
D7
D6
D5
D4
D3
D2
D1
D0
1
A组电路控制B组电路控制
D7=1,该控制字标志。
D3~D6,A组电路控制。
其中,D6D5用以A口的方式选择,00到10对应A口的方式0到方式2,11无效状态;D4用以决定A口工作于输入或输出状态,1入0出;D3用以决定C口高四位工作于输入或输出状态,1入0出。
D2~D0,B组电路控制。
其中,D2用以B口的方式选择,01对应B口的方式0到方式1;D1用以决定B口工作于输入或输出状态,1入0出;D0用以决定C口低四位工作于输入或输出状态,1入0出。
该控制字从控制端口写入。
例:
如控制字82H,说明设置情况。
2、C口按位置、复位控制字
用以设置C口某位输出高电平还是低电平
D7
D6
D5
D4
D3
D2
D1
D0
0
1/0
无效位C口位的选择置/复位
D7=0,该控制字标志。
D4~D6,无效位。
D3~D1,D3~D1的顺序排列组合用以表明选择C口的哪一个二进制位。
D0,决定对选中的二进制位是置位还是复位操作,“1”,置位;“0”,复位。
例:
将C口的PC2置1,写出控制字。
注意:
●当需要用C口的某位作为外设控制、联络信号时,则应该设置该控制字。
●该控制字一次只能对一位二进制位设置。
●必须从控制端口写入。
四、8255A的工作方式
8255A的工作方式有0、1、2三种,但并不是每一个端口都有这三种工作方式。
1、方式0
是一种基本的输入输出方式,A、B、C三个口均可以工作在该种方式。
(1)特点
工作于此种方式端口无固定应答线,与其他的端口无必然联系,可作为独立的数据输入输出端口。
适用于无条件传送方式和查询/条件传送方式。
●无条件方式:
CPU和I/O间可以同步,可以设置某端口工作于方式0
●查询方式:
A、B口可以作为独立数据端口,C口作为联络控制信号,此时C口高四位与低四位的输入输出状态相反。
2、方式1
选通的输入输出方式,A口和B口拥有方式1
(1)特点
工作在方式1的A口和B口,8255A为它指定C口的某些位作为控制、状态信号
(2)该方式输入端口的一些重要联络线
(A)STB:
选通信号,输入信号,低电平有效,以表示数据表示好
(B)IBF:
输出信号,高电平有效,表示输入缓冲器满
(C)INTR:
输出信号,高电平有效,接口芯片数据准备好,CPU准备读取
(D)INTE:
中断允许标志,为1时允许中断
注意:
IBF、STB、INTE均有效才能发出INTR
STB时,IBF有效,RD时,IBF失效
A口输入
PC3—INTRA
PC4—STBA
PC5—IBFA
B口输入
PC0—INTRB
PC1—IBFA
PC2—STBA
时序
注意以上几根联络线的情况
(3)该方式输出端口的一些重要联络线
(A)OBF:
输出信号,低电平有效,表示输出数据准备好
(B)ACK:
输出信号,低电平有效,以示外设接收到数据
(C)INTR:
输出信号,高电平有效,表示8255A端口准备好
(D)INTE:
中断允许标志,为1时允许中断
注意:
ACK、OBF、INTE均有效才能发出INTR
ACK时,OBF失效,WR时,IBF有效
A口输出
PC5—INTRA
PC6—ACKA
PC7—OBFA
B口输入
PC0—INTRB
PC1—OBFA
PC2—ACKA
时序
注意以上几根联络线的情况
(4)方式1适用场合
查询数据传送方式(测试C1/C5/C7)
中断数据传送方式(设置INTE,1至C2/C6/C8)
3、方式2
双向输入输出方式,仅有A口拥有方式2
(1)特点
双向数据传送,8255A为A口提供的控制状态为:
C3、C4、C5、C6、C7
(2)该方式A口的一些重要联络线
(A)OBF--PC7
(B)IBF—PC5
(C)STB—PC4
(D)ACK—PC6
(E)INTR—PC3
(F)INTE1—输入中断允许标志,C4设置
(G)INTE2--输出中断允许标志,C6设置
注意:
ACK、OBF、INTE2均有效才能发出INTR(输出)
STB、IBF、INTE1均有效才能发出INTR(输入)
(3)方式2适用场合
具有双向数据输入、输出的外设
(A)查询数据传送方式(测试C5/C7,5入7出)
(B)中断数据传送方式(设置INTE,1至INTE1/INTE2)
(4)方式2时其他端口的情况
(A)其他端口不用
1
1
X
X
X
X
X
X
(B)B口在方式0
1
1
X
X
X
0
1/0
1/0
(C)B口在方式1
1
1
X
X
X
1
1/0
X
五、8255A的应用
1、查询方式
初始化—读入8255A状态位(C1/C5/C7)--Ci为0时继续读状态位,为1A口或B口读写数据---处理完则结束,未完再读状态位
2、中断方式
主程序:
初始化—设置INTE为1---STI—等待
中断服务程序:
保护现场—设置INTE为0—0至C2/C4/C6—STI—与8255A交换数据—CLI—恢复现场—IRET