首页 8255接口芯片

8255接口芯片

举报
开通vip

8255接口芯片 第 10 章 并行接口芯片 8255 当 CPU 要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式 和 DMA 方式。但是,不论采用哪一种方式,CPU 总是通过接口电路(Interface)才能与外 设连接。所以,接口电路一边与 CPU 连接,另一边与外设连接。 在接口电路中,要有输入输出数据的锁存器和缓冲器,要有状态(如 Ready,Busy 等)和控制命令的寄存器,以便于 CPU 与接口电路之间采用应答方式(程序查询式)来交 换信息,也便于接口电路与外设之间传送信息。接口电路中还要...

8255接口芯片
第 10 章 并行接口芯片 8255 当 CPU 要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式 和 DMA 方式。但是,不论采用哪一种方式,CPU 总是通过接口电路(Interface)才能与外 设连接。所以,接口电路一边与 CPU 连接,另一边与外设连接。 在接口电路中,要有输入输出数据的锁存器和缓冲器,要有状态(如 Ready,Busy 等)和控制命令的寄存器,以便于 CPU 与接口电路之间采用应答方式(程序查询式)来交 换信息,也便于接口电路与外设之间传送信息。接口电路中还要有端口的译码和控制电 路,以及为了与 CPU 用中断方式交换信息所需要的中断请求触发器、中断屏蔽触发器、 中断优先权排队电路和能向 CPU 发出中断矢量的电路等。这样,才能解决 CPU 的驱动能 力问题、时序的配合问题以及实现各种控制,保证 CPU 能正确可靠地与外设交换信息。 随着大规模集成电路技术的发展,生产了许多通用的可编程序的接口芯片。这些接 口芯片按数据传送的方式可以分为并行接口和串行接口两大类。本章只讨论并行接口芯 片,串行接口芯片放在第 11 章中介绍。 通常并行接口芯片应该具有以下功能: (1) 两个或两个以上的具有锁存器或缓冲器的数据端口; (2) 每个数据端口都有与 CPU 用应答方式交换信号所必需的控制和状态信息,也有 与外设交换信息所必需的控制和状态信息; (3) 通常每个数据端口还具有能用中断方式与 CPU 交换信息所必需的电路; (4) 选片和控制电路; (5) 通常这类接口芯片可用程序选择数据端口,选择端口的传送方向(输入或输出 或双向),选择与 CPU 交换信息的方法(查询或中断)等,故片中要有能实现这些选择的 控制字寄存器,它可由 CPU 用输出指令来写入。 所以,接口芯片在工作前必须要由 CPU 用输出指令对它编程——初始化,以规定它 的工作方式。 §10.1 可编程并行输入输出接口芯片 8255-A 的结构 Intel 8255A-5 是一个为 8080、8085 和 8086/8088 微型计算机系统设计的通用 I/O 接口芯片。它可以用程序来改变功能,通用性强,使用灵活。通过它可以将 CPU 的总线 直接接向外设。 8255A 的方框图如图 10-1 所示。 8255A 由以下几个部分组成: 1.数据端口 A、B、C 它有三个输入输出端口: Port A、Port B 和 Port C。每一个端口都是 8位,都可 以选择作为输入或输出,但功能上有着不同的特点。 (1) 端口 A: 一个 8位数据输出锁存和缓冲器;一个 8位数据输入锁存器。 (2) 端口 B: 一个 8位数据输入/输出、锁存/缓冲器;一个 8位数据输入缓冲器。 (3) 端口 C: 一个 8位数据输出锁存/缓冲器;一个 8位数据输入缓冲器(输入没有 锁存)。 通常端口 A或 B作为输入输出的数据端口,而端口 C作为控制或状态信息的端口, 它在方式字的控制下,可以分成两个 4位的端口,每个端口包含一个 4位锁存器,它们 分别与端口 A 和 B 配合使用,可以作为控制信号输出,或者作为状态信号输入。 2.A 组和 B组控制电路 这是两组根据 CPU 的命令字控制 8255A 工作方式的电路。它们有控制寄存器,接受 CPU 输出的命令字,然后分别决定两组的工作方式,也可根据 CPU 的命令字对端口 C 的 每一位实现按位“复位”或“置位”。 A 组控制电路控制端口 A和端口 C的上半部(PC7~PC4)。 B 组控制电路控制端口 B和端口 C的下半部(PC3~PC0)。 3.数据总线缓冲器 这是一个三态双向 8位缓冲器,它是 8255A 芯片与系统数据总线的接口。输入输出 的数据,输出的指令以及 CPU 发出的控制字和外设的状态信息,也都是通过这个缓冲器 传送的。 4.读/写和控制逻辑 它与 CPU 的地址总线中的 A1、A0 以及有关的控制信号(RD#,WR#,RESET,IO/M#) 相连,由它控制把 CPU 的控制命令或输出数据送至相应的端口,也由它控制把外设的状 态信息或输入数据通过相应的端口,送至 CPU。 5.一些控制命令 (1) CS#(Chip Select)——选片信号,低电平有效,由它启动 CPU 与 8255A 芯片之 间的通信(Communication)。 (2) RD#——读信号,低电平有效。它控制 8255A 送出数据或状态信息至 CPU。 (3) WR#——写信号,低电平有效。它控制把 CPU 输出的数据或命令信号写到 8255A。 (4) RESET——复位信号,高电平有效。它清除控制寄存器,并且置所有端口(A、B、 C)为输入方式。 6.端口寻址 8255A 中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口, 要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位 A1 和 A0。 A1、A0、RD#、WR#及 CS#组合所实现的各种功能,如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 10-1 所示。 §10.2 方式选择 可编程并行接口 8255A 有三种基本的工作方式: (1) 方式 0(Mode 0)——基本输入输出方式; (2) 方式 1(Mode 1)——选通输入输出方式; (3) 方式 2(Mode 2)——双向传送方式。 如图 10-2 所示,它们由 CPU 输出的控制字来选择。 10.2.1 方式选择控制字 可编程并行接口8255A的工作方式,可由CPU利用I/O指令输出一个控制字到8255A 的控制字寄存器来选择。这个控制命令字的格式如图 10-3 所示。可以分别选择端口 A 和端口 B的工作方式,端口 C分成两部分,上半部(PC7~PC4)随端口 A,下半部(PC3~PC0) 随端口 B。端口 A有方式 0、1和 2三种工作方式,而端口 B只能工作于方式 0和 1。 10.2.2 方式选择举例 若有一个 8080 系统,它有两个 8255A 芯片,分别与不同的外设交换信息,如图 10-4 所示。 要确定两个 8255A 的工作方式,就要在输出控制字之前,先确定两个 8255A 的各自 的控制字寄存器的端口地址。 I/O 端口地址由 CPU 地址总线的低 8位 A7~A0 确定。在本例中,端口地址的考虑如 图 10-5 所示。 8 位地址线可选择 256 个不同端口,现在地址线最低两位 A0、A1 用于 8255A 内部的 端口选择,另外 6位 A2~A7 就用于选择不同的 8255A 以及其他的外设,在本系统中外设 少,故可用线选的方法来选择不同的 8255A。因而,两个 8255A 的各个端口地址如表 10-2 所示。 当地址确定后,把地址总线的 A0、A1 直接接至 8255A 的 A0、A1 输入端,地址总线 的其他 6位 A2~A7 应按地址的规定经译码后送至 8255A 的 CS#输入端。 若要求 8255A#1 的各个端口处在如下的工作方式: 端口 A方式 0输入 端口 B方式 1输出 端口 C(上半部)PC7~PC4 输出 端口 C(下半部)PC3~PC0 输入 则要用方式控制字=10010101B 或 95H。 可用以下汇编程序来置上述工作方式: CWR EQU 0FBH;8255A#1 控制字寄存器端口地址输出方式控制字 MOV AL,10010101B OUT CWR,AL 10.2.3 按位置位/复位功能 端口 C的 8位中的任一位,可用一条输出指令来置位或复位(其他位的状态不变)。 这个功能主要用于控制。能实现这个功能的控制字,如图 10-6 所示。 若要使端口C的位3置位的控制字为00000111B,而使它复位的控制字为00000110B。 相应的汇编程序为: CWR EQU 0FBH ;置位端口 C位 3 MOV AL,00000111B OUT CWR,AL ;复位端口 C位 3 MOV AL,00000110B OUT CWR,AL 注意: 使端口 C按位置位或复位的控制字也是写入至控制字寄存器的。 §10.3 方式 0 的功能 10.3.1 方式 0的基本功能 方式 0是一种基本的输入或输出方式。在这种工作方式下,三个端口的每一个都可 由程序选定作为输入或输出,但这种方式没有规定固定的用于应答式的联络信号线。其 基本功能为: (1) 两个 8位端口(A,B)和两个 4位端口(端口 C); (2) 任一个端口可以作为输入或输出; (3) 输出是锁存的; (4) 输入是不锁存的; (5) 在方式 0时,各个端口的输入、输出可以有 16 种不同的组合。 在这种工作方式下,任一个端口都可由CPU用简单的输入或输出指令来进行读或写。 方式0可作为查询式输入或输出的接口电路,此时端口A和 B可分别作为一个数据端口, 而取端口 C的某些位作为这两个数据端口的控制和状态信息。 10.3.2 方式 0的时序 1.方式 0的输入时序 在方式 0时,基本的输入时序如图 10-7 所示。 若外设的数据已经准备好,CPU 用输入指令从 8255A 读入这个数据,则 RD#的宽度 至少应为 300ns,而且地址信号必须在 RD#有效前 tAR 时间有效。这样在 RD#有效后经过 时间 tRD,数据即可在数据总线上稳定。 经分析,在 I/O 读周期 8088 CPU 与 8255A 在时序上不能很好配合,需要 CPU 插入 一个等待状态。 2.方式 0的输出时序 可编程并行接口芯片 8255A 方式 0的基本输出时序,如图 10-9 所示。 要由写指令把 CPU 的数据输出给外设,对于 8255A,要求写脉冲宽度至少为 400ns。 且地址信号必须在写信号前 tAW 时间有效。并保持 tWA 时间。另外要写出的数据必须在 写信号结束前 tDW 时间有效(出现在数据总线上),且保持 tWD 时间。这样,在写信号后 最多 tWB 时间,写出的数据在输出端口出现。 经分析,I/O 写周期也要求 8088 插入一 个等待状态。 §10.4 方式 1 的功能 这是一种选通的 I/O 方式。在这种方式时,端口 A 或端口 B 仍作为数据的输入/输 出口,但同时规定端口 C的某些位作为控制或状态信息。 10.4.1 方式 1的主要功能 8255A 的端口工作在方式 1时,具有以下主要功能: (1) 用作一个或两个选通端口; (2) 每一个端口包含: 8 位的数据端口,三条控制线(是固定指定的,不能用程序 改变),提供中断逻辑; (3) 任何一个端口都可作为输入或输出; (4) 若只有一个端口工作于方式 1,余下的 13 位,可以工作在方式 0(由控制字决 定); (5) 若两个端口都工作于方式 1,端口 C 还留下两位,这两位可以由程序指定作为 输入或输出,也具有置位/复位功能。 10.4.2 方式 1输入 当任一端口工作于方式 1输入时,如图 10-11 所示。其各个控制信号的意义为: STB#(Strobe)——选通输入,低电平有效。这是由外设供给的输入信号,当其有效 时,把输入装置来的数据送入输入锁存器。 IBF(Input Buffer Full)——输入缓冲器满,高电平有效。这是一个 8255A 输出至 外设的联络信号。当其有效时,表示数据已输入至输入锁存器,它由 STB#信号置位(高 电平),而 RD#信号的上升沿使其复位。 INTR(Interrupt Request)——中断请求信号,高电平有效。这是 8255A 的一个输 出信号,可用于作为向 CPU 的中断请求信号,以要求 CPU 服务。它是当 STB#为高电平、 IBF 为高电平和 INTE(中断允许)为高电平时被置为高,而由 RD#信号的下降沿清除。 INTEA(Interrupt Enable A)——端口 A 中断允许信号,可由用户通过对 PC4 的按 位置位/复位来控制(PC4=1,允许中断)。 而 INTEB 由 PC2 的置位/复位控制。 方式 1的输入时序,如图 10-12 所示。 当外设的数据已经输至 8255A 的端口数据线上,用选通信号把数据锁入 8255A 的输 入锁存器,选通信号的宽度至少为 500ns。选通信号经过时间 tSIT 后,IBF 信号有效, 输送给外设,阻止外设输入新的数据,也可供 CPU 查询。在选通信号结束后,经过 tSIT 向 CPU 发出 INTR 信号(中断是允许的话)。CPU 响应中断,发出 RD#信号,把数据读入 CPU。 在 RD#信号有效后经过 tRIT 就清除中断请求,当 RD#信号结束后,数据已读至 CPU,使 IBF 变低。表示输入缓冲器已空,通知外设可以输入新的数据。 10.4.3 方式 1输出 8255A 的端口工作在方式 1输出时,如图 10-13 所示。 1.主要的控制信号 OBF#(Output Buffer Full)——输出缓冲器满信号,低电平有效。这是 8255A 输出 给外设的一个控制信号。当其有效时,表示 CPU 已经把数据输出给指定的端口,外设可 以把数据输出。它由输出命令 WR#的上升沿设置为有效,由 ACK#的有效信号使其恢复为 高。 ACK#(Acknowledge)——低电平有效,这是一个外设的响应信号,指示 CPU 输出给 8255A 的数据已经由外设接收。 INTR——中断请求信号,高电平有效。当输出装置已经接收了 CPU 输出的数据后, 它用来作为向 CPU 提出新的中断请求,要求 CPU 继续输出数据。当 ACK#为“1”(高电平), OBF 为“1” (高电平)和 INTE 为“1”(高电平)时,使其置位(高电平),而 WR#信号的 下降沿使其复位(低电平)。 INTEA 由 PC6 的置位/复位控制。而 INTEB 由 PC2 的置位/复位控制。 2.时序 8255 工作在方式 1输出时的时序,如图 10-14 所示。 用在中断控制方式时,输出过程是由 CPU 响应中断开始的,在中断服务程序中,CPU 输出数据和发出 WR#信号,WR#信号一方面清除 INTR(经过时间 tWIT),另外在 WR#上升 沿,使 OBF 有效,通知外设接收数据,实质上 OBF 信号是外设的一个选通命令。在 WR# 上升沿后经过 tWB 时间数据就输出了,当外设接收数据后,发出 ACK#信号,它一方面使 OBF 无效(经过 tAOB),另一方面在 ACK#的上升沿使 INTR 有效(经过 tAIT),发出新的中 断请求。 §10.5 方式 2 的功能 这种工作方式,使外设可以在单一的 8 位总线上,既能发送数据也能接收数据(双 向总线 I/O)。工作时可用程序查询方式,也可工作在中断方式。 10.5.1 方式 2的主要功能 8255A 的端口工作在方式 2时,具有以下主要功能: (1) 方式 2只用于端口 A; (2) 一个 8位的双向总线端口(A)和一个 5位控制端口(端口 C); (3) 输入和输出是锁存的; (4) 5 位控制端口是用作端口 A的控制和状态信息,如图 10-15 所示。 各个信号的意义为: INTR——中断请求信号,高电平有效。在输入和输出方式时,用来作为向 CPU 发出 的中断请求信号。 OBF#——输出缓冲器满,低电平有效。这是对外设的一种命令信号,表示 CPU 已把 数据输出至端口 A。 ACK#——响应信号,低电平有效。ACK#的有效沿启动端口 A的三态输出缓冲器,送 出数据;否则,输出缓冲器处在高阻状态。ACK#的上升沿是数据已输出的回答信号。 INTE1——与输出缓冲器相关的中断屏蔽触发器,由 PC6 的置位/复位控制。 STB#——选通输入,低电平有效。这是外设供给 8255A 的选通信号,它把输入数据 选通至输入锁存器。 IBF——输入缓冲器满,高电平有效。它是一个控制信息,指示数据已进入输入锁 存器。在 CPU 未把数据读走前,IBF 始终为高电平,阻止输入设备送来新的数据。 INTE2——与输入缓冲器相关的中断屏蔽触发器,由 PC4 的置位/复位控制。 10.5.2 方式 2的时序 8255A 的端口工作在方式 2的时序,如图 10-16 所示。 方式 2 实质上是方式 1 输入与方式 1 输出的组合,故各个时间参数的意义与方式 1 的相同。输出是由 CPU 执行输出指令(给出 I/O 的 WR#)信号开始的,输入是由选通信号 开始的。 图上的输入、输出的顺序是任意的,只要 WR#在 ACK#以前发生。STB#在 RD#以前发 生就行。 在输入和输出的情况下,都可以用中断方式。故 INTR=IBF·MASK#·STB#·RD#+OBF#·MASK#·ACK#·WR# 其中,MASK#=INTE。 10.5.3 方式 2控制字 当端口 A 工作于方式 2 时,端口 B 可以工作在方式 0 或方式 1;可以作为输入,也 可以作为输出。此时端口 C的各位的功能如图 10-17 所示。 §10.6 8255 应用举例 下面以双机并行通信接口为例,介绍 8255 的应用。 1.要求 在甲乙两台微型计算机之间并行传送 1KB 数据。甲机发送,乙机接收。甲机一侧的 8255A 采用方式 1 工作,乙机一侧的 8255A 采用方式 0 工作。两台微机的 CPU 与接口之 间都采用查询方式交换数据。 2.分析 根据要求,双机均采用可编程并行接口芯片 8255A 构成接口电路,只是 8255A 的工 作方式不同。 3.设计 (1) 硬件连接。根据上述要求,接口电路的连接如图 10-18 所示。 甲机 8255A 为方式 l 发送(输出),因此,把 PA 口指定为输出,发送数据,PC7 和 PC6 引脚由方式 1规定作为联络信号线 OBF#和 ACK#。乙机 8255A 为方式 0接收(输入), 把 PA 口用作输入,接收数据,联络信号自行选择,可选择 PC4 和 PC0 作为联络信号线, PC4 输入、PC0 输出。虽然,两侧的 8255A 都设置了联络信号线,但它们是不同的,甲 机 8255A 工作在方式 1,其联络信号 PC7、PC6 是由方式 1 规定的不可替换;而乙机的 8255A 工作在方式 0,其联络信号线是可以选择的,比如可选 PC5、PC1 或 PC6、PC7 等。 (2) 软件编程 ① 甲机发送程序: MOV DX,303H;8255A 命令口 MOV AL,10100000B;A 口,方式 1;B口没用方式字 OUT DX,AL;输出方式字 MOV AL,0DH;置发送中断允许 INTEA=1 OUT DX,AL;PC6 置“1” MOV AX,030H;发送数据的首地址 MOV ES,AX MOV BX,00H MOV CX,3FFH;置发送字节数 MOV DX,300H;置 8255A 数据字地址 MOV AL,ES:[BX];取第一个发送数据 OUT DX,AL;写第一个数,产生第一个 OBF#信号 INC BX;指向下一个数 DEC CX;字节数-1 L:MOV DX,302H;8255A 状态口 IN AL,DX;输入状态 AND AL,08H;检查有无 INTRA JZ L;若无中断请求则等待 MOV DX,300H;置数据口地址 MOV AL,ES:[EBX];取数据 OUT DX,AL;输出 INC BX DEC CX JNZ L;未发送完则循环 MOV AX,4C00H INT 21H;发送完,返回 DOS 在上述发送程序中,检查的是 INTR 位(PC3)的状态,实际上,也可以检查发送缓冲 器满 OBF#位(PC7)的状态。 ② 乙机接收程序: MOV DX,303H;置 8255A 命令口地址 MOV AL,10011000B;端口 A方式 0,PC4 输入、PC0 输出 OUT DX,AL;输出方式字 MOV AL,00000001B;PC0 置 1 控制字 OUT DX,AL;输出使 ACK=1 MOV AX,040H;接收区首地址 MOV ES,AX MOV BX,00H MOV CX,3FFH;置字节数 L1:MOV DX,302H;8255A PC 口 IN AL,DX;查询甲机的 OBF 是否等于 0(PC4=0?) AND AL,10H JNZ L1;无数据,等待 MOV DX,300H;8255A 数据口地址 IN AL,DX;输入数据 MOV ES:[BX],AL;存入内存 MOV DX,303H OUT AL,00000000B;PC0 置“0” OUT DX,AL;产生 ACK 信号 NOP NOP MOV AL,00000001B;PC0 置“1” OUT DX,AL;ACK 变高 INC BX DEC CX JNZ L1;未接收完,循环 MOV AX,4C00H INT 21H;接收完,返回 DOS
本文档为【8255接口芯片】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_545343
暂无简介~
格式:pdf
大小:110KB
软件:PDF阅读器
页数:9
分类:
上传时间:2012-12-25
浏览量:152