790 likes | 954 Views
第 7 章 微型计算机接口技术. 7.1 微型计算机接口技术概述 7.2 输入与输出 7.3 并行数据接口 7.4 串行数据接口 7.5 DMA 接口 7.6 可编程定时计数器. 本章学习目的. 本章主要介绍了微型计算机接口技术的主要技术,通过接口技术的学习重点掌握接口的概念和功能,掌握常用的各种接口芯片的接口芯片的工作原理。 本章要点: 接口技术的相关概念以及输入输出的基本方式 并行输入输出接口芯片 8255A 可编程串行接口 8251A 中断的概念以及可编程 DMA 控制器 8237 可编程定时计数器 8253. 7.1 微型计算机接口技术概述.
E N D
第7章 微型计算机接口技术 7.1 微型计算机接口技术概述 7.2 输入与输出 7.3 并行数据接口 7.4 串行数据接口 7.5 DMA接口 7.6 可编程定时计数器
本章学习目的 • 本章主要介绍了微型计算机接口技术的主要技术,通过接口技术的学习重点掌握接口的概念和功能,掌握常用的各种接口芯片的接口芯片的工作原理。 • 本章要点: • 接口技术的相关概念以及输入输出的基本方式 • 并行输入输出接口芯片8255A • 可编程串行接口8251A • 中断的概念以及可编程DMA控制器8237 • 可编程定时计数器8253
7.1 微型计算机接口技术概述 7.1.1接口的定义 所谓接口(Interface)是指微处理器CPU与外部设备、存储器或者两种外部设备之间通过系统总线进行连接的逻辑电路,它是CPU与外界进行信息交换的中转站。
7.1.2 接口的功能 CPU与外设之间的接口主要实现如下功能。 (1)数据的寄存和缓冲功能 (2)对外设的控制和监测功能 (3)设备选择功能 (4)信号转换功能 (5)中断管理或DMA管理功能 (6)可编程功能
CPU I/O接口 数据 外设 DB 数据口 AB 状态信息 状态口 CB 控制信息 控制口 图7-1外设接口简单框图 7.1.3 CPU与外设之间传送的信息 一个简单的、基本的外没接口框图如图7-1所示。外设接口通过三总线(即DB、AB、CB)同CPU连接,通过三种信息:数据信息、控制信息和状态信息同外设联系,CPU通过外设接口同外设交换的信息即为这三种。
7.1.3 CPU与外设之间传送的信息 (1)数据信息(Data) 微机中的数据信息大致包括三 种基本类型。 ①数字量 ②模拟量 ③开关量 (2)状态信息(Status) (3)控制信息(Control)
7.1.4 端口地址的编址方式 CPU对外设的访问实质上是对外设接口电路中相应端口进行访问。I/O端口地址的编址方式有两种: 独立编址 存储器映射编址
独立编址 特点: 存储器和I/O端口在两个独立的地址空间中,I/O端口不占用存储器空间,I/O端口的读、写操作由硬件信号 和 来实现,访问外设端口用专用的IN指令和OUT指令。 优点: I/O端口的地址码较短(一般比同系统中存储单元的地址码短)。地址译码器较简单;端口操作指令执行时间短,指令长度短;端口操作指令形式上与存储器操作指令不同,使程序编写和阅读较清晰。 缺点: 需要有专用的I/O指令,而这些指令的功能一般没有存储器访问指令丰富,所以程序设计的灵活性较差。
存储器映射编址(统一编址) 特点: 存储器和I/O端口共用统一的地址空间;一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间。 优点: 任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,不需要专用的I/O指令,从而使系统编程比较灵活,I/O端口的地址空间是内存空间的一部分,这样I/O端口的地址空间可大可小,从而使外设的数目几乎可以不受限制,这对大型控制系统和数据通信系统是很有意义的。 缺点: I/O端口占用了内存空间的一部分,当然内存空间必然减少,影响了系统的内存容量;同时访问I/O端口同访问内存一样,由于访问内存时的地址长,指令的机器码也长,执行时间显然增加。并使端口地址译码电路变得复杂。 返回本章首页
7.2 输入与输出 7.2.1 概述 在计算机的操作中最基本和最频繁的操作是数据传送,在微机系统中,数据主要在CPU 、内存和I/O接口之间传送,在传送过程中,关键问题是数据传送的控制方式。 按照I/O控制组织的演变顺序以及外设与主机并行工作的程度,计算机系统中数据传送的控制方式可分为程序控制传送方式、DMA方式。
7.2.1 概述 程序控制的数据传送 分为无条件传送、查询传送和中断传送 直接存储器访问DMA 是在存储器与I/O设备之间直接传输数据,传送过程中并不需要CPU干预,而是由一个DMA控制器(DMAC)加以控制的。
7.2.2 CPU与外设数据传送的方式 (1) 无条件传送方式
例7.1 例7.1 用74LS244(74LS244为2组4线三态驱动器)作输入接口,74LS374(74LS374为8D锁存器)作输出接口, 设计一个接口电路,将8个乒乓开关的状态用发光二极管表示出来。74LS244、74LS374的地址均为60H。试画出电路图,编写程序段。 IN AL,60H OUT 60H ,AL 其接口电路示意如图7.5所示。
7.2.2 CPU与外设数据传送的方式 (2)查询传送方式 由于CPU和I/O设备的工作往往是异步的,达就很难保证当CPU输入时,外设已经准备好数据;输出时,外设的数据锁存器是空的。因此,在CPU传送数据前,应去查—下外设的状态,若设备准备好,就进行数据传送,否则,CPU就等待。
& & 三态 缓冲器 (8) 数据端口 地址译码 数据 去数据总线DB 锁存器 输入 装置 状态 信息 +5V 状态端口 地址译码 R D Q 缓冲器 (1) READY 选通信号 图7-6查询式输入接口电路 (2)查询传送方式 ① 查询式输入
图7.7 查询输入的时序流程图 (2)查询传送方式 ① 查询式输入的时序流程图
& & 地址总线 数据 输出数据 端口译码 地址译码 锁存器 输出 装置 数据总线DB 状态端口 地址译码 +5V D Q R “BUSY” 缓冲器 (1) ACK 系统DB状态信息“BUSY” 图7-8查询式输出接口电路 (2)查询传送方式 ②查询式输出
(2)查询传送方式 (3)中断传送方式 查询方式占用CPU时间多,还难以满足实时控制的需要。因为在查询方式下CPU处于主动地位,外设处于消极被查询的被动地位。而在实时系统中,外设要求CPU的服务是随机的,要求外设有主动申请CPU服务的权利。此时,—般采用中断传送方式。
(2)查询传送方式 (4)DMA工作方式 中断方式尽管可以较为实时地响应外部中断源的请求,但由于它需要额外开销时间(用于中断响应、断点保护与恢复等)以及中断处理的服务时间,使得中断响应频率受到了限制。当高速外设与计算机系统进行信息交换时,若采用中断方式,将会出现CPU频繁响应中断而不能有效地完成主要工作或者根本来不及响应中断而造成数据丢失现象。采用直接存储器存取DMA(Direct Memory Access)技术可以确保外设与计算机系统进行高速信息交换。 返回本章首页
7.3 并行数据接口 7.3.1并行接口概述 根据微机与外设之间的数据传送方式不同,可分为并行接口和串行接口两种。并行接口的持点是用多根传输线,把数据的各位同时进行传输,通常每次传输8位或16位数据。实现并行通信的接口称为并行通信接口,简称并行接口。 并行接口的特点有: (1)需要多根数据线,传输速度快。 (2)一般适合近距离传输的场合。 (3)并行传送的信息一般不要求固定的格式。而串行传送的信息一般要求有严格的数据格式。
1.8255A芯片内部结构及其功能 如图7-9所示,8255A有40条引脚。8255A内部结构如图7-10所示,内部主要有数据输入输出端口即端口A、端口B和端口C,A组控制器和B组控制器,数据缓冲器及读写控制逻辑。
8255A芯片内部结构及其功能 并行接口的特点有: (1)需要多根数据线,传输速度快。 (2)一般适合近距离传输的场合。 (3)并行传送的信息一般不要求固定的格式。 而串行传送的信息一般要求有严格的数据格式。 并行接口电路可分为不可编程有和可编程接口。不可编程接口一般有数据锁存器和三态数据缓冲器组成,电路简单,使用方便;但由于其工作方式及功能由硬件电路设定,故不能改变。可编程接口由于其接口的工作方式及功能可用软件编程的方法改变,无疑使用更灵活、功能更强,在微机系统中应用广泛。
7.3.2可编程并行输入/输出接口8255A 8255A是与Intel 8086系列微处理机相配套并行接口芯片,它可为CPU与外设之间提供并行输入/输出通道。该芯片是可编程的,可以通过软件来设置芯片的工作方式,通常8255A连接外设时,不再附加外部电路,使用时很方便。 1.8255A芯片内部结构及其功能 如图7-9所示,8255A有40条引脚。8255A内部结构如图7-10所示,内部主要有数据输入输出端口即端口A、端口B和端口C,A组控制器和B组控制器,数据缓冲器及读写控制逻辑。
①并行输入/输出端口A、B、C ②A组控制部件和B组控制部件 ③数据总线缓冲器 ④读/写控制部件
2.8255A控制字 8255A中各端口有三种基本工作方式: 方式0基本输入/输出方式 方式1选通输入/输出方式 方式2双向传送方式 端口A有上述三种工作方式,端口B有两种方式(方式0和方式1),端口C常被分成高4位和低4位两部分,分别用来传送数据或控制信息。用户可用软件来分别定义一个端口的工作方式。
2.8255A控制字 控制字有两个,一个是工作方式控制字,用于8255A的初始化;另一个是C口位控制字,用于C口的位操作。这两个控制字使用同一口地址,由最高位D7区分,若D7为1,此控制字为8255A的工作方式控制字;若D7为0,此控制字为8255A的C口的位控制字。 ①控制字 定义工作方式控制字格式如图7-11所示。通过定义工作方式控制字可将三个端口分别定义为三种不同状态的组合。
①控制字 例7.2 若要使8255A的A口工作在方式1输入,C口上半部分输入,B口工作在方式0输出, C口下半部分输出. mov al, 10111000B out 63H,al
②置位/复位控制字 置位/复位控制字,只对端口C有效。其使用格式如图7-12所示。 例7.3 若将C口的D3位置位,则应送往控制寄存器的命令字为:00000111B(07H)。 mov al, 07H out 63H, al
3.8255A工作方式 ①工作方式0 是8255A各端口的基本输入/输出方式。它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,可由工作方式控制字定义16种工作方式的组合。这种情况下,端口C被分成两个4位端口,它们可分别被定义为输入或输出端口。CPU与三个端口之间交换数据可直接由CPU执行IN和OUT指令来完成,不提供任何“握手”信息,适合各种同步并行传送系统中。
例7.4 例7.4 一组8位开关、一组8位 LED指示灯、一个按钮开关、一个蜂鸣片、请用8255A做接口芯片,将外设连接到PC/XT机中构成一个简单的微机系统,画出接口连接图,并编制驱动程序使得按钮按下蜂鸣片响。
例7.5 例7.5 利用8255工作在方式0实现打印机接口,将字符A送打印机,试画出8255与打印机的连接图,编写初始化程序和打印程序。(注:8255的地址:380H-383H)
②工作方式1 该方式被称作选通输入/输出方式。该工作方式时,数据输入/输出操作要在选通信号控制下完成。该工作方式进行输入操作时,需要使用如下控制信号: 选通信号 输入缓冲器满信号IBF 中断请求信号INTR
②工作方式1 当任一组中的有效时,则把IBF置“1”,表示当前输入缓冲器已满,并由后沿置“1”各组的INTE,于是输出INTR有效、向CPU发出中断请求信号。待CPU响应该中断请求,可在中断服务程序中安排IN指令读取数据后把IBF置“0”,外设才可继续输入后续数据。显然,8255A的端口 A和端口B均可工作于工作方式1完成输入操作功能,该定义的端口状态如图7-15所示。
②工作方式1 采用工作方式1也可完成输出操作,该方式的控制信号如下: 输出缓冲器满信号 外部应答信号 中断请求信号INTR
②工作方式1 如果将8255A中的端口A和端口B均定义为工作方式1完成输出操作功能,端口C的PC6、7,和PC3~PC0被用作控制信号,只有PC4、PC5两位来完成数据输人或输出操作。因此可构成两种组合状态:端门A、B输出,PC4,PC5输入;端口A、B输出,PC4,PC5输出。该定义的端口状态如图7.16所示。
例7.6 例7.6 如图7.17为一利用8255实现的打印机接口。 1)写出A口、B口、C口、控制口的地址 2)写出8255的初始化程序片段(设8255的A口工作于方式0输入,B口工作于方式1输出) 3)写出查询方式下输出一个字符到打印机的程序片段。(假设要打印的字符已存在AL中)
③工作方式2 工作方式2被称作带选通的双向传送方式。8255A中仅端口A可工作在该方式,用来在两台处理机之间实现双向并行通信。其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。 当端口A工作于该模式时,允许端口B工作在方式0或方式1完成输入/输出功能,端口A工作于方式2的端口状态如图7.18所示。由图知,端口A工作于方式2需要5个控制信号由端口C的PC7~PC3来提供。
③工作方式2 如果端口B工作在方式0,PC2~PC0可用作数据输入/输出;如果端口B工作在方式1,PC2~PC0用作端口 B的控制信号。 端口A工作在方式2所需控制信号如下: 输出缓冲器满信号 应答信号 数据选通信号 输入缓冲器满信号IBFA 中断请求信号INTR 返回本章首页
7.4 串行数据接口 7.4.1概述 (1)串行通信的概念及其方式 串行通信是指数据一位一位地依次传输,每一位数据占据一个固定的时间长度。这种情况只要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信,但串行通信的速度比较慢。
串行通信线路的工作方式: ①单工通信 它只允许一个方向传输数据,甲只作为数据发送器,乙只作为数据接收器,不能进行反向传输。 ②半双工通信 它允许两个方向传输数据,但不能同时传输,两个方向交替进行,甲发送乙接收或乙发送甲接收。在这种情况下,为了控制传输方向,需要对两端设备进行控制,以确定数据流向,可以增加接口附加控制线来实现,也可用软件来实现。 ③全双工通信。它允许两个方向同时进行数据传输,甲接收乙发送的同时甲发送乙接收,两个传输方向的资源必须完全独立,甲乙都有独立的接收器和发送器,两个方向都有独立的数据通路,至少在逻辑上独立。
(2)串行通信数据的收发方式 ①异步串行通信方式 异步串行通信以字符为单位传送,采用的数据格式是:第一位称为起始位,宽度为1位低电平;接着传送5~8位的数据(一个字符,从低位开始传),校验位可有可无,最后是停止位,宽度可以是1位、1.5位或2位,在两个数据组之间可有空闲位。异步通信的数据格式如图7.19所示。
串行通信数据的收发方式 ②同步串行通信方式 串行同步通信以数据帧为信息单位传送,每帧可以包含成千上百个字符。 根据控制规程可分为: 面向字符 面向比特的两种。
7.4.2可编程串行接口8251A 8251A是一个通用串行输入/输出接口,可用来将8086/8088CPU以同步或异步方式与外部设备进行串行通信。它能把并行输入的8位数据转换成逐位输出的串行信号;也能将串行输入数据转换成并行数据,—次传送给处理机,广泛应用于长距离通信系统及计算机网络。
(1)8251A芯片结构及其功能 如图7.21所示825lA由发送器、接收器、数据总线缓冲器、 读/写控制电路及调制/解调控制电路等5部分组成。
8251A芯片结构及其功能 ①发送器 8251A的发送器包括发送缓冲器、发送移位寄存器(并/串转换)及发送控制电路三部分,CPU要求发送的数据经数据发送缓冲器并行输入,并锁存到发送缓冲器中。如果是采用同步方式,则在发送数据之前,发送器将自动送出一个(单同步)或两个(双同步)同步字符(SYNC)。然后,逐位串行输出数据。如果采用异步方式,则由发送控制电路在其首尾加上起始位及停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出,其发送速率由收到的发送时钟频率决定。
8251A芯片结构及其功能 ②接收器 8251A的接收器包括接收缓冲器、接收移位寄存器及接收控制电路三部分。外部通信数据从RxD端,逐位进入接收移位寄存器中。同步方式时,要检测同步字符,确认已经达到同步,接收器才可开始串行接收数据,待一组数据接收完毕,便把移位寄存器中的数据并行置入接收缓冲器中;异步方式时,识别并删除起始位和停止位。当RxRDY线输出高电平表示接收器已准备好数据,等待向CPU传输,8251A接收数据的速率由端输入的时钟频率决定。
(2)8251A芯片控制字及其工作方式 825lA在使用前必须初始化,以确定它的工作方式、传送速率、字符格式及停止位长度等,其常用控制字如下: ①方式选择控制字
②操作命令控制字 字格式如图7.23所示,TxEN位是允许发送位,TxEN=1,发送器才能通过TxD向外部串行发送数据。