第7章并行接口.ppt

上传人:夺命阿水 文档编号:750548 上传时间:2023-11-07 格式:PPT 页数:39 大小:1.27MB
返回 下载 相关 举报
第7章并行接口.ppt_第1页
第1页 / 共39页
第7章并行接口.ppt_第2页
第2页 / 共39页
第7章并行接口.ppt_第3页
第3页 / 共39页
第7章并行接口.ppt_第4页
第4页 / 共39页
第7章并行接口.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第7章并行接口.ppt》由会员分享,可在线阅读,更多相关《第7章并行接口.ppt(39页珍藏版)》请在课桌文档上搜索。

1、第7章 并行接口,7.1 并行接口的特点,并行接口是指接口电路与I/O设备之间采用多根数据线并行传输数据。相对于串行接口一根线传输数据来说,并行接口有如下基本特点。在接口与I/O设备之间的多根数据线上传输字节、字或双字宽度数据,传输速率较快。除数据线外,还有握手联络信号线实现异步互锁协议,提高数据传输的可靠性。所传输的并行数据的格式、传输速率和工作时序,均由被连接或控制的I/O设备操作的要求决定,没有固定的规定。在并行数据传输过程中,一般不作差错检验和传输速率控制。并行接口用于近距离传输。从上述特点可以得知,并行接口是一种多线连接、使用自由、应用广泛、适于近距离传输的接口。,7.2 组成并行接

2、口电路的元器件,并行接口电路的形式可有多种选择,可采用一般的IC电路、可编程的并行接口芯片及可编程的逻辑阵列器件。1一般的IC芯片三态缓冲器74LS244、锁存器74ALS373,这类并行接口可用于对一些简单的I/O设备进行控制。2可编程并行接口芯片可编程并行接口芯片(如82C55A)功能强、可靠性高、通用性好,并且使用灵活方便,因此成为并行接口设计的首选芯片。本章将重点讨论基于可编程并行接口芯片的并行接口。3CPLD/FPGA器件采用CPLD/FPGA器件,可以实现复杂的接口功能,并且可以将接口中的辅助电路,如I/O端口地址译码电路都包含进去,这是今后接口设计的发展趋势。CPLD和FPGA是

3、大规模或超大规模可编程逻辑阵列芯片,采用这种方案设计接口电路时,需要使用硬件描述语言(如Verilog HDL)和专门的开发工具,显然所涉及的知识面更广,因而难度稍有增加。,7.3 可编程并行接口芯片82C55A,82C55A可编程外围接口(Programmable Peripheral Interface)是一个通用型、功能强且成本低的接口芯片。82C55A可把任意一个TTL兼容的I/O设备与微处理器相连接(通过总线)。,7.3.1 82C55A的外部特性和内部寄存器,182C55A外部特性82C55A是一个单+5V电源供电、40个引脚的双列直插式组件,其外部引脚如图7.1所示。其引脚也分为

4、面向系统总线和面向I/O设备信号线两部分。(1)面向系统总线的信号线(2)面向I/O设备的信号线(3)C端口的使用特点C端口的使用比较特殊,它除做数据端口外,还可做状态端口、专用联络线和作按位控制用。具体用途如下。做数据端口。做状态端口。做专用(固定)联络信号线。做按位控制用。(C端口是做按位控制用),282C55A内部寄存器,82C55A内部包含4个部分:数据总线缓冲器;读/写控制逻辑;输入/输出端口PA、PB、PC;A组和B组控制电路,其内部结构如图7.2所示。“读/写控制逻辑”中设置有命令寄存器,接收CPU发来的命令字。3个8位输入/输出端口(Port),提供给用户连接I/O设备使用。每

5、个端口包含一个数据输入寄存器和一个数据输出寄存器。输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。A组和B组两个控制电路的作用是A组控制A端口和C端口的上半部(PC7PC4)的工作方式和输入/输出,B组控制B端口和C端口的下半部(PC3PC0)的工作方式和输入/输出。,3.82C55A的端口地址,82C55A的应用分两种情况:一是系统配置的并行接口,二是用户扩展的并行接口。系统配置的82C55A端口地址由系统分配,见表3.1,其中,3个数据端口分别是PA口为60H,PB口为61H,PC口为62H。命令与状态口为63H。用户扩展的82C55A端口地址由用户选定,见表3.3,其中,PA口

