`
huozheleisi
  • 浏览: 1238111 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

概述

pci9054是由美国plx公司生产的先进的pci i/o加速器,采用了先进的plx数据流水线结构技术,是32位、33mhz的pci总线主i/o加速器;符合pci本地总线规范2.2版,突发传输速率达到132mb/s,本地总线支持复用/非复用的32位地址/数据;有m、c、j三种模式;针对不同的处理器及局总线特性可选,尽量减少中间逻辑;具有可选的串行eeprom接口,本地总线时钟可和pci时钟异步。pc9054内部有6种可编程的fifo,以实现零等待突发传输及本地总线和pci总线之间的异步操作;支持主模式、从模式、dma传输方式,因其强大的功能可应用于适配卡和嵌入式系统中。pci 9054是一种性价比较高的pci桥路芯片,比pci9080、pci9050等性能更优越。

pci 9054其内部原理如图1所示。它采用先进的plx数据管道结构技术,是32bit、33mhz的pci总线主i/o加速器。

pci9054主要特性如下:

·符合pci v2.1,v2.2规范,包含pci电源管理特性。

·支持vpd(vital product data)的pci扩展。

·支持pci双地址周期,地址空间高达4gb。

·具备120准备报文单元,完全兼容120 v1.5规范。

·提供了两个独立的可编程dma控制器,每个通道均支持块和

scatter/gather的dma方式,dma通道0支持请求dma方式。

·在pci启动模式下,pci 9054可插入类型1和类型2的配置周期。

·pci和local bus数据传送速率高达132mb/s。

·支持本地总线直接接口motorola mpc850或mpc860系列、intel i960系列、ibm ppc401系列及其它类似总线协议设备。 ·本地总线速率高达50mhz;支持复用/非复用的32bit地址/数据;本地总线有三种模式;m模式、c模式和j模式,可利用模式选择引脚加以选择。

·具有可选的串行eeprom接口。

·具有8个32bit mailbox寄存器和2个32位doorbell寄存器。


功能描述

pci9054的物理总线接口

pci9054提供了三种物理总线接口:pci总线接口,local总线接口及串行eprom接口。local总线的数据宽度为32位,时钟频率可达到50mhz并且支持数据预取功能。

pci9054的总线操作包括pci总线操作和本地总线操作。对于pci总线操作,它完全遵守2.2版本pci规范。pci9054本地总线支持非多路复用32位地址/数据总线,多路复用32位和8位,16位或32位本地总线设备从属访问,运行速率高达50mhz,可以获得200mb/s的本地总线突发传输速率。

pci9054的local总线与pci总线之间数据传输有三种方式:主模式(direct master)、从模式(direct slave)和dma方式。其内部具有两个dma数据通道,双向数据通路上各有6个fifo进行数据缓冲,可同时进行高速的数据接收和发送。8个32位maibox寄存器可为双向数据通路提供消息传送。

pci9054还提供了一个串行eeprom接口,容量2k字节。在配置存储器中存放了厂家标志、设备标志以及本地总线的基地址空间、i/o空间和中断控制信号等信息。初始化时,系统自动将串行eeprom中的配置参数装入pci配置寄存器,并根据本地总线对内存、i/o端口和中断的需求统一划分,自动配置。其中本地端寄存器也可以由本地cpu读写,直接进行配置。

pci9054工作模式

pci9054有3种工作模式:c、m和j模式。m模式主要针对motorola公司高性能mpc850/860的应用而设计,主要应用在电信领域。j模式的接口设计相对比较复杂,通常用的是c模式。

c模式下pci9054分为pci initiator操作和pci target操作。在pci initiator操作过程中,本地处理器或本地总线主控设备能够直接通过pci9054访问pci总线,发起local-to-pci的数据传输。而在pci target操作过程中,pci总线主控设备可以以可编程的等待状态、总线宽度和突发传输功能访问pci9054的三个本地空间(空间0,空间1和扩充rom空间)。

pci9054的dma突发模式

pci9054集成了两个相互独立的dma通道,每个通道都支持block dma和scatter/gather dma,通道0还支持demand dma传输方式
block dma要求pci主机或local主机提供pci和local的起始地址、传输字节数、传输方向。主机设定dma开始位启动数据传输,一旦传输完成,pci9054设定dma"传输结束位"结束dma。如果启动中断允许位,在传输结束时pci9054将向主机申请中断。在dma传输中,pci9054既是pci总线的主控器又是local总线的主控器。

scatter/gather dma要求主机在pci空间或local空间设定descriptor模块,模块包括pci和local的起始地址、传输字节数、传输方向和下一个descriptor模块的地址。pci9054载入第一个descriptor模块并发起传输,连续加载下一个模块,直到它侦测到“链结束位”有效,pci 9054设置“传输结束位”,或者申请pci或local中断。这种模式下,pci9054也可以在每个模块加载时有效中断信号,结束dma传输。若descriptor模块在本地存储空间,可以编程使dma控制器在每次dma传输结束后清除传输字节数。

pci9054寄存器

pci9054内部提供了5种寄存器:pci配置寄存器、本地端配置寄存器、运行时间runtime寄存器、dma寄存器和120信息寄存器。下面对pci配置寄存器和本地端配置寄存器的功能做简要介绍。

pci配置寄存器也就是我们常说的pci配置空间,它提供了配置pci的一些信息。其中venderid,deviceid,revisionid,headertype,classcode用于pci设备的识别。

命令寄存器(command)包含设备控制位,包括允许存储器读写响应等。

状态寄存器(status)用于记录pci总线的相关事件。

pci配置寄存器提供了6个基地址寄存器,这些基地址都在系统中的物理地址范围内,其中base0和base1用来访问其他配置寄存器的基地址,base1是其他配置寄存器映射到pci端内存的基地址,base2是其他寄存器映射到pci端i/o的基地址。

可以通过pci端内存和pci端i/o来访问local配置寄存器与其他3种寄存器。base2~5四个空间提供了访问本地端所接的4个芯片(当然可以少于4个),它们将本地端的芯片通过本地端地址(在local配置寄存器中设)翻译成pci的地址,也就是将本地的芯片映射到系统的内存或i/o口。这样使得用程序操作这一段内存(或i/o)实际上就是对本地的芯片操作。

本地端配置寄存器提供了本地端的一些信息,如图2 c模式部分时序图

lclk:输入信号,时钟信号

lhold:输入信号,申请使用本地总线

lholfa:输入信号,对lhold应答


基于pci9054的pci接口设计

pci 9054 以其强大的功能和简单的用户接口,为pci总线接口的开发提供了一种简洁的方法,设计者只需设计出本地总线接口控制电路,即可实现与pci总线的高速数据传输。

图3是应用pci9054作为接口芯片,开发pci总线扩展卡的总体硬件框架图

下面简单介绍以pci9054为接口芯片的网卡设计。


硬件设计

见图4

第一部分是9054和pci插槽间的连接信号线。这些信号包括地址数据复用信号ad[31:0],总线命令信号c/be[3:0]#和pci协议控制信号par、frame#、irdy#、trdy#、stop#、idsel、perr#和serr#。

第二部分是9054与eeprom的连线。这里有四根信号线:eesk、eedo、eedi、eecs,串行eeprom的数据通过烧写编程的方式,也可以通过本地cpu直接编程的方式来完成初始化。

第三部分就是9054与应用电路的连接。其中la地址总线、ld数据总线、lbe#字节使能信号和cpld相连;lw/r读写信号、blast#、ready#、ads#和8051单片机相连。

pci9054工作在初始化器模式时,要求本地端的总线是32位的。在这里,用cpld实现将80c51单片机的8位数据与16位地址转换成32位的数据和地址,使用ram的目的是提高8051的数据传输速度和处理复杂的tcp/ip协议,eeprom用来保存相关的信息状态等。


软件设计

软件程序主要分为两大部分,一是对pci9054芯片的pci端配置寄存器和本地端配置寄存器进行正确的编程配置;二是网络通讯,包括网卡初始化、发送控制和接收控制3部分。


结束语

在实践开发中我们发现,用pci9054开发各种高速数据采集系统、图象处理系统等pci设备,能够减少许多相应的外围器件,降低开发难度,缩短开发周期,大幅度压缩成本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics