190 likes | 470 Views
第 6 章(二) 并行接口技术. 并行接口基本概念 8255A 的内部结构 8255A 的控制字 8255A 的编程及应用. 并行接口概念. 并行接口 又简称为“ 并口 ”,是一种增强了的 双向并行传输接口 。目前,计算机中的并行接口主要作为 打印机端口 。所谓“并行”,是指 8 位数据同时通过并行线进行传送,这样数据传送速度大大提高 。. AB. DB. CB. 外 部 设 备. 数据 8. CPU. 并行接口. 握手信息. 存储器. 图 1 :并行接口电路位置示意图. 8255A 可编程并行接口芯片.
E N D
第6章(二) 并行接口技术 • 并行接口基本概念 • 8255A的内部结构 • 8255A的控制字 • 8255A的编程及应用
并行接口概念 并行接口又简称为“并口”,是一种增强了的双向并行传输接口。目前,计算机中的并行接口主要作为打印机端口 。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高 。
AB DB CB 外 部 设 备 数据8 CPU 并行接口 握手信息 存储器 图1:并行接口电路位置示意图
8255A可编程并行接口芯片 8255A是Intel公司生产的通用8位并行输入/输出 接口芯片,具有可编程性。 图2:8255A芯片图
8255A引脚介绍 D0-D7:数据线 PA0-PA7:A口8位数据输入输出 PB0-PB7:B口8位数据输入输出 PC0-PC7:C口8位数据输入输出 CS:片选信号,低电平有效 WR:写控制信号 RD:读控制信号 A0、A1:端口选择线 RESET:复位信号,高电平有效 8255A
8255A引脚介绍 A1、A0、读写控制RD、WR和片选信号CS组合后,进行寻址实现相应的操作,如下表所示:
PA0-PA7 A组 PC4-PC7 D0-D7 A口 C口 RD 8255A WR CS A0 A1 PC0-PC4 B组 PB0-PB7 C口 RESET B口 8255A功能示意图
8255A内部结构 与 外 设 端 接 口 信 号 与 CPU 端 接 口 信 号
8255A内部结构 • 1.数据总线缓冲器 • 缓冲器宽度为8位,直接挂在PC机8位数据总线D0-D7上。8255A编程时的各种命令字或被读取的状态字,也是通过其传送的。 2.读写控制逻辑 • CPU通过输入和输出指令,将地址信息和控制信息送至该部件,使其向A组和B组发出控制信号。 3.A组和B组控制部件 • A组控制部件:控制A口及C口的高4位 • B组控制部件:控制B口及C口的低4位 • 接受读写控制逻辑命令,从数据总线接收控制字。
8255A内部结构 • 4.数据端口A、B、C • A口、B口和C口均可作为输入输出口。 • C口除作为输入和输出口外,还可做控制口。C口高4位配合A口工作,低4位配合B口工作,分别用于输出控制信号和输入状态信号。 10
8255A的工作方式及控制字 • 8255A芯片有三种工作方式: • 方式0:基本输入/输出方式 • 方式1:选通输入/输出方式 • 方式2:选通双向输入/输出方式 • 可通过对芯片的编程来指定各端口的工作方式,即对8255A芯片内的控制寄存器装入不同的控制字,以决定其工作方式。 11
B组 方式选择 1: 方式1 0:方式0 B口 1: 输入,0:输出 C口低4位: 1: 输入,0:输出 A组 C口高4位: 1: 输入,0:输出 A口 1: 输入,0:输出 方式选择 00: 方式0 01:方式1 1×:方式2 8255A的工作方式控制字 1.工作方式控制字 格式如下图所示: 标志位 =1 12
8255A的工作方式控制字 例1.A组工作在方式1,且A口作为输入口,C口高4位作为输出口;B组工作在方式0,且B口指定为输出,C口低4位为输入;设8255A端口地址为4F0H-4F3H。 则:对应的方式控制字是什么? 写出初始化程序。 13
8255A的工作方式控制字 例1解答: 对应的方式控制字是 B1H。 初始化程序如下: MOV DX,4F3H MOV AL,0B1H OUT DX,AL 14
1=置位 0=复位 未用位(一般取0) 8255A的控制字 2.按位 置位/复位 控制字 当控制字寄存器D7=0时,控制字用来将C口某位置位或复位。 标志位 =0 15
8255A的工作方式控制字 • C口中的任一位均具有位操作功能,若要通过C口的某一位输出一个脉冲时,只要将相应的控制字送入控制字寄存器即可。 • 例2:将PC3产生一个脉冲信号。 程序如下: MOV AL,07H MOV DX,4F3H OUT DX,AL MOV AL,06H OUT DX,AL 16
8255A的应用 • 【例3】8255A作为并行打印机的接口。 要求:将8255A的A口连接一个并行打印机,工作在方式1,数据输出,采用查询方式将内存输出缓冲区BUFFER中的100H个字节数据送打印机输出,设计接口电路,编制打印驱动程序。 17
打印驱动程序编制如下: DATASEGMENTBUFFERDB100H DUP(?) DATAENDS CODESEGMENT ASSUMCS:CODE, DS:DATASTART: MOVAX, DATAMOVDS, AXMOVAL, 0A8H; A口方式1输出, PC4输入MOVDX, 0FFE3H; 控制口地址OUTDX, AL; 控制字写入控制口MOVCX, 100H; 传送字节数送CX寄存器MOVSI, OFFSET BUFFER ; 数据缓冲区首地址送SI寄存器L1:MOVDX, 0FFE2H; C口地址INAL, DX; 读C口内容, 查询BUSY信号ANDAL, 10H; 保留PC4状态, 判断BUSY=1?JNZL1; BUSY=1, 打印机处于忙状态, 应该继续查询MOVAL, [SI]; BUSY=0, 打印机处于空闲状态, 可以输出数据MOVDX, 0FFE0H; A口地址OUTDX, AL; 输出数据INCSI; 修改数据缓冲区地址LOOPL1; 数据未传送完毕, 继续传送MOVAX,; 数据传送完毕, 返回DOSINT21H CODEENDSENDSTART
常见的I/O接口 • Intel 8259A 中断控制器 • Intel 8237A DMA控制器 • Intel 8255A 并行控制器 • Intel 8253A/8254 计时/定数器