6、为300H,PB口为301H,PC口为302H,命令与状态口为303H。,7.3.2 82C55A的工作方式,接口芯片82C55A总的来说是并行接口,可设置3种工作方式,从而扩展了82C55A的使用功能。82C55A的3种工作方式,由于其功能不同、工作时序及状态字不一样。,10方式基本输入/输出方式,0方式的特点:把端口置成输入或输出;不要求固定的联络(应答)信号,无固定的工作时序和固定的工作状态字;适用于无条件或查询方式与CPU交换数据,不能采用中断方式交换数据。因此,0方式使用起来不受什么限制。0方式的功能:A端口做数据端口(8位并行);B端口做数据端口(8位并行);C端口做数据端口(4位

7、并行,分高4位和低4位),或做位控,按位输出逻辑1或逻辑0。,21方式选通输入/输出方式,1方式的特点:82C55A一次初始化只能把某个并行端口置成输入或输出;要求专用的联络(应答)信号,有固定的工作时序和专用的工作状态字。适用于查询或中断方式与CPU交换数据,不能用于无条件方式交换数据。1方式的功能:A端口做数据端口(8位并行);B端口做数据端口(8位并行);C端口可有4种功能:做A端口和B端口的专用联络信号线;做数据端口,未分配做专用联络信号的引脚可做数据线用;做状态端口,读取A端口和B端口的状态字;做位控,按位输出逻辑1或逻辑0。,32方式双向选通输入/输出方式,2方式的特点:一次初始化

8、可将A端口置成既输入又输出,具有双向性;要求有两对专用的联络信号,有固定的工作时序和专用的工作状态字;适用于查询和中断方式与CPU交换数据,特别是在要求与I/O设备进行双向数据传输时很有用。2方式的功能:A端口做双向数据端口(8位并行);B端口做数据端口(8位并行);C端口有4种功能,与1方式类似。,7.3.3 82C55A的编程模型,82C55A的编程模型包括内部可访问的命令寄存器、数据寄存器以及相应的命令字和端口地址,用户通过它的编程模型进行并行接口的程序设计。82C55A的命令寄存器和数据寄存器在前面7.3.1中已经介绍过,本节对82C55A的两个编程命令进行介绍。82C55A的两个编程

9、命令是工作方式命令和按位操作(置位/复位)命令,它们是用户使用82C55A来组建各种接口电路的重要工具。下面讨论这两个命令的功能及格式。,1方式命令,方式命令,又称初始化命令。显然,这个命令应出现在82C55A开始工作之前的初始化程序段中。方式命令的功能与格式如下。功能:指定82C55A的工作方式及其方式下82C55A三个并行端口的输入或输出功能。格式:8位命令字的格式与含义,如图7.3所示。,1方式命令,例如,把A端口指定为1方式,输入;把C端口上半部指定为输出。把B端口指定为0方式,输出;把C端口下半部指定为输入,则工作方式命令代码是10110001B或B1H。若将此方式命令代码写到82C

10、55A的命令寄存器,即实现了对82C55A工作方式及端口功能的指定,或者说完成了对82C55A的初始化。汇编语言初始化的程序段如下。MOV DX,303H;82C55A命令口地址MOV AL,0B1H;初始化命令OUT DX,AL;送到命令口/C语言初始化程序段如下。outportb(0 x303,0 x0B1);,2按位置位复位命令,按位控制命令要在初始化以后才能使用,故它可放在初始化程序段之后的任何位置。按位置位复位命令的功能与格式如下。功能:指定82C55A的C端口8个引脚中的任意一个引脚,输出高电平或低电平。格式:8位命令字的格式与含义,如图7.4所示。,2按位置位复位命令,例如,若命

11、令C端口的PC2引脚输出高电平,去启动步进电机,则命令字应该为00000101B或05H。其程序段如下。MOV DX,303H;82C55A命令口地址MOV AL,05H;使PC2=1的命令字OUT DX,AL;送到命令口如果要使PC2引脚输出低电平,去停止步进电机,则程序段如下。MOV DX,303H;82C55A命令口地址MOV AL,04H;使PC2=0的命令OUT DX,AL;送到命令口,2按位置位复位命令,利用按位输出高/低电平的特性还可以产生正、负脉冲或方波输出,对I/O设备进行控制。例如,利用82C55的PC7产生负脉冲,作打印机接口电路的数据选通信号,其汇编语言程序段如下。MO

