微机原理与接口技术第8章.ppt
第8章 串行和并行接口8.1 8.1 通用接口及其功能通用接口及其功能 CPU访问外设,与外设进行数据交换,必须通过接口电路。接口中数据的传送方式有无条件传送方式、状态查询传送方式、程序中断传送方式和直接数据通道传送(DMA)等。随着大规模集成电路的发展,将接口电路集成在一块芯片上,接口芯片具有接口电路中的所有功能,即接口中含有输入输出数据的通道,能对输入输出数据进行缓冲,能够协调CPU和输入输出设备的数据传送,对输入输出设备进行选择和信息转换等。接口中的寄存器可通过编程对其进行设置和控制,使芯片具有不同的工作方式和功能,接口芯片也称可编程接口芯片。8.1 8.1 通用接口及其功能通用接口及其功能 按接口芯片的外设范围来分,可编程接口芯片可分为专用接口芯片和通用接口芯片。所谓专用接口芯片,就是该类芯片是为某类外设专门设计的接口芯片,如软盘、硬盘控制器芯片、键盘和显示器接口芯片等;而通用接口芯片,顾名思义,此类芯片可作为多种外设的接口。对于不同的外设所需的不同功能,可通过对接口芯片的内部寄存器进行编程实现。Intel 8251A和8255A就是通用的串行和并行接口芯片。8.2 8.2 并行接口并行接口 并行接口就是并行通信的接口。所谓并行通信就是把一个数据的各位同时用多根线进行传输,具有传输速度快的优点。但随着传输距离的增加,因并行传送需要多根电缆,其成本就会大幅增加而成为一个非常突出的问题。所以,并行通信一般用于对传输速率要求较高而传输距离比较短的场合 8.2 8.2 并行接口并行接口 Intel 8255A是一个通用的可编程的并行接口芯片,简称PPI(Programmable Peripheral Interface),价格低廉,有3个并行I/O口,可通过编程设置多种工作方式,使用时通常不需要再附加外部电路,具有很高的灵活性和广泛的适应性,CPU常常通过8255A与并行接口的I/O外设相连,完成与外设的数据交换任务 8.2 8.2 并行接口并行接口8255A的主要功能和特点如下 (1)具有3个8位的数据端口:端口A、端口B和端口C,分别用于数据的输入和输出,其中端口C除可以单独使用外,还可以分成2个半字节,其高4位与A口组成A组,低4位与B口组成B组。(2)各数据端口具有3种工作方式。方式0:基本输入、输出方式,端口A、B、C都可以使用此方式,可完成同步(无条件)传送方式和状态查询传送方式的数据信息传送。方式1:选通输入、输出方式,端口A、B都可以使用此方式,端口C不能使用此方式。在方式1时,可以使用状态查询或中断方式进行数据信息传送。方式2:双向传输方式,仅端口A都可以使用此方式,这是双向I/O方式,可以使用状态查询或中断方式进行数据信息传送。(3)两个控制字:工作方式控制字,端口C置1/置0控制字。8.2 8.2 并行接口并行接口8.2.1 8255A的内部结构 图8.1 8255A的内部结构8.2 8.2 并行接口并行接口8255A由以下几部分组成 1数据总线缓冲器2读/写控制逻辑3数据端口4A组、B组的控制逻辑电路8.2 8.2 并行接口并行接口8.2.2 8255A的引脚特性 8255A引脚图 8.2 8.2 并行接口并行接口 除了电源和地线外,8255A的引脚可以分为两组一组引脚是面向CPU,与系统总线相连接一组是面向外设,与外设相连接。8.2 8.2 并行接口并行接口8.2.3 8255A的工作方式 1方式0 又叫基本输入、输出方式,为单向数据传送,是一种不使用专用控制信号线的简单输入或输出方式。8255A的端口A和端口B在方式0下,与端口C的高4位、端口C的低4位等组成的2个8位、2个4位共4个彼此独立I/O端口,其间没有任何关系,可通过编程将任意一个端口指定为输入口或输出口,单独与外设连接,进行数据交换,4个端口可以有16种不同的输入、输出组合。方式0能完成同步传送和查询传送。若用于查询传送,可用端口A、B、C三个中的任一位充当查询信号,其余位仍可作为独立的端口位用于与外设连接,进行数据信息的传送,如LED显示输出、开关量的输入和输出等。8.2 8.2 并行接口并行接口2方式1 又叫选通输入、输出方式,为单向数据传送,此时数据的输入或输出要借助于选通信号来完成。端口A和端口B在此方式下,仍是作为两个彼此独立的8位I/O端口,可单独与外设连接,并通过编程分别设置它们为输入或输出,与外设进行数据交换。而端口C中的P C5P C3和P C2P C0(2个3位,共计6位),分别被端口A和端口B征用,作为端口A和端口B的专用控制信号线,端口C中其余没被征用的2位仍可工作在方式0,通过编程设置其为输入或输出。8.2 8.2 并行接口并行接口(1)方式1输入端口的控制信号(2)图示给出了端口A和端口B输入 方式1(端口A)方式1(端口B)图8.3 方式1输入端口的引脚定义INTEAPA70PC4PC5PC3PC67I/OINTEBPB70PC2PC1PC08.2 8.2 并行接口并行接口方式1输入端口控制信号与引脚关系 8.2 8.2 并行接口并行接口(2)方式1的输出端口的答信号 方式1输出端口的引脚定义 方式1输出端口A方式1输出端口BINTEA图8.4 方式1输出端口的引脚定义8.2 8.2 并行接口并行接口方式1输出端口控制信号与引脚之间的关系总结 8.2 8.2 并行接口并行接口3方式2 方式2为双向传输方式,一般用于与既可以作为输入设备,又可以作为输出设备的并行外设进行数据交换,并且输入、输出数据不会同时进行。方式2只有端口A才使用,此时端口C中的PC7PC3(共计5位)被端口A征用,作为端口的专用控制信号线,端口C中其余没被征用的PC2PC0(共计3位)仍可工作在方式0,通过编程设置其为输入或输出;或被端口B在方式1下征用,用作其控制信号。这时,端口C有5根线用作端口A与外部的应答联络信号,由于方式2就是方式1的输入与输出方式的组合,各控制信号的功能也与方式1相同 8.2 8.2 并行接口并行接口端口A的双向传输 INTRA图8.5 方式2端口A的双向传输的引脚定义8.2 8.2 并行接口并行接口方式2双向传输端口控制信号与引脚关系 8.2 8.2 并行接口并行接口8.2.4 8255A控制字编程 当8255A的RESET引脚输入高电平时,其内部所有的内部寄存器均被清除,RESET引脚的高电平撤除后,端口A、B、C均处于方式0即基本输入输出方式。如果要改变8255A的工作方式,可通过控制字完成。8255A共有两个控制字,分别是:工作方式控制字 端口C置1/置0控制字8.2 8.2 并行接口并行接口1工作方式控制字控制字要写入8255A的控制口,写入控制字之后,8255A才能按指定的工作方式工作。8255A的控制字格式与各位的功能如图 :图8.6 8255A工作方式控制字格式8.2 8.2 并行接口并行接口2端口C位置位/复位控制字 对端口C的某个位的值,即置位(=1)或复位(=0)。此功能可用于设置端口A、B在方式1、2的中断允许,还可根据系统设计为外设的启、停位,用于控制外设的启、停。设置端口C某个位的值的操作,其实就是向控制端口写入对应的置位/复位的控制字完成。置位/复位的控制字格式如图 图8.7 8255A端口C的置位/复位控制字格式8.2 8.2 并行接口并行接口 8255A应用举例 18255A与CPU的连接2开关量的监测和LED显示38255A在打印机中的应用8.2 8.2 并行接口并行接口18255A与CPU的连接 8255A与CPU的连接与内存与CPU的连接情况非常的相似,最简单的情况就是一片CPU与一片8255A的连接。下面举例说明。【例8.6】已知一CPU,其地址总线为16位,其数据总线为16位,RESET为CPU的复位信号,、分别为CPU的读写控制线,低电平有效;为访问内存和IO控制线,高电平表示访问内存,低电平表示访问IO,内存地址和IO地址独立编址。系统使用可编程的并行接口芯片8255A,在其I/O端口地址为0000H0003H。试设计并画出8255A与CPU连接的系统电路图。8.2 8.2 并行接口并行接口解:(1)数据线连接设计。8255A的数据线只有8位,CPU数据总线为16位,将8255A的8位数据线与CPU的低8位数据线相连接。(2)根据8255A的端口地址确定系统的IO端口地址分配空间。由于只有一片8255A芯片,该片占用0000H0003H(共4个端口)连续空间范围,8255A只需2根地址线,与CPU的低2位地址A1A0线相连,占用系统低2位地址线。(3)片选信号设计。因8255A只需2根地址线,与CPU的低2位地址A1A0线相连,CPU剩余的高位地址线A15A2,在0000H0003H地址范围内每位均为0,8255A芯片应该被选通而处于工作状态,其余地址8255A芯片应处于非工作状态。另外CPU访问8255A时,即为访问IO端口,此时控制线输出低电平,8255A芯片也应被选通而处于工作状态;当CPU访问内存时,输出高电平,此时8255A芯片应处于非工作状态。、8.2 8.2 并行接口并行接口A15A2、与8255A芯片的片选信号输入的关系真值表如表 8.2 8.2 并行接口并行接口设计片选信号电路 图8.8 片选信号的电路图设计8.2 8.2 并行接口并行接口(4)读/写控制信号设计。CPU的读控制引脚(输出信号)与8255A的读控制信号引脚(输入信号)连接。CPU的写控制引脚(输出信号)与8255A的写控制信号引脚连接。(5)RESET 信号设计。将CPU的复位信号RESET与8255A的RESET相连接。(6)将数据线、地址线和控制线连接起来,画出的系统连接图如图8.9所示。对于多片8255A与CPU的连接,或其他接口芯片和存储器芯片一起与CPU的连接,均可参照存储器芯片与CPU的连接设计。需要注意的是,对于存储器地址和IO地址独立编址的系统,CPU有一个指示是访问存储器或访问IO的控制信号(如),用作对存储器和IO芯片的片选信号设计时,存储器和IO芯片使用该控制信号正好相反(如=1,存储器片选有效;如=0,IO芯片选有效)。8.2 8.2 并行接口并行接口系统连接图 CPUD7D0D7D08255A图8.9 8255A与CPU的电路连接图8.2 8.2 并行接口并行接口【例8.7】已在例8.6的基础上,在8255A的端口A,连接8个开关K7K0,在端口B连接8个发光二极管LED7LED0。要求系统不断通过端口A输入K7K0的通断状态,并通过端口B在发光二极管LED7LED0进行显示,如K0向端口A输入高电平时,对应的LED0发光,否则LED0熄灭。试画出系统的电路连接图,并编写程序段。解:根据题意,将8255A的端口A作为输入口,即将8个开关K7K0分别与8255A的 PA7PA0相连;端口B作为输出口,即将8个发光二极管LED7LED0分别与8255A的PB7PB0相连。端口A,B采用同步(无条件)传送方式,不使用任何控制信号,即端口A为输入,方式0;即端口B为输出,也为方式0。设计出的电路图 8.2 8.2 并行接口并行接口图8.10 825 5A输入输出开关状态的电路连接图8.2 8.2 并行接口并行接口端口A、B均为方式0,端口C未用,工作方式控制字为1 001 0 00 0B=90H。编程实现如下:MOV AL,90H ;设置端口A、B的工作方式MOV DX,0003HOUT DX,ALLOOP:MOV DX,0000H ;从端口A输入开关状态IN AL,DXMOV DX,0001H ;向端口B输出开关状态OUT DX,ALCALL DELY ;DELY为5秒延时子程序,目的是每5秒采样并显示一次JMP LOOP ;循环8.2 8.2 并行接口并行接口【例8.8】CPU为8088的微机系统通过8255A的端A口,方式1,与一台采用Centronics标准引脚的微型打印机相连,采用中断方式(中断类型号为13H),将内存缓冲区BUFF中的256个字符输出到微型打印机完成打印工作。8255A的4个端口地址为00H03H,试完成相应的硬件线路和软件程序设计工作。解:首先对硬件接口进行设计:微型打印机和主机之间的接口采用并行接口,Centronics标准引脚信号定义如表8-6所示。打印机的数据传输时序图如图所示,通过时序图,可以看出它的工作流程。8.2 8.2 并行接口并行接口(1)主机将要打印的数据送上数据线DATA7DATA0上。(2)然后发选通信号。打印机将数据从数据线DATA7DATA0读入,同时使BUSY线为高电平,通知主机停止送数。(3)打印机内部对读入的数据进行打印处理。8.2 8.2 并行接口并行接口(4)打印机打印完毕后,使有效,同时使BUSY失效,通知主机可以发下一个将要打印的数据。8255A与打印机的连接方法如下。数据线:8255A的PA7PA0与打印机的DATA7DATA0连接。打印机选通信号:用PC0作为打印机的选通,CPU通过对PC0的置位/复位来选通打印机。8255A端口A的信号:由打印机的提供。8255A与CPU的连接方法如下。中断请求信号:8255A端口A,方式1,输出,允许中断请求,8255A的PC3被征用作为中断请求信号,中断类型号为13H,故与接至中断控制器8259A的IR3引脚。其他的数据线、地址线和控制线参见上面的例子。最后打印机接口的线路图如图 8.2 8.2 并行接口并行接口图8.12 中断方式的打印机接口线路图8.3 串 行 接 口 串行通信概述 所谓通信,就是计算机与计算机之间或计算机与外设之间的信息交换。随着微型计算机和网络技术的不断发展,通信对于计算机系统的应用显得越来越重要了。计算机中的数据通信可以分成并行通信串行通信8.3 串 行 接 口串行通信:是指利用一条传输线将数据一位一位地按顺序传送,即一个字节需要分多次才能完成。其特点是占用的通信线路少,利用电话或电报线路就可实现远程通信,故成本低,特别适用于远距离通信,但传输速度比较慢。1数据传送方式 根据数据传送方向的不同,串行通信的数据有以下3种基本传送方式,图8.13是A计算机与B计算机或外设之间的数据传送方式示意图。(a)单工方式 (b)半双工方式 (c)全双工方式 8.3 串 行 接 口2异步通信和同步通信串行通信分为:同步通信(SYNC)异步通信(ASYNC)8.3 串 行 接 口异步通信格式同步通信格式图8.14 异步通信格式图8.15 同步通信格式8.3 串 行 接 口3信号传输方式(1)基带传输方式(2)频带传输方式图8.16 基带传输方式图8.17 频带传输方式8.3 串 行 接 口 串行通信接口标准 1RS-232C接口标准 RS-232C是一种串行通信标准接口,由于它符合电子工业协会EIA的规格要求,故在计算机与计算机之间以及计算机和外设之间得到了广泛的应用。PC的串行通信接口就是按照RS-232C标准设计的。25脚D型插座和插头 图8.18 25脚D型插座和插头8.3 串 行 接 口RS-232C接口标准引脚定义 表8-7 RS-232C接口标准引脚定义8.3 串 行 接 口续表8.3 串 行 接 口2RS-422A接口标准 为了克服RS-232C的缺点,进一步提高通信距离和传送速率,美国电子工业协会EIA提出了新的串行通信标准RS-422A。与RS-232C相比,其主要优点是信号地不再公用,双方的信号地不再接在一起。图8.20 RS-422A平衡输出差分输入图 图8.21 在接收端加终端电阻 8.3 串 行 接 口3RS-485接口标准 RS-232C和RS-422接口一般只能用于点对点的通信,对于多个点之间的数据通信,就非常的不方便了。为了解决这个问题,美国电子工业协会EIA制定了新的接口标准RS-485,以支持一点对多点之间的数据通信。RS-485接口标准即可用于收、发双方共用一对线进行通信,也可用于多个点之间共用一对线路进行总线方式联网,但此时数据通信只能是半双工方式。线路图:图8.22 多个点使用RS-485通信的线路连接图8.3 串 行 接 口 通用串行接口标准 1USB接口 USB(Universal Serial Bus)即通用串行总线,是计算机外设连接的标准之一,由IT业的许多巨头参与制定。USB接口虽然比IEEE 1394技术晚了好几年,但是,从1994年到1999年,其版本0.7、1.1到现在的2.0,技术已经非常成熟,并已成为PC的基本配置标准,用于外设与PC之间的数据交换 USB接口使用A系列和B系列两类不同的连接器8.3 串 行 接 口 A系列连接器是为那些要求电缆保留永久连接的设备而设计的,比如集线器、键盘和鼠标器。大多数主板上的USB端口通常是A系列连接器。B系列连接器是为那些需要可分离电缆的设备设计的,如打印机、扫描仪、MODEM、电话和扬声器等。图8.23 USB接口的A系列和B系列连接器8.3 串 行 接 口USB连接器引脚及电缆线标准 表8-8 USB连接器引脚及电缆线标准 8.3 串 行 接 口2IEEE-1394接口 IEEE-1394接口也称Firewire接口,是Apple公司开发的串行数据总线标准,作为新一代的高性能串行总线标准。图8.24 IEEE-1394六角形的连接器和电缆线8.3 串 行 接 口3USB和IEEE-1394的性能比较表8-9 IEEE-1394和USB主要性能比较8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8.4.1 8251A的基本性能 8251A是通用可编程串行通信接口芯片,其主要基本性能如下:(1)可工作于同步方式和异步方式。(2)同步方式波特率为64Kb/s;异步方式下,波特率为019.2Kb/s。(3)同步方式下其通信格式为每个字符58位数据位,可使用内部或外部同步检测,可自动插入同步字符。(4)异步方式下其通信格式为每个字符58位数据位,1个启动位,1个位作为奇/偶校验。并能根据编程为每个数据增加1个、1.5个或2个停止位,可以检查假启动位,自动检测和处理停止位。(5)全双工的工作方式,其内部可提供具有双缓冲器的发送器和接收器。(6)提供出错检测,具有奇偶、溢出和帧等3种错误校验电路。8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8.4.2 8251A的内部结构 8251A的内部结构由发送器、接收器、数据总线缓冲器、读/写控制电路和调制解调器等几部分组成。如图:图8.25 8251A的内部结构图8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8.4.3 8251A的引脚特性 1面向CPU的引脚特性图8.26 8251A引脚图8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8251A读写操作表 8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A2面向外设的引脚特性 面向外设的引脚按信号类型可分为两大类。1)收发联络信号 数据终端准备好信号,输出,低电平有效,通知外设,CPU当前已经准备就绪。数据设备准备好信号,输入,低电平有效,表示当前外设已经准备好。请求发送信号,输出,低电平有效,表示CPU已经准备好发送。允许发送信号,输入,低电平有效,是对回答。实际使用时,这4个信号中通常只有必须为低电平,其他3个信号可以悬空。2)数据信号 TXD:发送器数据输出信号。当CPU送往8251A的并行数据被转换为串行数据后,通过TXD引脚向外设发送。RXD:接收器数据输入信号。通过RXD引脚接收从外设送来的串行数据,串行数据被8251A接收后,被转换为并行方式。8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A3时钟、电源和地引脚特性8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。CLK:时钟输入,用来为8251A提供时钟信号。TXC:发送器时钟输入,用来控制发送字符的速度。RXC:接收器时钟输入,用来控制接收字符的速度。在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟提供。VCC:电源输入。GND:接地。8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8.4.4 8251A的控制字 8251A的控制字有工作方式控制字、操作命令控制字和控制状态字3个。关于控制字的编程可分为两类:一是由CPU向8251A发出的方式选择控制字和操作命令控制字 二是CPU从8251A读出8251A状态控制字 8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A1方式选择控制字 图8.27 8251A 的方式选择控制字格式8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A2操作命令控制字 操作命令控制字用于控制8251A处于发送数据信息状态还是接收数据信息状态,以及通知外设发送数据信息还是准备接收数据状态。8251A的操作命令控制字的格式如图 图8.28 8251A 的操作命令控制字格式8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A3状态控制字 CPU可通过指令读出8251A状态控制字,以了解8251A当时的工作状态,做出是否进行新的数据传送的决定。状态控制字放在状态寄存器中,CPU只能读状态寄存器而不能写状态寄存器。状态控制字的格式如图 图8.29 8251A 的状态控制字的格式8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8.4.5 8251A的初始化 18251A的初始化过程 芯片复位以后,在数据传输前,要对8251A进行初始化,才能确定8251A的工作方式,从而保证能正确的传送数据信息。由于8251A没有地址线,一般可将、C/和CPU的地址信号A1A0相连接,这样数据输入和输出端口共用同一个偶地址,而状态端口和控制端口共用同一个奇地址。方式选择控制字和操作命令控制字本身无特征标志,两个字写入同一个奇地址端口,8251A只能按写入的顺序来识别。8.4 8.4 可编程串行接口芯片可编程串行接口芯片8251A8251A8251A的初始化流程图图8.30 8251A的初始化流程图