发表于:2002-12-06 15:25:00
楼主
PCI总线接口芯片PCI 9052及其应用
Special PCI Bus Interface PCI9052 and Applications
■北方交通大学电气工程学院 苏治国 张晓冬 黎 莉
PCI总线即外围部件互连总线,是一种先进的高性能32/64位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供一座沟通的桥梁,提高数据吞吐量(32位时最大可达132MB/s),是当今PC领域中流行的总线。但由于PCI总线协议的复杂性,其接口的实现比ISA等总线要困难得多。目前实现PCI接口一般采用专用器件,有效方案分为两种:使用可编程逻辑器件和使用专用总线接口器件。
采用可编程逻辑器件实现PCI接口比较灵活,可以利用的器件也比较多,但这种方法难度较大,设计周期较长。采用专用接口器件虽然不够灵活,但由于其对PCI协议良好的支持,以及提供给设计者的良好接口都大大减少了设计者的工作量。现有的PCI接口芯片主要有AMCC公司的AMCCS59xx系列和PLX公司的PCI905x系列。本文将对PLX公司的PCI9052总线接口芯片的功能、结构、特点及其在PCI板卡设计中的应用进行介绍。
PCI9052简介
PCI9052是PLX公司继PCI9050之后推出的低成本PCI总线接口芯片,低功耗,PQFP160pins封装,可以使局部总线快速转换到PCI总线上。
1.主要特点:
(1)符合PCI2.1规范,支持低成本从属适配器;(2)包括一个64Byte的写FIFO和一个32Byte的读FIFO,通过读写FIFOs,可实现高性能的突发式数据传输;(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个局部设备片选信号,各设备的基址和地址范围及其映射可由串行EEPROM或主机编程实现;(9)5个局部地址空间,基址和地址范围及其映射可由串行EEPROM或主机编程实现;(10)支持Big/Little Endian编码字节的转换;(11)局部总线等待状态,除了用于握手的等待信号LRDYI#外,PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待);(12)可编程实现读写信号选通的延迟和写周期的保持;(13)可对局部总线的预取计数器编程为0(非预取)、4、8、16或连续(预取计数器关闭)预取模式;(14)PCI9052支持PCI r2.1规范的延迟读模式;(15)PCI9052有一个可编程PCI读写重试延迟计时器,可以为PCI总线产生一个重试信号;(16)PCI锁定机制,PCI主控设备可以通过锁定信号独占对PCI9052的访问。
2.结构组成
如图1所示,PCI9052的接口是由PCI总线接口、局部总线接口和串行总线接口组成。
3. 器件功能
PCI9052作为总线目标接口芯片,为非PCI设备与PCI总线提供数据通道,其功能如下:
复位及串行EEPROM初始化
(1) 复位及初始化
上电时,PCI9052的内部寄存器由PCI总线的RST#信号复位,在局部总线上输出LRESET#信号,除了BLCKO、EECS、EEDI、EESK、LHOLDA和局部数据总线(LAD[31:0]),所有输出的局部总线呈高阻态,线检验串行EEPROM。如果安装了EEPROM且前48位不全为1,则PCI9052用EEPROM中的值来配置片内寄存器,否则使用缺省值。
PCI总线上的主控设备也可以应用软件通过置CNTRL[30]=1,使PCI9052的寄存器复位,但是主设备只能访问配置寄存器,而不能访问局部总线。当CNTRL[30]=0时,清除PCI9052的复位状态。
(2)串行EEPROM
复位后,START为0表示EEPROM存在,PCI9052用它进行配置,如START为1(EEPROM不存在)或EEPROM为空,PCI9052采用缺省值配置。
PCI9052总线上的主机可以对串行EEPROM进行读写,寄存器位CNTRL[29:24]控制着PCI9052的管脚,对EEPROM的位进行读写。将重载配置寄存器位CNTRL[29]置1可以用串行EEPROM重新配置PCI9052。
串行EEPROM是按重要性顺序先后配置信息的,推荐使用有三线串行接口,5V电源,支持1MHz时钟的EEPROM,1MHz时钟可以由PCI时钟除以32实现。
(3)内部寄存器
PCI9052的内部寄存器为总线接口的设计与实现提供了最大的灵活性,这些寄存器可以分为两类:PCI配置寄存器和局部配置寄存器。
直接从(目标)操作
直接从(目标)操作是指PCI总线上的主设备通过PCI9052来直接访问局部总线上的从设备。PCI9052支持突发式内存映射传输和单周期的内存或I/O映射传输,利用的是32Byte的直接从设备读FIFO和64Byte的直接从设备写FIFO,映射在PCI内存和I/O空间中的地址由PCI基址寄存器设置。而且,局部映射寄存器允许将PCI地址空间转换为局部地址空间。
ISA接口模式
PCI9052的一个主要特点就是含有一个ISA逻辑接口,为ISA到PCI提供了一种简单的转换。它支持8位和16位的ISA从设备,可以是内存映射或I/O映射,采用直接从先读模式可以大大提高内存映射时读出的数据量。
ISA接口模式中需要将PCI9052配置为非复用模式,并且要在串行EEPROM中将INTCSR置为1。
局部片选
PCI9052为局部总线上的设备提供了四个片选信号,对这些片选信号进行独立编程或在外部加上地址解码逻辑都可以用来对局部地址空间进行分配。但是片选0和1(CS0#和CS1#)仅当非ISA接口模式时才有效。
PCI/LOCAL 中断与用户I/O
PCI9052提供了两个局部中断输入(LINTi[2:1])和一个中断控制/状态寄存器位(INTCSR[7]),两者都可以触发PCI的中断INTA#。设置寄存器INTCSR[3,0]可用来使能中断输入管脚LINTi[2:1],其状态位为INTCSR[5,2],LINTi[2:1]通过编程可以设定为电平触发或上升边沿触发。
PCI9052还提供了四个用户I/O(USER[3:0]),它们都是复用的,由CNTRL寄存器进行配置。虽然其缺省的配置是输入,但在不用的时候,因为输入时要将其上拉,推荐将其设置为输出。
PCI9052应用
PCI9052接口芯片作为通用的PCI接口,有着极其广泛的应用范围。以一种阻断上网卡为例,这种PCI插卡的结构示意图如图2所示,主要由一片128K 8的Flash、PCI9052以及一些外围器件构成。