配套课件-微机接口技术及其应用_第1页
配套课件-微机接口技术及其应用_第2页
配套课件-微机接口技术及其应用_第3页
配套课件-微机接口技术及其应用_第4页
配套课件-微机接口技术及其应用_第5页
已阅读5页,还剩1295页未读 继续免费阅读

下载本文档

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

文档简介

第1章微机接口技术概述

1.1微机接口技术的基本概念

1.2接口电路的基本组成

1.3输入/输出传送控制方式习题与思考题

1.1.1微机接口及接口技术

计算机系统要解决的一个重要问题是主机与外部世界进行通信或实现数据交换,即输入与输出的问题。1.1微机接口技术的基本概念主机与外界之间的通信是通过外围设备(简称外设)来进行的。输入与输出设备是计算机系统的重要组成部分。程序、原始数据和各种现场采集到的数据、信息都要通过输入设备输入至主机,而计算的结果或各种控制信号要输出给各种输出设备,以便显示、打印和实现各种控制功能。输入与输出的操作过程类似于存储器的存取操作。原则上CPU可以采用访问存储器的方式与外设交换数据,但是在实际操作中,外围设备要考虑的问题比访问存储器复杂得多。存储器通常是在与CPU同步的控制方式下工作的,并且内存采用半导体器件,其相应的控制比较简单,与CPU的匹配和定时较易实现。而外设种类繁多,控制复杂。CPU与外设相连时,不能直接用总线相连,而是要通过相应的电路来连接。这是因为CPU与外设之间存在很大的差异,不能匹配。这些差异主要体现在以下几个方面。

(1)交换数据速度不匹配。由于外设的种类繁多,有电磁式、电子式、机电式、机械式等,因而不同外设交换数据的速度有很大差异,比如110位/秒的电传打字机与25万位/秒的磁盘驱动器。这些数据的速度变化不依赖于计算机,它们无法直接与CPU匹配。

(2)信号类型和电平幅度不匹配。外设提供的信息种类可能不相同,有模拟量、开关量和数字量;提供的信号电平的高低也相差很大。而CPU处理的信息只能是数字量。

(3)信息格式不匹配。

外设产生的信息结构较复杂,不同外设之间的信息格式各不相同,如盒式磁带机与磁盘机之间的信息结构和格式有差别,其要求控制的时序也不同。

(4)时序不匹配。各种外设都有自己的时钟和控制逻辑,与计算机的CPU时序不一致。

因此输入与输出设备不能直接与CPU的系统总线相连,必须在CPU与外设之间设置专门的接口电路来解决这些问题。

由此可见,微机与各种外设的信息交换是比较复杂的,它们之间存在如何连接的问题。一般来说,每种外设都有其具体的问题,必须用一个专门的接口来实现主机用的信号与外设用的信号之间的匹配或转换,并通过该接口提供相应的数据格式、适当的时序控制和同步协调,以及进行数据缓冲、传送设备的有关状态信息等。这样的接口电路通常位于主机与外设之间,能够完成主机与外设之间的信息传送。微机接口(MicrocomputerInterface)是构成微型计算机系统最重要的部件之一,是CPU和外设之间进行信息交换的中转站和桥梁。离开微机接口的微处理器就好像离开电路的晶体管一样,毫无用处。随着计算机技术的飞速发展,特别是微型计算机的发展与应用,需要和主机接口的外围设备越来越多,而且越来越复杂。接口本身不但是一些逻辑电路的简单组合,而且已发展成为硬件和软件相结合的一门综合技术,称为“微机接口技术”。微机接口技术体现了计算机的体系结构,关系着计算机的推广和应用,已成为开发应用微型计算机系统的一门基本技术。1.1.2接口的功能

接口技术是用硬件和软件相结合的方法来处理主机与外部世界的通信和数据交换,使其达到最佳匹配,实现高效、可靠的信息交换的一门技术。为了达到这样的目的,就需要解决主机与外部世界存在不匹配的矛盾。接口应具备如下功能:

1.信息格式转换

外设产生的信息结构很复杂,不同设备有不同的信息格式和种类,它们与CPU的信息格式不兼容,需要在接口中进行转换,如正负逻辑的转换、串行信息与并行信息的变换等。

2.各信息类型和电平的转换

外设提供不同类型的信息,且信号电平的高低不同。

接口主要完成将不同的信号类型(如模拟量、开关量等)和高低不同的电平转换成CPU能接收的数字量。

3.缓冲输入/输出数据

在接口中设置数据寄存器来缓冲输入/输出数据,使高速的主机与低速的外设匹配而不致于丢失数据。

4.接收和执行各种命令

主机给外设发布的各种命令通过接口形成一系列控制信号来控制外设。

5.传送各种状态信息

接口为主机提供外设当前所处状态的有关信息,如数据缓冲的“空”或“满”,设备是否“准备好”,以及“忙”或“闲”等有关状态信息。

6.选择设备

系统中一般配有多台外设,在同一时间里CPU只能与一台外设交换信息,接口要经地址译码对外设进行寻址,以便选择当前需要交换数据的设备与CPU交换信息。

7.对外设进行中断管理

当外设与CPU以中断方式交换信息时,接口能暂存中断请求,进行中断排队,提供中断识别信息或相应的中断矢量等。

8.可编程功能

在不变动硬件电路的情况下,可通过编程来任意设置与变更接口芯片的工作方式和各种参数,使接口具有灵活性和可扩充性。

综上所述,接口的主要功能是执行命令、提供状态、管理中断、协调交换和变换信息格式。这些功能并不是所有接口必须具备的功能。根据系统的不同配置和用途,其接口的功能和工作方式有所不同,应视具体系统的要求而定。1.1.3接口的分类

1.按适应面划分

微机接口从适应面角度划分,可以分为专用接口、通用标准接口和增强功能用的接口三大类。

1)专用接口

专用接口包括用户交换接口和辅助操作接口两类。

(1)用户交换接口。用户交换接口又称人机交互设备接口。这类接口的主要功能是将用户指定的数据、信息传送给主机,而将来自主机的数据、信息传送给输出设备。随着微机的不断发展,人机接口又可分为常规人机接口和智能人机接口。

常规人机接口是以计算机为中心的,即输入/输出的信息是以二进制码、十六进制或ASCII码形式传送的。这种形式的信息计算机容易接受和便于处理,而人接受和处理就不大方便。属于这类接口的有键盘接口、显示器接口和打印机接口等。智能人机接口是以人为中心的,这类接口以人容易接受和识别的声音、图像和文字形式来传递信息。这些信息在智能接口中通过适当的处理和转换,成为计算机能接受的二进制数字形式送入机器。这类接口有多媒体接口中的SCSI接口,以及音频卡、视频卡等。

(2)辅助操作接口。辅助操作接口是实现主机和外设之间通信的一些基本处理与控制的接口。属于这类接口的有磁盘接口(包括软盘和硬盘),以及总线驱动器、数据锁存器等。辅助操作接口又称内务操作接口。

2)通用标准接口

通用标准接口是指符合标准化而且通用的接口,可以为多种外设所使用,例如RS-232C、IEEE-488、模拟接口等。

3)增强功能用的接口

这类接口主要用于增强主机功能,有中断控制口、DMA控制口等。

2.按数据传输方式划分

按数据传输方式划分,微机接口可以分为并行接口和串行接口。

1)并行接口

并行接口指同时可传送多位二进制信息的接口电路,用于数据并行传送。由于并行传送多位信息,因此传送效率高,适于近距离传输。

