PCI总线规范熊辉2008年5月内容安排第一部分PCI总线基础一、PCI总线的定义与特点二、PCI总线命令和操作三、PCI总线仲裁四、PCI总线电气规范五、CompactPCI第二部分PCI总线应用示例一、PCI接口实现方案二、PCI接口芯片PCI9054和数据采集卡设计三、PCI驱动程序一、PCI总线的定义与特点1、微型计算机总线概述2、PCI总线发展历史3、PCI总线特点4、PCI总线定义1、微型计算机总线概述微型机基本总线结构1、微型计算机总线概述南桥芯片和北桥芯片南桥芯片主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等等。常见的有VIA的8235、8237等。北桥芯片主要负责CPU与内存之间的数据交换,并控制AGP、PCI数据在其内部的传输,是主板性能的主要决定因素。随着芯片的集成度越来越高,CPU也集成了不少其它功能。如:Althon64内部整合了内存控制器。1、微型计算机总线概述什么是计算机总线?总线是计算机各部件之间进行信息传输的公共通道,根据信号类型的不同,微型计算机的总线一般分为数据总线(DataBus)、地址总线(AddressBus)和控制总线(ControlBus)三种。1、微型计算机总线概述局部总线局部总线是指来自处理器的延伸路线,与处理器同步操作。设备如果直接挂到局部总线上,就能以CPU的速度运行,由于局部总线具有极高的数据传输率,因此,它在CPU与高速缓冲存储器(Cache)、CPU与高速图形卡等需要高速传输信息的场合得到了广泛的应用。PCI即属于局部总线;《PCILocalBusSpecification2.3》1、微型计算机总线概述常用总线ISA总线MCA总线EISA总线VESA(VL)局部总线PCI局部总线1、微型计算机总线概述ISA总线ISA(IndustryStandardArchitecture)总线是IBM公司八十年代为IBM-PC/AT机设计的,又称AT总线,用于AT机主板和各接口电路板的连接。ISA总线是16位数据线、24位地址线,工作频率为8MHz,数据传输率为8MB/S。1、微型计算机总线概述MCA总线MCA(MicroChannelArchitecture即微通道总线结构)总线是IBM公司专为其PS\2系统(使用各种Intel处理器芯片的个人计算机系统)开发的总线结构,该总线的总线宽度是32位,最高总线频率为10MHz。1、微型计算机总线概述EISA总线EISA(ExtendedIndustryStandardArchitecture即扩展工业标准结构总线)是为32位中央处理器(386、486、586等等)设计的总线扩展工业标准,EISA总线除包括ISA总线的所有性能外,并把总线宽度从16位扩展到32位,是ISA总线的扩展。1、微型计算机总线概述VESA局部总线VESA(VideoElectronicsStandardsAssociation即视频电子标准协会)总线是VESA组织(1992年由IBM、Compaq等发起,有120多家公司参加)按局部总线(LocalBus)标准设计的一种开放性总线,简称为VL总线。VESA总线的总线宽度是32位,最高总线频率为66MHz。1、微型计算机总线概述AGP总线AGP(AcceleratedGraphicsPort)即高速图形接口,专用于连接主板上的控制芯片和AGP显示适配卡,是为提高视频带宽而设计的总线规范。1、微型计算机总线概述USB总线USB(UniversalSerialBus即通用串行总线)是一种简单实用的计算机外部设备接口标准。1、微型计算机总线概述PCI局部总线PCI(PeripheralComponentInterconnect即连接外部设备的计算机内部总线)总线是一种高性能的32位/64位地址数据复用的高速外围设备接口局部总线。1、微型计算机总线概述PCI-X总线为解决Intel架构服务器中PCI总线的瓶颈问题,Compaq、IBM和HP公司决定加快加宽PCI芯片组的时钟速率和数据传输速率,使其分别达到133MHz和1GB/S。利用对等PCI技术和Intel公司的快速芯片作为智能I/O电路的协处理器来构建系统,这种新的总线称为PCI-X。1、微型计算机总线概述各种总线性能比较2、PCI总线定义与发展历史PCI总线发展历史PCI的含义为外设部件互连(PeripheralComponentInterconnect)。PCI局部总线是由Intel公司提出。1991年,Intel与IBM,Compaq,AST,HP,NEC等10多家公司(PCISIG)对PCI局部总线进行了定义,于1992年6月22日推出了PCI局部总线1.0版技术规范。2、PCI总线定义与发展历史PCI局部总线协议规范PCI局部总线是一种具有多路地址线和数据线的高性能的32/64位总线。它在高度集成的外围控制器件、外围插件板和处理器/存储器之间作为互连机构应用。目前应用的PCI局部总线规范2.3版包括PCI局部总线部件和扩展板的协议、电气、机械和配置规范,并规定了PCI的硬件环境。2、PCI总线定义与发展历史微型机基本总线结构操作-PIO2、PCI总线定义与发展历史微型机基本总线结构操作-DMA3、PCI总线特点PCI总线特点多总线主控方式在PCI总线上可以存在多个具有总线控制能力的主控设备。当一个具有总线控制接管能力的外围设备有任务处理需暂时接管总线时,可以向PCI总线申请总线并经响应后接管总线,以加速执行高吞吐量、高优先级的任务。独立于处理器PCI总线通过CPU局部总线到PCI总线之间的桥接器形成了一种独特的中间缓冲器设计方式,它将中央处理子系统与外围设备分开,使PCI总线具有独立于处理器的结构特点。用户可以随意增添外围设备,以扩展计算机系统而不必担心在不同频率下会导致系统性能的降低。3、PCI总线特点PCI总线特点突发传输(BURST)PCI总线的数据传输是一种包含一个地址段,后面跟着两个或两个以上数据段的数据传输方式,突发传输模式可确保总线不断满载数据,使PCI总线达到其峰值速度。同步总线操作PCI总线是一种同步总线,总线上除中断等少数几个信号外全部与总线时钟的上升沿同步。PCI总线时钟范围可以很宽,由主板决定,一般为33MHz。为了使总线适应各种速度接口设备的要求,总线可以有多种方式申请等待周期,使PCI总线在接口设计和应用上更加灵活。3、PCI总线特点PCI总线特点适合于各种机型PCI总线不只为标准的桌面电脑提供合理的局部总线设计,同时也适用于便携式电脑和服务器。自动配置PCI总线标准为PCI接口提供了一套完整的自动配置功能,使PCI接口所需要的各种硬件资源如中断、内存、FO地址等通过即插即用的BIOS在系统启动时进行自动配置,达到对计算机资源的优化使用和合理配置,从而使PCI接口达到真正的即插即用,使接口的设计和应用更加简单容易。3、PCI总线特点PCI总线特点编码总线命令不同于ISA总线,PCI总线没有专门的读、写控制线,总线的操作状态即总线命令由4根信号线表示,最多可表示16中操作。地址、数据总线复用PCI总线上的地址总线和数据总线是分时复用的。在每个总线操作的第一个周期传送地址,然后接着传送数据。PCI总线通过这种方式达到在总线规模最小的前提下性能价格比最高的目的。3、PCI总线特点PCI总线特点小结(1)独立于处理器,为PCI局部总线设计的器件是针对PCI,而不是针对处理器的,因此设备的设计独立于处理器的升级。(2)每个PCI局部总线支持约80个PCI功能,一个典型的PCI支持约10个电气负载,每一个设备对于总线来说就是一个负载,因此,每一个设备可以包括8个PCI功能。(3)低功耗,PCI技术规范的主要设计目标就是实现电流尽可能小的系统设计。3、PCI总线特点(4)在读写传送中可实现突发(burst)传送,32位33MHz的PCI局部总线在读写传送中可支持132MB/S的峰值传送速率,对于64位33MHz的PCI传送支持264MB/S的峰值传送速率,对于64位66MHz的PCI局部总线,其传送速率可达到528MB/S。(5)支持多达256个PCI局部总线,技术规范提供了对256个PCI局部总线的支持。(6)总线速度:2.0版规范支持的PCI局部总线速度达到33MHz,2.1以上的版本增加了对66MHz总线操作的支持。(7)64位总线扩展支持。3、PCI总线特点(8)访问时间快,当停靠在PCI局部总线上的主设备写PCI目标时,在33MHz总线速度下,访问时间只需要60ns。(9)并行总线操作,桥支持完全总线并行操作,与处理器总线、PCI局部总线和扩展总线同步使用。(10)总线主设备支持:全面支持PCI局部总线主设备,允许同级PCI局部总线访问和通过PCI—PCI桥与扩展总线桥访问主存储器和扩展总线设备。(11)隐式总线仲裁:PCI局部总线仲裁能够在另一个总线主设备正在PCI局部总线上执行传送时发生。3、PCI总线特点(12)引脚数少,一个功能的PCI从设备只需要47个引脚,而主设备只需要49个引脚。(13)交易完整性校验,在地址、命令、数据周期上进行奇偶校验。(14)3类地址空间,即指存储器、I/O和配置空间。(15)自动配置。(16)插入卡,规范包括PCI连接器和插入卡的定义。4、PCI总线定义PCI总线定义4、PCI总线定义术语解释主设备(Initiator,Master)拥有总线控制权发起数据传输从设备(slave,target)又称目标设备被主设备选中用来进行通信的设备4、PCI总线定义地址和数据信号AD[31﹕0]:地址/数据多路复用的输入/输出信号。在FRAME#有效时,是地址期。在IRDY#和TRDY#同时有效时,是数据期。在FRAME#有效的第一个时钟周期是地址周期,AD[31﹕0]线上含有一个32位的物理地址。对于I/O操作,它是一个字节地址,对于存储器或配置操作,它则是一个双字地址。数据期,AD[7﹕0]为最低字节,AD[31﹕24]为最高字节,在数据传输期间内IRDY#和TRDY#应该同时有效。C/BE[3﹕0]:总线命令和字节使能多路复用信号。在地址期中,传输的是总线命令。在数据期内传输的是字节使能信号。4、PCI总线定义PAR:偶校验信号ParityisevenparityacrossAD[31::00]andC/BE[3::0]#.ParitygenerationisrequiredbyallPCIagents4、PCI总线定义接口控制信号FRAME#:帧周期信号。由当前主设备驱动,表示当前主设备一次交易的开始和持续时间。IRDY#:主设备准备好信号。由当前主设备(交易的启动方)驱动,信号的有效表明发起本次传输的设备能够完成交易的当前数据期。TRDY#:目标设备准备好信号。由当前被寻址的目标驱动,信号有效表示目标设备已经做好了完成当前数据传输的准备工作。4、PCI总线定义STOP#:停止数据传送信号。信号有效时,表示目标设备要求主设备终止当前的数据传输。LOCK#:锁定信号。信号有效时,表示一个对桥的原始操作可能需要多个传输才能完成。IDSEL:设备选择信号。信号有效时,表示驱动它的设备成为当前交易的目标设备。4、PCI总线定义错误报告信号PERR#:数据奇偶校验错误报告信号。只报告除特殊周期之外的所有PCI交易期间的数据奇偶错误。其中数据奇偶错误的产生对于在AD总线上驱动地址和数据信息的所有PCI设备都是强制性的。SERR#:系统错误报告信号。是报告地址奇偶、特殊周期命令的数据奇偶错误以及其它可能引起灾难性后果的系统错误。4、PCI总线定义仲裁信号(只有主设备具有)REQ#:总线占用请求信号。信号一旦有效表明驱动它的设备向仲裁器