第九章 并行接口技术_第1页
第九章 并行接口技术_第2页
第九章 并行接口技术_第3页
第九章 并行接口技术_第4页
第九章 并行接口技术_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、8255A的结构和功能二、8255A的控制字三、8255A的工作方式四、8255A的应用举例第九章并行接口技术并行数据传输方式并行传输以计算机的字长为传输单位(通常是8位、16位或32位),一次传送1个字长的数据微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器

并行接口的典型硬件结构包括:1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路

并行接口概述

并行接口连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中,起到输出锁存或输入缓冲的作用。A组控制B组控制缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑A口上C口下C口B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线外设接口CPU接口内部逻辑第一节

8255A的工作原理一、8255A的结构和功能端口A和端口B可用作8位数据I/O口,端口C既可作为8位I/O口,又可作为两个4位I/O口,还常用来配合A口和B口工作,作为控制信号输出、或作为状态信号输入。

(一)数据端口A、B、C

8255A内部包含3个8位I/O端口A口、B口和C口,通过外部24根I/O线与外设交换数据或进行通信联络。其中C口可分为两个4位口使用。A口上C口下C口B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线(二)控制端口D(A组和B组控制电路)A组控制B组控制内部总线

8位端口,无对外引脚可用来和外设传送信息控制端口的内容决定A口、B口、C口的工作状态(输入或输出)

和工作方式(方式0、1、2),起控制作用。(三)数据总线缓冲器是双向三态的8位缓冲器,用作8255A和系统数据总线的接口。1)接收CPU送来的数据或控制字;2)外设传送给CPU的数据或状态信息缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑内部总线至数据端口至控制寄存器(四)读/写控制逻辑控制总线的开放与关闭;控制信息传送的路径和方向。A1A0=00,选中端口AA1A0=01,选中端口BA1A0=10,选中端口CA1A0=11,选中控制字寄存器端口D(五)端口寻址端口选择信号:当8255A用在8位数据总线的微处理器(8088)系统中时,端口选择信号输入端A1A0与地址总线的A1A0相连即可,例如端口地址为60H,61H,62H和63H。在16位数据总线的微处理器系统(8086)中,通常将端口选择信号输入端A1A0与地址总线的A2A1相连。8255A芯片的数据线D0~D7既可以接到系统数据总线的低8位,也可以接到系统数据总线的高8位。为了方便,通常接到系统数据总线的低8位,而用系统地址总线的A0=0作为该8255A的片选条件之一。这样CPU要求芯片内部的各个端口都使用偶地址。例如端口地址为F0H,F2H,F4H和F6H。方式0:基本输入输出方式(不带联络)适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式(带输入联络或输出联络)适用于查询和中断方式的接口电路方式2:双向选通方式(同时带输入联络和输出联络)适用于可双向传送数据的外设适用于查询和中断方式的接口电路(六)方式选择基本输入/输出(A/B/C口)选通输入或选通输出(A/B口)双向选通(A口)(六)方式选择8255ABCBDBRDWRD7~D0A0A1CSPBPAPC88I/OI/O44PB7~PB0PA7~PA0PC3~PC0PC7~PC4I/OI/O88I/OI/OPB7~PB0PA7~PA0PBPAPC控制或I/O控制或I/O88I/OI/OPB7~PB0PA7~PA0PBPAPCI/O控制方式0:基本输入输出方式1:选通输入输出方式2:双向总线二、8255A的控制字1、方式选择控制字8255A有3种基本的工作方式,在对8255A进行初始化编程时,应向控制寄存器写入方式选择控制字,以规定各端口的工作方式。方式选择控制字格式下C口I/O1=输入0=输出B口I/O1=输入0=输出B口方式0=方式01=方式1上C口I/O1=输入0=输出特征位D7=1A口方式:00=方式001=方式11x=方式2A口I/O1=输入0=输出例:在一个8086/8088系统中,有一片8255A芯片,其各个端口的地址分别为0F8H~0FBH,现要求各个端口的工作方式为:端口A方式0输入端口B方式1输出端口C(上半部)PC7~PC4输出端口C(下半部)PC3~PC0输入要求:进行初始化编程10011001分析:根据8255A工作模式可确定方式控制字95H初始化编程:MOVAL,95HOUT0FBH,AL2、端口C置位/复位控制字端口C常用作控制或应答信号,通过对8255A的控制口写入置位/复位控制字,可使C口的任一个引脚的输出单独置1或置0。置位/复位控制字格式1置位0复位无关位特征位D7=0000选中PC0001选中PC1

111选中PC7位选择例:要使端口C的bit3置位的控制字为:00000111B;

MOVAL,00000111BOUT0FBH,AL

而使端口C的bit3复位的控制字为:00000110B;

MOVAL,00000110BOUT0FBH,AL三、

8255A的工作方式方式0:基本输入/输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入/输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于双向传送数据的外设适用于查询和中断方式的接口电路1.方式0(基本输入输出方式)工作在方式0的端口,为单向传送端口,输入或输出