2)串行接口

串行接口用于串行通信方式中。串行通信方式中数据是一位一位进行传输的,每一位数据都占据一个固定的时间长度。因此这种方式传送的效率低,适于远距离传输。

1.2.1端口

主机与外设之间交换的信息有三种基本类型:数据信息、控制信息和状态信息。通常我们把计算机与外设之间的这种交换数据、状态和控制命令的过程称为通信(Communication)。1.2接口电路的基本组成数据可以用8位、16位或32位、64位来表示,数据的传送可以是并行传送和串行传送两种形式。状态信息表示外设当前所处的状态。控制信息是主机向外设发出的各种控制命令。这三种不同性质的信息应该分别传送。但是在大部分微机中,I/O接口的寻址方式采用独立编址方式,即用IN和OUT指令访问接口电路,这样数据、状态和控制信息都将作为一种数据进行输入/输出。为了区分这三种不同性质的信息,在接口中设置了不同的寄存器来存放这三种不同的信息,并给每个寄存器一个地址号。我们将这些能完成接口任务,可以寻址进行读或写的寄存器称为端口。在一个接口电路内往往包含有两个以上的端口,根据存放信息性质的不同,端口可以分为数据口(存放主机与外设要交换的数据)、状态口(存放状态信息)和控制口(存放各种控制命令)。每个端口分配一个地址号,称为端口地址。1.2.2典型接口电路的组成

典型接口电路的内部结构框图如图1-1所示。一般的接口电路由两部分构成:第一部分(左边部分)通过系统总线与CPU相连,第二部分(右边部分)与外设相连。

图1-1典型接口电路的内部结构框图第一部分实现的功能如下:

(1)

CPU发出的控制信息和数据信息送入数据总线缓冲器,在控制逻辑的控制下再送到相应的端口,并将外设送给CPU的数据和状态信息通过数据总线缓冲器提供给CPU。

(2)

CPU发出的端口地址由AB总线送到地址缓冲器,经地址译码后产生相应端口地址的片选信号。

(3)控制逻辑及联络信号产生主机与外设之间通信的联络信号,以便达到时序的配合与同步。由于这一部分与系统总线相连,因此各类接口中这部分的结构非常相似。

第二部分实现的功能如下:

这部分与外设相连,其结构与外设的传输要求、数据类型和数据格式有关。因此,对于不同的外设接口,这部分的结构差异很大。图1-1所示的三种端口仅仅是接口中主要的端口,是CPU与外设进行信息交换必不可少的部分。对于不同的接口,其端口的类型和数量都有差别,要根据具体接口的功能要求而定。

(1)数据端口。数据端口包括数据输入和输出端口。输入端口是将外设送来的数据暂存,以供CPU读取。输出端口是将CPU输出到外设的数据保存足够长的时间,以满足输出设备的需要。CPU送到数据总线上的数据一般只能维持数百微秒,对大多数外设来说,这段时间是不够长的。

(2)控制端口。控制端口用于存放CPU发来的控制命令和其他信息。这些控制命令的内容一般包括设置接口的工作方式,指定相应的参数等。

(3)状态端口。状态端口用于保存现行状态信息,供CPU查询、判断使用,以达到同步和协调的目的。1.2.3设计接口电路的方法

1.设计接口电路的步骤

设计接口电路一般按照下列步骤进行:

(1)分析设计要求;

(2)选择合适的接口芯片;

(3)硬件设计;

(4)软件设计;

(5)软/硬件调试。

在设计前一定要充分了解原有微机系统的特性,特别是微处理器的技术指标和要求,如字长、寻址方式、指令系统、运行速度、时序关系、功耗大小、承载外设的能力等。将要连接的外设的工作原理、技术特性、信息格式、电气特性等方面的技术资料准备齐全,并仔细研究。这些工作是设计前必备的条件,只有在此基础上才能按以上步骤进行设计。

2.设计接口电路的基本方法

在充分掌握所设计的系统(包括CPU和外设)的工作原理、技术指标和特性的基础上,设计接口电路要按以下步骤进行设计。

(1)分析设计要求。在设计接口时,首先根据设计要求,明确接口要实现的个体功能。由于接口电路一侧连接CPU,另一侧连接外设,因此,要分别研究两侧的已有条件和需要解决的问题。这种方法就是我们通常所说的两侧分析法。首先,了解与CPU连接部分的已有条件,包括CPU的类型、数据线的宽度、地址线的宽度、控制线的功能、CPU时序的要求等。这部分设计中要解决的问题是在选择接口芯片时,其数据缓冲器、地址缓冲器以及控制逻辑都要满足已有条件,才能与CPU匹配。

其次,看与外设连接的基本要求,对所连外设的型号、电气特性、信息格式、可提供的状态信息、传输速度等进行研究分析,为下一步选择合适的接口芯片提供可靠的数据。

(2)选择合适的接口芯片。通过对接口两侧的分析,找到两侧信号在进行连接时存在的差别后,接口要完成的任务就非常明确和具体了,即明确了哪些信号要进行变换(包括信号格式、高低电平的转换等),这些信号之间的逻辑关系,时序上如何配合等问题。由此可以确定该接口中需要各类端口的数目、连接方式、完成的功能以及地址分配等。最后由上述困素来初步选定主要采用的接口芯片。在选用芯片时要注意两点:一是要尽量采用集成接口芯片(LSI或VLSI芯片),最好选用与CPU同一系统的接口芯片,这样,使用会更方便;二是要简化电路,进行优化组合。由于实现同一接口功能可以采用不同的接口芯片和相应的软件,因此要软/硬件相结合,综合考虑。

3.硬件设计

硬件设计主要是指合理选用外围接口芯片和有针对性地设计附加电路。由选定的芯片便可进行硬件设计,完成接口电路功能模块化总体结构的设计,画出具体的硬件电路结构框图。其具体做法如下:

(1)合理选用外围接口芯片。由于随着现代微电子技术和集成电路的发展,目前,各种接口电路都已做成集成芯片,由中规模或大规模集成接口芯片代替了过去的数字电路,因此,在接口设计中,通常不需要繁杂的电路参数计算,而需要熟练掌握和深入了解各类芯片的功能、特点、工作原理、使用方法及编程技巧,以便根据设计要求和经济准则,合理选择芯片,把它们与微处理器正确地连接起来,并编写相应的控制程序。采用集成接口芯片的接口体积小,功能完善,可靠性高,易于扩充,应用极其灵活方便。所以,接口芯片在微机接口技术中起着很重要的作用,应给予足够的重视。可编程集成接口芯片是接口硬件设计中的首选元器件,应尽量采用,并且把它们作为各种接口电路的核心芯片来使用。

(2)有针对性地设计附加电路。外围接口芯片并非万能,因此,当接口电路中有些功能不能由接口的核心芯片完成时,就需用户附加某些电路予以扩充。如逻辑关系与电平转换、时序配合以及驱动能力等方面的功能,可以采用反相器、三极管、缓冲器、与门、或门以及驱动器等芯片,设计一些辅助电路加到接口电路中。

(3)根据选定的芯片,画出各芯片间的信号连接(包括数据信息、控制信息和状态信息的连接)、地址译码以及满足时序关系的联络线等符合设计要求的接口逻辑框图。

4.软件设计

接口的硬件电路只提供了接口工作的基础,要使接口真正发挥作用就要配备相应的控制软件。软件设计可确定CPU与外设以什么样的方式交换信息(是用查询方式、中断方式,还是DMA方式),因为采用不同的传送方式,其接口的结构和相应的编程方法是有差异的。硬件结构确定下来以后,便可进行相应的软件设计。软件设计一般可按照下面五个步骤进行。

