并行接口
- 并行数据是指接口电路与外部设备之间的数据线宽度而言的,并行接口是一次CPU读写操作可传输多个二进制位的接口。
- 并行接口电路由并行接口芯片,逻辑控制和地址译码器等组成。
- 实现外设数据与CPU数据总线数据的双向传送。
并行接口特点
- 相对于串行接口:速度快;信号线数目多, 成本高;传输距离短(因为线间相互干扰大)。
- 并行接口需要设置握手信号线,以便进行数据传输控制。
- 并行传送数据不要求固定的格式,这与串行传送的数据格式的要求不同。
外部特性
- 8255是通用的并行接口芯片,通过编程实现多种工作方式,满足不同应用需求。
- PA0~PA7:端口A的输入/输出线
- PB0~PB7:端口B的输入/输出线
- PC0~PC7:端口C的输入/输出线
- 数据总线D0-D7,片选线CS#,读/写RD#、WR#,地址线A1、A0
- RESET: 复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式
内部结构
通过图片说明可以很清晰地看见8255的内部结构。
寄存器结构
8255A端口分配::8255A具有4个 端口地址,A、B口可以作为数据输入输出端口使用;C口除了做数据端口外,还可以用作状态口,用作按位控制;方式设置和C口用作按位控制。下表示8255的功能分配:
读 | 写 | |
---|---|---|
基址+0 | 端口A数据 | 端口A数据 |
基址+1 | 端口B数据 | 端口B数据 |
基址+2 | 端口C数据 / 状态字 | 端口C数据 |
基址+3 | 控制字 / 置位复位命令字 |
写入到[基地址+3]的控制寄存器——8255A控制字,按照最高位(D2)的不同有两种格式。
(1)D7=1
例:将8255 PA口设定为0方式、输入口;PB口指定为0方式、输出口;PC口的高4位是输出口,PC口的低4位是输入口,则工作方式字是=91H,初始化的程序段为:
MOV DX, 203H ;8255A命令口地址
MOV AL, 91H ;1001 0001=91
OUT DX, AL
(2)D7=0(画×的地方默认为0)
指定PC口的某一位(某一个引脚)输出高电平或低电平对应的是置位或复位。
工作方式
方式0——简单I/O方式
- 基本输入/输出工作方式。没有专用的联络信号,采用查询方式或无条件方式传送数据;需要CPU与外设联络时,可由用户指定C口中的某些线完成联络功能。
- 三个8位并行端口PA、PB和PC (PC口可以作为两个4位并行口PC0 ~ 3和PC4 ~ 7),都能独立使用,指定作为输入或者输出口用。
- 方式0是单向I/O数据传输方式,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时即作输入又作输出。
方式1——选通方式
- 1方式是一种选通输入/输出方式(应答方式)。有专用的联络信号线用于I/O设备和CPU进行联络,这种方式通常用于中断传送。
- PA和PB为数据口,都可以工作在方式1,PC口配合工作
- PC口的引脚分配作专用和固定的联络信号引脚,用户不能再指定其他用途
以A组为例进行图片讲解:
方式2——双向选通方式 - 2方式是一种双向选通输入输出方式,将A口作为双向输入/输出口,C口的5根线(PC3-PC7)作为专用应答线。
- A口为双向选通输入/输出或叫双向应答式输入/输出。初始化可指定PA口即作输入口又作输出口。
- 设置专用的联络信号线和中断请求信号线,所以,在2方式下可采用中断方式和查询方式与CPU交换数据。
编程命令
(1)D7=0为C端口置位/复位命令
例:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。将命令字写入命令寄存器。
PC2引脚输出高电平,其程序段为:
MOV DX,203H ;8255A命令口地址
MOV AL,05H ;使PC2=1的命令字
OUT DX,AL ;送到命令口
如果要使引脚PC2输出低电位,则程序段为:
MOV DX,203H ;8255A命令口地址
MOV AL,04H ;使PC2=0 的命令字
OUT DX,AL ;送到命令口
(2)方式字和按位置位/复位编程命令
- 方式字是对8255A的3个端口的工作方式及功能进行指定(即初始化),初始化工作要在使用8255A之前进行。
- 按位置位/复位命令只是对PC口的输出进行控制,使用它不破坏已经建立的3种工作方式,而是对PC口实现动态控制的一种支持,它可放在初始化程序以后的任何地方。
- 两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令(写到同一地址)。
- 按位置位/复位的命令代码只能写入命令口(83H) , 而不能写到数据口,即对PC口的数据操作,需要对其数据寄存器地址(82H) 操作(基址为1000 0000=80)。