第8章 I/O接口和总线
输入输出系统包括外部设备及其与主机之间的控制部件。该控制部件称为设备控制器,有时也称设备适配器或接口,其作用是控制并实现主机与外部设备之间的数据传送,负责按CPU的指示启动或停止I/O设备工作、了解I/O设备的工作状态、发出相应的I/O控制命令、完成数据的I/O交换。而总线是许多信号线的集合,它是微型计算机芯片间、各部件间和外部设备间相互进行信息或数据交换的通路。由于计算机内部定向的信息流和数据流在总线中的流动,就形成了计算机的各种操作。
8-1 I/O接口
随着微型计算机的普及和广泛应用,接口技术已成为十分重要、十分关键的技术。因为计算机的强大功能往往是由接口外围设备的能力和处理外界信息的能力表现出来的。
所谓接口(Interface)就是微处理器或微机与外界的连接部件,它是CPU与外界进行信息交换时,所必需的电路。键盘、显示器、打印机、软磁盘和硬磁盘、光盘都要有自己的接口,这样我们输入的、并经过计算机处理的信息才能得以显现,我们才可以大大的扩充计算机的存储空间。同样,多个微型计算机组成分布式系统,也要通过接口的连接,其多机并行运算可以达到数亿次以上;计算机只有通过接口处理各种各样的自然界模拟信号,才能应用到控制与测试等领域,实现机电仪一体化;将计算机配上接口组成计算机网,实现信息资源共享,使社会信息化。
由于计算机的应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂, 微机接口本身已不是一些逻辑电路的简单组合,而是采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换的一门技术。因而接口技术是硬件和软件的综合技术。
8-1-1 I/O接口的功能
接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,它处在总线和外设之间。从解决CPU与外设在连接时存在的不匹配的观点出发,接口一般应具有如下功能:
1. 数据缓冲功能以解决两者的速度不匹配 CPU和外设间速度不协调的问题可以通过设置数据缓冲来解决,也就是事先把要传送的数据准备在那里,在需要的时刻完成传送。经常使用锁存器和缓冲器,并配以适当的联络信号来实现这种功能。
例如,为了解决CPU高速与外设低速的不匹配,接口中一般都设置数据寄存器或锁存器,称之为数据口。数据口可分为数据输入口、数据输出口或兼顾输入输出的双向数据口。为了实现CPU与外设之间的联络,接口电路还要提供寄存器“空”、“满”、“准备就绪”、“忙”、“闲”等状态信号,以便向CPU报告接口或外设的工作情况,称之为状态口。而值得注意的是:接口技术中的输入、输出方向是指CPU的输入、输出的方向,即输入、输出的方向是以CPU为基准的。
2. 接收和执行CPU命令的功能 CPU对I/O设备的控制命令一般均以代码的形式送到接口的命令寄存器中,再由接口电路对命令代码进行识别和分析,产生若干个控制信号,再传到I/O设备,使其产生相应的具体操作。一般,CPU与外设所交换的信息包括:
(1)真正的数据信息,包括输入数据和输出数据两种。 (2)状态信息。 (3)命令信息。
其中后两种信息称为控制信息,在真正数据传输时,起控制作用。
第7章 存储器系统 169 3. 信号电平转换功能 外设所需的控制信号和它所能提供的状态信号往往与微机的总线信号不匹配,此时,可通过在接
口电路中设置电平转换电路来解决。这种信号的转换包括CPU的信号与外设信号的逻辑关系、时序配合以及电平匹配上的转换,传送方式的转换等。它是接口设计中的一个重要内容。
4. 设备选择功能 微机系统中一般带有多种外设,同一种外设也可能配备多台,一台外设也可能包含多个I/O端口,这就要借助于接口中的地址译码电路对外设进行I/O端口寻址。与存储器的片选、字选操作十分类似,通常将高位地址用于外设接口芯片的选择,低位地址用于芯片内部寄存器或锁存器的选择,以选定需要与自己交换信息的设备,由于外设端口不能长期与CPU相连,只有被CPU选中的设备才能与数据总线进行数据交换或通信。端口地址的译码也可有全译码、部分译码、线选译码等方式。
5. 数据宽度变换的功能 计算机的数据总线传送的通常是8位或16位的并行数据,而有些外设采用串行方式传送数据,所以必须将CPU送出的并行数据,经并变串电路转换成串行信息后,才能送给串行外设。反之,串行设备的数据,也必须经串变并的转换后才能送给CPU。即使是使用并行数据的外设,其数据长度和数据格式也可能与主机的不同,因而也需要进行数据格式的转换,这些工作可以通过编程改变接口性能及工作方式的接口芯片称为通用接口芯片,反之,称为专用接口芯片。
6. 可编程功能 现在的接口芯片基本上都是可编程的,这样在不改动硬件的情况下,只修改相应的初始化程序或驱动程序就可以改变接口的工作方式,大大地增加了接口的灵活性和可扩充性。例如:可编程并行接口8255A、可编程串行接口8251A,等等。
此外,接口还可具有中断管理的功能,当出现故障时,在接口中设置中断控制电路,为CPU处理有关中断事务(如发出中断请求、进行中断优先级排队、提供中断向量等),这样既做到微机系统对外界的实时响应,又使CPU与外设并行工作,提高了CPU的效率。上述功能并非是每种接口都要求具备,对不同配置和不同用途的微机系统,其接口功能不同,接口电路的复杂程度也大不一样,但前四种功能是一般接口都应具备的。
8-1-2 I/O端口及其寻址方式
1. I/O端口
在实际应用中,通常把I/O接口电路中能被CPU直接访问的寄存器或某些特定的器件称之为端口(Port)。I/O端口的地址是CPU与I/O设备直接通信的地址,简称口地址。CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。在接口电路中,这些信息分别进入不同的寄存器,即送入对应的端口中,CPU可对端口中的信息直接进行读写。因而一个接口通常含有多个端口。有的接口包括的端口少(如8251、8259接口芯片只有两个端口),而有的接口的端口多(如8237有16个端口,8255有4个端口)。对端口的操作也有所不同,有的端口只能写或只能读,有的端口既可以读,也可以写。一般情况下,一个端口只能写入或读出一种信息,但是也可能几种信息共用一个端口,比如8255的一个命令口可以接收方式控制字和位控制字两种命令。甚至一个口地址对应多个端口的物理单元,由接口自行解决冲突。在一般的接口电路中都要设置以下几种端口:
(1)数据端口(Data Port)
数据端口用来存放外设送往CPU的数据以及CPU要输出到外设去的数据。这些数据是主机和外设之间交换的最基本的信息,长度一般为l~2字节。数据端口主要起数据缓冲的作用。
(2)状态端口(State Port)
状态端口主要用来指示外设的当前的状态。每种状态用1位表示,每个外设指出的是,除了状态端口中的内容外,接口电路中往往还会有若干状态线,它们用电平的高低来指示外设当前状态,实现CPU与外设之间的通信联络,它们的名称和电平与状态位之间不一定完全对应。接口电路中最常用的状态位有:准备就绪位(Ready)表示数据已经准备好;忙碌位(Busy)表示输出设备是否能接受数
170
微型机原理及应用
据;等等。
(3)命令端口(Command Port)
命令端口也称为控制端口,它用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。常用的命令信息有启动位、停止位,等等。
在实际应用中,接口芯片内部端口地址的设置有各种技术,比如跟随技术、预留技术、特征位技术、共用口地址技术等,与存储芯片内部地址的划分有很多不同之处。这主要是因为接口芯片内可寻址寄存器的单元数比内存芯片要少的很多,可以进行一些精细的设计。但对芯片片选的控制大致相似,可按全译码、部分译码、线选译码进行设计。不过内存子系统的连接直接用CPU的局部总线,而与外设接口的连接大多使用系统总线。
2. I/O端口的寻址方式
CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,因此也需要由译码电路来形成I/O端口地址。而如何实现对这些端口的访问,这就是所谓的I/O接口的寻址方式。I/O端口编址方式有两种:一种是存储器映射方式,即把端口地址与存储器地址统一编址,所以这种编址方式也被称为统一编址方式;另一种是I/O映射方式,即I/O端口地址与存储器地址分别进行独立的编址,也称为独立编址方式。
(1)统一编址
这种编址方式是从存储空间中划出一部分地址空间分配给I/O设备,而把I/O接口中的端口作为存储器单元一样进行访问,不设置专门的I/O指令。这种方式实际上是把I/O地址映射到存储空间,作为整个存储空间的一小部分。换句话说就是,系统把存储空间的一小部分划出来供外设用,大部分仍归存储单元所有。
这种寻址方式的优点是微处理器的指令集中不必包含I/O操作指令,简化了指令系统的设计;能够使用类型多、功能强的访问存储器指令,对I/O设备进行方便、灵活的操作;I/O地址空间可大可小,能根据实际系统上的外设数目来调整。缺点主要是I/O端口占用了存储单元的地址空间,为了尽可能减小所占的内存空间,必须用全译码方式来形成I/O地址,使I/O译码电路变得较复杂。此外,访问存储器的指令一般要比I/O指令长一、两个字节,这会延长输入输出操作的时间。这种编址方式在 68系列和65系列微机中得到广泛使用。
(2)独立编址
在这种编址方式中,内存地址空间和I/O端口地址是相对独立的,即端口地址独立构成一个I/O空间,不占用存储空间,并且设置专门的I/O指令对此空间进行访问。比如,在8086/8088 CPU中,其内存地址是从00000H~FFFFFH连续的1M字节。其I/O端口的地址范围从0000H~FFFFH。它们互相独立,互不影响。同时,设置了专门的IN、OUT等I/O指令。
这种寻址方式的优点是将输入输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好;而且I/O指令长度短,执行的速度快,也不占用内存空间;I/O地址译码电路较简单。缺点是CPU指令系统中必须有专门的IN和OUT指令,这些指令的功能没有访问存储器指令强;另外,CPU要能提供区分存储器读/写和I/O读/写的控制信号,例如Z80CPU的MREQ和IORQ、8086的M/IO和8088的IO/M信号。
3. I/O端口地址的分配
对于接口设计者来说,了解系统I/O端口地址分配情况是十分重要的,因为要把新的I/O设备加入到系统中就要占据一些I/O地址空间,因此,必须了解一些关于I/O空间的信息,如哪些端口是计算机制造厂家为今后的开发而保留的,哪些地址已分配给了别的设备,哪些端口地址是空闲的,这些信息对我们来说是十分必要的。
PC系列微机系统支持的端口数目是1024个,其端口地址空间是从000~3FFH,其有效的译码地址是A0~A9这10根地址线。
按照PC系列微机系统中I/O接口电路的复杂程度及应用形式,可以把I/O接口的硬件分为两大类:
第7章 存储器系统 171 (1)系统板上的I/O接口芯片。这些芯片大多都是可编程的大规模集成电路,完成相应的接口操作,如定时器/计数器、中断控制器、并行接口等。在PC/AT微机中,这些接口芯片是由如8259、
8237A等芯片组成。但随着PLD技术的发展,目前PC机系统主板上的所有I/O接口功能已集成在一片或几片大规模集成电路芯片中。
(2)扩展槽上的I/O接口控制卡。这些接口控制卡是由若干个集成电路按一定的逻辑功能组成的接口部件,如多功能卡、图形卡、串行通信卡、网络接口卡等。
根据上面的分类, PC系列微机把I/O端口地址空间分为两部分,即把1024个端口的前256个端口(000~0FFH)专供I/O接口芯片使用,后768个端口(100~3FFH)为I/O接口控制卡使用,如表8-1所示。
表8-1 系统板上接口芯片的端口地址
分类 系 统 板 I/O接口名称 DMA控制器1 DMA控制器2 DMA页面寄存器 中断控制器1 中断控制器2 定时器 并行接口芯片 键盘控制器 RT/CMOS RAM NMI屏蔽寄存器 协处理器 PC/XT 000~ODFH - 080~083H 020~021H - 040~043H 060~063H - - 0A0H - 320~32FH 200~20FH 210~21FH 370~37FH 270~27FH 3F8~3FFH 2F0~2FFH 300~31FH 3A0~3AFH 380~38FH 3B0~3BFH 3D0~3DFH 3C0~3CFH 3F0~3F7H PC/AT 000~01FH 0C0~0DFH 080~09FH 020~03FH 0A0~0BFH 040~05FH - 060~06FH 070~07FH - 0F0~0FFH 1F0~1FFH 200~20FH - 370~37FH 270~27FH 3F8~3FFH 2F0~2FFH 300~31FH 3A0~3AFH 380~38FH 3B0~3BFH 3D0~3DFH 3C0~3CFH 3F0~3F7H I/O 通 道 硬驱控制卡 游戏控制卡 扩展器/接收器 并行口控制卡1 并行口控制卡2 串行口控制卡1 串行口控制卡2 原型插件板 同步通信卡1 同步通信卡2 单显DMA 彩显CGA 彩显EGA/VGA 软驱控制卡 8-1-3 CPU与外设间的数据传送方式
随着计算机技术的飞速发展,计算机系统中输入输出设备的种类越来越多,速度差异十分悬殊,对这些设备的控制也变得越来越复杂,CPU与外设之间的数据传输必须采用多种控制方式,才能满足各类外设的要求。在接口电路设计时,根据应用系统的要求,在CPU与外设之间的信息传送采用适当的信息传送控制方式是至关重要的。传送的方式不同, CPU对外设的控制方式也不同,从而使接口电路的结构及功能也不同。在微型机系统中,可采用的输入输出方式主要有程序控制方式、中断方式和DMA方式等三种。前两种方式主要由软件实现,DMA方式主要由硬件实现。下面对这几种数据传送方式
172
微型机原理及应用
作些简要的介绍。
1. 程序控制方式
程序控制传送方式是指CPU与外设之间的数据传送是在程序控制下完成的,它又可以分成无条件传送和条件传送两种方式。
(1)无条件传送方式
无条件传送方式也称为同步传送方式,无条件传送方式是一种最简单的输入/输出控制方式,它使用简单,所需的硬件、软件都较简单,其所有的操作是由执行程序来完成的。采用这种传送方式,要求外设和CPU始终是准备就绪的,CPU直接执行输入或输出指令,便可实现数据传送。这种方式所需要的硬件和软件都较少。
例如:如图8-1所示,将几个按键开关的状态输入CPU,并将这些开关连接到一个三态缓冲器,缓冲器的输出端接到CPU的数据总线,构成一个最简单的输入端口。如果开关断开,上拉电阻保证缓冲器的每个输入端为高电平;当某个开关合上时,相应的输入端变为低电平。即任何时刻,开关总有一个固定的状态。在需要了解它们的状态时,可随时执行输入指令,它使M/IO、RD和选中此端口的片选信号CS同时变成有效的低电平,则可开启缓冲器的三态门,使各开关的当前状态以二进制值的形式出现在数据总线上,并被读入CPU,检查这个字节各位的内容,便能了解各开关的当前状态。在其它时刻,三态门呈高阻态,将开关和数据总线隔离。
+5V1A11A2...1Y11Y2...D0D174LS2442A4M/IOCSRD2Y4D71G2G
图8-1 简单输入端口
发光二极管、桥式预置开关、报警继电器等外设就可以使用无条件传送方式。无条件传送方式所需的条件就是: CPU与外设一定要能保证非常准确的同步。无条件传送方式一般只需要数据端口。
(2)条件传送方式
条件传送方式也称为查询方式。一般情况下,当CPU用输入或输出指令与外设交换数据时,很难保证输入设备总是准备好了数据,或者输出设备已经处在可以接收数据的状态。因此,CPU在传送数据之前,要先检查外设是否“准备好”,若没有准备好,则继续查询其状态,等待外设,直至外设准备好了,即确认外部设备已具备传送条件之后,才能进行数据传送,这种传送方式就是条件传送方式。
采用这种方式传送数据前,CPU要先执行一条输入指令,从外设的状态口读取它的当前状态。如果外设未准备好数据或处于忙碌状态,则程序要转回去反复执行读状态指令,不断检测外设状态;如果该外设的输入数据已准备好,CPU便可执行输入指令,从外设读入数据。在相应的I/O程序中须进行下列几步操作,其接口和软件模型如图8-2所示。
第7章 存储器系统 173 初始化读入状态N系统总线总线接口逻辑状态字设备数据寄存器N传送完毕Y结束Y读/写数据数据准备好 图8-2 程序查询接口及软件模型
(1)读取外设状态信息。
(2)判断是否可进行新的操作,例如判断键盘是否有新的键被按下,或打印机是否准备好接收新数据。如果设备尚未准备好,则返回第一步;若已准备好,就进行下一步;
(3)执行所需的I/O操作,例如从键盘接口读数,或送出打印信息到打印机接口。
从上述模型中可看出,若不设状态位、程序中不进行状态查询,就直接进行I/O操作,则成为无条件传送方式。
例如:打印机、扫描仪、绘图仪等外设可用查询方式传送数据。显然,在这种传送方式下, CPU每传送一个数据,需要花费很多时间来等待外设进行数据传送的准备,因此CPU的效率很低,且CPU与外设不能并行工作。但实现这种传送方式的硬件接口电路简单,在CPU不太忙,且传送速度要求不高,连接外设不多时可以采用,采用查询方式的接口一般需要两个端口,即数据端口和状态端口。
2. 中断方式
用查询方式使CPU与外设交换数据时,CPU要不断读取状态位,检查输入设备是否已准备好数据,输出设备是否忙碌或输出缓冲器是否已空。若外设没有准备就绪,CPU就必须反复查询,进入等待循环状态。由于许多外设的速度很低,这种等待过程会占去CPU的绝大部分时间,而真正用于传输数据的时间却很少,使CPU的利用率变得很低。
采用中断方式传送信息时,只需在主程序中发出启动外设的命令,就可继续运行主程序的后续指令,不需要反复查询外部设备的状态。当外设已准备好,或完成它的操作,需要和CPU交换数据时,它就通过I/O接口给CPU一个中断请求信号。CPU响应接口的中断请求后,暂停当前正在执行的程序(通常称为主程序),插入I/O操作程序(称为中断服务子程序),完成数据传输。等输入或输出操作完成之后,CPU又回去执行原来的程序。由于CPU省去了对外设状态查询和等待的时间,从而使CPU与外设可以并行地工作,大大提高了CPU的效率。在中断处理的过程中,CPU在启动外设后到外设提出中断请求这段时间仍继续执行主程序,而外设进行自己的准备工作或I/O操作,因此在一定程度上实现了CPU与外围设备的并行工作。此外,有多台外设被依次启动后,可以同时进行数据传送前的准备工作。若在某一时刻有几台外设发中断请求信号,CPU可根据预先确定好的优先顺序,分别处理几台外设的请求,从而可实现外围设备间的并行工作。例如,上述查询传送的设备改用中断方式可连接几十台外设并大大提高CPU和多台外设的工作效率及实时响应的速度。
3. 直接存储器存取方式
直接存储器存取(Direct Memory Access,简称DMA)方式的基本思想是在外围设备和主存之间开辟直接的数据传送通路,由专门的DMA控制器控制主存和外设间的数据传送,在传送时不需CPU干预。由于传送过程完全由硬件实现,所花费的时间短,因此能满足高速数据传送的需要。
中断方式由于下面的两个因素不适用于大批量的数据高速传输:一是在中断方式下,I/O仍需通过CPU执行IN、OUT、MOV等指令来实现外设与内存之间的信息传送,而上面诸条指令的执行会花费时
174
微型机原理及应用
间;二是每次中断的进入或返回,以及现场保护要花去大量的时间,而这些时间并不是实质性的信息传递,因而称为额外开销。采用DMA方式,使CPU不参加数据I/O,而是由DMA控制器DMAC来实现内存与外设之间、外设与外设之间的直接快速传送,由于它基本是以硬件的速度传递数据,几乎没有额外开销,从而提高了传输效率,减轻了CPU的负担。
DMA方式如下安排具体的传送过程:在正常工作时,CPU的所有工作周期均用于执行程序。当外设准备好发送的数据或上次接收的数据已处理完后,产生DMA请求,CPU响应请求后让出一个工作周期,在这个DMA周期中,CPU不能占用系统总线和访问主存,而是由DMA控制器产生控制信号控制主存与外设间传送数据。在这个周期后,CPU恢复对总线的控制并继续执行程序。显然,在此DMA传送周期中,数据传送不需CPU用指令完成,因而不占用CPU的寄存器,也不破坏CPU的工作状态,因此CPU可快速响应CPU请求及恢复程序执行。这项工作是由I/O系统中增设的DMA控制器完成的,由它给出每次传送数据的主存地址,并统计已传送数据的个数以确定是否传送结束。除了在数据块传送的起始和结束时需用中断分别进行前处理和后处理外,无需CPU的频繁干预。主存储器被并行工作的CPU和I/O子系统所共享。
DMA方式把I/O操作过程中外设与内存交换信息的控制交给了DMA控制器,实质上是在硬件控制下而不是靠CPU执行指令的软件的控制完成数据的传输,大大提高了传输速率,这对大批量数据的高速传送特别有用。
DMA方式也有不足之处。首先,对外围设备的管理和某些操作的控制仍需由CPU承担。在大中型计算机系统中,系统所配备的外设种类多、数量大,这样,对外设的管理和控制也就越来越多,越来越复杂。大容量外存的使用,使主存和外存之间的数据流量大幅度增加,有时还要求多个DMA同时使用,引起访问主存的冲突增加。因此,在大、中型机中,为使CPU摆脱管理和控制外设的沉重负担,使之发挥高速处理的能力,通常设置专门的硬件装置——通道。
8-2 总线
计算机系统大多采用模块结构,一个模块就是具有专门功能的插件板。随着集成电路集成度的提高,一块板上可安装多个模块。如,主机板、存储器卡、I/O接口板等。各模块之间传送信息的通路称为总线。
8-2-1 总线的概念
总线(BUS)是指连接计算机各部件或计算机之间的一组公共信息线,它是计算机中传送信息代码的公共途径。在计算机总线中,传送的信息是用电平的高低表示的二进制代码,而且在某一瞬时只能允许一个发送门打开向总线上发送信息,而不允许几个发送门同时向总线上发送信息代码,即不同的发送门需要在不同的时刻发送信息。
1. 总线的分类
总线是连接多个数字系统的公共信息通路。微型计算机应用系统所使用的芯片内部、电路插件板元器件之间、系统各插件板之间、系统与系统之间的连接,通常是通过总线来实现的。根据总线的规模、用途和应用场合不同,可将总线分为以下几类:
(1)片内总线
片内总线位于微处理器芯片内部,是ALU、各种寄存器及功能单元之间的信息通路。 (2)片间总线(又称元件级总线或局部总线)
该总线限制在一块电路板内,用以实现电路板内各元器件的相互连接的信号线。将各接口芯片与CPU连接就必须考虑这类总线。片间总线通常包括地址总线、数据总线和控制 总线,是各种总线中,速度最快、效率最高,功能最直接的一类总线。
(3)内总线(又称微机总线或插件板级总线,一般称为系统总线)
它用于微型计算机各插件电路板间的相互连接,是微机系统最重要的一种总线。一般谈到微型计
第7章 存储器系统 175 算机内部的系统总线,所指的就是该总线。有的系统总线由CPU引脚定义经过重新驱动和扩展而成,其性能与某种CPU有关,但不少系统总线并不依赖某种型号的CPU,可为多种型号CPU及配套芯片所
使用。
(4)外部总线(又称通信总线)
外部总线主要用于微机系统与微机系统之间、微机系统与其他仪器或设备之间的连接线。 外部总线用于实现微机系统与其他系统或设备的通信。一般来讲,外部系统或设备相距微机系统要远些,它们之间的通信可以用并行方式或串行方式来实现,但数据传输速率可能会低些,不像内总线那样都是并行的高速总线,因此,对于不同的应用场合,应该采取不同的外总线。常用的外总线有RS-232C、RS-485、IEEE 488等。
2. 总线的规范
在各功能板插座之间采用系统总线连接的情况下,希望所接插件之间具有通用性,以便于一个系统的各功能板可以插在任何一个插座上,为用户的安装和使用带来方便。此外微型计算机制造厂商在设计一个系统时,为了得到广泛的市场,也设法使系统总线能够连接尽可能多的设备,希望各厂家生产的同类产品能够互连、互换。这样就产生了一个要求,希望有一个规格化的可通用的系统总线。这种总线的设计需要一个统一的标准,对每个总线标准应有详细的说明,但其中应包含下列主要内容。
(1)机械结构规范:规定模块尺寸、总线插头、边沿联接器等规格和位置。
(2)功能规范:规定每个引脚的名称和功能,对他们相互作用的协议进行说明。
(3)电气规范:规定信号工作时的高低电平,动态转换时间、负载能力及最大额定值。
(4)定时规范:对于存储器和I/O的读、写操作,规定了相应的总线信号时序,在总线中定义这些信号的时序以保证各功能板的兼容性。
信号线的种类有:
(1)数据线、地址线及读/写控制信号线; (2)中断请求线和中断响应回答线; (3)总线请求线和总线请求允许线; (4)系统时钟、电源及地线。 常用的标准系统总线有:
IBM PC机的62芯PC总线。
PC/AT机的AT总线或ISA总线。 高性能PC机的EISA总线。
PCI(Peripheral Component Interconnect)总线,即外围部件互连局部总线。 S-100总线,也称为IEEE-696总线,采用这种总线的插件板具有100根引线。
STD总线,具有56条引线,它主要用于工业控制机中。
多总线(Multibus),也称为IEEE-796总线,主插头有86条引线,可选插头有60条引线。 常用的标准外部总线包括: IEEE-488总线。 EIA RS—232总线。
8-2-2 系统总线
微型计算机的系统总线主要用于主CPU与磁盘驱动器、显示器、打印机等众多外设之间传送数据。IBM的16位工业标准总线ISA曾经是最流行的微机系统总线,其成熟及支持度都是当时别的总线所不及的。但由于ISA总线制定时间己较久,不可避免地带有一些局限性:其数据宽度是16位,总线同步时钟也只有8MHZ。随着半导体技术的发展,CPU从8086发展到现在的80486、Pentium及MMX CPU、Pentium II/III,CPU的数据宽度和工作频率有了很大提高,ISA总线显然已满足不了CPU的要求,造成了CPU与外设之间的数据传送瓶颈问题。为解决这个问题,出现了EISA、VESA、PCI等典型的微机总线。下面就对其中的几种总线进行介绍。
176
微型机原理及应用
1. PC/XT总线
IBM PC总线是IBM PC/XT个人计算机上采用的微型计算机总线,它是针对Intel 8088微处理器设计的。PC/XT总线是早期PC/XT微机所配备的系统总线,是8位总线标准。PC/XT总共有3个扩展槽,有完全相同的信号连接。
PC/XT总线共有62个信号,是目前各类总线中最为精简的。它包括8位双向数据总线、20位地址总线、6根中断请求线、3组DMA通道控制线、存储器和I/O读写线、动态RAM刷新控制线和时钟信号线、电源线4根和地线3根。下面就按功能分别对总线的引脚进行介绍:
(1)数据线D0~D7(共8根) 8位数据线为双向,D0为最低位。它们用来在CPU、存储器及I/O端口之间传送数据,可利用IOR或MEMR、IOW或MEMW来进行数据输入输出。
(2)地址线A0~A19(共20根)
地址线A0~A19为单向输出信号,A0为最低位。用于提供要访问的存储器或I/O口地址。在系统总线周期中由CPU驱动,在DMA周期由DMA控制器驱动,地址线是由CPU还是由DMA控制器发出的,要用AEN信号线来确定。在存储器寻址时,20位地址可寻址IM存储空间,系统板上的ROM和RAM是不能通过系统总线寻址的。在系统板上I/O口的寻址范围是000H~0FFH,共256个口地址,在扩充槽上可寻址范围是100H~3FFH,共768个I/O设备口地址,即PC机用A0~A9来寻址I/O设备。
(3)控制线(共21根) ALE:地址锁存允许(Address Latch Enable)信号,输出,高电平有效。微处理器或总线控制器在每一个总线周期送出ALE信号, ALE有效,表示一个总线周期的开始。此信号的下降沿可用来锁住地址信号。该信号将具有双重作用的地址/数据总线上送来的数据作为地址进行锁存。
AEN:地址允许(Address Enable)信号,输出线,高电平有效,是由DMA控制器所发出的。该信号有效(AEN=1)表示目前正在进行DMA总线周期,由DMA控制器行使对总线的控制权,切断了CPU的控制,从而允许DMA传送;反之,若AEN=0,由CPU行使总线控制权。该信号用于控制端口译码器,只有在该信号为低电平时,才对I/O地址进行译码。
:I/O读命令,输出,低电平有效。它由CPU或DMA控制器输出。该信号有效时指明当前的
总线周期是一个I/O端口读周期(当由CPU产生时包含于IN指令周期内),同时地址总线上的地址是一个I/O端口地址。被寻址端口的数据送上数据总线由微处理器读取。在信号上升沿由微处理器输入有效的数据。
IOR:I/O写命令,输出,低电平有效。该信号由CPU或DMA控制器产生,由总线控制器驱动后
送至总线。该信号指明在地址总线上有一个I/O端口地址,并指明数据总线上有一个要写至I/O端口的数据。这一信号当由CPU 产生时包含于OUT指令周期内,变成低电平时开始写操作,数据总线上的
IOW数据在IOW信号的上升沿时刻才能写入被寻址的端口。
MEMR:存储器读命令(Memory Read),输出,低电平有效。该信号有效时,将选中的存储单元中的数据读到数据总线上。该信号可由众多源操作数位于内存的指令或DMA控制器产生。
:存储器写命令(Memory Write),输出,低电平有效。该信号有效时,将数据总线的数
据写入存储单元。该信号可由众多目标操作数位于内存的指令或DMA控制器产生。
IRQ2~IRQ7:中断请求2~7。这六个输入信号用来向微处理器发出中断请求,这些信号直接送到系统主板上的8259中断控制器,再经8259接到CPU的中断请求输入端。 8259中断控制器管理中断的优先权,使IRQ2优先级最高,而IRQ7优先级最低。如果中断请求信号未被屏蔽,该信号的上升沿就产生对8088微处理器的中断请求,该请求应一直保持高电平,直到微处理器发出一个INTA信号为止。由于INTA信号不在XT总线上出现,因此中断服务程序中应有一句I/O指令,通过一个I/O寄存器端口对这一个中断请求信号进行复位(IRQ0为时钟中断,IRQ1为键盘中断,均为系统所用,未出现在扩展槽中)。
DRQ1~DRQ3:DMA请求1至DMA请求3,这三条线是输入线,高电平有效。它分别由请求DMA服务的三个I/O设备发出,直接接到8237DMA控制器。DRQ1优先级最高,DRQ3优先级最低。当某一通道有
MEMW
第7章 存储器系统 177 DMA请求时,该通道对应的DRQ为高电平,并且保持高电平到相应的DMA响应信号DACK为低电平为止。
DACK0~DACK3:DMA响应0~3,它们由DMA控制器发出的低电平有效的输出信号。该信号用来
表示对应的DRQ申请已被允许,此时8237DMA控制器将控制总线,并开始相应的DMA操作。DACK0是系
统内8253定时器产生,并直接接至8237DMA控制器的0通道,它引到扩充插槽上是为扩充插槽上的扩充RAM提供动态刷新用的。系统内8237的通道2为软盘服务,通道3为硬盘服务,只有通道1留给用户。
T/C:DMA终末计数(Terminal Count)信号,输出,高电平有效。该信号由DMA控制器发出,当DMA控制器完成了预定的传输字节,该线就发出一个正脉冲,用来结束DMA块数据传送。
RESET DRV:复位驱动信号,输出,高电平有效。该信号用来复位或加电时,对微机系统进行初始化。
:插件卡选中信号,该信号仅用于插入在第8个扩充插槽中的插件卡。
(4)状态线(共2根)
CARDSLCTDIOCHCK:I/O通道检查信号(I/O Channel Check),此信号为输入信号,低电平有效。当该信
号为低时,表明扩充插槽上的I/O设备出现奇偶校验错,将会产生一个不可屏蔽的中断(NMI)申请。
I/OCHRDY:I/O通道就绪信号(I/O Channel Read),输入,高电平有效。这个信号在高电平时表示扩展总线已就绪,系统与外设之间可以进行操作,当此信号为低电平时,用来延长总线周期,以适应慢速设备。如果存储器或I/O端口要延长总线周期,那么在它译出其地址并接收到IOW、MEMW、、MEMR等命令时,就迫使I/OCHRDY电平为低,通过该信号保持低电平所附加的TW等待状态可以将总线周期延长。
(5)辅助线和电源线(共11根)
OSC:晶体振荡信号。此信号的频率为14.31818MHz,振荡周期为70ns的时钟输出信号。
IORCLK:时钟输出信号,频率为4.77MHz。它是对OSC信号除3得到的。 电源及地线:+5V,+12V,地线。 2. ISA总线
ISA总线是IBM PC/AT机上使用的总线,又称AT总线,它是为80286CPU而设计的。PC/AT的扩展总线系统设计的最大速度为8MHz,比PC/XT总线几乎快了近一倍,而最佳的数据传输率达20MB/s。不过80286 CPU的执行速度更快,因此要增加额外的等待周期,方能使扩展总线与CPU之间进行数据传递。改善的方式是在总线控制器中增加缓冲器,作为高速的微处理器与较低速的AT总线之间的缓冲器,从而使AT总线可以在比CPU低得多的环境下工作。
由于IBM PC/XT/AT系统总线的开放性,全世界的PC机制造商纷纷向IBM PC靠拢,从而使IBM PC系列风靡全球。为了满足众多PC兼容机厂商的要求,美国电气和电子工程师学会(IEEE)成立了一个委员会,并确定以PC/AT总线为标准,称之为工业标准体系结构ISA (Industry Standard Architecture),即ISA总线标准。
为了充分地发挥80286的优良性能,同时又要最大限度地与PC/XT总线兼容,ISA总线在原XT总线的基础上,又增加了一个36脚的扩展槽,将数据总线扩展为16位,地址总线扩展到24位,将中断的数目从8个扩充到15个,并提供了中断共享功能,而DMA通道也由4个扩充到8个。从此,这种16位的扩展总线一直是各制造厂商严格遵守的标准,至今仍广泛地使用。下面仅对于PC/XT总线不同的引脚加以说明。
(1)A23~A20:地址信号,在原PC/XT总线的20根地址线A19~A0的基础上增加了4根高位地址线A23~A20,使寻址能力由1MB扩展到16MB。同时将PC总线上A19~A16从复用引脚分离出来,提高了传输速率。
(2)D15~D8:D15~D8与D7~D0一起构成16位数据总线,其中D0为最低位,D15为最高位。所有在I/O通道上的8位设备都应使用D7~D0与CPU通信,16位的设备使用D15~D0与CPU通信。
(3)SBHE:数据总线高字节允许信号(System Bus High Enable Signal),低电平有效。该信号有效时,表示数据传送在数据总线上的D15~D8上进行。该信号与其他地址信号一起,实现对高字节、
178
微型机原理及应用
低字节或一个字(高低字节)的操作。
(4)IRQ10~IRQ12,IRQ14、IRQ15:这些信号同IRQ3~IRQ7及IRQ0一起构成ISA总线的中断请求信号。为增加外部中断数据,在底板上有两片8259中断控制器,采用级连方式,实现中断优先级。
(5)DRQ0、DRQ5~DRQ7:这些信号与DRQ1~DRQ3一起构成I/O通道的DMA请求,输入,高电平有效。它们的优先级排队是:DRQ0优先级最高,DRQ7优先级最低。当DRQ为有效电平时,就可以产生请求信号。在相应的DMA响应信号有效之前,DRQ必须保持高电平。DRQ0~DRQ3完成8位DMA传送,DRQ5~DRQ7完成16位DMA传送,DRQ4用于系统板而不用于I/O通道。
(6)DACK0,DACK5~DACK7:DMA控制器提供的DMA响应信号,输出,低电平有效。
(7)SMEMR:存储器读命令,输出,低电平有效。该信号与MEMR的区别是它在整个16MB存储器寻址范围内均有效,而MEMR只有在存储器范围小于1MB才有效。
(8)SMEMW:存储器写命令,输出,低电平有效。它也是在整个16MB存储器寻址范围内均有效,而MEMW只有在存储器范围小于1MB才有效。
(9)MEMCS16:是存储器的16位片选信号,输入,低电平有效。该信号有效则表明当前数据传送为1个等待状态的16位存储器周期。
(10)IOCS16:是I/O端口的16位片选信号,输入,低电平有效。该信号通知主板要和I/O接口实现16位数据传送。
(11)MASTER:主控信号,输入,低电平有效。该信号是ISA总线新增加的主控信号,利用该信号,可以使总线插卡上的设备变为总线主控器,用来控制总线上的各种操作。
(12)OWS:无等待状态信号,输入,低电平有效。用来通知CPU无需插入等待周期。
(13)LA17~LA23:非锁存地址线,这些信号是用来对系统内的存储器和I/O设备寻址的。它们使系统具有16MB的寻址能力,这些信号在ALE为高电平时有效。LA17~LA23 在微处理器周期并不锁存,因此不能在整个周期里有效。它们为一个存储器读写周期产生译码,这些译出的信息在ALE下降沿应被I/O接口插卡锁存。
3. EISA总线
PC机里的数据总线是数据传送的高速公路,它的宽度直接影响到系统中数据传送的速度。具有32位数据宽度的386和486机,由于ISA总线的数据宽度只有16位,对于高性能应用,如网络服务器、通信服务器和其它多任务/多用户系统,等等,ISA总线传送速度不够快的问题就比较突出,它明显地影响了系统的性能。1988年9月,由Compaq、AST等九家PC机生产厂家联合推出了一种与ISA兼容的总线标准,称为增强的工业标准体系结构EISA (Extended Industry Standard Architecture)。由于EISA是从ISA发展起来的,而且又与ISA兼容,并在许多方面参考了MCA的设计,32位数据宽度的EISA总线能较好地解决速度问题。目前较多使用的是EISA总线。下面仅对EISA总线新增加的信号作简单的介绍:
(1)D31~D16:高16位数据总线。使数据总线从原来的16位扩充到32位。
(2)LA31~LA24:新增的8根地址总线。将地址总线从24位扩充到32位。 (3)LA16~LA2:新增加的末锁定A16~A2地址总线。
(4)BE3~BE0:对32位数据总线(4字节)中各字节的选通信号,BE3~BE0,分别用来选通D31~D24,D23~D16,D15~D8和D7~D0。
(5)M/IO:由系统板或EISA总线主控器输出,在存储器周期时该信号为高电平,I/O周期时为低电平。
(6)W/R:由系统板或EISA总线主控器输出,写周期为高电平,读周期为低电平。 (7)MREQn:总线请求信号,n表示系统中的槽号。
(8)MACKn:总线响应信号,n表示系统中的槽号。
(9)EX32:访问支持32位传送的内存或I/O从设备时,由从设备对LA31~LA2及M/IO信号译码产生EX32,表示它们对32位传送的支持。
(10)EX16:访问支持16位传送的内存或I/O从设备时,由从设备对LA31~LA2及M/IO信号译
第7章 存储器系统 179 码产生EX16,表示它们对l6位传送的支持。
(11)START:该信号有效时表示总线周期的开始,由系统板或EISA总线控制器输出。
(12)CMD:由系统板输出,在START变为高电平时,由CLK的上升沿使CMD有效,并保持到总线周期结束;因此它指示时序正处在一个总线周期之中。
(13)EXRDY:由EISA从设备输出,该信号为低时表示要插入等待状态,延长总线周期。
(14)SLBURST:EISA存储器从设备被系统板上的主CPU/DMA控制器或EISA总线主控器访问时,若它能支持猝发方式传送,便使此信号有效。
(15)MSBURST:当系统板上的主CPU/DMA控制器或EISA总线主控器对EISA存储器从设备访问时,若发现该从设备发出低电干的SLBURST信号,便也使MSBURST信号有效。
(16)LOCK:总线锁定信号。系统板主CPU或EISA总线主控器用它禁止具有局部CPU的EISA存储器或I/O从设备访问共有的局部存储器或I/O。
(17)MFG SPEC:该引脚输出一个代码,这个代码可在启动期间构造系统时帮助识别板的类型。一般的EISA扩展板上未用这些引脚。
EISA总线的主要特点是:支持新一代智能总线主控技术,使外设控制卡可以控制系统 总线;可以实现32位内存寻址,实现对CPU、DMA和总线控制器的32位数据传送,支持猝发式传输访问,最高数据传输速率为33MB/s;支持电子触发中断方式、多处理器和自动配置等。正是由于EISA保持了与ISA总线的兼容性,从而保护了人们业已在ISA总线微机硬件和软件上的巨大投资。 EISA适合于对总线使用要求较高的系统软件,如Windows、Unix、OS/2等,也适用于要求数据传输速率高及数据传输量大的应用场合,如高速图形处理、LAN管理和文件服务应用软件等。
4. PCI总线
随着各种应用软件的发展,需要在微处理器与外部设备之间进行大量的高速的数据传输,以往的ISA总线,及以后发展的EISA总线都未能解决总线及高效率传输的问题。于是1991年下半年, Intel公司首先提出了PCI(Peripheral Component Interconnection)总线的概念,并与IBM、Compag、AST、HP、DEC等公司联合,于1993年推出PC局部总线标准PCI总线。
PCI是外部设备互连总线,是目前局部总线的最新技术。PCI总线目前有4个主要的标准规格,分别支持32位和64位,其下又细分为3.3V和5V两种信号。PCI总线和VL总线一样都是局部总线的设计。运行在33MHz下的PCI其数据传输率可达到132MB/s,而64位的PCI最大数据传输率可达264MB/s,足以满足高清晰度电视HDTV (High Definition Television)信号和实时的三维虚拟现实(3D Visual Reality)的需要。PCI总线的新版本支持66MHz的工作频率。PCI总线与ISA、EISA总线完全兼容,尽管每台微型计算机系统的插槽数目有限,但PCI局部总线规格可以提供“共用插槽”,以便容纳一个PCI及一个ISA。PCI总线采用了一种独特的中间缓冲器的设计,把处理器子系统与外围设备分开,这样使得PCI的结构不受处理器种类的限制,并为处理器和高速外围设备提供了一条通路,大大提高了数据吞吐量,可确保电脑部件、附加卡及系统之间的可靠运行。如图8-3所示为微机系统的PCI总线结构。
微处理器CacheDRAM桥路/存储器控制器动态视频卡音频卡PCI局部总线扩展总线接口桥基本I/O功能LAN I/O控制器SCSI I/O控制器图形卡ISA,EISA 图8-3 微机系统的PCI总线结构
总之,PCI局部总线具有如下特点:
180
微型机原理及应用
(1)高性能,PCI是32位/64位总线,其数据传输速率可达132/264MB/s(以33MHz计算)。 (2)线性突发的数据传输模式,可确保总线不断满载数据,因此能有效地利用总线的带宽去传送数据,以减少无谓的地址操作。
(3)低延迟时间的随机存取,对从总线上的主控寄存器到从属寄存器的写存取延迟为60ns。 (4)兼容性强,不受微处理器限制,适用于各种类型。
(5)易于使用,对于PCI扩展卡及器件,能进行全自动配置,PCI设备中包含配置所需设备信息的寄存器。
(6)成本低,多路复用结构减少了PCI器件的引脚数目和封装尺寸。单一PCI扩展卡及器件在基于ISA、EISA的系统中能工作,减少了成本及复杂程度。
8-2-3 外部总线
1. EIA RS-232C总线
RS-232C标准(协议)是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000bit/s范围内的通信。它最初是为远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。近程通信和微机之间的连接可直接采用RS-232C接口标准进行连接。它是一种串行的外部总线,利用它实行计算机和终端的串行通信。由于通信设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,已在目前微机串行通信接口中广泛采用。
(1)RS-232C总线引脚说明 RS-232C标准规定了在串行通信时,数据终端设备DTE和数据通信设备DCE之间的接口信号。表8-2给出了RS-232C引脚号及其名称。从表可以看出,RS-232C标准接口有25条线,4条数据线,11条控制线,3条定时线,7条备用和未定义线,常用的只有9根,它们是:
发送数据TxD(Transmitted data):通过TxD线终端将串行数据发送到MODEM,(DTE-DCE)。 接收数据RxD(Received data):通过RxD线终端接收从MODEM发来的串行数据,(DCE-DTE) 请求发送RTS(Request to send):输出,高电平有效。它用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效,向MODEM请求发送。它用来控制MODEM是否要进入发送状态。
允许发送CTS(Clear to send):输入,高电平有效。它用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。
数据装置准备好DSR(Data set ready):输入,高电平有效。它有效时,表明MODEM处于可以使用的状态。
数据终端准备好DTR(Data set ready):输出,高电平有效。它有效时,表明数据终端可以使用。 数据载波检出DCD(Data Carrier detection):输出,高电平有效。它用来表示DCE已接通通信链路,告知DTE准备接收数据、当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使DCD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字量数据后,沿接收数据线入口送到终端,此线也叫接收线信号检出(RLSD Received Line signal detection)。
振铃指示RI(Ringing):输入,高电平有效。当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效,通知终端,已被呼叫。
SG、PG:信号地和保护地信号线,无方向。
表8-2 RS-232C接口引脚
脚号 1 2 3 信号名(缩写名) 保护地*(PG) 发送数据*(TxD) 接收数据*(RxD) 脚号 14 15 16 信号名(缩写名) 次信道发送数据 发送时钟(DCE源) 次信道接收数据
第7章 存储器系统 181 4 5 6 7 8 9 10 11 12 13 请求发送*(RTS) 清除发送*(CTS) 数据装置准备好*(DSR) 信号地(*)SG 数据载波检查*(DCD) 未定义 未定义 未定义 次信道载波检查 次信道清除发送 17 18 19 20 21 22 23 24 25 接收时钟 未定义 次信道请求发送 数据终端就绪*(DTR) 信号质量检测 振铃指示器*(RI) 数据信号速率选择器 发送时钟(DTE源) 未定义 (2)电气特性 EIA RS-232C的电平与TTL和CMOS电平是不同的,RS-232C采用负逻辑,以+3~+25V之间任意电压表示逻辑“0”,以-3~-25V之间的任意电压表示逻辑“1”。对于数据(信息码):逻辑\"1\"(传号)的电平低于-3V,逻辑\"0\"(空号)的电平高于+3V;对于控制信号:接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-25V或高于+25V的电压也认为无意义,因此,实际工作时,应保证电平在±(5~15)V之间。一般采用±12V。很明显,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换,实现这种变换的方法可用分立元件,也可用集成电路芯片。
目前较广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到 EIA电平的转换,被称为该总线的发送器。而MC1489、SN75154芯片可实现EIA电平到TTL电平的转换,称为该总线的接收器。如图8-4所示,给出了1488和1489的内部结构和引脚。其具体连接方法如图8-5所示。
MC1488VEEINAOUTAINB1INB2OUTBGND12MC148914VCC13IND12INA112响应控制AOUTAINB响应控制BOUTBGND14VCC13IND12响应控制D11OUTD10INC9响应控制C8OUTC345IND23451&&&11OUTD10INC16&&98INC2OUTC6&&77(3)接插件规格
图8-4 电平转换器MC1488/1489芯片
MC1488INC11011OUTDINC212INC18OUTCINC2714+12V1-12VGNDOUTCMC1489181013IND6DSRRS-232C2TxD34OUTDRxDRTS
OUTD113+5V14 图8-5 电平转换电路
182
微型机原理及应用
由于RS-232未定义连接器的物理特性,因此出现了DB-25,DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同,使用时要特别注意。简单地说,PC和XT机采用DB25型连接器(25芯D型插头)。虽然RS-232定义了25脚信号标准,但实际进行异步通信时,只需9个电压信号:2个数据信号,6个控制信号,1个信号地线。由于PC及XT机除了支持EIA电压接口外还支持20mA电流环接口,另需4个电流信号,故它们采用DB-25型连接器作为DTE与DCE之间通讯电缆的连接。而AT机采用DB-9型连接器(9芯D型插头)。由于AT机串行口取消了电流环接口,故采用DB9型连接器。
(4)常见的连接方式
微型计算机之间或微型计算机与其他外设之间的串行通信采用RS-232C总线连接方式。下面就简单介绍一下常用的几种连接方式。
1)最简单连接方式
如图8-6所示,采用三根信号线在两台微机之间进行通信的连接方式。
2PC机3接收7信号地接收7发送发送23计算机或外设 图8-6 最简单连接示意图
2)零调制解调器连接方式
此方式是指不采用调制解调器MODEM(称零MODEM方式),通信双方可以直接连接,这种情况下,只需使用少数几根信号线。如图8-7所示。
DTETxD23RxD4RTS5CTS6DSRSG78DCDDTR2022RIDTE2TxD3RxD4RTS5CTS6DSR7SG8DCD20DTR22RI 图8-7 零MODEM方式的标准信号连接
3)采用MODEM的控制和状态信号的连接方式
在进行远距离通信时,一般要加调制解调器MODEM,因而所使用的信号线较多。此时,若在通信双方的MODEM之间采用专用电话线进行通信,则要使用2~8号信号线进行联络与控制,如图8-8所示。
TxD2计接算口机...8RxDRTSCTSDSRSGDCD调制解调器调制解调器TxDRxDRTSCTSDSRSGDCD8...终端2专用电话线 图8-8 采用MODEM和专用电话线通信时信号线的连接
2. IEEE-488总线
IEEE-488总线是一种并行外部总线,它可以实现系统之间的通信,而不是模块板之间的数据交换。它最初是美国惠普(HP)公司为程序可控的台式仪器间的相互连接而研制的,所以也称为HP-IB总线,1975年IEEE协会将其作为规范化的IEEE-488标准接口总线予以推荐,1977年国际电工委员会(IEC)进行认可与推荐。IEEE-488总线也称为通用接口总线GPIB(General Purpose Interface Bus),它是
第7章 存储器系统 183 当前在工业上应用最广泛的总线。
(1)IEEE-488总线使用时的几点约定
交换的信息必须是数字量,而不是模拟量。
在任何一条线上,数据传输的速率不得超过1MB/s。 总线上的设备数不得超过15个。
任何两个设备之间的互连电缆线长度不能超过4米,而且电缆线总长度不得超过20米。 负逻辑电平:逻辑“1”为0~0.8V,逻辑“0”为2.0~5V,0.8~2V之间的电平为不确定
状态。 (2)引脚和接口信号线功能
IEEE-488总线各引脚信号可分为三类:数据线、联络信号线和控制信号线,各引脚的定义如表8-3所示。
表8-3 IEEE-488总线信号表
引脚号 1 2 3 4 5 6 7 8 9 10 11 12 1)数据线
信号名称 D1 D2 D3 D4 EOI结束标志 DAV数据有效 NRFD数据未就绪 NDAC数据未接收完毕 IFC接口清零 SRQ服务请求 ATN字节说明 GND 引脚号 13 14 15 16 17 18 19 20 21 22 23 24 信号名称 D5 D6 D7 D8 REN远程控制 GND GND GND GND GND GND GND 数据线D8~D1:8条双向数据线,用于在8~10个设备之间传送数据、地址、命令和状态信息。 2)联络信号线
通常外设和微机不同步,需采用异步握手应答方式来控制数据在数据总线上的传送,从而允许传送速率不同的设备都可以连接到系统总线上。DAV、NRFD、NDAC三条线就是握手信号线。
DAV(Data Valid):数据有效。当发送器使该信号线变为低电平时,表示它发送到数据线上的数据有效,接收器可以接收。
NRFD(Not Ready for Data):未准备好接收数据线。当该信号有效时,表示总线上至少有一个接收器没有准备就绪。当所有的接收器都准备好时,此信号才变为高电平。 NDAC(Not Data Accepted):未收到数据线。只要总线上有一个接收器没有将数据接收完,该信号就为低电平,当所有接收器都收到数据后,此信号才变为高电平。
3)控制线 ATN(Attention Line):注意线。由控制器产生,指示数据线的信息种类。当ATN=0时,表示数据线上发的是命令或地址信息;当ATN=1时,表示数据线上传送的是数据信息
SRQ(Serve Request):服务请求线。当SRQ=0时,表示有设备请求服务。挂在IEEE-488总线上的设备服务请求信号线相“或”后,连接到总线的SRQ端。
REN(Remote Enable):远地使能线。此线由控制器使用,当REN=0时,一切听者都处于远程控制状态,设备由控制器直接控制;当REN=1时,则总线上所有设备必须处于由前面板开关来控制的本地状态。
IFC(Interface Clear):接口清除线。它实际上是系统复位线。此线有控制器使用,当控制器发
184
微型机原理及应用
出该信号时,将总线上的所有设备复位到初始状态,使总线停止动作。
EOI(End or Identify):结束或识别线。该信号与ATN信号一起用来表示数据传送结束或用来识别一个具体设备。
PGND:机壳接地线 GND:信号接地线
IEEE-488总线已得到了普遍的应用,它允许微型计算机与几个测试仪器相连,形成一个集成测试系统,为了简化接口电路的设计,已研制了不少可供选用的大规模集成电路芯片,如Intel 8291听讲者和Intel 8292控制者,利用这些芯片和标准微处理器总线,就可与IEEE-488总线相连接。
习题8
1. 什么是总线?微型计算机中的总线通常分为哪几类?在微型机算计中采用总线标准有哪些优点?
2. CPU与外设交换数据时,为什么要通过I/O接口进行?I/O接口电路有哪些主要功能? 3. 什么叫I/O端口?一般的接口电路中可以设置哪些端口?计算机对I/O端口编址时采用哪两种方法?在8086/8088CPU中一般采用哪种编址方法?
4. CPU与外设间传送数据主要有哪几种方式? 5. PC总线、ISA总线和EISA总线各用于何种类型的微型计算机中?它们的数据总线各有多少根? 6. IBM PC总线有哪些主要特点?它的信号线有哪几类?这种总线的适用范围如何? 7. PC/AT总线有哪些特点?它的信号线有哪几类?适用范围如何? 8. RS-232C总线的主要特点是什么?它的逻辑电平是如何定义的? 9. 简述IEEE-488总线有哪些特点。 10. 某一个微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LSl38作译码器,试画出端口译码电路,并说明每块芯片的端口地址范围。
因篇幅问题不能全部显示,请点此查看更多更全内容