(1)采用汇编语言(或高级语言)直接对低层硬件编程。用户应用系统的接口控制程序应直接面向接口编程。由于接口程序对硬件具有依赖性,与一般的管理程序和数据处理程序不同,它直接与硬件打交道,因此,设计者必须对相应的硬件细节十分熟悉。具体地讲,就是对接口芯片和被控对象的外部特性以及接口芯片的编程命令要彻底弄清楚才能着手编写程序。编程语言可以用汇编语言,也可以用高级语言(如C或C++),但从程序的实时性与代码效率以及充分发挥低层硬件的潜力来看,采用汇编语言更佳。

(2)采用DOS系统功能调用和BIOS调用编程。在应用程序中,当涉及到使用系统资源(如键盘、显示器、打印机、串行口等)时,可以采用DOS和BIOS调用,而不需作低层编程。这是因为对于微机系统中的标准设备,在DOS系统功能和ROM-BIOS中都有相应的功能子程序供用户调用。但是,对于接口设计者来说,常常碰到的是一些非标准设备,所以就需要自己动手编制接口控制程序。

(3)明确软件功能。根据硬件电路的结构要求,配上相应的软件才能完成接口的功能。软件在选定的传送方式下用相应的控制程序来实现CPU和外设间的通信。对于不同的传送方式(如查询、中断或DMA方式),其相应的控制程序是不一样的。

(4)确定算法,画出程序流程图。软件编制前,根据软件的功能确定好算法,采用模块化程序设计方法,画出程序流程图。该流程图一般由初始化模块和若干功能模块组成。

(5)编制程序。在编制程序前要选好编程语言,是采用高级语言、汇编语言,还是混合语言,这取决于设计要求和程序执行的速度。采用高级语言编程速度快,研制时间短,约为采用汇编语言程序编程所占用时间的(1/4)~(1/20)。但是高级语言编制的程序占用的存储器容量大,比用汇编语言编制的程序所占的存储器容量多2~10倍。因此,在具体设计中要从设计功能和经济性,以及执行速度等方面来衡量。一般可以采用混合语言编程的方式(汇编语言与高级语言混合编程),即在用高级语言编写的程序中,插入用等效汇编语言编写的子程序。一般编写子程序往往占编写整个程序所用时间的90%,但执行时间往往只占整个程序执行时间的10%。因此用这种办法可以提高程序的运行速度,降低软件研制的难度。选定编程语言后,根据程序流程图,按模块功能编制程序,并进行软件调试。上述四个步骤完成后,再按照设计好的接口硬件电路图选择好所需的芯片及器件,按接口图组装接口电路,并按设计要求进行硬件调试和软/硬件联机调试。1.2.4I/O接口的编址方式

每个接口部件都包含一组寄存器,如图1-2所示。CPU和外设进行数据传输时,各类信息在接口中存入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。

图1-2外设通过接口和系统的连接用于对来自主机的数据或者送往主机的数据起缓冲作用的端口叫数据端口。

用来存放外设或者接口部件本身状态的端口,称为状态端口。CPU通过对状态端口的访问可以检测外设和接口部件当前的状态。

用来存放CPU发出的命令,以便控制接口和设备动作的端口叫命令端口。

可以说,计算机主机和外部设备之间都是通过接口部件的I/O端口来沟通的,所以,CPU必须有和I/O端口打交道的办法。

在微型计算机中,常用以下两种I/O端口编址方式。

1.I/O端口地址与内存单元地址统一编址

这种编址方式又称为存储器映射编址方式。在这种编址方式中,将I/O端口地址和内存地址统一安排在内存的地址空间中,即把内存的一部分地址分配给I/O端口,由端口来占用这些地址。用于I/O端口的内存地址,存储器不能再使用。这样,计算机系统的内存空间一部分留作端口地址来使用,而剩下的内存空间可作内存使用。

I/O端口与内存统一编址的方式占用了部分内存空间,将I/O端口看做是内存单元。因此,从原则上讲,用于内存的指令都可以用于外设,这给使用者提供了极大的方便。但由于I/O端口占用内存地址,因此就相对减少了内存的可用范围。而且,从指令上不易区分是访问内存的指令还是用于输入/输出的指令。这种编址方式在68系列和65系列的微型机中已得到了广泛的应用。

2.I/O端口与内存独立编址

在这种编址方式中,内存地址空间和I/O端口地址是相对独立的。例如,在8088/8086CPU中,内存地址是连续的1MB,为00000H~FFFFFH,而I/O端口的地址范围为0000H~FFFFH,它们相互独立,互不影响。这是由于CPU在访问内存和外设时,使用了不同的控制信号来加以区分。8086CPU的M/ 信号为1时,表示地址总线上有一个内存地址;当它为0时,表示地址总线上的地址是一个有效的外设地址。内存与端口独立编址各自有自己的寻址空间。用于内存和用于I/O端口的指令是不一样的,很容易辨认。但用于I/O端口的指令功能比较弱,一些操作必须由外设首先输入到CPU的寄存器后才能进行。这种编址方式在Z80系列及Intel80系列微机中得到了广泛采用。1.2.5译码电路

地址译码电路根据为接口电路分配的地址范围来对地址信号进行译码,产生接口芯片的片选信号。除了地址信号,I/O地址译码还与一些控制信号有关,如用 、 来区分输入端口、输出端口,用AEN控制是否为DMA传送。当AEN为高电平时,地址译码无效。

1.门组成的译码电路

图1-3(a)所示的是一个由门电路组成的端口地址译码电路的实例。该电路占有端口地址300H和301H。图1-3(a)中对高位地址A9~A1进行译码,而且由AEN参加译码,当AEN=0(非DMA操作)时,译码器才能输出有效的 译码信号,当AEN=1(DMA操作)时,译码器被禁止。

图1-3译码电路在图1-3(a)中,将地址A0的状态表示为×,即不论A0=0还是A0=1,只要AEN=0且A9~A1为110000000,均有 =0。因此说这个译码电路占有端口地址300H和301H。

图1-3(b)所示为一个含有A、B两个端口的接口芯片。当其片选端 =0时,若A0=0,则选通端口A;若A0=1,则选通端口B;若 =1,则两个端口均不选通。因此称

为该芯片的片选端,A0为片内端口的选择端。若将图1-3(a)所示的译码输出端 接至图1-3(b)所示的 端,即用图1-3(a)所示的译码器的输出作为图1-3(b)所示的接口芯片的片选信号,而将最低位地址线A0与接口芯片的端口A0相连,即将低位地址A0作为片内选择,则端口A的地址为300H(1100000000),端口B的地址为301H(1100000001)。

2.可选式译码电路

接口适配器上的端口地址可能需要适应不同场合而发生改变。例如,不同的通信口所用的控制卡是通用的,仅仅在地址上有所区别,通信口1控制卡地址为3F8H~3FFH,通信口2控制卡地址为2F8H~2FFH。并行口控制卡的情况也相似,并行口1控制卡地址为370H~37FH,并行口2控制卡地址为270H~27FH。为此,通信口控制卡或并行口控制卡可以采用可选择译码电路,对于不同的通信口控制卡,只需改变跳线的连接即可。图1-4所示是通信口控制卡上的译码电路。

