#PCIE# 回顾 PCI 桥片技术 控制器9054

这里讲授是基于PLX 的9054(9052)芯片为基础的,首先,多谢程序元人生大佬分享知识。

1、地址映照与数据传输

        上图是9054的内部结构图,9054实际上充当了1个“桥”的作用,即所谓的“桥片技术”。9054的作用实际上是把LOCAL总线端管理的一片地址,和PCI总线端管理的1片地址逐一对应起来,即所谓的地址映照,而PCI总线与PC机的CPU管理的内存地址又是逐一对应的,这样就实现了桥:CPU 地址 <=> PCI 地址 <=> LOCAL 地址。通常,系统PCI地址是CPU地址一部分,关于PCI地址与系统地址关系可以看另外一篇转载博文http://blog.csdn.net/lg2lh/article/details/8041029

        上面只是说了LOCAL总线与PCI总线和CPU总线的对应关系,但是PCI技术的实际作用是进行数据传输。由内部结构图可以看出,9054内部没有甚么存储单元,只有几个FIFO。那系统是怎样进行数据传输的呢,大家都知道一段地址对应了一段存储空间,由上面地址映照可以知道,PCI芯片9054实际就是把LOCAL总线地址管理的外部存储空间的数据传输到PCI总线地址对应的内存空间中,及CPU的内存空间。或是将内存中的数据传输到LOCAL总线管理的外部地址空间中去。Local端地址总线管理的存储空间一般由我们的控制芯片如FPGA或MCU提供。

2、PCI9054的基本知识

PCI9054的引脚主要分为3部份:PCI总线接口,LOCAL总线接口,及串行EEPROM总线接口。
LOCAL总线的数据宽度为32位,时钟可达50Mhz。下面介绍3种总线的作用,接口图以下图所示:

 PCI总线接口:负责与PC机PCI总线通讯,要接至PCI板卡的金手指处,对32位系统,金手指1共120跟信号线,A,B两面各60根,1⑹2,其中50,51处,无金手指引脚,共60根。
LOCAL总线接口:主要负责LOCAL端地址数据管理,与外围CPLD或MCU相连。

串行EEPROM总线接口:主要负责PCI9054的所有的寄存器配置,将寄存器配置烧写至EEPROM,PCI装备上电后加载EEPROM内容,完成PCI9054的寄存器配置。主要包括:PCI配置寄存器,PCI本地配置寄存器,运行时间寄存器,DMA配置寄存器,I2O信息寄存器(消息队列寄存器?)。

PCI9054的PCI总线与LOCAL总线数据传输主要有3种模式:主模式,从模式,DMA模式。
而LOCAL总线的控制也有3种模式,M,C,J模式。其中经常使用C模式:地址数据总线非复用模式。

3、PCI9054的寄存器之间的关系

前面讲到了PCI总线与LOCAL地址映照,和PCI地址与PC机内存空间映照,一般PC机就认为PCI地址就是内存空间地址,所以9054解决的就是把LOCAL总线管理的地址空间与内存空间地址对应起来,下面讲下如何通过9054寄存器配置映照关系。要明确,是通过PLX_MON这个软件按要求配置好各寄存器内容,然后将数据烧写到EEPROM中,共17字。
首先看下PCI9054寄存器主要有哪些,前面已说主要有5部份:PCI配置寄存器,PCI本地配置寄存器,运行时间寄存器,DMA配置寄存器,I2O信息寄存器(消息队列寄存器)。

(1) PCI配置寄存器:主要用来配置与PCI总线相干的寄存器,例如,装备ID,供应商ID,种别代码,版本号,系统供应商ID,子系统ID等。PCI装备ID为9054,供应商ID为10B5,种别代码0680。对应寄存器以下:

 主要介绍下最后4个寄存器,这4个主要完成LOCAL端总线相干的寄存器在PCI总线的映照,和LOCAL总线管理的地址空间在PCI总线上的映照。这4个寄存器都是由系统进行配置的,没法通过EEPROM配置。其中PCIBAR0,PCIBAR1,比较好理解,就是把LOCAL总线配置寄存器,DMA寄存器,运行寄存器映照到对应的内存空间去,配置的值就是他们在内存空间的起始地址。
下面介绍PCIBAR2,PCIBAR3寄存器,后面会提到LOCAL总线管理了两部份地址空间,space0和space1。PCIBAR2,PCIBAR3就是把这两部份映照到PCI总线地址上,即把这两个空间映照到PC机的内存空间。PCIBAR2的配置值就是LOCAL总线端space0空间映照到PCI内存空间的起始地址,PCIBAR3的配置值则是LOCAL总线端space1空间映照到PCI内存空间的起始地址。而LOCAL总线端SPACE0和SPACE1在local真个实际地址及范围,则是由LOCAL配置寄存器决
定。下面介绍LOCAL端配置寄存器。

(2) LOCAL配置寄存器

 SPACE0对应的寄存器。
LAS0BA:SPACE0基地址寄存器。这个寄存器与PCI总线的PCIBAR2寄存器相互对应,即LOCAL真个FPGA(MCU)就是通过访问这个地址来访问PCIBAR2所指的PCI内存空间。若此时LAS0RR设为0x80000001,而PCIBAR2设置值是0XE7000000.则对PCI空间0XE7000000的访问就会映照到对本地空间0x80000001的访问。映照图以下。

LAS0RR:SPACE0空间的地址范围,在EEPROM的设置值是实际范围的补码。

LAS1BA / LAS1RR 与上面两个相同,只是用来映照SPACE1空间起始地址和范围的,不再赘述。

(3) DMA配置寄存器 

 (4)寄存器配置方法
最后介绍1下EEPROM配置字,配置字有长加载模式和额外长加载模式,其中长加载模式共17个长字,额外长加载模式则22个长字。其中LAS1RR,LAS1BA这两个寄存器是在额外长加载模式中配置的。对PLX9054最重要的配置就是完成对PCI寄存器和LOCAL寄存器的配置。17长字与22长字具体加载内容以下表。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值