12、V DX,303H;82C55A命令端口MOV AL,00001110B;置PC7=0OUT DX,ALNOP;维持低电平NOPMOV AL,00001111B;置PC7=1OUT DX,AL/C语言程序段如下。outportb(0 x303,0 x0e);delay(10);outportb(0 x303,0 x0f);,2按位置位复位命令,又如,利用82C55A的PC6,产生方波,送到喇叭,使其产生不同频率的声音,其汇编语言程序段如下。MOV DX,303H;82C55A命令端口L:MOV AL,00001101B;置PC6=1 OUT DX,AL CALL DELAY1;PC6输出高电平

13、维持的时间 MOV AL,00001100B;置PC6=0 OUT DX,AL CALL DELAY1;PC6输出低电平维持的时间 JMP L改变DELAY1的延时时间,即可改变喇叭发声的频率。/C语言程序段如下。outportb(0 x303,0 x0d);/写命令,置PC6=1delay(100);/调用延时程序,延时100msoutportb(0 x303,0 x0c);/写命令,置PC6=0delay(100);,3关于两个命令的使用,两个命令的最高位(D7)都分配为特征位。设置特征位的目的是为了解决端口共用。82C55A有两个命令,但只有一个命令端口,当两个命令写到同一个命令端口时,

14、就用特征位加以识别。按位置位复位命令虽然是对C端口进行按位输出操作,但它不能写入做数据口用的C端口,只能写入命令口,原因是它不是数据,而是命令,要按命令的格式来解释和执行。这一点初学者往往容易弄错,要特别留意。,7.4 82C55A在微机系统中的应用,并行接口的应用有两种情况:一种是微机系统配置的82C55A,另一种是用户扩展的82C55A。对系统配置的82C55A,已经用于控制键盘、扬声器、定时器。其中,把PA端口分配做键盘接口,把PB端口分配做机内的扬声器接口,并由BIOS进行了初始化,用户不能更改,但可以按照初始化的要求加以利用。对用户扩充的82C55A,可随意使用,不受限制,由用户支配

15、。本书主要讨论用户扩展的并行接口82C55A的应用。下面分别对82C55A的3种工作方式的应用进行分析,并举例具体说明它们在并行接口设计中的作用。3种工作方式中,0方式的应用最为常见,2方式使用得较少。,7.5 82C55A的0方式及其应用举例,由于使用82C55A的0方式构成的并行接口在与CPU交换数据时,只能采用无条件或查询方式传送,不能采用中断方式。因此,0方式不要求使用专用的联络(应答)信号和固定的工作时序,也不设置专用的工作状态字。它是82C55A的三种方式中与I/O设备连接最简单,使用很自由的一种,下面举例说明82C55A的0方式的应用。,例7.1 声光报警器接口设计,1要求设计一

16、个声光报警器,要求按下按钮开关SW,开始报警,喇叭SPK发声,LED灯同时闪光。当拨通DIP拨动开关的0位时,结束报警,喇叭停止发声,LED熄灭。2分析根据题意,该声-光报警器包括4种简单的I/O外设:扬声器、8个LED彩灯、8位DIP拨动开关及按钮开关SW。它们都是并行接口的对象,虽然功能单一,结构简单,但都必须通过接口电路才能进入微机系统,接受CPU的控制,发挥相应的作用。3设计本例接口所涉及的I/O设备虽然简单,但数量较多(4种),并且既有输入(按钮开关SW和拨动DIP开关)又有输出(喇叭SPK和LED),采用可编程并行接口芯片82C55A作为接口比较方便。,例7.1 声光报警器接口设计

17、,(1)硬件设计声光报警器电路原理如图7.5所示。在图7.5中,82C55A的3个并行口的资源分配是:PA0 PA7输出,连接8个LED灯LED0LED7;PB0PB7输入,连接8位DIP开关DIP0DIP7;PC6输出,连接喇叭SPK;PC2输入,连接按钮开关SW。(2)软件设计声光报警器程序流程图如图7.6所示。声光报警器汇编语言程序段如下。,7.6 82C55A的1方式及其应用举例,使用82C55A 1方式和2方式构成的并行接口在与CPU交换数据时,要求使用专用的联络(应答)信号和固定的工作时序,并设置专用的工作状态字,故它们使用起来没有0方式那么简单、自由。下面首先介绍它们的联络线设置

