微型计算机系统原理及应用 第 10 章 并行接口芯片8255.pptx

上传人:修**** 文档编号:5940999 上传时间:2022-01-23 格式:PPTX 页数:60 大小:4.08MB
返回 下载 相关 举报
微型计算机系统原理及应用 第 10 章 并行接口芯片8255.pptx_第1页
第1页 / 共60页
微型计算机系统原理及应用 第 10 章 并行接口芯片8255.pptx_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《微型计算机系统原理及应用 第 10 章 并行接口芯片8255.pptx》由会员分享,可在线阅读,更多相关《微型计算机系统原理及应用 第 10 章 并行接口芯片8255.pptx(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 10 章 并行接口芯片8255本章讲述:10.1 可编程并行输入输出接口芯片8255-A的结构10.2 方式选择10.3 方式 0 的功能10.4 方式 1 的功能10.5 方式 2 的功能10.6 8255应用举例当CPU要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式和DMA方式。但是,不论采用哪一种方式,CPU总是通过接口电路(Interface)才能与外设连接。所以,接口电路一边与CPU连接,另一边与外设连接。在接口电路中,要有输入输出数据的锁存器和缓冲器,要有状态(如Ready,Busy等)和控制命令的寄存器,以便于CPU与接口电路之间采用应答方式(程序查询式)

2、来交换信息,也便于接口电路与外设之间传送信息。接口电路中还要有端口的译码和控制电路,以及为了与CPU用中断方式交换信息所需要的中断请求触发器、中断屏蔽触发器、中断优先权排队电路和能向CPU发出中断矢量的电路等。这样,才能解决CPU的驱动能力问题、时序的配合问题以及实现各种控制,保证CPU能正确可靠地与外设交换信息。 随着大规模集成电路技术的发展,生产了许多通用的可编程序的接口芯片。这些接口芯片按数据传送的方式可以分为并行接口和串行接口两大类。本章只讨论并行接口芯片,串行接口芯片放在第11章中介绍。通常并行接口芯片应该具有以下功能:(1) 两个或两个以上的具有锁存器或缓冲器的数据端口;(2) 每

3、个数据端口都有与CPU用应答方式交换信号所必需的控制和状态信息,也有与外设交换信息所必需的控制和状态信息; (3) 通常每个数据端口还具有能用中断方式与CPU交换信息所必需的电路;(4) 选片和控制电路;(5) 通常这类接口芯片可用程序选择数据端口,选择端口的传送方向(输入或输出或双向),选择与CPU交换信息的方法(查询或中断)等,故片中要有能实现这些选择的控制字寄存器,它可由CPU用输出指令来写入。所以,接口芯片在工作前必须要由CPU用输出指令对它编程初始化,以规定它的工作方式。 10.1可编程的并行输入输出接口芯片8255A-5的结构 Intel 8255A-5是一个为8080、8085和

4、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位数据输入缓冲器(输入没有

5、锁存)。通常端口A或B作为输入输出的数据端口,而端口C作为控制或状态信息的端口,它在方式字的控制下,可以分成两个4位的端口,每个端口包含一个4位锁存器,它们分别与端口 A和B配合使用,可以作为控制信号输出,或者作为状态信号输入。2. A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”。 A组控制电路控制端口A和端口C的上半部(PC7PC4)。B组控制电路控制端口B和端口C的下半部(PC3PC0)。3. 数据总线缓冲器 这是一个三态双向8位

6、缓冲器,它是8255A芯片与系统数据总线的接口。输入输出的数据,输出的指令以及CPU发出的控制字和外设的状态信息,也都是通过这个缓冲器传送的。4. 读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号(RD#,WR#,RESET,IO/M#)相连,由它控制把CPU的控制命令或输出数据送至相应的端口,也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。5. 一些控制命令(1) CS#(Chip Select)选片信号,低电平有效,由它启动CPU与8255A芯片之间的通信(Communication)。(2) RD#读信号,低电平有效。它控制8255A送出数据或状态信息

7、至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) 方式0(Mode 0)基本输入输出方式;(2) 方式1(Mode 1)选通输入输出

8、方式;(3) 方式2(Mode 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所示。要确定两个8255

9、A的工作方式,就要在输出控制字之前,先确定两个8255A的各自的控制字寄存器的端口地址。I/O端口地址由CPU地址总线的低8位A7A0确定。在本例中,端口地址的考虑如图10-5所示。8位地址线可选择256个不同端口,现在地址线最低两位A0、A1用于8255A内部的端口选择,另外6位A2A7就用于选择不同的8255A以及其他的外设,在本系统中外设少,故可用线选的方法来选择不同的8255A。因而,两个8255A的各个端口地址如表10-2所示。 当地址确定后,把地址总线的A0、A1直接接至8255A的A0、A1输入端,地址总线的其他6位A2A7应按地址的规定经译码后送至8255A的CS#输入端。若要

10、求8255A#1的各个端口处在如下的工作方式:端口A方式0输入端口B方式1输出端口C(上半部)PC7PC4输出端口C(下半部)PC3PC0输入则要用方式控制字=10010101B或95H。可用以下汇编程序来置上述工作方式:CWR:EQU0FBH;8255A#1控制字寄存器端口地址输出方式控制字MOVAL,10010101BOUTCWR,AL 10.2.3 按位置位/复位功能 端口C的8位中的任一位,可用一条输出指令来置位或复位(其他位的状态不变)。这个功能主要用于控制。能实现这个功能的控制字,如图10-6所示。若要使端口C的位3置位的控制字为00000111B,而使它复位的控制字为000001

11、10B。相应的汇编程序为:CWR:EQU0FBH;置位端口C位3MOVAL,00000111BOUTCWR,AL;复位端口C位3MOVAL,00000110BOUTCWR,AL注意: 使端口C按位置位或复位的控制字也是写入至控制字寄存器的。10.3 方式0的功能 10.3.1 方式0的基本功能 方式0是一种基本的输入或输出方式。在这种工作方式下,三个端口的每一个都可由程序选定作为输入或输出,但这种方式没有规定固定的用于应答式的联络信号线。其基本功能为:(1) 两个8位端口(A,B)和两个4位端口(端口C);(2) 任一个端口可以作为输入或输出;(3) 输出是锁存的;(4) 输入是不锁存的;(5

12、) 在方式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

13、 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仍作为数据的输入/

14、输出口,但同时规定端口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所示。其各个控制信号的意义为:S

15、TB#(Strobe)选通输入,低电平有效。这是由外设供给的输入信号,当其有效时,把输入装置来的数据送入输入锁存器。IBF(Input Buffer Full)输入缓冲器满,高电平有效。这是一个8255A输出至外设的联络信号。当其有效时,表示数据已输入至输入锁存器,它由STB#信号置位(高电平),而RD#信号的上升沿使其复位。 INTR(Interrupt Request)中断请求信号,高电平有效。这是8255A的一个输出信号,可用于作为向CPU的中断请求信号,以要求CPU服务。它是当STB#为高电平、IBF为高电平和INTE(中断允许)为高电平时被置为高,而由RD#信号的下降沿清除。INTE

16、A(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就清除中断请求,当R

17、D#信号结束后,数据已读至CPU,使IBF变低。表示输入缓冲器已空,通知外设可以输入新的数据。 10.4.3 方式1输出8255A的端口工作在方式1输出时,如图10-13所示。1. 主要的控制信号OBF#(Output Buffer Full)输出缓冲器满信号,低电平有效。这是8255A输出给外设的一个控制信号。当其有效时,表示CPU已经把数据输出给指定的端口,外设可以把数据输出。它由输出命令WR#的上升沿设置为有效,由ACK#的有效信号使其恢复为高。ACK#(Acknowledge)低电平有效,这是一个外设的响应信号,指示CPU输出给8255A的数据已经由外设接收。INTR中断请求信号,高电

18、平有效。当输出装置已经接收了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有效,通知外设接收数据

19、,实质上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)

20、 5位控制端口是用作端口A的控制和状态信息,如图10-15所示。各个信号的意义为:INTR中断请求信号,高电平有效。在输入和输出方式时,用来作为向CPU发出的中断请求信号。OBF#输出缓冲器满,低电平有效。这是对外设的一种命令信号,表示CPU已把数据输出至端口A。ACK#响应信号,低电平有效。ACK#的有效沿启动端口A的三态输出缓冲器,送出数据;否则,输出缓冲器处在高阻状态。ACK#的上升沿是数据已输出的回答信号。INTE1与输出缓冲器相关的中断屏蔽触发器,由PC6的置位/复位控制。STB#选通输入,低电平有效。这是外设供给8255A的选通信号,它把输入数据选通至输入锁存器。IBF输入缓冲器满

21、,高电平有效。它是一个控制信息,指示数据已进入输入锁存器。在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=IBFMAS

22、K#STB#RD#+OBF#MASK#ACK#WR#其中,MASK#=INTE。 10.5.3 方式2控制字当端口A工作于方式2时,端口B可以工作在方式0或方式1;可以作为输入,也可以作为输出。此时端口C的各位的功能如图10-17所示。 若要求8255A工作于如下所示的方式:则方式字ICW=11000110B=C6H在8255A方式控制命令字已经输出后,读端口C,则可得到如下的方式2状态字:若要允许方式2中断,则可用端口C的置位/复位命令:允许输出中断,置PC6,则控制字为00001101B。允许输入中断,置PC4,控制字为00001001B。10.6 8255应用举例下面以双机并行通信接口为

23、例,介绍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口用作输入,接收数据,联

24、络信号自行选择,可选择PC4和PC0作为联络信号线,PC4输入、PC0输出。虽然,两侧的8255A都设置了联络信号线,但它们是不同的,甲机8255A工作在方式1,其联络信号PC7、PC6是由方式1规定的不可替换;而乙机的8255A工作在方式0,其联络信号线是可以选择的,比如可选PC5、PC1或PC6、PC7等。(2) 软件编程 甲机发送程序:MOVDX,303H;8255A命令口MOVAL,10100000B;端口A,方式1;端口B没用方式字OUTDX,AL;输出方式字MOVAL,0DH;置发送中断允许INTEA1OUTDX,AL;PC6置“1”MOVAX,030H;发送数据的首地址MOVES

25、,AXMOVBX,00HMOVCX,3FFH;置发送字节数MOVDX,300H;置8255A数据字地址MOVAL,ES:BX;取第一个发送数据OUTDX,AL;写第一个数,产生第一个OBF#信号INCBX;指向下一个数DECCX;字节数-1L:MOVDX,302H;8255A状态口INAL,DX;输入状态ANDAL,08H;检查有无INTRAJZL;若无中断请求则等待MOVDX,300H;置数据口地址MOVAL,ES:EBX;取数据OUTDX,AL;输出INCBXDECCXJNZL;未发送完则循环MOVAX,4C00HINT21H;发送完,返回DOS在上述发送程序中,检查的是INTR位(PC3

26、)的状态,实际上,也可以检查发送缓冲器满OBF#位(PC7)的状态。 乙机接收程序:MOVDX,303H;置8255A命令口地址MOVAL,10011000B;端口A方式0,PC4输入、PC0;输出的方式字OUTDX,AL;输出方式字MOVAL,00000001B;PC0置1控制字OUTDX,AL;输出使ACK1MOVAX,040H;接收区首地址MOVES,AX MOVBX,00HMOVCX,3FFH;置字节数L1: MOVDX,302H;8255A PC口INAL,DX;查询甲机的OBF是否等于0(PC40?)ANDAL,10HJNZL1;无数据,等待MOVDX,300H;8255A数据口地址INAL,DX;输入数据MOVES:BX,AL;存入内存MOVDX,303HOUTAL,00000000B;PC0置“0”OUTDX,AL;产生ACK信号NOPNOPMOVAL,00000001B;PC0置“1”OUTDX,AL;ACK变高INCBXDECCXJNZL1;未接收完,循环MOVAX,4C00HINT21H;接收完,返回DOS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 标准材料 > 食品加工

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