图1-4通信口控制卡上的译码电路当跳线J10接通时,地址范围为2F8H~2FFH,与通信口2的译码器连接;而当跳线J12接通时,地址范围为3F8H~3FFH。通信口控制卡的电路结构完全一样,不同编号的通信口控制卡只需改变跳线连接即可。

3.专用译码器

专用译码器有多种信号,例如,3-8线译码器74LS138、2-4线译码器74LS139、74LS155、4-16线译码器74LS154等。

74LS138译码器的逻辑图、引脚排列及真值表如图1-5所示。74LS138有G1、、三个控制端,只有当G1=1、=0、=0时,才允许对A、B、C输入的代码进行译码,即可以根据A、B、C三位代码的状态使~这8个输出信号中的一个成为有效电平。A、B、C代码与~的对应关系如图1-5(c)所示。

图1-574LS138译码器的逻辑图、引脚排列及真值表

图1-574LS138译码器的逻辑图、引脚排列及真值表1.2.6简单的I/O接口芯片

常用的简单输入/输出接口芯片主要有缓冲器(Buffer)和锁存器(Latch)。

1.缓冲器74LS244和74LS245

连接在总线上的缓冲器都具有三态输出能力,当CPU或I/O接口电路需要输入/输出数据时,在它的使能控制端EN(或G)作用一个低电平脉冲,使其内部的各缓冲单元接通,即处在输出0或1的透明状态,数据就会被送入总线。当使能脉冲撤除后,缓冲器处于高阻态。这时,各缓冲单元就像一个断开的开关,相当于将它所连接的电路从总线上脱开。74LS244和74LS245就是最常用的数据缓冲器。缓冲器除具有缓冲作用外,还能提高总线的驱动能力。

1)

74LS244

74LS244是一种8路数据缓冲器,其逻辑功能和引脚如图1-6所示。

由图1-6可见,该缓冲器内部包含8个三态缓冲单元,它们被分为两组,每组4个单元,分别由门控信号 和

控制。当 =0时,A输入端1A1~1A4的高电平或低电平将被传送到Y输出端1Y1~1Y4;当 =0时,2A1~2A4的信号被传送到2Y1~2Y4;当 =1和 =1时,输出呈高阻态。图1-674LS244逻辑功能图和引脚图当把该缓冲器用于8位数据总线时,可将 和 端连在一起,由一个片选信号来控制。74LS244常用来构成外设输入数据端口,这时它的输入端A与外设数据线相连,而输出端Y并接在CPU的数据总线上。74LS244是一种单向数据缓冲器,数据只能从A端传送到Y端,若要进行双向数据传送,可选用双向数据总线缓冲器74LS245。

2)

74LS245

74LS245的逻辑功能和引脚如图1-7所示。74LS245内部包含8个双向三态缓冲器。控制信号中,除了一个低电平有效的门控信号输入端 之外,还有一个方向控制端DIR。只有当 =0时,数据才能从A传送到B或从B传送到A;当DIR为高电平时,数据从A端传向B端,为低电平时,数据则从B端流向A端。

图1-774LS245逻辑功能图和引脚图

2.锁存器74LS373

锁存器具有暂存数据的能力,能在数据传输过程中将数据锁住,在此后的任何时刻,在输出控制信号的作用下将数据传送出去。

74LS373是一种常用的8D锁存器,它可以直接挂到总线上,并具有三态总线驱动能力。图1-8所示是74LS373的逻辑图,括号中的数字为引脚号,表1-1是其真值表。

图1-874LS373的逻辑图

表1-174LS373真值表从图1-8中可以看出,74LS373由一个8位寄存器和一个8位三态缓冲器构成,寄存器的每个单元则是一个具有记忆功能的D触发器。它有两个控制输入端,即输入使能端G和允许输出端 。当G=1时,加在各触发器的D输入端的0或1电平被传送到它的Q端,且记忆在那里。 端电平与Q端电平相反。此后,若在端加一个低电平脉冲,则记忆在 端的电平将经三态门再反相后传送到输出端O。可见,如果这两个控制脉冲同时作用,则锁存器的输出O将随输入D而变,呈透明态。若将G端的高电平撤除,使之变成低电平, 保持低电平,则输出端O将是前面锁存的数据,这时D端的任何变化都不影响输出。如果 端为高电平,则不论G的电平如何,输出都将呈高阻态,与总线断开。 、G、D和O信号之间的关系如表1-l所示。在应用中,可根据实际需要设置74LS373的控制信号。例如,希望先输入数据,在以后适当的时刻再输出,可对G和 分别进行控制;如果只需要使用它的记忆功能,不需要三态缓冲,可直接把 端接地,仅控制G。

像74LS373这样具有三态输出缓冲功能的锁存器还有74LS374,它们的内部结构几乎相同,惟一不同的是后者必须用G信号的上升沿来触发。此外,74LS273是不含三态门的8D锁存器,相当于一个8位寄存器,可用在那些仅需要锁存数据,不需要三态缓冲的场合。不少中、大规模集成接口芯片的内部,也都具有锁存器和缓冲器逻辑。锁存器的用途较广,既可用来构成输出端口,也能用于输入端口的设计。

随着计算机技术的飞速发展,计算机系统中输入/输出设备的种类越来越多,速度差异十分悬殊。对这些设备的控制也变得越来越复杂。CPU与外设之间的数据传输必须采用多种控制方式,才能满足各类外设的要求。在微型计算机系统中,可采用的输入/输出方式主要有程序控制方式、中断方式和DMA方式三种。前两种方式主要由软件实现,DMA方式主要由硬件实现。下面对这几种数据传送方式作一简要介绍。1.3输入/输出传送控制方式1.3.1程序控制方式

程序控制传送方式是指CPU与外设之间的数据传送是在程序控制下完成的,它又可以分成无条件传送和条件传送两种方式。

1.无条件传送方式

无条件传送方式也称为同步传送方式,主要用于对简单外设进行操作,也可用于外设的定时是固定的或已知的场合。也就是说,对于这类外设,在任何时刻均已准备好数据或处于接收数据状态,或者在某些固定时刻,它们处在数据就绪或准备接收状态,因此程序可以不必检查外设的状态,而在需要进行输入或输出操作时,直接执行输入/输出指令。当

I/O指令执行后,数据传送便立即进行。这是一种最简单的传送方式,所需要的硬件和软件都较少。例如,要将几个按键开关的状态输入CPU,如图1-9所示。将这些开关连接到一个三态缓冲器,将缓冲器的输出端连接到CPU的数据总线,就构成了一个最简单的输入端口。当开关断开时,上拉电阻保证缓冲器的每个输入端为高电平,当某个开关合上时,相应的输入端变为低电平,即任何时刻,开关总有一个固定的状态(开或关)。当需要了解开关的状态时,可随时执行输入指令,输入命令使M/ 、 和选中此端口的片选信号 同时变成有效的低电平,它们相与后的低电平开启缓冲器的三态门,使各开关的当前状态以二进制值的形式出现在数据总线上,并被读入CPU,检查这个字节各位的内容,便能了解各开关的当前状态。在其他时刻,三态门呈高阻态,将开关和数据总线隔离。

图1-9简单输入端口另一个无条件传送的典型例子是用程序来控制LED显示器的点燃和熄灭。LED又称发光二极管,当它被加上2V左右的正偏电压时便发光,因此能被TTL电平所驱动。常用LED来指示计算机或仪器的某些状态,例如PC机面板上指示硬盘正在工作的HDD指示灯就是一个最常见的LED应用的例子。