18、及其时序,然后讨论1方式和2方式接口设计实例。,7.6.1 1方式下联络信号线的设置,1方式设置了专用联络线和中断请求线,并且这些专用线在输入和输出时各不相同,A端口和B端口的也不相同。下面分别进行讨论。,1输入的联络信号线设置,1方式下,当A端口和B端口为输入时,各指定了C端口的3根线作为输入联络信号线,如图7.10所示。在1方式下输入时,82C55A利用3个联络信号,实现数据从I/O设备出发,通过82C55A,再送到CPU的整个过程,分4步进行,如图7.11所示 输入时,如果采用中断方式,则产生输入中断请求INTR的条件有3个:“输入选通信号”=1,即数据已送入82C55A;“输入缓冲器满

19、”信号有效(IBF=1);允许中断请求(INTE=1)。只有当3个条件都具备时,INTR才变高,向CPU发出中断请求。,21方式输出的联络信号线设置,1方式下,当A端口和B端口输出时,同样也指定了C端口的3根线作为输出联络信号,如图7.12所示。在1方式下输出时,82C55A利用这3个联络信号实现数据从CPU出发,通过82C55A,再送到I/O设备的整个过程,分4步进行,如图7.13所示。输出时,如果采用中断方式,则产生中断请求INTR的条件是、和INTE都为高电平,分别表示CPU已写完一个数据(=1)、输出缓冲器已变空(=1)、回答信号已结束(=1),I/O设备已收到数据,并且允许中断(IN

20、TE=1)。当上述条件都满足时才能产生中断请求。,7.6.2 1方式的工作时序,1分析工作时序的意义 工作时序表明选通方式(1方式)下CPU与82C55A及82C55A与I/O设备之间传送数据的一种固定的过程,实际上工作时序是CPU通过并行接口与I/O设备交换数据的一种协议,因此,它是编写选通方式并行接口程序的依据。例如,在查询方式下查哪个信号,信号处于什么状态有效;在中断方式下用哪个信号申请中断,中断产生的条件是什么,这些在工作时序图中可以清楚地看到,对编写使用82C55A 1方式的应用程序很有帮助,要认真分析。所谓工作时序,是指CPU与82C55A及82C55A与I/O设备之间数据传送的操

21、作过程。这个过程是固定的,但在输入和输出时的工作时序各不相同。下面分别进行讨论。,7.6.2 1方式的工作时序,2输入的工作时序输入过程的时序图如图7.14所示。下面对输入时序图作如下解读,可参考前面的图7.11的4个步骤进行分析。数据输入时,I/O设备处于主动地位,在I/O设备准备好数据并放到数据线上后,发 信号,由它把数据输入到82C55A。在 的下降沿约300 ns,数据已锁存到82C55A的锁存器后,引起IBF变高,表示“输入缓冲器满”,禁止输入新数据。在 的上升沿约300 ns,在中断允许(INTE=1)的情况下,IBF的高电平产生中断请求,使INTR变高,通知CPU,接口中已有数据

22、,请求CPU读取。CPU接受中断请求后,转到相应的中断子程序。在子程序中执行IN指令,将锁存器中的数据取走。若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位来判断有无数据可读。CPU得知INTR信号有效之后,执行读操作时,信号的下降沿使INTR复位,撤销中断请求,为下一次中断请求作好准备。信号的上升沿延时一段时间后使IBF变低,即IBF=0,表示接口的输入缓冲器变空,允许I/O设备输入新数据。如此反复,直至完成全部数据的输入。,7.6.2 1方式的工作时序,31方式输出的工作时序输出过程的时序图如图7.15所示。下面对输出时序图作如下解读,可参考前面的图7.12的4个步骤

23、进行分析。数据输出时,CPU应先准备好数据,并把数据写到82C55A输出数据寄存器。在写开始时,即在 的下降沿使中断请求INTR变低,封锁中断请求。在CPU向82C55A写完一个数据后,的上升沿使 有效,表示输出缓冲器已满,通知I/O设备读取数据。I/O设备在得到 有效的通知后,开始读数。当I/O设备读取数据后,用 回答82C55A,表示数据已收到。的下降沿将 置高,使 无效,表示输出缓冲器变空,为下一次输出做准备。在中断允许(INTE=1)的情况下,的上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向82C55A写入下一个数据。,7.6.3 1方式的状

