版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章总线接口技术8.1计算机总线简介8.2ISA总线8.3PCI总线8.4USB总线
总线(Bus)是系统中连接各部分的一组公共通信线,由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别
用来传输数据、数据地址和控制信号。总线可允许有多个发送端和多个接收端,但在同一时刻只能允许一个设备发送,否则将引起总线竞争。
总线结构使得系统在结构上具有简单、规整和易于扩展的特点,使整个系统各功能部件之间的相互关系成为面向总线的单一关系。这样系统只要将符合总线规范的功能部件接
到总线上,系统的功能就可得到扩展。在多数微机系统中,主板只提供一个标准功能的基座,需要通过扩展总线提供内置的外部设备连接器,可以高速地与大量外围部件实现通
信。通过扩展总线连接各种特殊用途且可互换的接口卡,来增加计算机的功能。
8.1计算机总线简介
本节将对常用的各种计算机总线进行简要的介绍。
1.PC/XT总线最早的PC总线是IBM公司1981年在PC/XT电脑中采用的系统总线,它基于8位的8088处理器,被称为PC总线或者PC/XT总线。PC/XT总线共有62个信号,是目前各类总线中最少的。
2.PC/AT总线
1984年,
IBM推出基于16位的Intel80286处理器的PC/AT电脑,系统总线也相应地扩展为16位,并被称为PC/AT总线。
PC/AT的扩展总线系统设计的最大速度为8MHz,比PC/XT总线的速度几乎快了近一倍,而最佳的数据传输率达20MB/s。不过80286CPU的执行速度更快,因此要增加额外的等待周期,方能使扩展总线与CPU之间进行数据传递。改善的方式是在总线控制器中增加缓冲器,作为高速的微处理器与较低速的AT总线之间的缓冲器,从而使AT总线可以在比CPU低得多的环境下工作。
3.ISA总线
由于IBMPC/XT/AT系统总线的开放性,全世界的PC机制造商纷纷向IBMPC靠拢,从而使IBMPC系列风靡全球。为了满足众多PC兼容机厂商的要求,美国电气和
电子工程师学会(IEEE)成立了一个委员会,并确定以PC/AT总线为标准,称之为工业标准体系结构(
IndustryStandardArchitecture,
ISA),即ISA总线标准。
为了开发与IBMPC兼容的外围设备,行业内逐渐确立了以IBMPC总线规范为基础的ISA总线。ISA总线是8/16位系统总线,最大传输速率仅为8MB/s,允许多个CPU共享系统资源。由于其兼容性好,
ISA在20世纪80年代是应用最广泛的系统总线之一。
为了充分地发挥80286的优良性能,同时又要最大限度地与PC/XT总线兼容,ISA总线在原XT总线的基础上又增加了一个36脚的扩展槽,将数据总线扩展为16位,地址
总线扩展到24位,将中断的数目从8个扩充到15个,并提供了中断共享功能,而DMA通道也由4个扩充到8个。从此,这种16位的扩展总线一直是各制造厂商严格遵守的标准,至今仍广泛地使用。
不过ISA总线的弱点也是显而易见的,比如传输速率过低、CPU占用率高和占用硬件中断资源等。后来在PC98规范中,逐渐放弃了ISA总线,而Intel从i810芯片组开始,也不再提供对ISA接口的支持。
4.PC/104总线
PC/104总线是超小型PC微机所用的总线标准。这种超小型PC微机体积小,结构紧凑,在各种工业控制中很受欢迎。它可以嵌入到对体积和功耗要求都很高的产品,例如医疗仪器、实验室仪器、通信设备、商用终端、军用电子设备、机器人等设备之中,因而PC/104微机常称为嵌入式PC机。这种微机有两个总线插头,其中P1有64脚,
P2有40脚,共有104脚,这也是PC/104名称的由来。
PC/104总线及整机除小型化的结构外,在硬件和软件上与PC总线完全兼容,实质上是为了更好地满足工业控制或小型化设备的要求而开发出来的XT、AT、386、486的小型化机型。
使用PC/104总线的嵌入式PC机的有以下三个主要特点:
(1)使用超小尺寸的模块,包括CPU模板在内,全部功能模板均按PC/104标准设计,模板尺寸规定为90mm×96mm,比一般PC系列微机主板尺寸要小得多。
(2)自堆总线结构,取消了底板和插槽,利用模板上的堆装总线插头座,将各模板堆叠连接在一起,组装紧凑、灵活。
(3)总线驱动电流小(6mA),功耗低(1~2W)。为适应小型化要求,各模板都采用VLSI器件、门阵列、ASCI芯片及大容量固态盘。
5.EISA总线
1988年,康柏和惠普等9个厂商协同把ISA扩展到32位,这就是著名的EISA(ExtendedISA,扩展ISA)总线。
由于EISA是从ISA发展起来的,而且又与ISA兼容,并在许多方面参考了MCA的设计,因此受到PC机众多厂家及用户的欢迎,成为一种与MCA相抗衡的总线标准。
EISA总线支持新一代智能总线主控技术,使外设控制卡可以控制系统总线,可以实现32位内存寻址,实现对CPU、DMA和总线控制器的32位数据传送,支持突发式传输访问,最高数据传输速率为33MB/s,支持电子触发中断方式、多处理器和自动配置等。正是由于EISA保持了与ISA总线的兼容性,从而保护了人们已经在ISA总线微机硬件和软件上的巨大投资。
EISA适合于对总线使用要求较高的系统软件,如indows、Unix、OS/2等,也适用于要求数据传输速率高及数据传输量大的应用场合,如高速图形处理、LAN管理和文件服务应用软件等。
可惜的是,
EISA仍旧由于速度有限,并且成本过高,在还没成为标准总线之前,在20世纪90年代初就被PCI总线所取代了。
6.MCA总线
长期以来,
16位的ISA总线一直处于统治地位,但随着80386、80486等32位CPU的问世,日益显露出ISA总线的一些弱点,如24位地址线和16位数据线与32位CPU不匹配,传输速率低,不支持自动配置,不支持总线主控技术及缺乏对多处理器支持等。为了解决上述问题,同时也为保护自己的利益,
IBM公司于1987年推出了32位微通道结构(MicroChannelArchitecture,
MCA)总线。
MCA总线将数据线和地址线都扩展到32位,成为标准的32位扩展总线系统,同时系统的寻址范围增加到4GB。它的传输速率为40MB/s,且具有多总线功能,有总线仲裁机构,可支持多任务处理,支持多处理器,具有并行处理能力,具有附加卡定义档案,易于机器识别和系统诊断,具有可编程任选机制,可自动进行系统配置和安装。
虽然MCA总线有许多优于传统的设计,增加了许多新的特殊功能,甚至连现在最新的PCI总线都不具备,但是它不能向后兼容ISA,而且IBM紧紧抓住技术的所有权,一直不肯开放此标准,最后以惨败告终,结束了其短暂的生命历程。
7.VL总线
VESA(VideoElectronicsStandardsAssociation)是一个专门制定标准的组织,目的是改善PC机的视频性能。它在1992年引入了VL(VESALocal)32位总线,使数据流通速度更接近CPU的频率,其操作频率最高可达60MHz,提高了总体性能。
VL总线协议简单,传输速率高,能够支持多种硬件,如图形加速器、网络适配器及多媒体控制卡的工作。但是,它的规范性、兼容性和扩展性均较差。
VL总线的扩展总线分成两个部分,前段的VL总线插槽以33MHz的速度高速运行,而后端仍保持ISA的所有特性。
VL总线的数据总线和地址总线通过局部总线与微处理器相连,这样就将数据传输最频繁的数据总线、地址总线与微处理器相连,以达到与微处理器相同的处理速率。这样的
连接方式会增加微处理器的负载,即要求微处理器要有较大的功率去驱动VL总线。为了防止微处理器因负载太重而不能正常工作甚至被烧毁,所以限制80486主板上的VL总线
插槽不能超过3个。
VL总线是在ISA的基础上新增一段插槽,增加了主板的占用面积,但由于设计方面的不足,以及时钟调节出现了问题,再加上不支持总线主控、即插即用等新特性,很快被
PCI所淘汰。
8.PCI总线
使用286和386SX以下CPU的电脑似乎和8/16位ISA总线还能够相处融洽,但当出现了32位外部总线的386DX处理器之后,总线的宽度就已经成为了严重的瓶颈,并影响到处理器性能的发挥。
为此,
1991年下半年,
Intel公司首先提出了PCI(PeripheralComponentIntercon-nect)总线的概念,并与IBM、Compaq、AST、HP和DEC等公司联合于1993年推出PCI总线。
PCI总线是外部设备互连总线,
PCI总线目前有4个主要的规格,分别支持32位和64位,其下又细分为3.3V和5V两种信号。PCI总线和VL总线一样都是局部总线的设计。原始的PCI规格其时钟与CPU同步,但只限于0~33MHz的486年代,中央处理器的飞速发展是PCI永远都追赶不上的。后来人们采用分频的方法来设定PCI的频率,
PCI32的标准速度是33MHz,
PCI64的标准速度是66MHz。如果高于额定频率会导致数据传输出错,超频将影响系统的稳定性。32位PCI总线采用124针连接器,
64位PCI总线用188针连接器。
PCI的设计与VL总线有较大的区别。PCI并没有与微处理器直接相连,而是使用桥路(Bridge)把PCI与局部总线连接起来。因此,
PCI是位于微处理器的局部总线与标准扩展总线之间的一种总线结构。由于PCI是从局部总线中隔离出来的,局部总线信号经过桥路及控制器后,已将PCI与局部总线隔开,因而不会出现类似VL总线造成微处理器过热的问题。同样,由于PCI没有局部总线的负载问题,它允许主板有10个芯片组负载。
总之,
PCI局部总线具有高性能、兼容性好、不受微处理器品种限制、适合各式机种低成本和高效益及预留发展空间等优点,目前被越来越广泛地应用。
9.AGP总线
AGP(AcceleratedGraphicsPort,图形加速接口)是以66MHzPCIRevision2.1规范为基础,由英特尔开发的提高视频性能的接口。它使视频处理器与系统主内存直接相连,避免了经过PCI总线而造成的系统瓶颈,增加了3D图形数据传输速度,而且系统主内存以与视频芯片共享,在显存不足的情况下,调用系统主内存用于存储纹理。
目前,由于3D计算变得越来越重要,因此,新型主板几乎都已经加入了对AGP的支持。AGP又分为AGP1X、AGP2X和AGP4X三种,其区别就在于带宽不同。另外,AGP1X和AGP2X插槽与AGP4X插槽略有不同,但AGP4X插槽可以向下兼容AGP1X、AGP2X的显示设备。AGPPro则是AGP的改进型,它使工作站级主板也能利用AGP的加速性能,降低了AGP所需的电压供应,但没有什么革命性的改变。
10.USB总线
1994年,英特尔、康柏、Digital、IBM、微软、NEC和北电等7家世界著名的计算机和通信公司成立了USB(UniversalSerialBus,通用串行总线)论坛,历时近2年形成了统一意见,于1995年11月正式制定出USB0.
9通用串行总线规范,并在1997年开始有真正符合USB技术标准的外设出现。USB2.0是目前推出的在支持USB的计算机与外设上普遍采用的标准。
USB是串行接口,支持热插拔和即插即用,适合多媒体数据的传送模式。USB接口连接方便,可提供功率有限的电源,且其价格便宜。它既可用于低速的外围设备,如键盘、鼠标等,也可用于中速装置,如打印机、数码照相机、调制解调器、扫描仪等。
由于速度的限制,USB1.1无法支持高速CDR/RW驱动器或高速视频捕捉设备等设备。使用USB1.1连接USB的CDR驱动器最高只能达到8倍速,
MPEG2视频捕捉单元的位速率最高只能达到6Mb/s。
目前USB2.0的应用越来越广泛。USB2.0向下兼容USB1.1,数据的传输率可达到120~240Mb/s,同时支持宽带数字摄像设备及下一代扫描仪、打印机及存储设备。
在USB2.0中,还支持480Mb/s这一相当惊人的高速数据传输。连接USB的CDR中可以实现10倍速以上的高速数据写入,利用USB2.0进行视频捕捉时可进行高画质的录像。
11.IEEE1394
IEEE1394是一种串行接口标准,它允许把电脑、电脑外部设备和各种家电非常简单地连接在一起。IEEE1394的原型是运行在AppleMac电脑上的FireWire(火线),由IEEE
采用并且重新进行了规范。它定义了数据的传输协议及连接系统,可用较低的成本达到较高的性能,以增强电脑与硬盘、打印机和扫描仪等外设,以及与数码相机、DVD播放机和
视频电话等消费性电子产品的连接能力。
由于要求相应的外部设备也具有IEEE1394接口功能才能连接到1394总线上,因此直到1995年Sony推出的数码摄像机加上了1394接口后,它才真正引起人们的广泛注意。采用1394接口的数码摄像机可以毫无延迟地编辑处理影像和声音数据,其性能得到了增强。数码相机、DVD播放机和一般消费性家电产品,如VCR、HDTV和音响等都可以利用1394接口来互相连接。电脑的外部设备,例如硬盘、光驱、打印机和扫描仪等,也可利用1394接口来传输数据。机外总线将改变当前电脑本身拥有众多附加插卡、连接线的现状,它把各种外设和各种家用电器连接起来。
12.PCIExpress总线
PCI总线带宽只有133MB/s,对于整个电脑架构来说,带宽早已是不堪负荷,处处堵塞。在经历了长达10年的修修补补,
PCI总线已经无法满足电脑性能提升的要求,必须由带宽更大、适应性更广、发展潜力更深的新一带总线取而代之,这就是PCIExpress总线,因为是第三代输入/输出总线,所以简称3GIO(ThirdGenerationInput/Output)。因为PCIExpress的开发代号是Arapahoe,所以又称为Arapahoe总线。
Intel在2001年春季的IDF上,正式公布了旨在取代PCI总线的第三代I/O技术,该规范由Intel支持的AWG(ArapahoeWorkingGroup)负责制定。在2002年4月17日,
AWG正式宣布3GIO1.0规范草稿制定完毕,并移交PCISIG进行审核,最后被正式命名为PCIExpress。2002年7月23日,
PCISIG正式公布了PCIExpress1.0规范,并且根
据开发蓝图,将在2006年正式推出Spec2.0(2.0规范)。
8.2ISA总线
对早期的PC和PC/XT微机,其CPU为Intel8088,而PC/AT微机的CPU为Intel80286。这几种机型除了采用的CPU不同外,其他方面(如中断级别、存储器容量等)也有所不同。但是,
ISA总线是由PC/XT总线改进与扩展而来的,它同时具有8位和16位扩展槽结构,并具有向下(与PC/XT)兼容的特性。
8.2.1PC/XT总线
在采用8088作为处理器的第一代通用微型计算机中,系统中的所有其他部件直接与处理器相连(如图8.1所示)。处理器作为系统核心,通过PC总线对系统中的其他部件进行控制及数据交换。这种PC总线称为XT总线,它采用了8位数据总线和20位地址总线,以CPU时钟作为总线时钟,可支持4通道DMA和8级硬件中断。图8.1使用PC/XT总线的PC系统结构
1.信号线定义
PC/XT总线配有62根引脚(插槽引脚定义如图8.2所示),其对应引脚信号定义的电平,除12V电源外,均为TTL电平。总线槽口上的信号大体可分为四大类:地址总线
(AddressBus)、数据总线(DataBus)、控制总线(ControlBus)、辅助线和电源线。
1)地址总线(共20根)
A0
~A19:地址总线信号,共20位,用来对内部存储器和I/O设备进行寻址,可访问1MB空间内存和64KB的I/O口。图8.2PC/XT插槽引脚定义
(8)IRQ2~IRQ7:中断请求2~中断请求7。这6个输入信号用来向微处理器发出中断请求,这些信号直接送到系统主板上的8259中断控制器,再经8259接到CPU的中断请求输入端。8259中断控制器管理中断的优先权,使IRQ2优先级最高,而IRQ7优先级最低。如果IRQx(x=2~7)未被屏蔽,该信号的上升沿就产生对8088微处理器的中断请求,该请求一直保持高电平,直到微处理器发出一个INTA信号为止。由于INTA信号不在XT总线上出现,因此中断服务程序中应有一句I/O指令,通过一个I/O寄存器端口对这一个中断请求信号进行复位。
(9)DRQ1~DRQ3:DMA请求1~DMA请求3。这三条线是输入线,高电平有效,是I/O端口用来申请DMA周期的。此信号表示外设要求进入DMA周期。当一个外设或接口具有高速传输能力且有大量数据等待传输,而不希望通过微处理器时,即可以启动此信号。这几条信号线直接连到系统板上的DMA控制器,由DMA控制器进行优先级判别,
ROMB10S将DMA控制器初始成为DRQ1
优先级最高。
(3)OSC:主振输出信号,频率为14.31818MHz。
(4)CLK:PC/XT内部系统时钟输出,频率为4.77MHz。
(5)电源及地线:±5V,
±12V,地线。
2.PC/XT总线分析
CPU是在统一的时钟信号CLK控制下按节拍工作的。它经过读取指令、指令译码和执行指令规定的操作来完成。在这期间至少要和总线发生一次关系,即通过总线对存储器
进行读或写,或对I/O端口进行读或写。我们把通过总线的这个时间操作过程称为一个总线周期。
PC微机包括两类总线周期,一类是由CPU启动的总线周期,另一类是由DMA控制器启动的总线周期。由CPU启动的总线周期主要有存储器读/写周期、I/O读/写周期和中断响应周期。
了解系统总线操作时序,对数据采集系统接口电路设计是至关重要的。比如,外设从PC机取数据,何时才能取到,向PC机存储器或寄存器写数据,何时才能送到,必须在时
间上准确地控制接口来完成这些操作,以便正确地进行数据交换。接口的控制操作时序依照上述的总线周期进行设计,以便在数据采集系统外设和PC机相互间的时间上进行配合。
另外,当数据采集系统用于实时控制时,往往要知道一些操作所需要的时间,以便与被控制的过程相配合。根据总线操作时序,可以进行时间的估计。
指令系统中的一些指令,功能类似,但指令长度和执行时间(T周期数)是不同的,每对存储器或I/O端口进行一次访问,就对应一个相应的总线周期,因而了解总线周期,这对于选择适当指令,优化程序也是必要的。
8.2.2ISA总线
ISA总线支持24位地址线、16位数据线、15级硬件中断和7个DMA通道。ISA总线结构示意图如图8.3所示。其中,
PCAT/ISA核心逻辑芯片组中可以实现7个DMA通道、15级中断、时间/计数器、总线缓冲器和扩展总线控制等。图8.3ISA总线结构
SA总线扩展插槽由两部分组成,一部分有62脚,其信号分布及名称与PC/XT总线的扩展槽基本相同,仅有很小的差异;另一部分是AT机的添加部分,由36脚组成。这36脚分成两列,分别称为C列和D列。ISA总线接口卡的外观如图8.4所示,其插槽外观如图8.5所示。图8.4ISA总线接口卡外观图8.5ISA总线插槽外观
ISA总线插槽相对于PC/XT总线添加的部分信号定义如图8.6所示。图8.6ISA总线新增的36个信号定义
ISA总线的主要特点是,除增加了数条信号线,一并解决了寻址与数据传输上的问题外,同时在总线控制器中增加了缓冲器,可插入等待状态,使微处理器与扩展总线使用的时钟分离,允许扩展总线工作于一个比微处理器低的频率工作环境。PC/AT总线时钟为8MHz,最佳传输率可达20MB/s。
下面首先讨论一下ISA总线的62脚插座和PC/XT总线的62脚插座的差异,然后逐个介绍新增的36条信号线的功能。
(5)OWS(B8):在PC/XT总线的62脚插座中B8
位置是一个保留位,未被使用。在ISA总线中,该位置是一个名为OWS的输入信号。OWS信号告诉微处理器不加任何附加等待周期就能完成当前总线周期。为了在没有等待周期的情况下运行一个16位设备的存储器周期,
OWS将被读/写信号和地址译码所驱动。为了在最小的两个等待状况的情况下运行一个8位设备的存储器周期,
OWS应在读/写信号和该设备的地址译码有效后被驱动,有效时间为一个系统时钟周期,
OWS为低电平有效,并应由集电极开路或三态驱动器来驱动。
在ISA总线周期中,包括存储器读/写周期或I/O端口读/写周期,需要三个系统时钟周期。但是80286至80486的总线周期是两个系统时钟周期,因而PC/AT或兼容机自动插入一个等待周期。对8位设备的8位总线操作需要6个时钟周期,包括自动插入的4个等待状态,这恰好与PC/XT微机的I/O端口读写周期相同。因此,
PC/XT微机的扩展接口插卡不作修改就可用于PC/AT及其兼容机。在这里,
OWS信号可以用于减少这些自动插入的等待周期数。在16位总线操作时,
OWS有效,并可去掉存储器读/写周期中的等待状态,因此OWS可以用于PC/AT微机与快速RAM的接口。
2.ISA总线添加的36脚插座信号
ISA总线扩展槽将62脚与36脚插座一起,才能真正构成16位数据总线,并且可以将地址寻址范围扩大到16MB。ISA总线还将中断的数目由8个扩充到15个,
DMA也增加到8个,从而使扩展系统的设计达到更高的水平。
(1)D8~D15:数据总线高8位。D8~D15与D0~D7
一起构成16位数据总线,其中D0为最低位,D15
为最高值。所有在I/O通道上的8位设备都应使用D0
~D7
与CPU通信,16位的设备使用D0
~D15
与CPU通信。
(2)LA17~LA23:非锁存地址线。这些信号是用来对系统内的存储器和I/O设备寻址的。它们使系统具有16MB的寻址能力,这些信号在ALE为高电平时有效。LA17
~LA23在微处理器周期并不锁存,因此不能在整个周期里有效。它们为一个存储器读/写周期产生译码,这些译出的信息在ALE下降沿应被I/O接口插卡锁存。
在ISA添加的36脚中所增加的LA17
~LA23
这7根地址线中,
LA20~LA23
这4根地址线是PC/XT总线中所没有的,但是LA17
~LA19
这3根地址线与PC/XT总线中的地址线是重复的。这是因为在ISA总线中62脚部分的20根地址线是利用锁存器提供的,而锁存过程导致了传送速度降低。所以,在ISA总线中,为了提高速度,在36引脚插槽上定义了不采用锁存的地址线LA17
~LA23
。
(9)DRQ0
、DRQ5、DRQ6
和DRQ7:这些信号与DRQ1~DRQ3
一起构成I/O通道的DMA请求。这是由外围设备和I/O通道上的CPU所驱动的异步通道请求信号,以便得到DMA服务。这里规定DRQ0
的优先级最高,RQ7的优先级最低。当DRQ线变为有效电平时产生一个请求,在相应的DMA请求响应线(DACK)变为有效之前,
DRQ线必须保持有效电平。DRQ0
~DRQ3用于8位DMA传送,DRQ5
~DRQ7用于16位DMA传送。DRQ4
用在系统板上,而不用在I/O通道上。
3.ISA总线分析
ISA总线共有四类总线周期,即8位的总线周期、16位的总线周期、DMA总线周期和刷新总线周期。16位的总线周期比8位的总线周期具有更高的操作速度。ISA总线上有关信号时序与PC/XT总线相似,工作过程也类似。下面着重介绍16位的存储器总线周期和16位的I/O总线周期时序。
8.3PCI总线
PCI(PeripheralComponentInterconnect)总线是描述如何通过一个结构化和可控制的方式把系统中的外设组件连接起来的一个标准。PCI总线是目前局部总线应用最广的技术之一。它有四个主要的标准规格,分别支持32位与64位,其下又分成3.3V与5V两种信号。
PCI亦为局部总线结构,运行在33MHz下的PCI,其数据传输率可达133MB/s,而64位的PCI最大数据传输率可达266MB/s,足够运用在高速信号采集与处理和实时控制系统中。
PCI扩展总线的自动配置(AutoConfiguration)功能,使用户在安装接口卡时,无需拨动开关或跳线,而将一切资源初始设置交给BIOS处理。
PCI与微处理器之间不直接相连,而是使用电子桥接器连接PCI与局部总线。PCI是位于处理器的局部总线与标准扩展总线间的一种总线结构。PCI以桥接/内存控制器与微处理器的局部总线隔离,这就允许PCI总线处理较多的外围设备,而不增加微处理器的负担。
运用桥接器隔离微处理器与PCI,同时也消除了数据交换时可能会发生的延迟问题。Intel公司设计的芯片组巧妙地使用了读/写缓冲区。在数据变换时,微处理器可将数据交给PCI控制器,
PCI控制器再将这些数据存入缓冲区,让微处理器可以很快地执行下一条指令,而不必等到整个数据传输操作完成。
8.3.1PCI总线的主要性能
PCI总线的主要性能如下:
·支持10台外设。
·总线时钟频率为33.3MHz/66MHz。
·最大数据传输速率为133MB/s。
·时钟同步方式与CPU及时钟频率无关。
·总线宽32位(5V)/64位(3.3V)。
·能自动识别外设。
·特别适合与Intel的CPU协同工作。
PCI还具有其他特点,具体包括:
·具有与处理器和存储器子系统完全并行操作的能力。
·具有隐含的中央仲裁系统。
·采用多路复用方式(地址线和数据线),减少了引脚数。
·支持64位寻址完全的多总线主控能力。
·提供地址和数据的奇偶校验。
·可以转换5V和3.3V的信号环境。
8.3.2PCI总线系统结构
PCI总线是一种不依附于某个具体处理器的局部总线。从结构上看,
PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能。PCI总线也支持总线主控技术,允许智能设备在需要时取得总线控制权,以加速数据传送。
图8.7是一个基于PCI总线的系统逻辑图。PCI总线和PCIPCI桥(bridge)是将系统组件联系在一起的“粘合剂“。CUP和Video设备连接主要的PCI总线———PCI总线0。一个特殊的PCI设备———PCIPCI桥把主总线连接到次PCI总线———PCI总线1。按照PCI规范的术语,
PCI总线1是PCIPCI桥的下游(Downstream),而PCI总线0是PCIPCI桥的上游(Upstream)。连接在次PCI总线上的是系统的SCSI和以太网设备。物理上桥、次要PCI总线和这两种设备可以在同一块PCI卡上。系统中的PCIISA桥可支持老的、遗留的ISA设备。图8.7中还给出了一个超级I/O控制芯片,用于控制连接在ISA口上的键盘、鼠标和软驱。图8.7基于PCI总线的系统逻辑
8.3.3PCI总线信号定义
在一个PCI应用系统中,如果某个设备取得了总线控制权,就称其为“主设备”,而被主设备选中以进行通信的设备称为“从设备”或“目标设备”。对于相应的接口信号线,通常分为必备信号线和可选信号线两大类。
为了进行数据处理、寻址、接口控制和仲裁等系统功能,
PCI接口要求作为目标的设备至少需要47条引脚,若作为主设备则需要48条引脚。可选引脚51条(主要用于64位扩
展、中断请求、高速缓存支持等)。
PCI总引脚数共有120条(包含电源、地、保留引脚等),如图8.8所示。下面按功能分组进行说明。图8.8PCI总线信号定义
7)高速缓存(Cache)支持信号
为了使具有可缓存功能的PCI存储器能够和贯穿写(Write-Through)或回写(Write-Back)的Cache相配合工作,可缓存的PCI存储器应该能实现两条高速缓存支持信号作为输入。如果可缓存的存储器位于PCI总线上,那么连接回写式Cache和PCI的桥路必须要利用两条引脚,且作为输出,而连接贯穿写式Cache的桥只需要实现一个信号。上述两个信号的定义如下:
8.3.4PCI总线分析
PCI的总线传输机制是突发成组传输。一个突发分组由一个地址周期和一个(多个)数据周期组成。PCI支持存储器空间和I/O空间的突发传输。这里的突发传输是指主桥(位
于主处理器和PCI总线之间)可以将多个存储器的写访问在不产生副作用的前提下合并为一次传输。一个设备通过将基址寄存器的预取位置1,来表示允许预读数据和合并写数据。
一个桥可利用初始化时配置软件所提供的地址范围,来区分哪些地址空间可以合并,哪些不能合并。
当遇到要写的后续数据不可预取或者一个对任何范围的读操作时,在缓冲器的数据合并操作必须停止并将以前的合并结果清洗。但其后的写操作,如果是在预取范围内,便可
与更后面的写操作合并,但无论如何不能与前面合并过的数据合并。
只要处理器发出的一系列写数据(双字)所隐含的地址顺序相同,主桥路总是可以将它们组成突发数据,但由于从处理器中发出的I/O操作不能被组合,因此这种操作一般只有一个数据周期。
图8.9PCI总线读操作时序
2.PCI总线的编址
PCI定义了三个物理地址空间:存储器地址空间、I/O地址空间和配置地址空间,前两个是一般总线都有的通用空间,第三个是用以支持PCI硬件配置的空间。
PCI总线的编址是分布式的,每个设备都有自己的地址译码,从而省去了中央译码逻辑。PCI支持两种类型的设备地址译码:正向译码和负向译码。所谓正向译码就是每个设备都监视地址总线上的访问地址是否落在它的地址范围内,因而速度较快。而负向译码是指该设备要接受未被其他设备在正向译码中接受的所有访问,因此这种译码方式只能由总线上的一个设备来实现。
2)内存地址空间
在存储器访问中,所有的目标设备都要检查AD0
、AD1
,要么提供所要求的突发传输顺序,或者执行目标设备断开操作。对于所有支持突发传输的设备都应能实现线性突发性传输顺序,而高速缓存的行切换不一定实现。在存储器地址空间,用AD
2~AD31
译码得到一个双字地址的访问。在线性增长方式下,每个数据周期过后地址按一个DWORD(4个字)增长,直到对话结束。
在存储器访问期间,AD0
和AD1
的含义为:当AD0AD1
为00时,突发传输顺序为线性增长方式;AD0
AD1
为01时,为高速缓存行切换方式;AD0AD1
为1X时,为保留。
3)配置地址空间
在配置的地址空间中,要用AD2
~AD7将访问落实到一个DWORD地址。当一个设备收到配置命令时,若IDSEL信号成立,且AD0AD1为00,则该设备即被选为访问的目标,否则就不参与当前的对话。如果译码出来的命令符合某桥路的编号,且AD0
AD1为01,则说明配置访问是对该桥后面的设备。
3.PCI配置头(PCIConfigurationHeaders)
系统中的每一个PCI设备,包括PCIPCI桥都由一个配置数据结构,位于PCI配置地址空间中。PCI配置头允许系统识别和控制设备。这个头位于PCI配置地址空间的确切位置依赖于设备使用的PCI拓扑。例如,插在PC主板一个PCI槽位的一个PCI显示卡配置头会在一个位置,如果它被插到另一个PCI槽位,则它的头会出现在PCI配置内存中的另一个位置。但是不管这些PCI设备和桥在什么位置,系统都可以发现并使用它们配置头中的状态和配置寄存器来配置。
通常,系统的设计使得每一个PCI槽位的PCI配置头都有一个和它在板上的槽位相关的偏移量。所以,举例来说,板上的第一个槽位的PCI配置头的偏移量为0,而第二个槽位的PCI配置头的偏移量为256(所有的配置都一样长度,为256字节),依此类推。定义了系统相关的硬件机制使得PCI配置代码可以尝试检查一个给定PCI总线上所有可能的PCI配置头,试图读取头中的一个域(通常是VendorIdentification域)得到一些错误,从而知道哪些设备存
在而哪些设备不存在。PCI总线规范描述了一种可能的错误信息:试图读取一个空的PCI槽位的VendorIdentification和DeviceIdentification域的时候返回0xFFFFFFFF。
PCI配置头的布局如图8.10所示。它包括以下8个域。
1)产家域(VendorIdentification)产家域是唯一的数字,描述这个PCI设备的发明者。Digital的CIVendorIdentifica-
tion是0x1011,而Intel是0x8086。
2)设备域(DeviceIdentification)
设备域描述设备自身的唯一的数字。例如Digital的21141快速以太网设备的设备标识符是0x0009。
3)状态域(Status)
状态域给出了设备的状态,它的位的含义由PCI总线规范规定。
4)命令域(Command)
系统通过写命令域来控制设备。例如:允许设备访问PCII/O内存。
5)类型域(ClassCode)
类型域标识了设备的类型。对于每一种设备都有标准分类:显示、SCSI等等。对于SCSI的类型编码是0x0100。
6)基地址寄存器域(BaseAddressRegisters)
基地址寄存器域用于确定和分配设备可以使用的PCII/O和PCI内存的类型、大小和位置。图8.10PCI配置头布局
8)中断线域(InterruptLine)
PCI配置头中的中断线域用于在PCI初始化代码、设备驱动程序和系统的中断处理子系统之间传递中断控制。写在这里的数字对于设备驱动程序来讲是没有意义的,但是它可
以让中断处理程序正确地把一个中断从PCI设备发送到系统中正确的设备驱动程序的中断处理代码处。
4.PCIISA桥(PCI-ISABridges)
PCI-ISA桥把对于PCII/O和PCI内存地址空间的访问转换成为ISAI/O和ISA内存访问,用来支持ISA设备。现在销售的多数系统都包括几个ISA总线插槽和几个PCI总线插槽。这种向后的兼容的需要会不断减少,将来会出现只有PCI的系统。在早期的Intel8080基础的PC时代,系统中的ISA设备的ISA地址空间(I/O和内存)就被固定下来。甚至一个S5000AlphaAXP基础的计算机系统的ISA软驱驱动器的ISAI/O地址也会和第一台IBMPC一样。PCI规范保留了PCII/O和PCI内存的地址空间中较低的区域保留给系统中的ISA外设,并使用一个PCIISA桥把所有对于这些区域的PCI内存访问转换为ISA访问。
5.PCIPCI桥(PCI-PCIBridges)
PCI-PCI桥是特殊的PCI设备,把系统中的PCI总线粘和在一起。简单系统中只有一个PCI总线,单个PCI总线可以支持的PCI设备的数量由电气限制。使用PCIPCI桥
可以增加更多的PCI总线允许系统支持更多的PCI设备。这对于高性能的服务器尤其重要。
PCI-PCI桥只向下游传递对于PCII/O及PCI内存读和写的一个子集。例如在图8.7中,只有读和写的地址属于SCSI或者以太网设备的时候PCI-PCI桥才会把读/写的地址
从PCI总线0传递到总线1,其余的都被忽略。这种过滤阻止了不必要的地址信息遍历系统。为了达到这个目的,PCI-PCI桥必须被编程设置,以限制从主总线向次总线通过的PCII/O和PCI内存空间访问。一旦系统中的PCI-PCI桥被设置好,设备驱动程序只是通过这些窗口存取PCII/O和PCI内存空间,PCI-PCI桥是不可见的。
既然CPU的PCI初始化代码可以定位不在主PCI总线上的设备,就必须有一种机制使得桥可以决定是否把配置循环(cycle)从它的主接口传递到次接口上。一个cycle就是它
显示在PCI总线上的地址。PCI规范定义了两种PCI地址配置格式:类型0和类型1,分别如图8.11和图8.12所示。
类型0的PCI配置cycle不包含总线号,此PCI配置被PCI总线上的所有设备解释为PCI地址配置。配置cycle的位32~11看做是设备选择域。设计系统的一个方法是让每一个位选择一个不同的设备。这种情况下位11可能选择槽位0的PCI设备,位12选择槽位1的PCI设备,依此类推。另一种方法是把设备的槽位号直接写到位31~11中。一个系统使用哪一种机制依赖于系统的PCI内存控制器。
类型1的PCI配置cycle包括一个PCI总线号,除了PCI-PCI桥之外,所有PCI设备都忽略这种配置循环。所有看到了类型1的PCI配置cycle的PCI-PCI桥都可以把这些信息向它们的下游传送。一个PCI-PCI桥是否忽略PCI配置循环或者向它的下游传递,依赖于这个桥是如何配置的。每一个PCI-PCI桥都有一个主总线接口号和一个次总线接口
号。主总线接口离CPU最近而次总线接口离CPU最远。每一个PCI-PCI桥都有一个附属总线编号,这是在第二个总线接口之外可以桥接的最大PCI总线数目。或者说,附属总
线编号是PCI-PCI桥下游最大的PCI总线编号。
当PCI-PCI桥看到一个类型1的PCI配置cycle时,它做以下三件事情之一:
(1)如果指定的总线编号不在桥的次总线编号和总线的附属编号之间就忽略它。
(2)如果指定的总线编号和桥的次总线编号符合就把它转变成为类型0的配置命令。
(3)如果指定的总线编号大于次要总线编号而小于或等于附属总线编号,就不改变地传递到次总线接口上。
所以,如果我们希望寻址如图8.13中总线3上的设备1,我们必须从CPU生成一个类型1的配置命令。桥1不改变地传递到总线1,桥2忽略它,但是桥3把它转换成一个类型
0的配置命令,并把它发送到总线3,使设备1响应它。
每一个独立的操作系统负责在PCI配置阶段分配总线编号,但是不管使用哪一种编码方案,对于系统中所有的PCIPCI桥,都必须满足这条规则:所有位于一个PCIPCI桥后面的PCI总线的编码都必须在次总线编号和附属总线编号之间(包含)。
如果违背了这条规则,则PCIPCI桥将无法正确地传递和转换类型1的PCI配置cycle,系统无法成功地找到并初始化系统中的PCI设备。图8.13PCI系统配置
8.3.5PCI总线开发
采用PCI总线技术的计算机数据采集系统开发中可能会碰到以下几个问题。
1.接口驱动
PCI规范规定:PCI总线是CMOS总线,总线的信号驱动采用反射波方式,能力较弱,静态电流很小,因此板卡上的每条信号线只能有一个门电路负载挂接。这不仅包括通常的数据/地址总线,而且包括了所有的信号线。因此,用户逻辑和PCI卡槽连接的每一条信号线都必须在中间设置一个双向三态驱动门(比如设置若干个74LS245),状态机和配置空间等用户逻辑必须放置在三态门之后,与总线隔离,否则大多主板无法启动或工作时间过长而易烧坏主板。
2.电压匹配
在PCI插槽上,虽然同时提供了+5V电源和+3.3V电源(有些主板的+3V电源线是空置的,没有提供该路电源),但目前配置的大都是+5V规范定义的引脚插槽。而由于功率或其他方面的要求,用户使用的设计芯片可能是工作在+2.7V或+3.3V(如ALTERA公司的10K系列),或者接口芯片本身虽工作电压为+5V,但接口之后的芯片工作在+3.
3V(如ALTERA公司的MAX7000系列芯片同时分别提供了工作电源和接口电源两种电源引脚)。
实验证明:尽管PCI规范分为+5V和+3.3V两种,但两种规范是可以兼容的,在+5V插槽中应用+3.3V信号接口完全可行。也就是说,用户使用+3.3V工作电压的FPGA芯片完全可以适用于目前的+5V规范并能够正常工作。这是因为PCI总线的信号驱动采用的是反射波方式而不是入射波方式,
PCI总线驱动器仅把信号电平驱动至2.5V,
依靠反射波叠加形成驻波便可达到规定的+5V信号电平。使用+3.3V电压驱动已超过了规范要求,当然可行。
4.配置空间
配置空间的设计是实现PCI扩展卡设计的核心问题。一次设计的成功与否,配置空间起着关键性的作用。它决定了用户扩展卡能否被操作系统识别,能否“即插即用”,决定着软件驱动程序开发的方便程度。一个好的设计可方便地应用Windows标准控件来控制扩展卡的各种操作。
在PCI规范中,配置空间是一个容量为256B并具有特定记录结构或模型的地址空间(如图8.10所示),该空间又分为头标区和设备有关区两部分,内容十分复杂。
5.接口设计
PCI总线扩展卡接口设计是一项精细和复杂的工作,设计过程中的每一步骤都需要综合考虑,任何一个细节的遗漏都将导致整个系统工作的不稳定。在实际工作中我们发现使
用Intel芯片组的主机板对PCI的时序要求最为严格,使用其他公司生产芯片的主机板对时序要求较为宽松,只要设计在Intel主板上能够稳定工作,设计就基本成功了。
现在市场上有许多专用的PCI规范接口芯片,这些芯片提供的PCI接口完全符合规范,具体符合的规范版本可以参看具体的芯片,所以即使开发者不是很了解规范的具体细则,也可成功地设计PCI卡。
运用PCI接口芯片时,在连线上只要将对应的引脚连在总线上就可以了。在连线时要注意PCI规范中提到了信号用的反射波信号,所以驱动的信号只用了要求电压的一半,另一半靠反射来提升。信号线的长度有如下要求:一般64位卡的32位信号具备的最大连线长度是1500mil,
64位扩展信号的附加信号的连线长度最大为2000mil,
CLK的长度为2500mil±100mil,如果长度不够,可以多绕几圈。
还有一个要注意的是PCI信号中prsnt1和prsnt2必须有一个接GND,主板就是靠这两个信号来判断插槽上是否有卡,而其接法与PCI卡使用的功率有关具体的含义如下(1表示悬空,
0表示接地):
另外,在PCI卡上最好从槽上引的电源上多加几个电容,所有电源都必须退耦。一般规范推荐PCI卡做4层板,
PCI规范规定了+5V和+3.3V两种电气规范。
8.3.6PCI接口芯片PCI9052
PCI9052是PLX公司继PCI9050之后推出的低成本PCI总线接口芯片,它具有低功耗以及PQFP160管脚封装等特点,可以使局部总线快速转换到PCI总线上。
1.PCI9052的特点
PCI9052具有如下特点:
(1)符合PCI2.1规范,支持低成本从属适配器。
(2)包括一个64B的写FIFO和一个32B的读FIFO,通过读/写FIFO,可实现高性能的突发式数据传输。
(3)采用ISA模式,支持PCI总线到ISA总线的单周期存储器(8位或16位)读/写和I/O访问。
(4)支持两个来自局部总线的中断,可生成一个PCI中断,利用软件写内部寄存器位也可以达到同样的目的。
(5)PCI9052的局部总线与PCI总线的时钟相互独立运行,局部总线的时钟频率范围为0~40MHz,为TTL电平;PCI总线的时钟频率范围为0~33MHz。这两种总线的异步运行方便了高低速设备的兼容。
(6)可编程的局部总线配置,支持复用或非复用模式的8、16或32位的局部总线。
(7)串行EEPROM提供PCI总线和局部总线的部分重要配置信息。
(8)具有4个局部设备片选信号,各设备的基址和地址范围及其映射可由串行EEP-ROM或主机编程实现。
(9)具有5个局部地址空间,基址和地址范围及其映射可由串行EEPROM或主机编程实现。
(10)支持Big/LittleEndean编码字节的转换。
(11)局部总线等待状态,除了用于握手的等待信号外,
PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待)。
(12)可编程实现读/写信号选通的延迟和写周期的保持。
(13)可对局部总线的预取计数器编程为0(非预取)、4、8、16或连续(预取计数器关闭)预取模式。
(14)支持PCI2.1规范的延迟读模式。
(15)具有一个可编程PCI读/写重试延迟计时器,可以为PCI总线产生一个重试信号。
(16)具有PCI锁定机制,
PCI主控设备可以通过锁定信号独占对PCI9052的访问。
2.PCI9052的开发
PCI9052的机理比较简单,它内部提供了两种配置寄存器。一种叫做PCIconfigura-tionregisters,这就是我们常说的PCI配置空间;另外一个叫做localconfigurationregis-
ters,它提供了配置本地端的一些信息。这里提到了本地端,其实PCI9052就相当于一个桥,连接PCI卡本地端的芯片到PCI总线上,将PCI指令例如读/写某个寄存器、内存和
I/O翻译到本地端。
PCI9052在本地端提供了26根地址线、32根数据线和4根LBE,可以翻译成不同的地址线。如果用的本地端是8位数据,则在这种模式下LBE1和LBE0提供地址线[1:0]。
PCI配置寄存器提供了6个基地址寄存器,这些基地址都是在系统中的物理地址,其中BASE1和BASE2都是用来访问本地配置寄存器的基地址,
BASE1
是映射到内存的基地
址,BASE2
是映射到I/O的基地址。所以可以通过内存和I/O来访问本地配置寄存器。
BASE2~BASE5
共4个空间提供了访问本地端所接的4个芯片(当然可以少于4个),它们将本地端的芯片通过本地端地址(在本地配置寄存器中设置)翻译成PCI的地址,也就是将本地的芯片映射到系统的内存或I/O口。如果使用的是内存映射,本地端的芯片地址例如是0x0cc000,将此地址放入本地配置寄存器的相应位置(由于有四个空间,可以选择任意一个空间来对应此芯片),如果用的是space0,还要配置此空间的大小,这样在PCI总线端系统会根据这个大小分配相应的内存空间(或I/O)供PCI9052使用来映射本地上接的芯片。而系统分配的内存空间的信息会写入PCI配置寄存器中,只要读出来就可以了。
PCI9052工作时还需要一个配置芯片EEPROM,
PLX公司推荐了93cs46。EEPROM会在PCI卡上电的时候配置PCI9052,主要配置了PCI卡的VendorIdentification和
DeviceIdentification,这是系统用来标识PCI卡的,还配置了本地端的4个space的本地基地址和大小,以及每个space的其他一些参数。
硬件配置本身很容易,只要将对应的管脚相连就可以了。注意本地芯片如果不申请总线控制,
PCI9052的lhold信号一定要接GND,还有如果本地芯片没有提供IRDY信号,
PCI9052的对应管脚也必须接地,否则一读此芯片,系统就会死机,一直会等待IRDY信号有效后才能读取数据。
3.PCI9052的中断操作
PCI9052的中断操作主要是通过配置相关的寄存器实现的。PCI9052芯片中与中断操作相关的寄存器有以下3个。
1)PCIInterruptLine寄存器(PCIILR)
该寄存器属于PCI配置寄存器,偏移地址为3Ch(如图8.10所示),可读/写。PCIInterruptLine寄存器决定中断矢量指向的中断号,驱动程序和上层操作系统利用该寄存器的值获取中断优先级和中断矢量的指向。
该寄存器的值与计算机的体系结构有关,对于X86体系的PC机,该寄存器的值等于IRQ号,具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生通过地理信息系统分析城市交通拥堵演变驱动机制课题报告教学研究课题报告
- 书法用笔工具材料特性对力传递效率的实验研究课题报告教学研究课题报告
- 诚信投标承诺书15篇
- 《移动通信技术》课件-5.2.2 复用段保护配置
- 2026年河南道路工程监理合同三篇
- 2026届河南省周口市高三下学期第一次大联考化学试题含解析
- 护理研究创新性评估的评估工具评估
- 肾动态显像:开启慢性梗阻性肾病预后评估的新视角
- 肺癌骨转移的多维度解析:基于三例临床案例的深度探究
- 肺癌患者合并静脉血栓栓塞症的多维度危险因素剖析与临床对策探究
- 高中数学必修 选修全部知识点归纳总结(新课标人教A版)
- 人力资源外包投标方案
- 江苏师范大学成人继续教育网络课程《英语》单元测试及参考答案
- 社会工作综合能力(初级)课件
- 国家职业技能鉴定考评员考试题库
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 培训testlab中文手册modal impact1 Test Lab模态锤击法软件布局
- 安徽华塑股份有限公司年产 20 万吨固碱及烧碱深加工项目环境影响报告书
- 糖尿病酮症酸中毒指南精读
- 业财一体化财务对接解决方案
- 《动物病理》课程设计课件
评论
0/150
提交评论