并行接口课件_第1页
并行接口课件_第2页
并行接口课件_第3页
并行接口课件_第4页
并行接口课件_第5页
已阅读5页,还剩145页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

并行接口的特点

并行接口①并行接口最基本的特点:是在多根数据线上以数据字节(字)为单位与I/O设备或被控对象传送信息。如打印机接口,A/D,D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。与此对应的有串行接口,它是在一根线上以数据位为单位与I/O设备或通信设备传送信息。如CRT、键盘及调制解调器接口等。因此,并行口的“并行”含义不是指接口与系统总线一侧的并行数据线面言(这是当然的),而是指接口与I/O设备或被控对象一侧的并行数据线。并行口适应用于近距离传送的场合。由于各种I/O设备和被控对象多为并行数据线连接,CPU用并行口来组成应用系统很方便,故使用十分普遍。7.1并行接口的特点上一页返回7.1并行接口的特点②在并行接口中,除了少数场合(无条件传送)之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联络)信号线,以便进行互锁异步握手方式(即查询方式)的通信。握手信号线在有些接口芯片中是固定的,如Z-80PIO中提供Ready和Strobe进行握手联络。而在另一些接口芯片中,握手信号线是通过软件编程指定的,如在后面讲到的8255A那样。③在并行接口中,8位或16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入/输出8位或16位。上一页返回7.1并行接口的特点④并行传送的信息,不要求固定的格式,这与串行传送的信息有数据格式的要求不同。例如,起止式异步串行通信的数据帧格式是一个数据包括起始位、数据位、校验位和停止位等。

另外,从并行接口的电路结构来看,并行口有硬线连接接口和可编程接口之分。硬线连接接口的工作方式及功能用硬线连接来设定,用软件编程序的方法不能改变;如果接口的工作方式及功能可以用软件编程序的方法改变,就叫可编程接口。本章只讨论可编程并行接口。上一页返回7.2可编程并行接口

——8255A第七章并行接口7.2可

口所谓可编程实际上就是具有可选择性,并且是用编程的方法进行选择。例如,选择芯片中的哪一个或哪几个数据端口与外设连接;选择端口中的哪一位或哪几位作作输入,哪一位或哪几位作输出;选择端口与CPU之间采用哪种方式传送数据等,均可由用户在程序中写入方式字或控制字来进行指定。因此,它们具有广泛的适应性及很高的灵活性,在微机系统中得广泛应用。

对于各种型号的CPU都有与其配套的并行接口芯片.如Intel公司8255A(PPI),Zilog公司Z-80PIO,Motorola公司MC6820(PIA)等,它们的功能虽有差异,但工作原理基本相同。本节着重讨论8255A芯片。上一页返回7.2可

口1.8255A的基本特性:①8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片,它为Intel系列CPU与外部设备之间提供TTL电平兼容的接口,如打印机,A/D,D/A转换器,键盘,步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的PC口还具有按位置位/复位功能,为按位控制提供了强有力的支持。一、8255A的外部特性和内部结构上一页返回7.2可

口②8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送、应答方式(查询)传送和中断方式传送,与此相应,8255A设置了0方式、1方式以及2方式(双向传送)。③8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)来使用8255A构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。8255A在执行命令过程中和执行命令完毕之后,它所产生的状态保留在状态字中,以供查询。上一页返回7.2可

口④8255APC口的使用比较特殊,除特殊数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用,等等。这是8255的难点,学习时要特别注意。C口的使用情况请见后面关于“与外部设备的连接信号线”。

⑤8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这3类寄存器进行访问。上一页返回7.2可

口上一页返回图7.12、8255A的外部引线与内部结构

8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如所示。⑴外部引脚它作为接口电路的8255A具有面向CPU和面向外设两个方向的连接能力。因此,它的引脚分成两部分。

图7.1面向数据总线的有:

CS:选片信号,低电平有效,由系统的高位地址线I/O端口译码电路产生。CS为低电平时,才能对8255A

进行读写操作。当CS为高电平时,切断CPU与芯片的联系.

A1,A0:芯片内部端口地址信号,与系统地址总线低位相连,用来寻址8255A内部寄存器两位地址,可形成片内4个端口地址。ˉˉˉ①与系统总线的连接信号7.2可

口上一页返回7.2可

口面向控制总线的有:ˉ

RD:读信号,低电平有效。CPU通过执行IN指令使RD有效,即发读信号将数据或状态信号从8255A读至CPU。

WR:写信号,低电平有效。CPU通过执行OUT指令使WR有效,即发写信号,将命令代码或数据写入8255A。