通常用一个由锁存器构成的输出端口把LED接到计算机的数据总线上,并串接一个限流电阻,如图1-10所示。一个8位的输出端口最多能驱动8个LED。图1-10中,各LED的阴极接地,称为共阴极连接。这样,当需要点燃某个LED时,只要用输出指令向此端口输出一个字节,该字节中与点燃的LED相应的位是1,其余各位为0。输出指令使M/ 、 和片选信号 同时变低,它们相与后的低电平信号经反相后触发锁存器,将输出指令送到数据总线上的值锁存在输出端,使指定的LED发光。由于锁存器的作用,此值能一直保存到下一条输出指令到达为止,因此,在这段时间里,LED的状态也将保持不变。显然,在这个例子中,LED总是处于可用状态,随时都可以向这个端口输出数据,控制各LED的点亮或熄灭。图1-10简单输出端口此外,有些设备与CPU之间的信息交换可能不是很频繁,从而能保证每次用输出指令输出数据时,I/O接口电路中的数据输出缓冲器总是空的,或者外设总是处于空闲状态,而当用输入指令输入数据时,接口电路中的输入缓冲器内总是将数据准备就绪。遇到这类情况时也可采用无条件传送方式。不过,这类情况比较少见,电路上也不容易实现。因此,除了上面讨论的简单输入/输出端口外,通常都采用下面几种方式传送数据。

2.条件传送

条件传送方式也称为查询式传送方式。一般情况下,当CPU用输入/输出指令与外设交换数据时,很难保证输入设备总是准备好了数据,或者输出设备已经处在可以接收数据的状态。为此,在开始传送前,必须先确认外设已处于准备传送数据的状态,才能进行传送,于是就提出了查询式传送方式。采用这种方式传送数据前,CPU要先执行一条输入指令,从外设的状态端口读取它的当前状态。如果外设未准备好数据或处于忙碌状态,则程序要转回去反复执行读状态指令,不断检测外设状态;如果该外设的输入数据已准备好,CPU便可执行输入指令,从外设读入数据。

查询式输入方式的接口电路和工作流程分别如图1-11和图1-12所示。

图1-11查询式输入方式的接口电路

图1-12查询式输入方式的工作流程图由图1-11可见,接口电路包含状态端口和输入数据端口两部分,分别由I/O端口译码器的两个片选信号和 信号控制。状态端口由一个D触发器和一个三态门(通常是三态缓冲器中的一路)构成。输入数据端口由一个8位锁存器和一个8位缓冲器构成,它们可以被分别选通。当输入设备准备好数据后,就向I/O接口电路发一个选通信号。此信号有两个作用:一方面将外设的数据送入接口的数据锁存器中,另一方面使接口中的D触发器的Q端置1。CPU首先执行IN指令读取状态端口的信息,这时M/ 和

信号均变低。M/ 为低,使I/O译码器输出低电平的状态端口片选信号 。 和 经门1相与后输出低电平,使三态缓冲器开启,于是Q端的高电平经缓冲器(1位)传送到数据线上的READY(D0)位,并被读入累加器。程序检测到READY位为1后,便执行IN指令读数据端口。这时M/ 和 信号再次有效,先形成数据端口片选信号 , 和 经门2输出低电平。它一方面开启数据缓冲器,将外设送到锁存器中的数据经8位数据缓冲器送到数据总线上后进入累加器,另一方面将D触发器清0。一次数据传送完毕,接着就可以开始下一个数据的传送。当规定数目的数据传送完毕后,传送程序结束,程序将开始处理数据或进行别的操作。

设状态端口的地址为PORTS,输入数据端口的地址为PORTD,传送数据的总字节数为COUNT,则查询式输入数据的程序段为

MOV BX,0 ;初始化地址指针 BX

MOV CX,COUNT ;字节数

READS:

IN AL,PORTS ;读入状态位

TEST AL,01H ;数据准备好否?

JZ READS ;否,循环检测

IN AL,PORTD;已准备好,读入 数据

MOV [BX],AL ;存到内存缓冲区 中

INC BX ;修改地址指针

LOOP READS ;未传送完,继续 传送

… ;已传送完

查询式输出方式的接口电路和工作流程分别如图1-13和图1-14所示。

与输入接口类似,输出接口电路也包含两个端口:状态端口和数据输出端口。状态端口也由一个D触发器和一个三态门构成,而数据输出端口只含一个8位数据锁存器。

图1-13查询式输出方式的接口电路

图1-14查询式输出方式的流程图当CPU准备向外设输出数据时,它先执行IN指令读取状态端口的信息。这时,低电平的M/ 和有效的端口地址信号使I/O译码器的状态端口片选信号 变低, 再和有效的

信号经门1相与后输出低电平,该低电平使状态端口的三态门开启,从数据总线的D1位读入BUSY状态。若BUSY=1,表示外设处在接收上一个数据的忙碌状态。只有当BUSY=0时,CPU才能向外设输出新的数据。当CPU检查到BUSY=0时,便执行OUT指令,将数据送向数据输出端口。这时低电平的M/ 使I/O译码器的状态端口片选信号 变低, 再和 信号经门2相与后输出低电平的选通信号,该信号用来选通数据锁存器,将数据送向外设。同时,选通信号的后沿还使D触发器翻转,置Q为高电平,即把状态口的BUSY位置为1,表示忙碌。当输出设备从接口中取走数据后,就送回一个应答信号 ,它将D触发器清0,即置BUSY=0,允许CPU送出下一个数据。

设状态口的地址为PORTS,输出数据口的地址为PORTD,传送数据的总个数为COUNT,则查询式输出数据的程序段为

MOVCX,COUNT ;传送的字节数

READS:

INAL,PORTS ;读入状态位

TESTAL,02H ;忙否?

JNZREADS ;忙,循环检测

MOVAL,输出数据 ;不忙

OUTPORTD,AL ;输出数据

LOOPREADS ;未传送完,循环

… ;已送完1.3.2中断方式

用查询方式使CPU与外设交换数据时,CPU要不断读取状态位,检查输入设备是否已准备好数据,输出设备是否忙碌或输出缓冲器是否已空。若外设没有准备就绪,则CPU必须反复查询,进入等待循环状态。由于许多外设的速度很低,这种等待过程会占去CPU的绝大部分时间,因而真正用于传输数据的时间很少,CPU的利用率很低。例如,若一个操作员每秒钟可从键盘输入5个字符,平均每个字符占2×105μs的时间,实际上计算机只要用10μs就能从键盘读入一个字符,这样就有999950μs的时间花在检测键盘状态和等待上,也就是说,99.99%的时间因等待而白白浪费掉了。如果有多个设备工作,还要轮流查询,而这些设备的工作速度又往往各不相同,这样不仅极大地浪费了CPU的时间,还会因为程序进入等待某些慢速外设数据的循环而造成快速外设数据的大量流失,这在许多系统中是不允许的,尤其不能用于要求实时数据处理的场合。为了提高CPU的利用率和进行实时数据处理,CPU常采用中断方式与外设交换数据。采用中断方式后,CPU平时可以执行主程序,只有当输入设备将数据准备好时,或者输出端口的数据缓冲器已空时,才向CPU发中断请求。CPU响应中断后,暂停执行当前的程序,转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之间进行一次数据交换。待输入或输出操作完成之后,CPU又回去执行原来的程序。

有关中断的概念将在第4章中详细介绍,这里不再赘述。1.3.3DMA方式

1.DMA方式的提出

