为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

口芯片按数据传送的方式可以分为并行接口和串行接口两大类

2017-11-23 9页 doc 26KB 106阅读

用户头像

is_591137

暂无简介

举报
口芯片按数据传送的方式可以分为并行接口和串行接口两大类口芯片按数据传送的方式可以分为并行接口和串行接口两大类 第 10 章 并行接口芯片 8255 当 CPU 要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式和 DMA 方式。但是,不论采用哪一种方式,CPU 总是通过接口电路Interface才能与外设连接。所以,接口电路一边与 CPU 连接,另一边与外设连接。 在接口电路中,要有输入输出数据的锁存器和缓冲器,要有状态如 Ready,Busy等和控制命令的寄存器,以便于 CPU 与接口电路之间采用应答方式程序查询式来交换信息,也便于接口电路与外设之间传送信息。...
口芯片按数据传送的方式可以分为并行接口和串行接口两大类
口芯片按数据传送的方式可以分为并行接口和串行接口两大类 第 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 CSChip 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组合所实现的各种功能,如表 10-1 所示。 ?10.2 方式选择 可编程并行接口 8255A 有三种基本的工作方式: 1 方式 0Mode 0——基本输入输出方式; 2 方式 1Mode 1——选通输入输出方式; 3 方式 2Mode 2——双向传送方式。 如图 10-2 所示,它们由 CPU 输出的控制字来选择。 10.2.1 方式选择控制字 可编程并行接口 8255A 的工作方式,可由 CPU 利用 I/O 指令输出一个控制字到 8255A的控制字寄存器来选择。这个控制命令字的格式如图 10-3 A和端口 B 的工作方式,端口 C 分成两部分,上半部所示。可以分别选择端口 (PC7PC4)随端口 A,下半部(PC3PC0)随端口 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 个不同端口, A1 现在地址线最低两位 A0、 用于 8255A 内部的端口选择,另外 6 位 A2A7 就用于选择不同的 8255A 以及其他的外设,在本系统中外设少,故可用线选的方法来选择不同的 8255A。因而,两个 8255A 的各个端口地址如表 10-2所示。 当地址确定后,把地址总线的 A0、A1 直接接至 8255A 的 A0、A1 输入端,地址总线的其他 6 位 A2,A7 应按地址的规定经译码后送至 8255A 的 CS输入端。 若要求 8255A1 的各个端口处在如下的工作方式: 端口 A 方式 0 输入 端口 B 方式 1 输出 端口 C上半部PC7,PC4 输出 端口 C下半部PC3,PC0 输入 则要用方式控制字10010101B 或 95H。 可用以下汇编程序来置上述工作方式: CWR EQU 0FBH;8255A1 控制字寄存器端口地址输出方式控制字 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 写周期也要求 088 插入一个等待状态。 ?10.4 方式 1 的功能 这是一种选通的 I/O 方式。在这8 种方式时,端口 A 或端口 B 仍作为数据的输入/输出口,但同时规定端口 C 的某些位作为控制或状态信息。 10.4.1 方式 1 的主要功能 8255A 的端口工作在方式 1 时,具有以下主要功能: 1 用作一个或两个选通端口; 2 每一个端口包含: 8 位的数据端口,三条控制线是固定指定的,不能用程序改变,提供中断逻辑; 3 任何 ,余下的 13 位,一个端口都可作为输入或输出; 4 若只有一个端口工作于方式 1可以工作在方式 0由控制字决定; 5 若两个端口都工作于方式 1,端口 C 还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。 10.4.2 方式 1 输入 当任一端口工作于方式 1 输入时,如图 10-11 所示。其各个控制信号的意义为: STBStrobe——选通输入,低电平有效。这是由外设供给的输入信号,当其有效时,把输入装置来的数据送入输入锁存器。 IBFInput Buffer Full——输入缓冲器满,高电平有效。这是一个 8255A 输出至外设的联络信号。当其有效时,表示数据已输入至输入锁存器,它由 STB信号置位高电平,而 RD信号的上升沿使其复位。 INTRInterrupt Request——中断请求信号,高电平有效。这是 8255A 的一个输出信号,可用于作为向 CPU 的中断请求信号,以要求 CPU 服务。它是当 STB为高电平、IBF 为高电平和 INTE中断允许为高电平时被置为高,而由 RD信号的下降沿清除。 INTEAInterrupt Enable A——端口 A 中断允许信号,可由用户通过对 PC4 的按位置位/复位来控制PC41,允许中断。 而 INTEB 由 PC2 的置位/复位控制。 方式 1 的输入时序,如图 10-12 所示。 当外设的数据已经输至 8255A 的端口数据线上,用选通信号把数据锁入 8255A 的输入锁存器,选通信号的宽度至少为 500ns。选通信号经过时间 tSIT 后,IBF 信号有效,输送给外设,阻止外设输入新的数据,也可供 CPU 查询。在选通信号结束后,经过 tSIT CPU向 CPU 发出 INTR 信号中断是允许的话。 响应中断,发出 RD信号,把数据读入 CPU。在 RD信号有效后经过 tRIT 就清除中断请求,当 RD信号结束后,数据已读至 CPU,使IBF 变低。表示输入缓冲器已空,外设可以输入新的数据。 10.4.3 方式 1 输出 8255A 的端口工作在方式 1 输出时,如图 10-13 所示。 1.?饕 目刂菩藕?OBFOutput Buffer Full——输出缓冲器满信号,低电平有效。这是 8255A 输出给外设的一个控制信号。当其有效时,表示 CPU 已经把数据输出给指定的端口, 外设可以把数据输出。它由输出命令 WR的上升沿设置为有效,由 ACK的有效信号使其恢复为高。 ACKAcknowledge——低电平有效,这是一个外设的响应信号,指示 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,发 2 的功能 这种工作方式,使外设可以在单一的 8 位出新的中断请求。 ?10.5 方式 总线上,既能发送数据也能接收数据双向总线 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以前发生就行。 在输入和输出的情况下,都可以用中断方式。故 INTRIBFMASKSTBRDOBFMASKACKWR 其中,MASKINTE。 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 DX303H;8255A 命令口 MOV AL,10100000B;A 口,方式 1;B 口没用方式字 OUT DXAL;输出方式字 MOV AL,0DH;置发送中断允许 INTEA,1 OUT DX,AL;PC6 置“1” MOV AX,030H;发送数据的首地址 MOV ES,AX MOV BX00H MOV CX,3FFH;置发送字节数 MOV DX,300H;置 8255A 数据字地址 MOV AL,ES:〔BX〕;取 AL;写第一个数,产生第一个 OBF信号 INC BX;指第一个发送数据 OUT DX, 向下一个数 DEC CX;字节数-1 L:MOV DX,302H;8255A 状态口 IN ALDX;输入状态 AND AL,08H;检查有无 INTRA JZ L;若无中断请求则等待 MOV DX,300H;置数据口地址 MOV ALES:〔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 是否等于 0PC4,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
/
本文档为【口芯片按数据传送的方式可以分为并行接口和串行接口两大类】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索