ˉˉˉ上一页返回7.2可

RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态,一直维持到用方式命令才能改变,使其进入用户所需的工作方式。上一页返回7.2可

PA0~PA7:端口A的输入/输出线。

PB0~PB7:端口B的输入/输出线。

PC0~PC7:端口C的输入/输出线。

这24根信号线均可用来连接I/O设备和传送信息。其中,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。A口和B口作数据口输入/输出时,是8位一起行动的,即使是只用到其中的某1位,也要同时输入/输出8位。②与外部设备的连接信号上一页返回C口的作用与8255A的工作方式有关,它除了作数据口以外,还有其他用途,故C口的使用比较特殊,单独介绍如下:

a.作数据口

C口作数据口时和A口、B口不一样,它是把8位分成高4位和低4位两部分,高4位PC4~PC7与A口一起组成A组,低4位PC0~PC3与B口组成B组。因此,C口作数据口输入输出时,是4位一起行动,即使只使用其中的1位,也要4位一起输入或输出。7.2可

口上一页返回7.2可

b.作状态口

8255A在1,2方式下,有固定的状态字,是从C口读入的。此时,C口就是8255的状态口。而A口和B口不能作8255A本身的状态口用。

c.

作专用(固定)联络(握手)信号线8255A的1,2方式是一种应答方式,在传送过程中需要进行应答的联络信号。因此,在1,2方式下,C口的大部分引脚分配作了固定的联络线。虽然,A口和B口的引脚有时也作联络信号用,但它们不是固定的。上一页返回7.2可

口d.作按位控制用

C口的8个引脚可以单独从1个引脚输出高/低电平。此时,C口是作按位控制用,而不是作数据输出用。

C口的这些特殊应用,扩展了8255A的功能,以后将逐步介绍。上一页返回7.2可

口⑵内部结构8255A的内部结构如所示。

它由以下4个部分组成。

①数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。所有数据的发送与接收,以及CPU发出的命令字和从8255A来的状态信息都是该缓冲器传送的。上一页返回图7.2图7.27.2可

口②读/写控制逻辑读/写控制逻辑由读信号RD、写信号WR、选片信号CS及端口的选择信号A1A0等组成。读/写控制逻辑控制了总线的开放/关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输入数据从相应的端口送到CPU

8255A的基本操作及在PC系统和实验平台上的端口地址如所示。

ˉˉˉ上一页返回表7.2表7.27.2可

口③输入/输出端口A、B、C

8255A包括3个8位输入输出端口(port)。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中,PC口的8位可分为两个4位端口(0方式下),也可以分成一个5位端口和一个3位端口(2方式下)来使用。上一页返回④A组和B组控制电路控制A、B和C三个端口的工作方式,A组控制A口和C口的上半部(PC4~PC7),B组控制B口和C口的下半部(PC0~PC3)的工作方式和输入输出。A组、B组的命令寄存器还接收按位控制命令,以实现对PC口的按位置位/复位操作。7.2可

口上一页返回二、8255A的编程命令8255A的编程命令包括工作方式命令和对PC口的按位操作命令,它们是用户使用8255A来组建各种接口电路的重要工具,要熟练掌握。

由于这两个命令都送到8255A的同一个命令端口,故为了让8255A能识别是哪个命令,采用在命令代码中设置特征位的方法。若写入的命令字的最高位D7=1,则是工作方式命令;若写入的命令字D7=0,则是PC口的按位置位/复位命令。下面讨论这两个命令字的作用及格式。7.2可

口上一页返回7.2可

口1、方式命令作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。

格式:8位,其中最高位是特征位,一定要写1,其余各位的定义如下,应根据用户的设计要求填写1或。

上一页返回方式命令表从方式命令的格式可知:A组有3种方式(0方式、1方式、2方式),

B组有2种工作方式(0方式、1方式)。端口PC分成2部分,上半部属A组,下半部属B组。所有3个并行端口,置1指定为输入,置0指定为输出。利用工作方式命令的不同代码组合,可以分别选择A组和B组的工作方式和稳中有降端口是输入还是输出。7.2可

口上一页返回7.2可

例1:要把A口指定为1方式,输入,C口上半部定为输出;B口指定为0方式,输出,C口下半部定为输入,则工作方式命令代码是:1011001B或B1H。

若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为:MOVDX,303H;8255A命令口地址MOVAL,0B1H;初始化命令OUTDX,AL;送到命令口上一页返回7.2可

口2.按位置位/复位命令字作用:指定PC口的某一位(某一个引脚)输出高电平或低电平。格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0。上一页返回按位/置位命令字7.2可

口利用按位/置位命令可以使PC口的8根线中的任意1要置成高电平输出或低电平输出。上一页返回7.2可

例2:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。

将该命令的代码写入8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为:

MOVDX,303H;8255A命令口地址

MOVAL,05H;使PC2=1的命令字

OUTDX,AL;送到命令口上一页返回7.2可

口如果要使引脚PC2输出低电位,则程序段为:

MOVDX,303H;8255命令口地址

MOVAL,04H;使PC2=0的命令

OUTDX,AL;送到命令口按位置位/复位命令产生的输出信号,可作为控制开关的通/断,继电器的吸合/释放,电机的启/停等操作的选通信号。利用C口的按位控制特性还可以产生正负脉冲或方波输出,对外设进行控制。上一页返回

例3:利用8255的PC7产生脉冲,作打印机接口电路的数据选通信号,其程序段为:

MOVDX,303H;8255A命令口

MOVAL,00001110B;置PC7=0OUTDX,ALNOP;维持低电平

NOPMOVAL,00001111B;置PC7=1

OUTDX,AL7.2可

口上一页返回7.2可

例4:利用8255A的PC0产生方波,经滤波和功放后,送到喇叭,使产生不同频率的声音,其程序段为:

OUTSPKPROC

MOVDX,303H;8255A命令口

MOVAL,00001101B;置PC6=1OUTDX,AL

CALLDELAY1;PC6输出高电平维持的时间

MOVAL,00001100B;置PC6=0

OUTDX,ALCALLDELAY1;PC6输出低电平维持的时间

RET

OUTSPKENDP上一页返回7.2可

口若改变DELAY1的延时时间,即可改变喇叭发声的频率。上一页返回7.2可

口3.关于两个命令的讨论①方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。也就是说,凡是用到8255A,就一定要先初始化。②按位置位/复位命令)只是对PC口的输出进控制,使用它并不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。上一页返回7.2可

口④按位置位/复位的命令代码只能写入命令口,这个问题经常有人弄错。因为表面看起来,按位置位/复位命令是对C口进行操作,所以,也就心为可以把按位置位/复位的命令代码写到C口(数据口)。这是错误的想法,因为按位置位/复位是一个命令,它就要按命令的定义格式来处理每一位,如果把它写入C口,就会按C口的数据定义格式来处理。这两种定义完全不同的格式是不能互换的,所以,只能写到命令口,按命令定义来处理。

上一页返回7.2可

口③两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。在命令代码中没置特征位(标志位)是解决多个命令写入同一个命令口时如何进行识别而经常采用的方法之一。由于8255A两个命令的特征位不同,D7=1时,为工作方式命令;D7=0时,为按位置位/复位命令。因此,可以判断,命令代码的值等于、大于80H的,是工作方式命令;小于80H的,是按位置位/复位命令,并且奇数值是置位命令,而偶数值是复位命令。上一页返回7.2可

口4.A口和B口另一个有趣的使用方法A口、B口也可以按位输出高/低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现的方法也不同。C口按位输出是以命令的形式送到命令寄存器去执行的,而A口的按位输出是以送数据到A口、B口来实现的。其具体作法是:若要使某一位置高电平,则先对端门进行读操作,将读人的原输出值,”或”上一个字节,字节中该位为1,其他位为0,然后再送到同一端口,即可使该位置位。若要使某一位置低电平,则先读入1个字节,再将它“与”上一个字节,字节中使该位为0,其他位为1,然后再送到同一端口,即可实现对该位的复位而不影响其他位的状况。

上一页返回7.2可

口当然,能够这样作的条件是8255A的输出有锁行能力,若定义数据口为辅出而对其执行IN命令时,所读到的内容就是上次输出时锁存的数据,而不是读人外设送来的数据、上一页返回7.2可

例5:若要使PA7,位输出高/低电平.则用下列程序段:

使PA7输出高电平

MOVDX,300H;PA数据口地址

INAL,DX;读人A口原输出内容

MOVAH,AL;保存原输出内容

ORAL,80H;使PA7=1

OUTDX,AL;输出PA7

MOVAL,AH;恢复原输出内容

OUTDX,AL

上一页返回7.2可

口使PA7输出低电平

MOVDX,300H;A口地址

INAL,DX;读人端口原输出值

MOVAH,AL;保存原输出值

ANDAL,7FH;使PA7=0

OUTDX,AL;输出PA7

MOVAL,AH;恢复原输出值

OUTDX,AL

用这种方法不仅可实现使单独一位输出高/低电平,还可以使几位同时输出高/低电平。上一页返回7.2可