利用中断方式进行数据传送可以大大提高CPU的利用率,但在中断方式下,仍必须通过CPU执行程序来完成数据传送。每进行一次数据传送,CPU都要执行一次中断服务程序。这时,CPU都要保护和恢复断点,通常还要执行一系列保护和恢复寄存器的指令,即保护现场,以便完成中断处理后能正确返回主程序。显然,这些操作与数据传送没有直接关系,但会花费CPU的不少时间。再者,8086CPU一旦进入中断,指令队列就要清除,执行部件(EU)要等总线接口部件(BIU)将中断处理子程序中的指令取到队列后才执行;恢复断点时,指令队列也要被清除,执行部件也必须等总线接口部件把断点处的指令装入后才开始执行。所以,在这段时间内,执行部件和总线接口部件不能并行工作,这也会造成数据传送效率的降低。当CPU与高速I/O设备交换数据,或与外设进行成组数据交换时,中断方式仍显得太慢。例如,当磁盘和内存成批交换信息时,磁头的读/写速度可超过200000B/s,因此只有在5μs内完成一个字节的传送,才能充分发挥磁盘大容量的性能优势。如果采用中断方式进行磁盘和内存间的成批数据传送,则只能逐字节进行。例如读盘时,要先把从磁盘读出的数据送入CPU的寄存器,再从寄存器转入内存,然后修改地址指针和字节计数器。这些操作均要用指令来实现,显然不可能在5μs之内完成。为了解决这个问题,可采用一种称为DMA(DirectMemoryAccess)的传送方式,也就是直接存储器存取方式。

DMA方式也要利用系统的数据总线、地址总线和控制总线来传送数据。这些总线是由CPU管理的,但当外设需要利用DMA方式进行数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权,用一种称为DMA控制器的专用硬件接口电路来取代CPU,临时接管总线,以控制外设和存储器直接进行高速的数据传送,而不要CPU进行干预。这种控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在DMA传送结束后,它能释放总线,把对总线的控制权交还给CPU。可见,用DMA方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作,一旦进入DMA操作,就可直接在硬件的控制下快速完成一批数据的交换任务,因此数据传送的速度基本上取决于外设和存储器的存取速度。有些DMA控制器,除了可在外设和内存间直接交换数据外,还能控制内存与内存之间的直接数据交换,如Intel8237ADMA控制器就能完成这种功能。下面以磁盘和内存间数据的DMA传送为例,简单介绍一下利用Intel8237ADMA控制器传送数据的大致过程,有关它的工作原理和使用方法等将在第8章作专门介绍。

2.DMA控制器的连线和操作

DMA控制器经常与磁盘驱动器、数据流记录仪、磁带机和数据采集卡等配合使用,以实现这些外设和内存间的高速数据交换。Intel8237A是一种较常用的DMA控制器,被用在PC/XT和PC/AT机中,以提高系统存取磁盘驱动器的速度。图1-15所示是微机系统中DMA控制器操作框图。在采用DMA控制器的系统中,CPU与DMA控制器分时使用地址总线、数据总线和控制总线。图1-15中用3个开关来表示这种总线的切换。

图1-15微机系统中DMA控制器操作框图采用DMA方式读磁盘的过程分为以下几步:

(1)系统启动时,3个开关拨向上端,总线与CPU、存储器和外设相连,并由CPU来控制。进行一次DMA传输前,首先要对8237A进行初始化编程,包括设定要传送数据的字节计数器初值、指定参与传送的内存块的起始地址,以及选定DMA通道(8237A内部有4个DMA通道)和所用的传送方式等。

(2)

CPU向磁盘控制器发出读盘命令,由磁盘控制器找到要读取的数据位置,并开始读出数据。

(3)当磁盘控制器准备好了第一个字节的数据后,就向DMA控制器发送一个DMA请求信号DREQ。如果DMA控制器的输入通道没有被屏蔽,DMA控制器就送一个保持请求信号HRQ到CPU的HOLD输入端。CPU从HOLD端收到HRQ信号,完成当前的总线操作后,中止当前程序的运行,将它的总线浮空,并发回一个保持响应信号HLDA给DMA控制器,作为收到HRQ信号的应答。DMA控制器收到HLDA信号后,便发送一个控制信号,使3个总线开关拨向下方,让总线和DMA控制器相连,而与CPU脱开。这样,DMA控制器就接管了总线。

(4)

DMA控制器获得总线控制权后,便通过地址总线向存储器发送地址信号,指示要被写入内存的第一个数据的地址。随后,DMA控制器向磁盘控制器发出DMA确认信号DACK,通知磁盘控制器准备好要输出的数据字节。

(5)

DMA控制器使控制总线上的I/O读信号 和存储器写信号 有效。 有效使磁盘控制器能从磁盘向数据总线输出数据字节; 有效使所寻址的存储单元能够接受从数据总线上写入的数据。

(6)每完成一个字节数据的传送,DMA控制器就自动修改内部地址寄存器的内容,使它指向下一个字节的地址,并将统计总字节数的字计数器减1,再重复上述传送过程。当字计数器减为0,并由0减为FFFFH时,表示这批数据已传送完毕,DMA过程结束。

(7)

DMA传送结束后,DMA控制器便撤销它对CPU发出的保持信号HRQ,并释放总线。图1-15中的3个开关又拨回到上方,使总线与CPU相连,CPU恢复对总线的控制权,并从中止处开始继续执行后续程序。

CPU在每一个非锁定时钟周期(Lock为高)结束后,都要检测一下HOLD引脚,看是否有DMA请求信号。若有DMA请求信号,便暂时中止正在执行的程序,进入上述的DMA周期。

1.1什么是接口?为什么要在CPU与外设之间设置接口?

1.2微型计算机的接口一般应具备哪些功能?

1.3计算机对I/O端口编址时采用哪两种方法?在8086

/8088CPU中一般采用哪种编址方法?接口技术在微机应用中起什么作用?

1.4CPU与外设之间传送数据主要有哪几种方式?习题与思考题

1.5说明查询式输入和输出接口电路的工作原理。

1.6简述在微机系统中,DMA控制器从外设提出请求到外设直接将数据传送到存储器的工作过程。

1.7某一个微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LS138作译码器,试画出端口译码电路,并说明每块芯片的端口地址范围。

图1-16题1.10图

1.8你认为学习接口技术的难点在哪几个方面?应如何对付?

1.9在微机系统中,缓冲器和锁存器各起什么作用?

1.10在总线结构中,通常用三态门作为总线开关。74LS245与8086的连接如图1-16所示。为了选通输入方向,8086的各引脚应处于何种状态?8086在什么时候能够使其各引脚处于这样的状态?

1.11图1-17所示为一个扩展I/O模块的译码电路,其中AEN为系统总线信号,当其为高电平时禁止选通I/O模块,为低电平时允许I/O寻址。

(1)已知A15~A10为全0,写出本模块的地址范围。

(2)写出74LS138的各个输出引脚( ~ )所对应的地址范围。

(3)

OE与START均为控制信号,讨论它们在哪个总线周期中会成为高电平,画出对应的周期时序图中OE、START的波形以及与其有关的时序信号。分别写出能产生OE、START正脉冲的指令。

图1-17题1.11图

1.12请用门电路设计并行端口控制卡的译码电路,并行端口1地址为370H~37FH,并行端口2地址为270H~27FH。

1.13试根据图1-18所示的译码电路,列表写出译码器的输出~的地址范围。

图1-18题1.13图第2章总线接口2.1总线的基本概念

2.2总线的通信协议

2.3常用系统总线标准

2.4通信总线标准习题与思考题