24、态字,1状态字的作用1方式下82C55A的状态字为查询方式提供了状态标志位;2状态字的格式状态字的格式如图7.16所示。状态字有8位,分A和B两组,A组的状态位占高5位,B组的状态位占低3位,并且输入时与输出时的状态字不相同。3使用状态字时要注意的几个问题 状态字是82C55A输入/输出操作过程中在内部产生、从C端口读取的。在1方式下采用查询方式时,一般都是查询状态字中的INTR位。状态字中的INTE位,是控制标志位,控制82C55A可否提出中断请求,INTE置1,允许中断请求;INTE置0,禁止中断请求。是由程序通过按位置位/复位命令来置1或置0的。,例如,若允许A端口输入中断请求,则必须把

25、状态位INTEA置1,即在程序中利用按位置位/复位命令置PC4=1;若禁止它中断请求,则置INTEA=0,即通过程序置PC4=0,其程序段如下:MOV DX,303H;82C55A命令端口MOV AL,00001001B;置PC4=1,允许输入中断请求OUT DX,AL MOV AL,00001000B;置PC4=0,禁止输入中断请求OUTDX,AL,7.6.4 1方式的并行接口设计,例7.3 采用选通方式(1方式)的并行接口设计。1要求在甲乙两台微机之间并行传送1KB数据。甲机发送,乙机接收。甲机一侧的82C55A采用1方式工作,乙机一侧的82C55A采用0方式工作。两机的CPU与接口之间都

26、采用查询方式交换数据。2分析根据题意,双机均采用可编程并行接口芯片82C55A构成接口电路,只是82C55A的工作方式不同。此时,双方的82C55A把对方视为I/O设备。,7.6.4 1方式的并行接口设计,3设计(1)硬件连接根据上述要求,接口电路的连接如图7.17所示。甲机82C55A是1方式发送,因此,可把A端口指定为输出,发送数据,而PC7和PC6引脚分别作专用联络线 和。乙机82C55A是0方式接收数据,故把A端口定义为输入,另外,选用引脚PC7和PC3做联络线。虽然,两侧的82C55A都设置了联络线,但有本质的区别,甲机82C55A是1方式,其联络线是固定的不可替换;乙机的82C55

27、A是0方式,其联络线是不固定的,可以选择,如可选择PC4与PC1、PC5、PC2等任意组合。(2)软件编程接口控制程序包含发送与接收两个程序。其程序流程图如图7.18所示。,7.7 82C55A的2方式及其应用举例,7.7.1 2方式下联络信号的设置及时序7.7.2 2方式的状态字7.7.3 2方式的双向并行接口设计,7.7.1 2方式联络信号的设置及时序,1联络信号的设置2方式是一种双向选通输入/输出方式,把C端口的5根线(PC3PC7)作为专用应答线(联络线),所以,82C55A只有A端口才有2方式。2方式下为双向传送所设置的专用联络线,实质上就是A端口在1方式下输入和输出时两组联络信号线

28、的组合。其引脚定义如图7.19所示。2工作时序2方式的时序基本上也是1方式下输入时序与输出时序的组合。输入/输出的先后顺序是任意的,根据实际传送数据的需要选定。输出过程是由CPU执行输出指令向82C55A写数据()开始的,而输入过程则是从I/O设备向82C55A发选通信号 开始的,因此,只要求CPU的 在 以前发生,在 以后发生就行。,7.7.2 2方式的状态字,2方式的状态字的含义是1方式下输入和输出状态位的组合,不再赘述。状态字中有两位中断允许位,INTE1是输出中断允许,INTE2是输入中断允许。2方式的状态字如图7.20所示。,7.7.3 2方式的双向并行接口设计,例7.4 采用中断方

29、式的双向并行接口设计。1要求主从两台微机进行并行传送,共传送256个字节。主机一侧的82C55A采用2方式并且用中断方式传送数据。从机一侧82C55A工作在0方式,采用查询方式传送数据。2分析为了适应矢量中断的要求,接口电路中使用中断控制器82C59A,并且是利用系统的中断资源将82C55A的中断请求线INTR接到系统总线的IRQ2。由于2方式下输入中断请求和输出中断请求共用一根线,因此,要在中断服务程序中,用读取状态字的办法查询IBF和 状态位来决定是执行输入操作还是输出操作。,7.7.3 2方式的双向并行接口设计,3设计(1)硬件设计根据题意,硬件电路设计如图7.21所示。从图可知,主机一侧的82C55A的A端口作双向传输,既输出又输入,它的中断请求线PC3接到82C59A的IR2上;从机一侧的82C55A的A端口和B端口是单向传输,分别作输出和输入。(2)软件设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号