例6:使B口的PB1和PB0同时置位复位,其程序如下:

MOVDX,301H;PB数据口地址

INAL,DX;读入原输出值

MOVAH,AL;保存原输出值

ORAL,03H;使PB1PB0=11

OUTDX,AL;同时输出PB1PB0

ANDAL,0FCH;使PB1

PB0=00

OUTDX,AL;同时输出PB1PB0

上一页返回7.2可

三、8255A的工作方式在使用8255A时,除了对3个并行端口分配作输入或输出之外,还要考虑输入输出的方式。同样是输入(或输出),若方式不同,8255A的引脚(主要是C口的引脚)的信号功能定义不一样,工作时序也不一样,在接口设计时,硬件连接和软件编程也不一样,所以要研究和分析8255A的工作方式。8255A的工作方式与端口有关:

PA口有3种方式:0方式、1方式、2方式

PB口和PC口有2种方式:0方式、1方式上一页返回7.2可

口.8255A的3种工作方式,各有何特点?.分别用在什么场合?.以及在微机系统中如何进行连接?.这是并行接口电路硬件设计要解决的问题。.下面将分别进行讨论。上一页返回7.30方式及其应用

——8255A第七章并行接口7.3方式及其应用一、特点①1、0方式是一种基本输入/输出工作方式。通常不用联络信号,或不使用固定的联络信号,因此,所谓基本I/O方式是指查询方式传送,也包括无条件传送。这种方式不能采用中断方式和CPU交换数据。输出锁存,输入有三态缓冲能力而无锁存功能。0上一页返回7.3方式及其应用0②在0方式下,彼此独立的两个8位和两个4位并行口,共24根I/O线全部由用户支配,都能被指定作为输入或者作为输出用,共有16种不同的使用组态。

要特别强调的是,在0方式下,只能把C口的高4位为一组或低4位为一组同时输入或输出,不能再把4位中一部分作输入另一部分作输出,即可位一起行动。上一页返回7.3方式及其应用0③在0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,这与后面要讨沦的在1方式、1方式下设置固定的专用联络信号线不同。由于无固定的专用联络信号,因此也就在端门与I/O设备之间无固定的时序关系,由用户根据数据传送的要求决定输入/输出的操作过程。0方式也没有设置固定的状态字。上一页返回7.3方式及其应用0④是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或作输出,不能指定端口同时既作输入又作输出。

下面举两个例子说明8255A0方式的应用方法。一个是:采用不固定的联络信号线实现查询传送一个是:无条件传送上一页返回7.3方式及其应用0二、并行打印机接口设计

1、要求为某应用系统配置—个并行打印机接口,并且通过接口CPU采用查询方式把存放在BUF缓冲区的156个字符(ASCII码)送去打印。

2、分析由于打印接口直接面向的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。有关打印机接口标准Centronics的信号线定义和工作时序见8,3节。

上一页返回7.3方式及其应用0采用查询方式时,打印机与CPU之间传送数据的过程是:

①首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送数据。

②通过并行接口把数据送给标准插座DATA

BTT1~DATA

BIT8数据线上,此时数据并末进入打印机。

③再送出一个数据选通信号DATA

STROBE(负脉冲)给标准插座的1号引脚,把数据线上的数据打人到打印机的内部缓冲器。

上一页返回7.3方式及其应用0

④打印机在收到数据后,通过插座的11号引脚发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。等到输入的数据处理完毕(打印完1个字符或执行完1个功能操作),打印机撤消“忙”信号,即置BUSY=0。

⑤最后在10号引脚上送出一个回答信号ACK给主机,表示上一个字符已经处理完毕。如此重复工作,直到把全部字符打印出来。上一页返回7.3方式及其应用03.设计接口电路的设计包括硬件接口电路和软件驱动程序两部分。

①打印机接口电路打印机接口电路原理框图如上一页返回图7.3图7.37.3方式及其应用0该电路的设计思路是:按照Cemmnics标准对打印机接口信号线的定义,最基本的信号线需要8根数据线(DATABTT1-8),1根控制线(STB),1根状态线(BUSY)和1根地线。为此。采用8255A作打印机的接口比较合适。选用8255A的PA口作数据口输出8位打印数据,工作方式为0方式。分配PC7,作控制信号,由它产生和输出1个负脉冲作为数据选通信号DATA