2.1.1总线的概念

一般先以各种大规模集成电路芯片为核心组成插件(如CPU插件、存储器插件等),再由若干插件组成主机,最后加上所需的外围设备就组成了整个计算机系统。而若干个微型计算机系统或微型计算机加上其他仪器、仪表或可控制系统等目标系统,又可组成专用系统。每一系统(或插件)必须能同另外的系统(或插件)进行通信,同一插件上的各种芯片也要能够互相通信,因此,插件与插件之间、系统与系统之间的互连和通信问题就要通过总线来实现。2.1总线的基本概念总线是若干互连信号线的集合,是连接计算机各部件或计算机之间的一条公共信息通道。它是构成系统的插件间、插件的片间或系统间的标准信息通路。总线的性能好坏直接影响计算机系统的工作效率、可靠性、可扩展性以及可维护性等多项功能。因此,总线也是众多计算机厂家竞争的对象。采用总线结构有如下优点:

(1)简化软/硬件的系统设计。系统采用总线结构,使硬件设计者只需按总线的规范来设计各种插件板,而不必考虑其他因素。这样设计出的插件板具有互换性与通用性,便于大批量生产。各厂家可以生产出有自己特色的插件,使产品更有竞争力。

插件式的硬件结构带来了软件设计的模块化,这有利于节省软件调试所需的时间,模块化程序可被多用户重复使用。

(2)用总线连接的系统结构简单,便于系统扩充与更新。系统使用总线结构在扩充规模时,只需往总线上再多插几块同类型的插件;在扩充功能时,只需插入所需的符合该总线标准的插件即可;在更新系统时,只需更换所要更新的插件即可。

在一个微机系统中,CPU虽然很重要,但由于所在的地址、数据和控制信号都要通过总线传送,因此总线也是非常重要的,可将其视为整个微机系统的“中枢神经”。此外,总线对整个系统的组成和结构都会产生很大影响,对系统的可靠性、实时性和吞吐量都有决定性影响,因此可以把总线看成是微机系统的“规则”或“结构法规”。2.1.2总线的分类

总线可以从不同角度进行分类,按用途可分为数据总线、地址总线、控制总线、电源线和地线、备用线;按传递方式可分为并行总线与串行总线,并行总线一次能传送8位、16位、32位和64位,多用于系统内部或与主机距离很近的外设,串行总线一次只能传送一位信息,用于较远距离的信息传送;按总线连接的对象不同可以分为芯片总线、片间总线、内总线和外总线,如图2-1所示。图2-1总线分类图

1.芯片总线

芯片总线又称片内总线,它是用来连接CPU内部各个逻辑功能单元的公共总线,是芯片内各单元电路之间相互交换信息的公共通道。其结构与设计由芯片生产厂家来完成。

2.片间总线

片间总线又称元件级总线,是指组成一台微型计算机各芯片(如CPU芯片、存储器芯片、I/O接口芯片等)间的连接总线。片间总线通常包括地址总线、数据总线和控制总线,即所谓的三总线结构。

3.内总线

内总线又称系统总线,主要用于连接微型计算机系统内插件、CPU及其支持电路等。

4.外总线

外总线又称通信总线,用于微型计算机系统之间、微型计算机系统与其他电子仪器或设备之间的通信。这种总线不是微型计算机特有的,一般是借用电子工业或其他领域的总线。

内总线和外总线除三总线外,还包括电源线、地线和备用线(为用户扩展功能用)。片内总线和片间总线没有规定标准。内总线和外总线根据生产和用户的需要规定了总线标准。内总线的规格因所选用的微处理器品种而异,故内总线的标准较多,如S-100总线、Apple总线、STD总线、MULTIBUS总线等。通信总线是微型计算机接口与外设、微型计算机系统间或微型计算机系统与其他系统(如仪器测试系统、控制系统等)间的通信线。由于这种总线不是微型机系统所特有的,因此往往借助于电子工业上已有的总线标准,其标准较少,如IEEE-488、EIA-RS232C、CAMAC、CENTRONIC等。标准化的内总线和通信总线统称为标准总线。按信息传送的方法又分为并行标准总线和串行标准总线两种。内总线都是并行总线,总线上信息传输率比较高。而通信总线则有并行总线(IEEE-488总线和CAMAC总线)和串行总线(RS-232C、RS-422、RS-423等)两种。串行总线所需的传输线较少,所以计算机与通信终端的连接多用串行总线。采用标准总线可以简化软/硬件和系统结构,便于系统扩展、更新、调试及维修。本章重点讨论后两类总线。在使用这两类总线时,用户和制造厂商都希望总线具有通用性,也就是说,希望不同厂家生产的插件板可以互换,不同系统之间可以互连和通信。因此,只要按统一的总线标准进行设计或连接即可。这样,对于生产厂家来说,只要按总线接口规范设计CPU主板、I/O接口板或存储器插件板,然后将插件板插入主机的总线扩展槽中,就可构成系统,很适合于大批量生产、组装和调试,也便于更新和扩充系统。对于用户来说,可根据自身需要,灵活地选购接口板或存储器插件,组装成适合自己应用需要的系统或更新原有系统。例如,一般用户选购计算机时都购置硬盘和软盘驱动器接口板、打印机接口板、

VGA彩色显示器适配卡等;有些需要处理模拟信号的用户可再选购A/D、D/A接口板;需要通过电话网来传送信息的可选购调制解调器(Modem)板;当需要构成一个多媒体系统时,用户可选购声卡、图像解压缩卡、CD-ROM驱动器等;必要时用户还可根据总线标准的要求,自行设计接口电路板。目前,使用高档机的用户可直接购置一块多功能卡,上面包含硬盘驱动器、软盘驱动器、并行打印机和串行通信口等各种接口电路,这样就不需要用多块插件板了。2.1.3总线的主要参数

1.总线宽度

总线宽度又称总线位宽,指的是总线能同时传送数据的位数。例如16位总线、32位总线指的就是总线具有16位数据和32位数据传输能力。在工作频率固定的条件下,总线带宽与总线宽度成正比。

2.总线频率

总线频率是总线工作速度的一个重要参数,工作频率越高,速度越快。例如总线频率为33MHz、66MHz、100MHz、133MHz等。

3.总线带宽

总线带宽又称总线的数据传输率,是指在单位时间内总线上可传送的数据总量,用每秒钟最大传送数据量来衡量,单位是字节/秒(B/s)或兆字节/秒(MB/s)。与总线带宽密切相关的两个概念是总线宽度和总线的工作频率。总线带宽越宽,传输率越高。总线带宽与总线宽度和总线频率的关系为

上式中,总线带宽的单位为MB/s(总线频率以MHz为单位)。例如总线频率为66MHz,32位总线,若每两个时钟周期完成一次总线存取操作,则总线带宽(数据传输率)为

即每秒传输132MB。结论:工作频率越高,总线工作速度越快,即总线带宽越宽。总线带宽、总线宽度、总线工作频率三者之间的关系就像高速公路上的车流量、车道数和车速的关系。车流量取决于车道数和车速,车道数越多、车速越快,则车流量越大。同样,总线带宽取决于总线宽度和工作频率,总线宽度越宽,工作频率越高,则总线带宽越大。当然,单方面提高总线宽度或工作频率都只能部分提高总线的带宽,并容易达到各自的极限。只有两者配合才能使总线的带宽得到更大的提升。

