PCI总线接口芯片9050 及其应用

标签: 存储工作任务扩展平台
1325人阅读 评论(1) 收藏 举报
分类:

 

PCI总线接口芯片9050 及其应用 
摘要: PCI9050 PLX公司推出的一种低成本的 PCI协议从模式接口芯片。主要介绍了它的功能、特点及应用,说明了它在使用时应该注意的一些问题,最后给出了一个具体的应用实例。 
关键词: PCI总线;局部总线; PCI9050 
1 引言
PCI总线是目前应用最广泛、最流行的一种高速同步总线,具有 32bit总线宽度,总线时钟频率为 0~33MHZ,最大传输速率可以达到 132Mbyte/s,远远大于 ISA总线 5Mbyte/s的速度。而且,它不象 ISA总线那样把地址寻址和数据读写控制信号都交给微处理器来处理,而是独立于处理器,所以它可以支持突发传送。 PCI总线与 CPU无关,与时钟频率也无关,因此它可以应用于各种平台,支持多处理器和并发工作。 PCI总线协议比较复杂,因此它的接口电路实现起来也比较困难。它不但有着严格的同步时序要求,而且为了实现即插即用和自动配置, PCI接口还要求有许多的配置寄存器。对于一般的设计者来说,为了缩短开发周期,没有必要自己去设计所有的接口逻辑,只要利用通用 PCI接口芯片就能很好的进行设计开发,大大减小了工作的难度。现在使用较多的是 AMCC公司 S59XX系列和 PLX公司推出的 PLX系列。下面将主要介绍 PLX公司的 PCI9050接口芯片。 
2  PCI9050概述 PCI9050 PLX公司为扩展适配板卡推出的能提供一种混合的高性能 PCI总线目标模式的接口芯片,可提供用于适配卡的小型高性能 PCI总线目标接口。 它的主要特点有下面这些: 符合 PCI2.1规范,支持开发低成本的从模式适配器。该芯片支持从 ISA适配器向 PCI适配器转换。 带有五个局域总线地址空间和四个片选。 支持突发存储器映射和 I/O映射方式在 PCI总线和局部总线存取数据。双向 FIFO可以用于零等待状态突发操作。 PCI总线总是工作在突发方式,局部总线可以设置成突发方式或者连续单周期方式。 可以从两个局部总线中断输入生成一个 PCI中断。 局部时钟与 PCI时钟异步工作,允许局部总线独立于 PCI时钟工作。 支持多路复用和非多路复用的 8位、 16位和 32位通用局部总线。 总线驱动。 PCI9050直接生成所有的控制、地址和数据信号,用于驱动 PCI总线,不需要额外驱动电路。 
3  PCI9050的功能描述 PCI9050为非 PCI设备和 PCI总线提供数据通道。 
3.1 初始化在上电时, PCI9050的内部寄存器由 PCI总线的 RST#信号复位,在局部总线上输出 LRESET#信号并检查 EEPROM是否存在数值。若是存在且前 48位不全为 1,则 PCI9050 EEPROM中的值来配置片内寄存器,否则设为缺省值。 PCI配置寄存器只能通过 EEPROM PCI主机CPU来进行设置。在串行 EEPROM初始化时, PCI9050反馈给 PCI总线 RETBY信号。 
3.2 复位 PCI总线的 RST#信号有效将引起整个 PCI9050复位,输出 LRESET#局部复位信号。 PCI总线上的主控设备也可以通过设置寄存器中的软件复位比特来对 PCI9050进行复位,但是主控设备只能访问配置寄存器,而不能访问局部总线 PCI9050会一直保持这种复位状态直到 PCI主控设备清除软件复位比特 
3.3 串行存储器接口( EEPROM 复位后, PCI9050开始读串行 EEPROM START 0表示 EEPROM存在, PCI9050用它来进行配置。若读出的第一个字不是 FFFF,那么就认为 EEPROM是非空的,继续进行操作。串行EEPROM是按重要性顺序先后配置信息的。 PCI总线上的主机可以对 EEPROM进行读写,寄存器位 [29 24]控制着 PCI9050的管脚,对 EEPROM位进行读写。将重载配置寄存器位 CNTRL[29] 1可以用串行 EEPROM重新配置 PCI9050 
3.4 访问内部寄存器 PCI9050提供一系列的内部寄存器来为总线接口设计与实现提供最大的灵活性。寄存器分为两类: PCI配置寄存器和局部配置寄存器。主要有以下几种: ·设备与厂商寄存器,它用来标识设备类别及生产厂家。 ·状态寄存器,它包含与 PCI总线有关的事件。 ·命令寄存器,控制设备对 PCI访问的响应。 ·分类码元寄存器,它用来标识设备的一般功能。 ·局部配置寄存器存储器访问的 PCI基地址寄存器:系统 BIOS利用此寄存器为 PCI9050局部配置寄存器的存储器访问分配一段 PCI地址空间,范围为 128字节,初始化时,主机对寄存器写入 FFFFFFFF,读回 FFFFFF70,以确定其占用空间为 128字节 ·局部配置寄存器 I/O访问的 PCI基地址寄存器:系统 BIOS利用此寄存器为 PCI9050局部配置寄存器的 I/O访问分配一段 PCI地址空间,范围为 128字节,初始化时,主机对寄存器写入 FFFFFFFF,读回 FFFFFF71,以确定其占用空间为 128字节。 ·局部地址空间 0(地址空间 1 2 3类似)访问的 PCI基地址寄存器:系统 BIOS利用此寄存器为 PCI9050局部地址空间 0的访问分配一段 PCI地址空间。初始化时,主机对寄存器写入 FFFFFFFF,读回数值来确定它的范围。 PCI9050寄存器进行读写操作的单位可以是字节,字,长字。 PCI9050的存储器访问可以是突发的或非突发的。 
3.5 直接数据转换操作 PCI主控设备能够直接对局部总线上的设备进行读写操作。 PCI9050内的配置寄存器控制局部地址空间的重新映射。双向 FIFO引起局部和 PCI总线上高性能的突发。 直接从操作: PCI9050支持突发式内存映射传输和单周期的内存或 I/O映射传输。映射在 PCI内存和 I/O空间中的地址由 PCI基址寄存器设置。而且,局部映射寄存器允许将 PCI地址空间转换为局部地址空间。 
4 PCI9050使用时应该注意的问题 9050内部的寄存器是通过外部串行 EEPROM上电加载的。 9050会自动根据该 EEPROM的状态来决定其内部寄存器的值。如果 EEPROM内部没有烧写为有效值,应保证其开始 48位全为 -1-,否则,系统上电时会出错。 9050 5个本地空间,用户可根据实际的需要来进行配置,并不是要用到所有的。当将本地空间配置成 I/O时,对该空间的读写只能单次进行。如果配置成存储器模式,用户会有多种接入模式,大大提高了速度。 突发模式是为了提高本地总线操作速度而设计的。在该模式期间, 9050只提供一次传输开始和终止信号。开始信号有效时,地址将以本地时钟的频率递增,可以利用 BTERM#引脚是否有效来中止突发操作。 还有一点需要说明的是, Pentium系列的 CPU,不支持突发读操作,只可能产生单次读操作。用户如果需要在 PCI总线上实现突发操作,应该选用支持 DMA传输的芯片,比如 PCI9054。但是 PCI9050会把 PCI总线上的多次单次读操作转化为突发操作。 
5 基于 PCI9050 PCI接口设计 下面给出的是一个利用 PCI9050做接口的 PCI插卡。在用户电路上,采用 MT90820做交换,实现数字电路的转接和复接。具体电路如下图所示。 
5.1 硬件设计 接口芯片 PCI9050主要包括 PCI总线信号接口和局部总线接口。硬件电路分为三个部分。第一部分是 9050 PCI插槽间的连接信号线。这些信号包括地址数据复用信号 AD[31:0],总线命令信号 C/BE[3:0]# PCI协议控制信号 PAR FRAME# IRDY# TRDY# STOP# IDSEL DEVSEL# PERR# SERR#。第二部分是与串行 EEPROM的连线。这里有四根信号线: EESK EEDO EEDI EECS,串行 EEPROM的数据可以提前烧好,也可以在线烧写。第三部分就是 9050与应用电路的连接。在这个例子里,它和 MT90820相连,包括 LA地址总线, LAD数据总线, LBE#字节使能信号, LW/R读写信号等。 
5.2 软件设计 程序主要分为两个部分。一部分为 PCI9050各个配置寄存器赋值并初始化,还有一部分为主程序,任务就是把 PCM链路上的信号经过 MT90820交换矩阵后,再通过 PCI9050送到 CPU 
6 结束语 由于 PCI总线数据吞吐量大,传输速率高,所以现在 PCI总线已经慢慢取代了 ISA总线成为主流。当然, PCI总线协议要复杂的多,接口设计难度也就增大了。目前,设计 PCI接口有两种方法。一种是使用 ALTERA XILINX等公司的 FPGA系列并使用他们的元件库,这种方式需要用户直接面对复杂的 PCI协议,开发周期长,难度大;还有一种就是利用我们上面介绍的 PCI接口芯片,设计起来就要简单的多,因此得到了广泛的应用。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9493849次
    • 积分:108582
    • 等级:
    • 排名:第7名
    • 原创:1019篇
    • 转载:3082篇
    • 译文:2篇
    • 评论:1485条
    最新评论