STROBE,将数据线上的数据打人打印机缓冲器,这实际上是用软件的方法来产生选通信号。上一页返回7.3方式及其应用0另外,分配PC2作状态线来接收打印机的忙状态信号,这样就满足厂打印机Cenlmnics接口标准对主要信号线的要求(其他状态信号略)。很明显,根据被控对象的要求,这里使用了一对联络信号线,即STB和BUSY,并选定8255A的PC7和PC2两个引脚分别作这两个联络线使用。但是,并不是非选PC7和PC2不可,而是完全可以选C口的其他引脚米作联络线使用,即联络信号线不是固定的,这是0方式的特点。上一页返回7.3方式及其应用0

②接口驱动程序打印机驱动程序的流程是根据打印接口标准的时序要求拟定的,其程序框图如l所示。上一页返回图7.4图7.47.3方式及其应用0

驱动程序的程序段如下:

CODESEGMENTASSUMECS:CODE,DS:CODEORG100HSTART:MOVAX,CODE MOVDS,AX MOVDX,303H;8255A命令口

MOVAL,10000001B;工作方式字

OUTDX,AL;(A口0方式,输出C4—C7输出,C0—C3输入)上一页返回7.3方式及其应用0MOVAL,00001111B;PC7位置高,使STB=1OUTDX,ALMOVSI,OFFSETBUF;打印字符的内存首址

MOVCX,OFFH;打印字符个数

MOVDX,302H;PC口地址

INAL,DX;查BUSY=0?(PC2=0)ANDAL,04HJNZL;忙,则等待;不忙,则向A口送数

MOVDX,300H;PA口地址

MOVAL,[SI];从内存取数

OUTDX,AL;送数到A口上一页返回MOVDX,303H;8255A命令口MOVAL,00001110B;置STB信号为低(PC7=0)OUTDX,ALNOP ;负脉冲宽度(延时)

NOPMOVAL,00001111B;置STB为高(PC7=1)OUTDX,ALINCSI ;内存地址加1

DECCX ;字符数减1

JNZL;未完,继续MOVAX,4C00H;已完,退出

7.3方式及其应用0上一页返回7.3方式及其应用0INT21HBUFDB256个ASCII字符代码

CODEENDSENDSTART上一页返回7.41方式及其应用

——8255A第七章并行接口7.4方式及其应用1一、特点

①1方式是一种选通输入/输出方式或叫应答方式,因此,需设置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存能力.

②PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号用,对已经分配作联络信号的C口引脚,用户不能再指定作其他用途。上一页返回7.4方式及其应用1

③各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。

④输入/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。

⑤单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。上一页返回7.4方式及其应用1二、1方式下联络信号线的定义及其时序1方式下8255A引脚的功能分配和0方式不同,在于1方式分配了专用联络线和中断请求线,并且这些专用线在输人和输出时各不相同,PA口和PB口的也不相同。下面分别进行讨论。上一页返回7.4方式及其应用11.1方式下输入的联络信号线定义及时序(1)联络信号的定义因为输入是从I/O设备向8255A送数据进来,所以,I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传送过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号,如图所示。

上一页返回图7.8图7.87.4方式及其应用1STB:外设给8255A的“输人选通”信号,低电子有效。当它为低时,外设将数据送到8255A的A口或B口的输入数据寄存器。

IBF:8255A给外设的回答信号“输入缓冲器满”,高电平有效。当它为高时,8255A的输入缓冲器满,说明8255A已收到外设的数据,但尚未被CPU取走,通知外设不能送新数据;只有当它为低时,即CPU已读走数据,输人缓冲器变空时,才允许外设送新数据。

上一页返回7.4方式及其应用1INTR:8255A给CPU的“中断请求”信号,高电平有效.当它为高时,请求CPU从8255A读数。使INTR变高的3个条件是;当“输人选通”信号变高,即STB=1,即数据已打人8255A;“输入缓冲器满”信号有效(IBF=1),表示8255A已收到来自外设的数据,待CPU读取;中断请求被允许(INTE=1)。3个条件都具备时,才能向CPU发出中断请求。“中断允许”信号INTE是8255A为控制中断申请而设置的内部控制信号。当INTE=1,允许中断;当INTE=0,禁止中断。这要通过按位置位/复位命令来设置,不能自动产生这个控制信号。上一页返回7.4方式及其应用1上述在1方式下输入时的3个联络信号,对A口和B口都是需要的,但是,所分配的C口的引脚不同。A口的联络线分配是:PC4—STBA,PC5—IBFA,PC3—INTRAB口的联络线是:

PC2—STBB,PC1—IBFB,PC0—INTRB

上一页返回7.4方式及其应用1

(2)1方式输入的工作时序1方式的工作时序如和所示。其信号交接的过程如下:

①数据输入时,外设处于主动地位,当外设准备好数据并放致电数据线上后,首先发STB信号,由它把数据输入到8255A。②在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的“输入缓冲满”,禁止输入新数据。

上一页返回图7.9表7.3图7.9表7.37.4方式及其应用1③在STB的上升沿约300ns后,在中断允许(1NTE=1)的情况下IBF的高电子产生中断请求,使INTR上升变高,通知CPU,接口中已有数据,请求CPU读取。CPU接受中断请求后,转到相应的中断子程序。在子程序中执行IN指令,将缓冲器中的数据取走。若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位来判断有无数据可读。上一页返回7.4方式及其应用1④CPU得知INTR信号有效之后,执行读操作时,RD信号的下降沿使INTR复位,撤销中断请求,为下一次中断请求作好准备。RD信号的上升沿延时一段时间后清除IBF使其变低,使IBF=0,表示接口的输入缓冲器变空,允许外设输入新数据。如此反复,直至全部数据输入。上一页返回7.4方式及其应用1从上述分析,可知在l方式下,数据从I/O设备发出,通过8255A,送到CPU的整个过程有如下4步:CPU8255AI/O设备③INTR④RD①STB②IBF上一页返回7.4方式及其应用12.1方式下输出的联络信号线定义及时序(1)联络信号的定义因为输出是8255A把数据送到I/O设备去,所以,数据要由CPU准备好,并且先写到8255A,然后,再从8255A把数据输出去。这个传输过程中需使用一些联络信号。所以当A口和B口输出时,各指定了C口的3根线作为8255A与外设及CPU之间的联络信号如所示。上一页返回图7.10图7.107.4方式及其应用1

OBF:8255A给外设的“输出缓冲器满”信号,低电平有效。当它为低时,表示8255A的输出缓冲器满,即CPU已将数据写到8255A输出端口,通知外设来取数。

ACK:外设给8255A的“回答”信号,低电平有效。当它为低电平(ACK=0)时,表示外设已经从8255A的端口接收到了数据,它是对OBF的一种回答。ACK信号的下降沿延时一段时间后,使其变高(OBF=1),表示输出缓冲器空,为下一次输出作好准备。

上一页返回7.4方式及其应用1

INTR:8255A给CPU的“中断请求”信号,高电平有效。当它为高电平时,请求CPU向8255A写数。

INTR变高的条件是WR、OBF、ACK和INTE都为高电平,分别表示CPU已写完一个数据(而

WR=1),输出缓冲器已变空(OBF=1),回答信号已结束(ACK=1),外设已收到数据,并且允许中断(INTE=1)。只有在4个条件同时满足才能产生中断请求。上一页返回7.4方式及其应用1在1方式下,输出时分配给A口的联络线是:PC7—OBFA,PC6—ACKA,PC3—INTRAB口的联络线是:PC1—OBFB,PC2—ACKB,PC0—INTRB上一页返回7.4方式及其应用1(2)1方式输出的工作时序1方式输出的工作时序,如和所示。其信号交接的过程如下:

①数据输出时,CPU应先准备好数据,并把数据写到8255A输出数据寄存器。当CPU向8255A写完一个数据后,WR的上升沿使OBF有效,表示8255A的输出缓冲器已满,通知外设读取数据。并且WR使中断请求INTR变低,封锁中断请求。上一页返回图7.11表7.4表7.4图7.117.4方式及其应用1

②外设得到OBF有效的通知后,开始读数。当外设读取数据后,用ACK回答8255A,表示数据已收到。

③ACK的下降沿将OBF置高,使OBF无效,表示输出缓冲器变空,为下一次输出作准备。在中断允许(INTE=1)的情况下ACK的上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。上一页返回从上述分析,在1方式下,数据从CPU,通过8255A送到I/O设备有4步:

CPU8255AI/O设备④INTR①WD③ACK②OBF7.4方式及其应用1上一页返回7.4方式及其应用1三、1方式的状态

1.状态字的作用在1方式下8255A有固定的状态字。状态字为查询方式提供了状态标志位,如IBF和0BF,同时,由于8255A不能直接提供中断矢量,因此当8255A采用中断方式时,CPU也要通过读状态字来确定中断源,实现查询中断。例如状态字中的状态位INTRA和INTRB若置位,则分别表示A口和B口有中断请求。上一页返回7.4方式及其应用12.状态字的格式

状态字的格式如所示。

状态字有8位,分A和B两组,A组的状态位占高5位,B组的状态位占低3位,并且输入和输出时的状态字不相同。