作为输入口相当于普通的三态门,作为输出口相当于普通的锁存器

CPU可利用工作在方式0的端口,直接对端口进行读写操作,实现CPU与外设间的数据传送。3个端口均可工作在方式0A口、B口、C口高4位和C口低4位互相独立,各端口之间没有必然的联系例如,要求8255A的A口和B口均工作于方式0,A口和下C口作输入口,B口和上C口作输出口,设8255A各端口地址为60H~63H,可用下列指令来设置这种工作方式:MOV AL,91H ;方式控制字10010001BALOUT 63H,AL ;方式控制字送控制寄存器

方式0的输入时序(数据来自外设)外设提供数据输入端口D0~D7-RD

-CS、A1A0请体会这里8255A的数据缓冲作用数据8255外设CPU内总线外总线方式0的输出时序(数据来自CPU)-WRCPU数据数据输出端口D0~D7

-CS、A1A08255A对CPU输出的数据进行锁存8255外设CPU内总线外总线

2.方式1(选通输入输出方式)

A口工作在方式1时,C口的某3根引脚作为A口的联络信号。

B口工作在方式1时,C口的某3根引脚作为B口的联络信号。工作在方式1的端口,为单向传送端口。在方式1下,C口作为A口、B口联络信号的引脚,其动作关系在芯片设计和制造时已固定,

不由用户自己安排,也不能编程改变。方式1输入引脚:端口APC4PC5PC3PA7~PA0INTEAIBFAINTRA-STBA中断允许触发器(PC4)输入缓冲器满信号表示A口已经接收数据数据选通信号表示外设已经准备好数据中断请求信号请求CPU接收数据外设数据征用C口3引脚和1个控制位方式1输入引脚:端口BPC2PC1PC0PB7~PB0INTEBIBFBINTRB-STBB中断允许触发器(PC2)输入缓冲器满信号表示B口已经接收数据数据选通信号表示外设已经准备好数据中断请求信号请求CPU接收数据外设数据征用C口3引脚和1个控制位IBF-输入缓冲器满信号,高电平有效,由8255A输出的状态信号,表示输入缓冲器已满,向外设指明不能再送入数据。INTE

-中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。各控制联络信号的意义

STB-数据选通输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器。INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当IBF=1、STB=1且INTE=1时,INTR=1。8255外设CPU内总线外总线方式1输出引脚:端口APC6PC7PC3PA7~PA0INTEA-OBFAINTRA-ACKA输出缓冲器满信号表示CPU已经输出了数据外设响应信号表示外设已经接收到数据中断请求信号请求CPU再次输出数据征用C口3引脚和1个控制位中断允许触发器(PC6)输出数据方式1输出引脚:端口BPC2PC1PC0PB7~PB0INTEB-OBFBINTRB-ACKB输出缓冲器满信号表示CPU已经输出了数据外设响应信号表示外设已经接收到数据中断请求信号请求CPU再次输出数据征用C口3引脚和1个控制位中断允许触发器(PC2)输出数据ACK-外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。各应答信号的意义:OBF-输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。INTE-中断允许信号。INTEA、INTEB是由用户对PC6、PC2按位置位实现的。INTR-中断请求信号,高电平有效。当ACK=1、OBF=1且INTE=1时,INTR=1。3、方式2(双向选通传输方式)8255A

只有A口可以工作在方式2下。端口工作在方式2时,C口的某5根引脚作为端口的联络信号。与方式0、方式1的单向传送不同,工作在方式2下的端口,具有双向传送功能。

A口工作在方式2下,C口未做联络信号的3条引脚可作为B口在方式1下的联络线,也可和B口一样工作在方式0下。由方式控制字决定其输入/输出。方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号输出联络信号输入联络信号方式2双向选通时序该例中:CPU先输出数据,再读取外设输入的数据

INTR

输出数据输入数据输入数据PA0~PA7D0~D7IBF

-WR-OBF-ACK-STB-RD输出数据4、C口状态字

8255A工作在方式0时,C口各位作输入输出用。当工作在方式1和方式2时,C口产生与外设的联络信号。此时。读取C口的内容可检查或测试外设的状态。C口的状态字如下:(1)方式1I/OI/OIBFA输入INTEAINTRAINTEBIBFBINTRBD7D6D5D4D3D2D1D0I/OI/O输出INTEAINTRAINTEBOBFBINTRBD7D6D5D4D3D2D1D0OBFA(2)方式2*INTE1INTRAINTE2IBFAD7D6D5D4D3D2D1D0OBFA**8255A应用举例(p227)

图中用8255A的PA口作为输出打印数据

口,工作于方式0,PC口高4位工作于输

出方式,PC7产生STB#信号;PC口低4位

工作于输入方式,PC2接收打印机的BUSY

信号。程序流程如右示。

CPU

PA0~7PC7PC2地

