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

下载本文档

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

文档简介

第7章并行接口

7.1并行接口的特点CPU与外部设备的信息交换称为通信,若数据的各位是同时传送的,则称为并行通信。为CPU与外设采用并行通信的示意图CPU并行接口外设DBABCBDataCONTROLSTATUS一、并行接口的功能一般而言,一个并行接口电路应具有以下三方面的功能:1.

实现与系统总线的连接,提供数据的输入与输出功能,这是并行接口电路最基本的功能。2.实现与I/O设备的连接,具有与I/O设备进行应答的同步机构,保证有效地进行数据的收发。3.有中断请求与处理功能,使得数据的输入输出可以采用中断的方法来实现,这一功能对于需要采用中断传输的I/O是必需的。二、并行接口的外部信号并行接口电路的外部信号可分成两部分:与I/O设备相连的接口信号以及与CPU相连的接口信号。1.与I/O设备的接口信号(1)数据信息,用于实现接口电路与I/O设备的数据交换;(2)控制信息,用于接口电路向I/O设备提供控制信号;(3)状态信息,用于接口电路接收I/O设备提供的状态信号。2.与CPU的接口信号(1)数据信号,用于接口电路与CPU进行数据交换;(2)地址线及地址译码信号,用于选择不同的接口电路以及接口电路内部不同的寄存器;(3)读写控制信号,用于确定CPU当前对接口电路的操作性质是读还是写;(4)中断应答信号,用于实现中断请求和中断响应操作。三.并行接口的特点(1)在多根数据线上以字节为单位与IO设备或被控对象传送信息(2)在并行接口中,除了少数场合(如采用245,373等无条件传送)之外,一般都要求接口与外设之间设置并行数据线的同时,至少还要设置两根握手联络信号线,以便进行互锁异步握手方式(即查询方式)通信(3)在并行接口中,8位(或16位)是一起传输的,因此,并口与外设交换数据时,即使只用到其中的1位,也是一次输入/输出8位(或16位)(4)并行传送的信息,不要求固定的格式,而串行传送的信息有数据格式的要求不同。7.2可编程并行接口8255A一、8255A的内部结构和外部特性(一)8255A的外部引脚8255A的引脚432140371825141516171312111034......27D7D0A0A1RESETVCCGND986535368255APPI数据总线控制线电源线通道A通道B通道CCPU接口外设接口...PA7PA0...PB7PB0...PC7PC0A组控制数据总线缓冲器读/写控制逻辑B组控制RESETA0A1A组A口8位A组A口A组C口高位(4位)B组C口低位(4位)8位B组B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0图7-28255A内部结构框图D7~D0(二)8255A的内部结构译

器PA寄存器(8bit)8个读&写&/WR/RDD0-7A0-1/CS8个同时控制8个3态门内部选中线,用于选中1个存单元或IO端口外译

器/XIOW/XIORXA0-1XA5--98255芯片与系统总线连接及PA口读写控制原理图XD0-7I读出I写入/Y0/IOY38个8个I输入I输出PA0-7外设数据线A组控制寄存器1.三个8位的I/O端口A,B,C三个端口都可以作为数据I/O口使用。有时,A,B口作为数据I/O,而C口作为控制或状态端口,分为上、下两部分,配合A,B口工作。2.A组,B组控制部件A组包括C口的高4位:PC4~PC7A口:PA0~PA7B组包括C口的低4位:PC0~PC3B口:PB0~PB7

A组,B组的控制寄存器,接收CPU写入的控制字,规定两组的工作方式。3.数据总线缓冲器

三态双向8位缓冲器,是8255A与CPU之间的数据接口,传送CPU与8255A之间所有的控制,状态和数据信息。4.读/写控制逻辑接受CPU的控制命令,向片内各部件发出操作命令。片选信号,接CPU高位地址的译码输出。读信号,有效,CPU读8255A的数据或状态信息。RESET:复位信号,有效时,清除8255A中的控制寄存器,置各端口为输入方式。A1,A0:端口选择信号A1A000端口A口01B口10C口11控制字寄存器表7-18255A端口选择和基本操作A1A0输入操作(CPU读)00010数据总线通道A01010数据总线通道B10010数据总线通道C00100数据总线通道A01100数据总线通道B10100数据总线通道C输出操作(CPU写)11100数据总线控制字寄存器1数据总线三态11010非法条件断开功能110数据总线三态8255A端口选择和基本操作如表7-1所示二、8255A的控制字1.工作方式控制字D7D6D5D4D3D2D1D0B组

端口C(下半部)

1=输入,0=输出

端口B

1=输入,0=输出

方式选择

0=方式0,1=方式1A组

端口C(上半部)

1=输入,0=输出

端口A

1=输入,0=输出

方式选择