上一页返回图7.12图7.127.4方式及其应用13.使用状态宇时要注意的几个问题

①状态字是在8255A输入/输出操作过程中由内部产生,从C口读取的,因此从C口读出的状态字是独立于C口的外部引脚的,或者说与C口的外部引脚无关。如在输入时,状态位PC4和PC2分别表示A口和B口在输入时的中断允许位INTEA和INTEB,而不是外部引脚PC4和PC2的联络信号STB的状态;在输出时,PC5和PC2分别表示A口和B口在输出时的中断允许位INTEA和INTEB,而不是外部引脚PC6和PC2的联络信号ACK的状态。上一页返回7.4方式及其应用1②状态字中供CPU查询的状态位有:输入时—IBF位和INTR位;输出时—OBF位和INTR位。但从可靠性来看,查INTR位比查IBF位或OBF位更可靠,这一点可从1方式下输入和输出的时序关系图得到证实。所以,在1方式下采用查询方式时,一般都是查询状态字中的INTR位。上一页返回7.4方式及其应用1③状态字中的INTE位,是控制标志位,控制8255A能否提出中断请求,因此它不是I/O操作过程中自动产生的状态,而是由程序通过按位置位/复位命令来设置或清除的。

上一页返回7.4方式及其应用1

例1:若允许PA口输入时,产生中断请求,则必须设置INTEA=1,即置PC4=1;若禁止它产生中断请求,则置INTEA=0,即置PC4=0,其程序段为:

MOVDX,303H;8255A命令口

MOVAL,00001001B;置PC4=1,允许中断请求

OUTDX,ALMOVAL,00001000B;置PC4=0,禁止中断请求

OUTDX,AL

上一页返回7.4方式及其应用1

四、1方式的接口方法在1方式下,首先根据实际应用的要求确定A口和B口是作输入还是输出,然后把C口中分配作联络的专用应答线与外设相应的控制或状态线相连。如果是采用中断方式,还要把中断请求线INTR接到微处理器或中断控制器;若采用查询方式,中断请求线可以空着不接,而去查状态字中的INTR状态位。上一页返回7.4方式及其应用11方式的中断处理,由于8255A不能直接提供中断矢量,所以一般都通过系统中的中断控制器来提供寻找中断服务程序入口地址的中断类型号。当然,对于不采用矢量中断的微处理器,可以将INTR线直接连到CPU的中断线(例如在单片机系统中)。

在1方式下CPU采用查询方式时,对输入,通过C口查IBF位或INTR位的状态。对输出,查OBF位或INTB位的状态。在实际编程中,一般都查INTB位,可靠性更高。上一页返回值得注意的是:在采用查询方式来查询INTR位时,一定要使中断允许位置位(INTE=1),否则,如果INTE=0,就会禁止中断,8255A就不能产生中断请求,因而状态字中的INTR位也就不能置位。下面通过两个例子来说明8255A1方式的应用。7.4方式及其应用1上一页返回五、两种方式并行传送接口设计

1.要求在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。7.4方式及其应用1上一页返回7.4方式及其应用12.分析根据题意,双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。上一页返回7.4方式及其应用13.设计(1)硬件连接根据上述要求,接口电路的连接如所示。甲机8255A是1方式发送,因此,把PA口指定为输出,发送数据,而PC7和PC6引脚分别固定作联络线OBF和ACK。乙机8255A是0方式接收数据,故把PA口定义为输入,另外,选用引脚PC7和PC3作联络线。

上一页返回图7.13图7.137.4方式及其应用1(2)软件编程接口驱动程序包含发送与接收两个程序。其程序流程图如所示。

虽然,两侧的8255A都设置了联络线,但有本质的差别:甲机8255A是1方式,其联络线是固定的不可替换;乙机的8255A是0方式,其联络线是不固定的,可以选择,比如可选择PC4和PC1或PC5、PC2等任意组合。

上一页返回图7.14图7.147.4方式及其应用1甲机发送程序段:

MOVDX,303H;8255A命令口

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

OUTDX,ALMOVAL,ODH;置发送中断允许INTEA=1OUTDX,AL;PC6=1MOVSI,OFFSETBUFS;设置发送数据区的指针

MOVCX,3FFH;发送字节数

MOVDX,300H;向A口写第一个数,产生第一个OBF信号上一页返回7.4方式及其应用1MOVAL,[SI];送给乙方,以便获取乙方的ACK信号

OUTDX,ALINCSI;内存地址加1

DECCX;传送字节数减1L:MOVDX,302H;8255A状态口

