标题：PCI接口
简介
  PCI是Peripheral Component Interconnect（外设部件互连标准）的缩写，它是目前个人电脑中使用最为广泛的接口，几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型，在目前流行的台式机主板上，ATX结构的主板一般带有5～6个PCI插槽，而小一点的MATX主板也都带有2～3个PCI插槽，可见其应用的广泛性。[1]
发展历史
PCI是由Intel公司1991年推出的一种局部总线。从结构上看，PCI是在CPU和原来的系统总线之间插入的一级  WY545F Intel82545总线，具体由一个桥接电路实现对这一层的管理，并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲，使之能支持10种外设，并能在高时钟频率下保持高性能，它为显卡，声卡，网卡，MODEM等设备提供了连接接口，它的工作频率为33MHz/66MHz。
最早提出的PCI 总线工作在33MHz 频率之下，传输带宽达到了133MB/s(33MHz X 32bit/8)，基本上满足了当时处理器的发展需要。随着对更高性能的要求，1993年又提出了64bit 的PCI 总线，后来又提出把PCI 总线的频率提升到66MHz。目前广泛采用的是32-bit、33MHz 的PCI 总线，64bit的PCI插槽更多是应用于服务器产品。
由于PCI 总线只有133MB/s 的带宽，对声卡、网卡、视频卡等绝大多数输入/输出设备显得绰绰有余，但对性能日益强大的显卡则无法满足其需求。目前PCI接口的显卡已经不多见了，只有较老的PC上才有，厂商也很少推出此类接口的产品。当然，很多服务器不需要显卡性能好，因此使用古老的PCI显卡。通常只有一些完全不带有显卡专用插槽（例如AGP或者PCI Express）的主板上才考虑使用PCI显卡，例如为了升级845GL主板。PCI显卡性能受到极大限制，并且由于数量稀少，因此价格也并不便宜，只有在不得已的情况才考虑使用PCI显卡。
PCI功能及PCI9052接口电路功能及应用
PCI（Peripheral Component Interconnect）总线具有独立于处理器、高数据传速率、即插即用、低功耗、适  WY546F PCI应性强等特点，已成为微型机的主流总线。基于PCI总线形成的CompactPCI和PXI总线广泛应用于仪器和自动化领域。随着PCI总线的广泛应用，其接口的设计开发显得尤为重要。由于PCI总线的独特性能，如信号负载能力、支持数据的突发传送、地址/数据、命令/字节使能信号总线复用等，使中小规模的器件难以实现接口电路。实现PCI总线接口一般采用CPLD或FPGA设计PCI接口，这种方法难度很大；另一种是采用专用的PCI接口电路，使设计开发者免除繁琐的时序分析，缩短开发周期，降低开发成本。
PCI插槽是基于PCI局部总线（Pedpherd Component Interconnect，周边元件扩展接口）的扩展插槽，其颜色一般为乳白色，位于主板上AGP插槽的下方，ISA插槽的上方。其位宽为32位或64位，工作频率为33MHz，最大数据传输率为133MB/sec（32位）和266MB/sec（64位）。可插接显卡、声卡、网卡、内置Modem、内置ADSL Modem、USB2.0卡、IEEE1394卡、IDE接口卡、RAID卡、电视卡、视频采集卡以及其它种类繁多的扩展卡。PCI插槽是主板的主要扩展插槽，通过插接不同的扩展卡可以获得目前电脑能实现的几乎所有外接功能。
下文介绍PCI9052接口电路的功能及其在PCI板卡设计中的应用。
1 引言PCI（Peripheral Component Interconnect）总线具有独立于处理器、高数据传速率、即插即用、低功耗、适  WY546-SFP PCI总线应性强等特点，已成为微型机的主流总线。基于PCI总线形成的CompactPCI和PXI总线广泛应用于仪器和自动化领域。随着PCI总线的广泛应用，其接口的设计开发显得尤为重要。由于PCI总线的独特性能，如信号负载能力、支持数据的突发传送、地址/数据、命令/字节使能信号总线复用等，使中小规模的器件难以实现接口电路。实现PCI总线接口一般采用CPLD或FPGA设计PCI接口，这种方法难度很大；另一种是采用专用的PCI接口电路，使设计开发者免除繁琐的时序分析，缩短开发周期，降低开发成本。本文介绍PCI9052接口电路的功能及其在PCI板卡设计中的应用。
2 接口电路PCI9052是PLX公司开发的低价位PCI总线目标接口电路，功耗低，采用PQFP型160引脚封装，符合PCI2.1规范，它的局部总线(LOCAL BUS)可以通过编程设置为8/16/32位的（非）复用总线，数据传送率可达到132Mb/s。提供了ISA接口，可以使ISA适配器迅速、低成本地转换到PCI总线上。主要功能与特性如下所述：
异步操作。PCI9052的Local Bus与PCI总线的时钟相互独立运行，两总线的异步运行便于高、低速设备的兼容。Local Bus的运行时钟频率范围为0MHz～40MHz,TTL电平，PCI的运行时钟频率范围为0MHz～33MHz。
支持突发操作。PCI9052提供一个64字节的写FIFO和一个32字节的读FIFO,从而支持预取模式即突发操作。
中断产生器。可以由Local Bus的二个中断信号LINTi1和LINTi2产生一个PCI中断信号INTA#。
串行EEPROM接口，用于存放PCI总线和Local总线的配置信息。
5个局域总线地址空间和4个片选，基址和地址范围可以由串行EEPROM或主控设备进行编程。  PCI总线接口示意图[2]大/小Endian模式的字节交换，有二种交换字节顺序的输出方式。
总线驱动。所有地址、数据和控制信号都有PCI9052直接驱动，不用额外的驱动电路。
Localbus等待状态。除了等待信号LRDYI#用于握手之外，PCI9052还有一个内部等待产生器（包括地址到数据周期、数据到数据周期和数据到地址周期的等待）。
PCI锁定机制。主控设备可以通过锁定信号占有对PCI9052的唯一访问权。
ISA总线模式。PCI9052提供一个ISA逻辑接口，用户可直接使PCI总线和ISA总线相连，可以非常容易地将ISA设计转换到PCI.PCI9052的接口示意图如图1所示。
3 PCI9052的功能及操作3.1 初始化 
上电时，PCI总线的RST#信号将PCI9052的内部寄存器设置为缺省值，同时，PCI9052输出局部复位信号（LRESET#），并且检查EEPROM是否存在。如果设备上装有EEPROM，且EEPROM的第一个16字节非空，那么，PCI9052根据EEPROM内容设置内部寄存器，否则设为缺省值。
3.2 复位 
PCI9052支持二种复位方式：硬件复位和软件复位。硬件复位是PCI9052总线接口的RST#信号输入有效时将引起整个PCI9052复位，并输出LRESET#局部复位信号。软件复位是PCI总线上的主机可以通过设置控制寄存器CNTRL(50H)中的软件复位字节（Bit30)来对PCI9052复位，并输出LRESET#信号。此时，PCI和局部总线的配置寄存器的值将保持不变。当CNTRL中的软件复位字节有效时，PCI9052仅对配置寄存器的访问应答，对局部总线的访问不响应。PCI9052保持这种状态直到PCI总线上的主机清除软件复位字节。
3.3 对串行EEPROM接口的访问 
复位后，PCI9052开始读串行EEPROM，若读出的第一个字非FFFFH，则PCI9052认为有一个有效的EEPROM存在，并且继续进行读操作，否则，认为EEPROM无效。PCI总线的主设备可以读、写连接在PCI9052上的串行EEPROM。对其进行读、写操作之前需要将控制寄存器CNTRL[25](使能位）设置为“1”，并控制CNTRL[24]位以产生串行EEPROM的时钟，然后，从EEDI送入指令代码。如果在指令代码之后由EEDO输出“0”，则表明可以对其进行读、写。需要结束操作时，只要将CNTRL[25]设置为“0”即可。
3.4 对内部寄存器访问 
PCI9052提供了二种类型的片内寄存器，即PCI配置寄存器和局部配置寄存器，二者都只能由PCI总线和串行EEPROM访问，也可以通过设置寄存器CNTRL[13：12]禁止对后者的访问，这样，极大地增强了接口设计的灵活性。
3.5 直接数据传输模式 
PCI9052支持PCI总线上的主处理器对局部总线上的设备进行直接访问。PCI9052的配置寄存器将访问映射  PCI主控直接访问局部示意图[3]到局部地址空间。片内的读写FIFO存储器使PCI9052支持PCI总线与局部总线之间进行高性能的猝发传送。PCI总线主控访问局部总线示意图如图2所示。
3.6 PCI中断（INTA#)的产生 
要产生PCI中断INTA#,首先将寄存器INTCSR[6](PCI中断使能位）设置为“1”，如果需要以软件方式产生中断，则只需将INTCSR[7](软件中断位）设置为“1”。如果系统设计方案中选用由局部总线上的设备产生中断信号INTi1和INTi2、再生成PCI中断INTA#的方式，只要将寄存器INTCSR的相关位按表1进行设置，复位后INTCSR的值全部为“0”。
4 应用实例PCI9052是功能非常强大的PCI接口电路，用它设计PCI适配卡将使接口变得非常方便。图3是PCI主处理机读取SRAM的接口示意图，其主要功能是实现对RAM的单次或突发读、写操作。
4.1 电路连接 
按照图3中的连接电路，对于SRAM主要有以下几个引脚：A（17，0）、I/O（7，0）、OE、CE、WE等。  存储器突发读写示意图[4]地址线A（17，2）与本地地址线LA[17，2]相连，根据PCI9052的LBE[0，3]#的定义，这里用8位数据总线将LBE0#与A0连接，LBE1#与A1连接，OE与PCI9052的CS0#相连。PCI9052为设计人员提供了4个片选信号CS（3：0）#，可以为4个设备提供片选信号，这样，可以避免设计人员在设计电路时设计片选解码电路，其地址和范围可由其对应的内部寄存内部本地寄存器配置。串行EEPROM用于存储配置寄存器内的配置信息，可以采用NM93C46或与之兼容的存储器。
4.2 寄存器设定 
电路连接好后，要使电路能正常工作，必须对PCI9052内部寄存器进行配置。根据电路性能及特点，应将寄存器设定为非复用工作方式，采取存储器映射，8位数据总线。局部总线0的基地址寄存器值为240001H，其地址范围寄存器值为3FFF8H，其描述寄存器值为39H；片选0基址寄存器的初始值为4C0001；命令寄存器的初始值为02H；状态寄存器的初始值为800H，其他寄存器采用默认值。确定好各个寄存器的值后，应依据一定的次序将寄存器的初始值写入EEPROM。
4.3 驱动程序的开发 
为了从PCI总线配置寄存器中获得主机动态分配的映射基址并对映射端口进行读写，必须编写驱动程序。编写Windows驱动程序时，可以使用DDK，但难度较大。为了简化驱动程序开发，可使用Jungo公司推出的WinDriver开发工具。WinDriver可自动生成VxD驱动程序及相应的高级函数。使用者不需具备Windows驱动程序开发知识，所生成的高级函数可直接在VC或CBuilder等高级编程语言中调用。
5 结论实用证明，用专用PCI接口电路对设计PCI接口卡带来很大的方便。本文主要介绍PLX公司的PCI9052专用接口电路，设计者可根据需要选用其他接口电路，不需要ISA接口时，可选用PCI9050；需要DMA数据传送时，可选用PCI9054。专用接口电路是设计PCI适配卡的最佳方法，不但大大缩短了设计周期，而且有利于驱动程序的开发。
6 最新的总线和接口标准 PCI-ExpressPCI-Express是最新的总线和接口标准，它原来的名称为“3GIO”，是由英特尔提出的，很明显英特尔的意思是它代表着下一代I/O接口标准。交由PCI-SIG（PCI特殊兴趣组织）认证发布后才改名为“PCI-Express”。这个新标准将全面取代现行的PCI和AGP，最终实现总线标准的统一。它的主要优势就是数据传输速率高，目前最高可达到10GB/s以上，而且还有相当大的发展潜力。PCI Express也有多种规格，从PCI Express 1X到PCI Express 16X，能满足现在和将来一定时间内出现的低速设备和高速设备的需求。能支持PCI Express的主要是英特尔的i915和i925系列芯片组。当然要实现全面取代PCI和AGP也需要一个相当长的过程，就象当初PCI取代ISA一样，都会有个过渡的过程。
目前扩展插槽的种类主要有ISA，PCI，AGP，CNR，AMR，ACR和比较少见的WI-FI，VXB，以及笔记本电脑专用的PCMCIA等。历史上出现过，早已经被淘汰掉的还有MCA插槽，EISA插槽以及VESA插槽等等。未来的主流扩展插槽是PCI Express插槽。