00=方式0,01=方式1,1=方式2方式设置标志

1=有效例:MOVAL,10010101BOUTCWR,AL;CWR为控制字寄存器地址则:A口:方式0输入B口:方式1输出C口PC4~PC7:方式0输出C口PC0~PC3:方式1输入例:若把A口设定为方式1,输出,C口上半部定为输入;B口设定为方式0,输入;C口下半部设定为输出。则方式选择控制字应为:10101010B=AAH。设控制口地址为303H,于是初始化的程序段为:MOV DX,303H ;8255A的控制口地址MOV AL,0AAH ;控制字OUT DX,AL ;控制字写入控制端口2.端口C的置位/复位控制字D7D6D5D4D3D2D1D0位的置位/复位

1=置位,0=复位位选择

D3D2D1通道C位按位置位/复位控制

标志0=有效000位0001位1010位2011位3100位4101位5110位6111位7不使用设置为000例如,可以用以下指令置位PC3MOVAL,00000111BOUTCWR,AL可以用以下指令复位PC3MOVAL,00000110BOUTCWR,AL7.38255A的工作方式0及应用1.方式0(基本的I/O方式)特点(1)方式0的功能方式0是一种基本的I/O方式(外设数据直通方式)。三个端口的每一个都可由指令选择作为输入或输出,没有规定固定的用于应答式的联络信号。一旦外设送出数据后,(稍经过延迟t1R)就能直接流入8255输入端口;CPU对8255输出端口写入数据后,(稍经过延迟tWB)能直接流出到输出线上。(2)方式控制字100D4D30D1D0

A口、B口、C口上半部分,C口下半部分的输入、输出共有16种不同的组合。译

器PA端口寄存器(8bit)8个读&写&/WR/RDD0-7A0-1/CS8个同时控制8个3态门内部选中线,用于选中1个存单元或IO端口外译

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式0输入XD0-7I读出I写入/Y0/IOY38个8个I流入I流出PA0-7外设数据线A组控制逻辑10(3)方式0的时序方式0的输入时序tRRRD数据有效PA7-0D7~D0t1RtHRtRAtARtRDtDF方式0输入时序图CS,A1,A0译

器PA端口寄存器(8bit)8个读&写&/WR/RDD0-7A0-1/CS8个同时控制8个3态门内部选中线,用于选中1个存单元或IO端口外译

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式0输出XD0-7I读出I写入/Y0/IOY38个8个I流入I流出PA0-7外设数据线A组控制逻辑01方式0的输出的时序tWWWR输出tDWtWDtWAtAWtWB图9-7方式0输出时序图CS,A1,A0数据有效D7~D0数据有效tWWWR输出tDWtWDtWAtAWtWB图9-7方式0输出时序图CS,A1,A0数据有效D7~D0tWWWRPA7-0tDWtWDtWAtAWtWB图9-7方式0输出时序图CS,A1,A0数据有效D7~D0数据有效

2.方式0的应用例1.设计一个国际Centronics标准插座的打印机接口分析:参看课本P188图8.16和8.17的打印机Centronics标准插座和并口DB25插座的连接图。这是国际定义的标准信号线(市场上的打印线就是一端连接PC机并口DB25插座,另一端连接打印Cenreonics标准插座)此处把问题最简单化,只保留数据信号和/STROBE与BUSY一对最基本的握手联络信号。/STROBE:并口发给打印机,实现把数据线上的数据写入打印机BUSY:打印机发给并口,表示打印机是否空闲(一)硬件设计:给出系统总线到并口插座DB25之间的并口电路18~25111PC7PA0-7PC2GND/CSA1A0D1-7/RD/WRXA1XA0XD0-7/XIOR/XIOW译码器300H-303HXA9-28255A2~9DATA1-8/STBBUSYGND(二)软件设计8255初始化向PA口送一个字符发/STB有效负脉冲把字符送入打印机修改打印缓冲区地址指针修改打印缓冲区剩余字符个数BUSY=0?字符数=0?NNYYBUFDB100DUP(?);定义打印缓冲取,用来存放打印字符START:MOVDX,303H;8255初始化MOVAL,10000001B;A口输出,PC4-7输出,PC0-3输入OUTDX,ALMOVAL,00001111B;PC7设置1,产生/STB无效信号OUTDX,ALMOVSI,offsetBUF;设置打印缓冲区地址指针SIMOVCX,lengthBUF;设置打印字符个数寄存器CXL:MOVDX,302H;查询PC2=1?(即BUSY=1?)INAL,DXANDAL,04HJNZL;是,表示忙,回L循环等待MOVDX,300H;将打印缓冲区当前字符送到PA口输出MOVAL,[SI]OUTDX,ALMOVDX,303H;在PC7上软件产生/STB负脉冲信号MOVAL,00001110BOUTDX,ALNOPNOPMOVDX,00001111BOUTDX,ALINCSI;修改打印机缓冲区地址指针DECCX;字符个数寄存器减1JNZL;没有减到0,表示还有字符需要打印,继续下一个例2.设计一个3*4矩阵键盘及其接口,使得计算机能够通过扫描方法判断是那个按键按下分析:矩阵键盘的按键排成n行m列,每个按键占据行列的一个交叉点,需要的输入输出线为n+m,最大按键数为n×m。显然,在按键较多的应用场合,矩阵键盘可以减少与微机系统接口的连线,是一般微机常用的键盘结构。 在扫描每一行时,读列线,若读得的结果为全“1”,说明没有键按下,即尚未扫描到闭合键;若某一列为低电平,说明有键按下,而且行号和列号已经确定。然后用同样的方法,依次向列线扫描输出,读行线。如果两次所得到的行号和列号分别相同,则键码确定无疑,即得到闭合键的行列扫描码。(一)硬件设计为一个3×4矩阵键盘及其接口电路。图9-213×4矩阵键盘的接口PA0PB0PA1PA2PB1PB2PB3键0123567490A0B8行0行1行3+5V列0列1列2列3图9-213×4矩阵键盘的接口PA0PB0PA1PA2PB1PB2PB3键0123567490A0B8图9-21

