微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PCI总线接口芯片PCI9054及其应用

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

时间:11-17 来源:互联网 点击:

的配置参数装入PCI配置寄存器,并根据本地总线对内存、I/O端口和中断的需求统一划分,自动配置。其中本地端寄存器也可以由本地CPU读写,直接进行配置。

2、PCI9054工作模式

PCI9054有3种工作模式,分别为C、M和J模式。M模式主要是针对Motorola公司高性能MPC850/860的应用而设计的,主要应用在电信领域,J模式的接口设计相对比较复杂,通常用的是C模式。 C模式下PCI9054分为PCI Initiator操作和PCI Target操作。在PIC Initiator操作过程中,本地处理器或本地总线主控设备能够直接通过PCI9054访问PCI总线,发起Local-to-PCI的数据传输。而在PCI Target操作过程中,PCI总线主控设备可以以可编程的等待状态、总线宽度和突发传输功能访问PCI9054的三个本地空间(空间0,空间1和扩充ROM空间)。

3、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传输结束后清除传输字节数。

4、PCI9054寄存器

PCI9054内部提供了5种寄存器:PCI配置寄存器,本地端配置寄存器,运行时间RUNTIME寄存器,DMA寄存器和I2O信息寄存器。,下面对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)实际上就是对本地的芯片操作。 本地端配置寄存器提供了本地端的一些信息

5、C模式部分时序图

局部总线仲裁(LHOLD和LHOLFA) LCLK:输入信号,时钟信号 LHOLD:输入信号,申请使用本地总线。 LHOLFA:输入信号,对LHOLD应答。 四、 基于PCI9054的PCI接口设计 PCI 9054 以其强大的功能和简单的用户接口,为PCI总线接口的开发提供了一种简洁的方法,设计者只需设计出本地总线接口控制电路,即可实现与PCI总线的高速数据传输。 下图是应用PCI9054作为接口芯片,开发PCI总线扩展卡的总体硬件框架图

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

1、 硬件设计 8051 RAM8位锁存器029AS
第一部分是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用来保存些相关的信息状态等。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top