720 likes | 914 Views
8.3. 8255A 并行接口电路. 第一节 并行接口的基本概念 一、并行通信和串行通信 二、并行接口概述 第二节 可编程并行接口 8255A 一、 8255A 引脚、编程结构 二、 8255A 的控制字 三、 8255A 的 工作方式 四、 8255A 的应用举例. 第一节 并行接口的基本概念 一、并行通信和串行通信 二、并行接口概述. 一、并行通信和串行通信. 通信 指计算机与外设、计算机与计算机间的信息交换 通信的基本方法 : 并行通信和串行通信. 0. 1. D0 D1 D2 D3 D4 D5 D6 D7. D0
E N D
8.3 8255A并行接口电路
第一节 并行接口的基本概念 一、并行通信和串行通信 二、并行接口概述 第二节 可编程并行接口8255A 一、8255A引脚、编程结构 二、8255A的控制字 三、8255A的工作方式 四、8255A的应用举例
第一节 并行接口的基本概念 一、并行通信和串行通信 二、并行接口概述
一、并行通信和串行通信 通信 指计算机与外设、计算机与计算机间的信息交换通信的基本方法: 并行通信和串行通信.
0 1 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 0 1 0 目 的 源 1 1 0 • 并行通信 • 将数据的各位同时在多根并行传输线上进行传输。 • 数据的各位同时由源到达目的地 → 快 • 多根数据线 → 距离短、远程费用高 并行通信适于短距离、高速通信
目 的 源 TD RD • 串行通信 • 将数据的各位按时间顺序依次在一根传输线上传输。 0 1 1 0 1 0 1 0 • 数据的各位依次由源到达目的地 → 慢 • 数据线少 → 远程, 费用低 串行通信适于长距离、中低速通信
二、并行接口概述 • 并行接口连接CPU与并行外设,实现 两者间的并行通信, 在信息传送过程中,起到输出锁存或输入缓冲的作用。 • 并行接口的典型硬件结构包括: 1、一个或一个以上具有锁存或缓冲的数据端口 2、与CPU进行数据交换所必须的控制和状态信号 3、与外设进行数据交换所必须的控制和状态信号 4、端口译码电路 5、控制电路
并行接口连接外设示意图 数据输入准备好 数据总线 输 控制寄存器 入 读出信号 数据输入回答 设 输入缓冲寄存器 写入信号 备 复位 数据输入 输出缓冲寄存器 准备好 CPU 状态寄存器 中断请求 数据输出 输 地址 地址 出 片选 数据输出准备好 译码 设 A 备 数据输出回答 0 A 1
输入过程 外设将数据=>接口 →状态线“数据输入准备好”=1; →接口把接收到数据输入缓冲寄存器; →数据输入回答=1,作为对外设响应信号; →外设撤消“数据”和“数据输入准备好”信号; CPU从接口读取数据 →接口收到数据,设置“输入准备好”状态位; →供给CPU查询 或问CPU发中断请求; →CPU从接口读取数据, 接口自动清除状态寄存器输入准备好状态位(准备好); →数据总线处于高阻状态。开始下一个输入过程
输出过程 输出 :每当外设从接口取走一个数据以后, CPU往接口中输出数据 →接口中状态寄存器发中断请求; (“输出准备好”=1,表示CPU可以往接口中输出数据) →CPU向接口输出数据,数据到接口缓冲寄存器; →接口自动清除“输出准备”好。 将数据送往外设: 接口向外设发送一个“驱动信号”,启动外设接收数据。 →外设收到数据向接口发一个“数据输出回答”信号; →接口收到的信号将状态寄存器中“输出准好”=1; →CPU输出下一个数据。
不可编程并行接口和可编程并行接口 不可编程并行接口的工作方式和功能: 是由硬件接线决定,不能用软件来控制。 可编程并行接口的工作方式和功能: 可用软件编程的方法改变, 使接口具有更大的灵活性和通用性。
在并行接口芯片中, • 不同的产品系列研制出与之相匹配的接口芯片。 • 例 在80X86系列中使用8255A芯片 • 在Z80系列中使用Z80-PIO芯片 • 在6800系列中使用MC6820PIA芯片 • 一般情况下不交叉使用,因为: • 只有本系列的芯片才能更好地保证时序上的配合, • 和各种功能的发挥,使CPU可靠与外设交换信息。
第二节 可编程并行接口8255A 一、8255A的引脚、编程结构 二、8255A的控制字 三、8255A三种工作方式 四、8255A的应用举例
8255A PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 一、8255A引脚、编程结构 Intel系列的8位并行接口芯片 通用性强,使用灵活 可用程序设置和改变芯片的工作方式 是一种典型的可编程并行接口芯片 40个引脚,双列直插式
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND 1. 数据端口 A、B、C • 每个端口8位,通过编程设定其为输入口或输出口 • 可用来和外设传送信息
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND • 端口A 有 3 种工作方式( 方式 0、方式 1、方式 2) 对外 8 根引脚 PA7 ~ PA0
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND • 端口B 有 2 种工作方式:方式 0、方式 1 对外 8 根引脚 PB7 ~ PB0
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND • 端口C 对外引脚PC0 ~ PC7
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND 当端口 A 在方式 1 或方式 2、端口 B 在方式 1 时,端口 C 的某些位用于传送联络信号,以适应CPU与外设间的各种数据传送方式的要求,如查询传送的应答信号、中断传送的中断申请信号等;C口未被用作联络信号的其它位可工作在方式 0。
2. 控制端口D (A组和B组控制电路) 8位端口,无对外引脚。控制端口的内容决定A口、B口、C口的工作状态(输入或输出)和工作方式(方式 0、1、2), 起控制作用。
3. 数据总线缓冲器(引脚D0~D7) 由1个8位双向三态缓冲器构成。8255A内各端口通过数据缓冲器与系统总线相连。CPU与端口A、B、C间传送的数据,以及CPU写入控制端口D中的控制字均通过数据缓冲器传送。
4. 读写控制电路 (引脚CS、 RD、 WR) 控制数据总线缓冲器的状态。数据总线缓冲器有3种状态:输入、输出、高阻态
CS RD WR 数据总线缓冲器状态 0 0 1 D7~D0 ← 内部数据总线 0 1 0 D7~D0 → 内部数据总线 1 × × , 三态 处于断开状态 1 1 × 0 0 ×
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND 5. 片内译码电路 (引脚A1、 A0) 选择被操作的端口
A1 A0 选中端口 0 0 A +5V 端口 0 1 B 端口 1 0 C 端口 1 1 D 控制端口 RESET PA7 PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 PC0 端口C RD WR IOR IOW 读写 控制 PB7 PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D A1 A0 GND
由CS、A1、A0、RD、WR引脚的不同组合, 实现各种不同的功能。
二、8255A的控制字 1.方式控制字 2. C口按位置位/复位控制字
8255A控制口D的内容对数据端口A、B、C起控制作用,故称为8255A的控制字。
通过编程向控制口写入不同的控制字, 可灵活的改变端口A、B、C的工作状态和工作方式。 • 例 假设8255A 控制端口的地址为Port_Ctrl, • 8255A控制口的内容为CtrlData • 设置控制字的程序段如下: • MOV DX,Port_Ctrl ;置DX为控制口地址 • MOV AL,CtrlData ;置控制字于AL中 • OUT DX, AL ;将控制字写入控制口
8255A有两种控制字,由写入内容的D7位区分: • D7=1, 方式控制字 • 设定A口、B口、C口的工作状态和工作方式。 • 工作状态:输入或输出 • 工作方式:方式 0、方式 1、方式 2 • D7=0 , C口按位置位/复位控制字 • 使C口中的某一位为1(置位)或0(复位)。
0 输出 1 输入 1 PC3~PC0 D7 D6 D5 D4 D3 D2 D1 D0 0输出 1 输入 B口 B口工作方式 PC7~PC4 0 方式0 1 方式1 0 输出 1 输入 A口 0 输出 1 输入 A口工作方式 00 方式0 01 方式1 1x 方式2 特征位,D7=1表示是方式控制字 • 1. 方式控制字 • 设定A口、B口、C口的工作状态和工作方式。 • 工作状态:输入或输出 • 工作方式:方式 0、方式 1、方式 2
+5V • 例8255A与系统的连线如下, 片选译码地址为F0~F3h • 1) 确定各端口地址; • 2) 编程设置8255A : A口方式 0 输入,PC7~PC4输出 • B口方式 0 输出,PC3~PC0输入 RESET PA7 PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 PC0 端口C RD WR IOR IOW 读写 控制 PB7 PB0 端口B CS 片选 译码 A9 ~ A2 F0~F3h 片内 译码 A1 A0 控制口 D A1 A0 GND
1) 确定端口地址 A1 A0 选中端口 0 0 A 端口 0 1 B 端口 1 0 C 端口 1 1 D 控制端口 由8255A编程结构知: 由8255A的CS与系统总线的连线知, 地址在F0~F3h可使CS有效,故: 4个端口的地址在F0~F3h中。 CS A1 A0 8255A 结合8255A与系统总线的连线: 总线 最后得出结论: A口地址为 F0 H B口地址为 F1 H C口地址为 F2 H D口地址为 F3 H A7A6A5A4A3A2A1A0 F0H 1 1 1 1 0 0 0 0 A口 F1H 1 1 1 1 0 0 0 1 B口 F2H 1 1 1 1 0 0 1 0 C口 F3H 1 1 1 1 0 0 1 1 D口
1 0 0 1 0 0 0 1 A口 输入 B口 方式 0 B口 输出 PC3~PC0 输入 A口 方式 0 PC7~PC4 输出 特征位 D7 D6 D5 D4 D3 D2 D1 D0 2) 确定方式控制字 • 要求设置: A口方式0输入,PC7~PC4输出 • B口方式0输出,PC3~PC0输入 所以,方式控制字为 1001 0001B,即91H
设置方式控制字的程序段为: MOV DX, 0F3H ;控制口地址 MOV AL, 91H ;方式控制字 OUT DX, AL 或 MOV AL, 91H ; 方式控制字 OUT 0F3H, AL
2. C口按位置位/复位控制字 作用是: 使C口中的某一位为1(置位)或0(复位); 或在A口、B口采用中断方式时, 通过向C口的指定位置位,允许8255A的中断信号发出。
C口按位置位/复位控制字各位含义: 无意义 选择设置位 设置内容 D3 D2 D1 设置位 0 0 0 PC0 0 0 0 1 PC1 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 PC2 特征位,D7=0 表示是C口按位 置位/复位控制字 0 1 1 PC3 0 0 1 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7 0 复位 1 置位
例 连线如上例, 通过控制口置 PC2 为 0,置 PC4 为 1 MOV DX,0F3H ;置DX为控制口地址 MOV AL,0000 0100B ;置PC2为0 OUT DX, AL MOV AL,0000 1001B ;置PC4为1 OUT DX, AL
三、8255A的工作方式 1. 三种工作方式 2. 方式0 3. 方式1 4. 方式2
1. 三种工作方式 • 在8255A内部硬件结构中: A口和B口之间没有硬件关系, 即可分别作为独立的输入或输出端口; C口和A口,C口和B口之间有硬件联系, 通过向控制口设置控制字可以改变这种联系。
根据A口和C口、B口和C口之间硬件关系的不同,根据A口和C口、B口和C口之间硬件关系的不同, 可以有三种不同的工作方式, 分别称为方式 0、方式 1、方式 2。 方式 0: 与C口之间没有硬件联系。 方式 1: C口的某3根引脚作为端口与外设的联络信号。 方式 2: C口的某5根引脚作为端口与外设的联络信号。
1. 方式0(基本输入输出方式) A口工作在方式 0 时,A口和C口之间没有硬件联系 B口工作在方式 0 时,B口和C口之间没有硬件联系
1 0 0 1 0 0 0 1 A口 输入 B口 方式 0 B口 输出 PC3~PC0 输入 A口 方式 0 PC7~PC4 输出 特征位 D7 D6 D5 D4 D3 D2 D1 D0 工作在方式 0 的端口,为单向传送端口, 由方式控制字决定是输入还是输出。 工作在方式 0 的端口: • 作为输入口相当于普通的三态门 • 作为输出口相当于普通的锁存器 CPU可利用方式 0 下的端口,直接对端口进行读写操作, 实现CPU与外设间的数据传送。
方式 0 输入 方式0输入(IN AL,PORT) 框图 8 数据 数据总线 三态缓冲器 8 地址译码器 地址总线 来自外设 & IO/ M RD
方式0 输入 ( IN AL,PORT ) 时序 t RR RD t t IR HR 输入数据 t t AR RA , A , A CS 1 0 数据有效 D -- D 0 7 t t RD DF
方式0输入时序基本情况: 外设的数据已经准备好,数据存入接口数据寄存器, CPU执行一条 (IN AL,PORT)指令从8255A读取数据, I/O读周期,8088CPU与8255A在时序上不能很好配合, 需要CPU插入一个等待状态。
方式0输出 方式0输出(OUT PORT,AL) 框图: 8 数据总线 锁存器 8 地址译码器 地址总线 到外设 CE & IO/ M WR
方式0输出 (OUT PORT, AL)时序 t WW WR t t DW WD D -- D 数据有效 0 7 t t AW WA CS , A , A 1 0 输出数据 数据有效 t WB I/O写周期,8088CPU与8255A在时序上不能很好配合, 需要CPU插入一个等待状态。
总线 8255A RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A9 ~ A2 片内 译码 A1 A0 控制口 D +5V A1 A0 GND • 2. 方式1(选通输入输出方式) B口工作在方式1时, C口的某3根引脚作为B口的联络信号。