3×4矩阵键盘的接口/CSA1A0D1-7/RD/WRXA1XA0XD0-7/XIOR/XIOW译码器A0H-A3HXA9-28255A(二)软件设计右图是实现键处理工作的程序流程。设中8255A的端口地址为A0H(A口)、A1H(B口)、A2H(C口)和A3H(控制口),键处理的程序如下:Y图

键处理程序流程初始化判别按键确已按下?确定键值等待键释放键值处理N键处理程序流程判别按键确已按下?确定键值等待键释放键值处理NYMOV AL,82HOUT0A3H,AL ;8255A初始化,选择方式0,A口为输出,B口为输入MOV AL,0OUT 0A0H,AL ;使各行线接地(为0电平)LOP1:IN AL,0A1H ;读列线状态AND AL,0FH ;屏蔽无用位,保留列线位CMP AL,0FH ;有列线为0电平吗?JZ LOP1 ;无,则继续查列线状态,等待键按下;确定按键闭合,等待键按下;识别按下的键BEGIN:MOV BL,3 ;行数送BLMOV BH,4 ;列数送BHMOVAL,11111110B;起始扫描码,第一次使行线0接地MOV CH,0FH ;设置屏蔽码MOV CL,0FFH ;取键号初值为FFHLOP2:OUT 0A0H,AL ;逐行扫描ROL AL ;修改扫描码,准备扫描下一行MOV AH,AL ;扫描码送AH保存IN AL,0A1H ;读列线数据AND AL,CL ;屏蔽无用位,保留列线位CMP AL,CL ;有列线接地吗?JNZ LOP3 ;有,转去找该列线ADD CH,BH ;否,修改键号,使适合下一行MOV AL,AH ;扫描码送ALDEC BL ;行数减1JNZ LOP2 ;未扫描完,转下一行JMP BEGINLOP3:INC CH ;键号加1RCR AL ;带进位循环右移一位JCLOP3;C=1,说明该列未接地,转去检查下一列线MOV AL,CH ;是,键号送ALCMP AL,0 ;是0号键吗?JZ KEY0 ;转0号键处理程序CMP AL,1 ;是1号键吗?JZ KEY1 ;转1号键处理CMP AL,0BH ;是B号键吗?JZ KEYB ;转B号键处理(1)方式1的功能7.48255A的工作方式1及应用1.方式1(选通的I/O方式)特点A口、B口作为数据I/O口,同时规定C口的某些位作为控制或状态信号配合A口、B口的I/O。外设送出数据后,还必须对8255发送STB选通信号才能使数据流入8255输入端口;CPU对8255输出端口写入数据后,虽然能直接流出到输出线,但必须要外设发回一个ACK才能使8255撤销/OBF和INTR,以便CPU知道何时可以写入新的数据。(2)方式1输入方式1的输入组态8STBAIBFAINTRAPC3PC5PC4PA7~01011I/O方式1(端口A)方式1端口A输入PC6,71=输入0=输出A组方式控制字PC6,7I/OINTEAD7D6D5D4D3D2D1D02译

器PA端口寄存器(8bit)8个读&写&/WR/RDD0-7A0-1/CS8个同时控制8个3态门内部选中线,用于选中1个存单元或IO端口外译

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式1输入XD0-7I读出I写入/Y0/IOY38个8个I流入I流出PA0-7接外设数据线A组控制逻辑/STBA(PC4)IBFA(PC5)INTRA(PC3)接8259外设中断请求线IRi0