由于总线是在微机内和系统间传送各种信息(包括数据、地址和控制信号)的通路,因此,为了准确地传送这些信息,必须要有信息传送的控制信号来控制信息的同步,包含一些控制信息传送开始和结束的信号。这些信号称为握手信号(又称应答信号)。因此总线通信协议主要是解决信息传输的开始与结束的问题,它以一定方式用握手信号和电压的变化来表明数据传送的开始和结束。2.2总线的通信协议2.2.1总线的传输过程

系统总线最基本的任务就是传送数据,这里的“数据”包括程序指令、运算处理的数据、设备的控制命令和状态字、设备的输入与输出数据。系统总线上的数据是在主模块的控制下进行的,主模块有控制总线的能力,例如CPU及DMA模块。而从模块则没有控制总线的能力,但它可对总线上传来的地址信号进行地址译码,并且接受和执行总线主模块的命令。总线完成一次数据传输周期一般分为四个阶段。

(1)申请阶段:当系统总线上有多个主模块时,需要使用总线的主模块提出申请,由总线仲裁机构确定把下一个传输周期的总线使用权授权给该模块。

(2)寻址阶段:取得总线使用权的主模块通过总线发出本次打算访问的从模块的存储器地址或I/O端口地址及有关命令,使参与本次传输的从模块开始启动。

(3)传送数据阶段:主模块和从模块之间进行数据传输,数据由源模块发出,经数据总线流入目的模块。

(4)结束阶段:主从模块的有关信息均从系统总线上撤除,让出总线。2.2.2总线的通信协议

通常总线的通信协议与总线数据传输的握手方式、处理机的信号及工作特点有关。通信协议一般分为四类:同步方式、异步方式、半同步方式和分离方式。

1.同步方式

同步总线所用的控制信号仅仅是一个时钟振荡器,利用时钟的上升沿和下降沿分别表示一个总线周期的开始和结束。该方式使用一个“系统时钟”控制数据传输的时间标准。主设备与从设备进行一次传输所需的时间(称为传输周期或总线周期)是固定的,并且总线上所有模块都在同一时钟的控制下步调一致地工作,从而实现整个系统工作的同步。早期的微机系统,如IBM-PC/XT采用的就是同步总线,现代的超级微机Pentiumn机的PCI局部总线也是同步总线。同步总线的主要优点是同步握手方式简单,全部系统数据传送由单一时钟信号控制,便于电路设计。另外,由于主从之间不允许有等待,因此这种方式完成一次传输的时间较短,适合高速运行的需要。只要总线上的模块都是高速的,总线频带便可以做得很宽。但是,同步总线的缺点也很明显,主要是不能满足高速和低速设备在同一系统中使用。因为总线上的各种模块与设备都按同一时钟工作,所以只能按最慢的设备来确定总线的频带或总线周期的长短,这就使得总线上的一些高速模块和设备必须迁就最低速设备的速度来运行,使系统的整个性能降低。当然,也可以将时钟频率设计得很高,发挥高速设备的快速传输性能,但一旦按高速需要设计好后,总线上就不能再接低速模块,适应性不好。解决这个矛盾的方法之一是采用异步总线握手方式。

2.异步方式

对于具有不同存取时间的各种设备,不宜采用同步总线协议,因为这时总线要以最低速设备的速度运行。因此,如果对高速设备能采用高速操作,而对低速设备则只能采用低速操作,这时就需要采用异步总线。异步方式采用“应答式”传输,用“请求(REQ,Request)”和“应答(ACK,Acknowledge)”

两根信号线来协调传输过程而不依赖于系统时钟信号。这种方式可以根据模块的速度自动调整响应的时间,因此,高速模块可以高速传输,低速模块可以低速传输,连接任何类型的外围设备都不需要考虑该设备的速度,从而避免了同步式传输的缺点。正是由于全互锁异步传输具有良好的适应性和高可靠性,因此它得到了广泛的应用,Motorola公司的MC68000/68010/68020微机系统采用的就是异步总线。由于异步传输方式利用REQ和ACK的呼应关系来控制传输的过程,因此异步方式具有以下特点:

(1)应答关系完全互锁,即REQ和ACK之间有确定的制约关系。主设备的请求REQ有效,由从设备的ACK来响应;ACK有效,允许主设备撤销REQ;只有REQ已撤销,才能最后撤销ACK;只有ACK已撤销,才允许下一传输周期的开始。这就保证了数据传输的可靠进行。

(2)数据传输的速度不是固定不变的,它取决于从模块的速度。因而同一个系统中可以容纳不同速度的模块,每个模块都能以最佳的速度来配合数据的传输。

异步传输的缺点是不管从模块的速度,每完成一次传输,主从模块之间的互锁控制信号都要经过四个步骤:请求、响应、撤销请求、撤销响应,其传输延迟是同步传输的两倍。因此,异步方式比同步方式慢,总线的频带窄,总线的传输周期长。

3.半同步方式

由于异步总线的传输延迟严重地限制了最高的频率宽度,因此,人们结合同步和异步总线的优点设计出了混合的总线,即半同步总线。从总体上看,它是一个同步系统,仍用系统时钟来定时,利用某一脉冲的前沿或后沿判断某一信号的状态,控制某一信号的产生或消失,使传输操作与时钟同步。但是,它又不像同步传输那样传输周期固定,对于慢速的从模块,其传输周期可延长时钟脉冲周期的整数倍。半同步的方法是增加一条信号线(Wait或Ready)。当Wait信号线有效(或Ready无效)时,反映选中的从设备未准备好数据传输(写时未做好接收数据的准备,读时数据未放在数据线上)。系统用一个适当的状态时钟检测Wait信号线,如果有效,系统自动将传输周期延长一个时钟周期,强制主模块等待。此状态时钟的下一个时钟继续进行检测,直至检测到Wait信号线无效,才不再延长传输周期。这和异步传输一样,其传输周期视从设备的速度而异。允许不同速度的模块彼此协调地一起工作,但Wait信号不是互锁的,只是单方向的状态传递,这是与异步传输的不同之处。半同步传输方式对能按规定时刻一步一步完成地址、命令和数据传输的从模块,完全按同步方式传输,而对不能按规定时刻传输地址、命令、数据的慢速设备,则借助Wait信号线,强制主模块延迟等待若干个时钟周期。这种方式适用于系统工作速度不高,且包含了多种速度差异较大的设备的系统。

综上所述,这种半同步方式的总线对快速设备就像同步方式一样,只由时钟信号单独控制,实现主从之间的握手;对慢速设备,又像异步方式一样,利用Wait控制信号来改变总线的传输周期。这种混合式总线兼有同步方式的速度和异步方式的可靠性及适应性。采用这种总线握手方式的微机系统有Z80。严格来讲,IBM-PC/XT总线是半同步总线。

4.分离方式

前述三种方式中,从主模块发出地址和读/写命令开始,直到数据传输结束的整个传输周期中,系统总线完全由主模块和从模块占用。实际上,在主模块通过总线向从模块发送了地址和命令之后,到从模块通过数据总线向主模块提供了数据之间的时间间隔,是从模块执行读/写命令的时间。在这段时间内,系统总线上并没有实质性的信息传输,是空闲的。为了充分利用这段总线空闲时间,可将一个读周期分解成为两个分离的子周期。在第一个子周期,主模块发送地址和命令及有关信息,经总线传输,由有关从模块接收下来后,立即和总线断开,以供其他模块使用。待选中的从模块准备好数据后,启动第二个子周期,由该模块申请总线,获准后,将数据发向原要求数据的设备,由该设备接

温馨提示

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

评论

0/150

提交评论