地BUSYSTBDATA0~71112~98255A打印机插座结束8255A初始化BUSY=0?送数送STB#开始YN第二节8255A的应用举例例:利用8255A作为打印机的连接接口,要求CPU通过接口采用查询方式,把存放在从BUF单元开始的内存缓冲区中的256个字符(ASCII码)输出给打印机去打印。假定8255A的端口地址范围为300H~303H,则8255A与打印机接口的初始化程序段如下:8255A与打印机接口的初始化程序段

INIT:MOVDX,303H;8255A的控制寄存器端口地址

MOVAL,10000001B;(A组方式0:A口输出, PC7~PC4输出;B组方式0: B口输出,PC3~PC0输入)

OUTDX,AL ;控制字送控制口寄存器

MOVAL,00001111B;C口置位/复位控制字,使PC7置位,即=1

OUTDX,AL ;C口置位/复位控制字送控制寄存器

对8255A初始化编程,并使PC7初始化状态置1,为发选通脉冲(负脉冲)准备打印一组字符的程序段如下:

MOVSI,OFFSETBUF;取字符串的内存首地址

MOVCX,0FFH;将打印字符长度作为循环次数L:MOVDX,302H;C口地址INAL,DX

;查询打印机的状态信息BUSY=0?(即PC2=0?)

ANDAL,00000100B

JNZ

L

;若BUSY=1,则循环等待;BUSY=0,则 向A口送出数据

MOVAL,[SI] ;否则,从内存中取一个字符准备输出

MOVDX,300H ;A口地址送DX OUTDX,AL ;将内存中的一个字符输出到A口

MOVDX,303H ;控制口地址

MOVAL,00001110H;设定C口按位操作控制字,置为低(PC7

=0)

NOP ;使负脉冲宽度延时

NOP MOVAL,00001101B;置为高电平(PC7

=1),

OUTDX,AL INCSI ;指向内存中下一个字符

DECCX ;字符数减1 JNZL

;若输出字符未完,则继续

HLT ;若输出字符已完,则暂停8255A应用举例(p235)1.要求在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。2.分析双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。3.设计(1)硬件连接根据上述要求,接口电路的连接如图所示。(2)软件编程接口驱动程序包含发送与接收两个程序。0方式1方式8255APA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC3PC0~2、4~5PB0~7未用8255A甲(发送)CPU乙(接收)CPUACKOBF两种方式的并行传送接口电路框图甲机发送程序段:MOVDX,203H;8255A命令口MOVAL,10100000B;初始化工作方式字OUTDX,ALMOVAL,00001101B;置发送中断允许INTEA=1OUTDX,AL;PC6=1MOVSI,OFFSETBUFS;设置发送数据区的指针MOVCX,3FFH;发送字节数MOVDX,200H;向A口写第一个数,产生第一个

OBF-信号MOVAL,[SI];送给乙方,以便获取乙方的ACK-信号OUTDX,AL

INCSI;内存地址加1DECCX;传送字节数减1L:MOVDX,202H;8255A状态口

INAL,DX;查发送断请求INTRA=1?

ANDAL,08H;PC3=1?

JZL;若无中断请求,则等待;;若有中断请求,则向A口写数

MOVDX,200H;8255APA口地址

MOVAL,[SI];从内存取数

OUTDX,AL;通过A口向乙机发送第二个数据

INCSI;内存地址加1

DECCX;字节数减1JNZL;字节未完,继续

MOVAH,4CH;已完,退出

INT21H;返回

BUFSDB1024个数据乙机接收程序段:(略)8255A应用举例(p241)例设甲、乙两机之间进行并行通信,共传送1KB数据。甲机一方的8255A的PA口采用方式2并用中断方式传送数据。乙机一方8255A的PA口与PB口采用方式0输出与输入,按查询方式传送数据。两机的CPU与接口之间都采用查询方式交换数据。硬件设计:接口电路的连接如图所示。甲机一侧的8255A的A口作双向传送,既作输出又作输入,它的中断请 求线由PC3接到8259A的IR2上。乙机一侧的

8255A的A口和B口是单向传送,分别作输出与输入。主机INTAINTRINTAINTRIR0IR2IR7系统总线2方式接口电路框图8259APB0~7PC3PC7PC4PC6PC5PC0~2PA0~7PA0~7PB0~7PC1PC7PC6PC0PC2~5OBFSTBACKIBF从机……8255A8255A ┆;8255A初始化MOVDX,303H;8255A控制口MOVAL,11000000B ;方式选择字:A口为方式2,输出;B口未用OUTDX,ALMOVAL,00001001B ;置位PC4,设置INTE2=1,A口输入中断允许OUTDX,ALMOVAL,00001101B ;置位PC6,设置INTE1=1,A口输出中断允许OUTDX,ALMOVSI,300H ;发送数据块内存首地址MOVDI,410H ;接收数据块内存首地址MOVCX,3FFH ;置发送与接收字节数┆AGAIN:STI ;CPU开中断

HLT ;等待中断

DECCX ;字节数减1 JNZAGAIN ;未完,继续

MOVAX,4C00H ;已完,推出

INT21H ;返回DOS

;中断服务程序T-R PROCFAR ;中断服务程序入口

ASSUME

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论