表示控制生效或失效方式1(端口B)IBFBINTRBPC0PC1PB7~0INTEB端口B输入端口B方式1B组方式控制字1

11PC2联络信号的定义/STB(Strobe):选通输入IBF(InputBufferFull):输入缓冲器满INTR(InterruptRequest):中断请求信号INTEA(InterruptEnableA):A口中断允许信号,通过对PC4的按位置位/复位来控制(PC4=1,中断允许)。INTEB(InterruptEnableB):由PC2的置位/复位控制。方式1的输入时序tSTtSTBtSITtRIBtRITtPStPHSTBIBFRD来自外设的输入数据INTRtSTtSTBtSITtRIBtRITtPStPHSTBIBFRD来自外设的输入数据INTR方式1输入时序图(3)方式1输出方式1的输出组态INTRAPC3PC6PC7PA7~01010I/O方式1输出端口A端口A方式1PC4,51=输入0=输出A组方式1控制字PC4,5I/OINTEA2端口A输出译

器PA端口寄存器(8bit)8个读&写&/WR/RDD0-7A0-1/CS8个同时控制8个3态门内部选中线,用于选中1个存单元或IO端口外译

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式1输出XD0-7I读出I写入/Y0/IOY38个8个I流入I流出PA0-7接外设数据线A组控制逻辑/ACKA(PC6)/OBFA(PC7)INTRA(PC3)接8259外设中断请求线IRi0

表示控制生效或失效方式1输出端口BINTRBPC0PC2PC1INTEB端口B输入端口B方式1B组方式1控制字1

10PB7~0联络信号的定义OBF(OutputBufferFull):输出缓中器满信号ACK(Acknowledge):外设应答信号INTR(InterruptRequest):中断请求信号INTEA(InterruptEnableA):由PC6置位/复位控制INTEB(InterruptEnableB):由PC2置位/复位控制方式1的输出时序tAOBtWOBtWITtAKtAITtWB输出WROBFACKINTR图9-11方式1输出时序图tAOBtWOBtWITtAKtAITtWB输出WROBFACKINTR图9-11方式1输出时序图2.方式1的应用例3.查询方式的双机并行通信甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用方式1工作,乙机一侧的8255A采用方式0工作。两机的CPU与接口之间都采用查询方式交换数据。甲机8255A是方式1发送,因此,把PA口指定为输出,发送数据,而PC7和PC6引脚分别固定作联络线。乙机8255A是方式0接收数据,故把PA口定义为输入,另外,选用引脚PC7和PC3作联络线。虽然,两侧的8255A都设置了联络线,但有本质的差别:甲机8255A是方式1,其联络线是固定的,不可替换的;乙机的8255A是方式0,其联络线是不固定的,可以选择,比如可选择PC4和PC1、或PC5、PC2等任意组合。(1)硬件接口电路设计接口电路的连接如图所示。2.2.PA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1未用

查询方式的双机地通信OBFACKPA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1未用PA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1乙(接收)甲(发送)未用OBFACK/CSA1A0D1-7/RD/WR/CSA1A0D0-7/RD/WRXA1XA0XD0-7/XIOR/XIOWXA1XA0XD0-7/XIOR/XIOW译码器300H-303HXA9-2译码器300H-303HXA9-2(2)接口软件编程接口驱动程序包含发送程序和接收程序。①甲机发送程序段:MOV DX,303H ;8255A命令口

MOV AL,10100000B ;初始化工作方式字

OUT DX,AL

MOV AL,0DH ;置发送中断允许INTEA=1

OUT DX,AL ;PC6=1

MOV SI,OFFSETBUFS ;设置发送数据区的指针

MOV CX,3FFH ;发送字节数

MOV DX,300H ;向A口写第一个数,产生第 ;一个OBF信号

MOV AL,[SI] ;送给乙方,以便获取乙方的 ;ACK信号

OUT DX,AL

INC SI ;内存地址加1

DEC CX ;传送字节数减1MOV DX,302H ;8255A状态口

IN AL,DX ;查发送中断请求INTRA=1?

AND AL,08H ;PC3=1?

JZ L ;若无中断请求,则等待;

;若有中断请求,则向A口写数

MOV DX,300H ;8255APA口地址

MOV AL,[SI] ;从内存取数

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

INC SI ;内存地址加1

DEC CX ;字节数减1

JNZ L ;字节未完,继续

MOV AH,4C00H ;已完,退出

INT 21H ;返回DOS

BUFS DB1024个数据L:②乙机接收程序段:MOV DX,303H ;8255A命令口

MOV AL,10011000B ;初始化工作方式字

OUT DX,AL

MOV AL,00000111B ;置ACK=1(PC3=1)

OUT DX,AL

MOV D

温馨提示

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

评论

0/150

提交评论