INAL,DX;查发送断请求INTRA=1?ANDAL,08H;PC3=1JZL;若无中断请求,则等待;

;若有中断请求,则向A口写数上一页返回7.4方式及其应用1

MOVDX,300H;8255APA口地址

MOVAL,[SI];从内存取数

OUTDX,AL

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

INCSI;内存地址加1

DECCX;字节数减1

JNZL;字节未完,继续

MOVAH,4C00H;已完,退出

INT21H;返回DOSBUFSDB1024个数据上一页返回7.4方式及其应用1在上述发送程序中,是查输出时的状态字的中断请求INTR位(PC3),实际上,也可以查发送缓冲器满OBF(PC7)的状态,只有当发送缓冲器空时,CPU才能送下一‘个数据,读者可根据情况,修改程序。

上一页返回7.4方式及其应用1乙机接收程序段:MOVDX,303H ;8255A命令口MOVAL,10011000B ;初始化工作方式字OUTDX,AL MOVAL,00000111B;置ACK=1(PC3=1)OUTDX,AL MOVDI,OFFSETBUFR ;设置接收数据区的指针MOVCX,3FFH ;接收字节数上一页返回L1:MOVDX,302H;8255APC口

INAL,DX;查甲机的OBF=0?(乙机的PC7=0)ANDAL,80H;即查甲机是否有数据发来JNZL1;若无数据发来,则等待;若有数据,则从A口读数MOVDX,300H;8255APA口地址INAL,DX;从A口读人数据MOV[DI],AL;存人内存MOVDX,303H;产生ACK信号,并发回给甲机7.4方式及其应用1上一页返回7.4方式及其应用1MOVAL,00000110B;PC3置“0”OUTDX,ALNOPNOPMOVAL,00000111B;PC3置“l”OUTDX,ALINCDI;内存地址加1DECCX;字节数减1JNZL1;字节未完,则继续上一页返回7.4方式及其应用1MOVAX,4C00H;已完,退出INT21H;返回DOSBUFRDB1024DUP(?)上一页返回7.4方式及其应用1

六、主从结构两级微机并行传送接口设计

1.要求

DRNI-A型磁盘表面粗糙度非接触测量仪的控制与测量系统由两级微机组成:以单片微机8031为核心的前级机,完成超精工作台的运动控制和数据采集任务;上位机PC微机作为主控,发布各种命令,进行数据处理和存盘、打印及显示任务。两者之间,采用并行口进行连接和通信,以便PC机把命令送到单片微机8031,并及时从单片微机8031取得各种操作的状态与数据。上一页返回2.分析从上述要求可知,主从结构并行接口应具有双向传送的功能,为此,选用8255A作双向接口的主芯片,并且把PA、PB和PC三个端口全部利用起来。3.设计(1)硬件设计首先按照设计要求对8255A的端口地址、引脚功能进行分配(见),然后将有关信号线连接起来。就构成了两级微机系统之间的接口,如所示。图7.15

表7.57.4方式及其应用1上一页返回图7.15

表7.5(2)软件设计首先对主从结构进行双向传送的程序设计思路进行分析,然后编写具体程序。PC机发送命令到单片机8031的过程:开机上电进入测量系统后,系统的测控操作命令就会在CRT上以菜单形式提供给用户,当用户用按键选定某个操作命令,就执行一个相应的子程序,这个子程序的主要内容就是PC机通过8255A端口发送命令代码到前级机8031单片机的8255A。前级机8031单片机通过8255A端口以中断方式接受命令代码,然后对命令代码进行解释并转到相应的子程序去执行,产生相应的操作。主机发给从机的命令见。

表7.67.4方式及其应用1上一页返回

表7.67.4方式及其应用1

①PC微机命令发送程序。下面是PC机发送“采样命令”的子程序:

DATASEGMENTPARAPUBLIC‘DATA’DB26DUP(0)MSGODB'PLEASEWAIT',0DH,0AH,'$DATAENDSCODESEGMENTPARAPUBLIC'CODE'SENDPROCFARASSUMECS:CODE,DS:DATA上一页返回7.4方式及其应用1START:PUSHDS;标准程序

MOVAX,0PUSHAXMOVAX,DATA;置DSMOVDS,AXMOVDX,303H;8255A命令口

MOVAL,OB1H;初始化方式字

OUTDX,ALMOVAL,ODH;置STB=1(PC6=1)OUTDX,AL上一页返回7.4方式及其应用1JMPSHORT$十2;延时

MOVDX,301H;8255APB口

MOVAL,OFH;粗糙度测

温馨提示

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

评论

0/150

提交评论