PCI学习心得.docx
《PCI学习心得.docx》由会员分享,可在线阅读,更多相关《PCI学习心得.docx(33页珍藏版)》请在冰点文库上搜索。
![PCI学习心得.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/2e7ffa23-c211-481a-848d-8351b0a55826/2e7ffa23-c211-481a-848d-8351b0a558261.gif)
PCI学习心得
PCI学习记录
2013-11-4
PCI总线是
33MHz。
32位同步复用总线。
其地址和数据线引脚是
AD31
~AD0。
PCI
的工作频率为
PCI9054通过有效LHOLD来申请本地总线。
当LHOLD和LHOLDA被有效时它就获得了本地总线。
本地总线周期可以是Single周期或突发周期。
BLAST#信号被用于决定是一个Single周期被执行还是一个突发周期被执行。
PCI9054是一个PCI总线Target和一个本地总线Master
一PCI总线特性
1.PCI
总线特点
达
(1)传输速率高最大数据传输率为132MB/s,当数据宽度升级到64位,数据传输率可
264MB/s。
这是其他总线难以比拟的。
它大大缓解了数据I/O瓶颈,使高性能CPU的功
能得以充分发挥,适应高速设备数据传输的需要。
(2)多总线共存采用PCI总线可在一个系统中让多种总线共存,容纳不同速度的设备一起工作。
通过HOST-PCI桥接组件芯片,使CPU总线和PCI总线桥接;通过PCI-ISA/EISA
桥接组件芯片,将PCI总线与ISA/EISA总线桥接,构成一个分层次的多总线系统。
高速设
备从
ISA/EISA
总线卸下来,移到
PCI
总线上,低速设备仍可挂在
ISA/EISA
总线上,继承
原有资源,扩大了系统的兼容性。
(3)独立于
CPUPCI
总线不依附于某一具体处理器,
即
PCI
总线支持多种处理器及将来
发展的新处理器,在更改处理器品种时,更换相应的桥接组件即可。
(4)自动识别与配置外设用户使用方便。
(5)并行操作能力。
2.PCI总线的主要性能
(1)
总线时钟频率33.3MHz/66.6MHz。
(2)
总线宽度
32位/64位。
(3)
最大数据传输率
132MB/s(264MB/s)。
(4)
支持64
位寻址。
(5)
适应5V
和3.3V
电源环境。
二PCI总线信号
PCI
总线标准所定义的信号线通常分成必需的和可选的两大类。
其信号线总数为
120条(包
括电源、地、保留引脚等)。
其中,必需信号线:
主控设备
49条,目标设备
47条。
可选
信号线:
51条(主要用于
64位扩展、中断请求、高速缓存支持等)。
主设备是指取得了总线控制权的设备,而被主设备选中以进行数据交换的设备称为从设
备或目标设备。
作为主设备需要49条信号线,若作为目标设备,则需要47条信号线,可
选的信号线有51条。
利用这些信号线便可以传输数据、地址,实现接口控制、仲裁及系统的功能。
PCI局部总线信号如下图所示。
下面按功能分组进行说明。
PCI连接图
LD[31:
0]
PCI
AD[31:
0]
LA[31:
2]
FIFO数据
地址数据复用总线
LBE[3:
0]#
接
C/BE[3:
0]#
PCI
LW/R#
缓冲
光纤发送
9054
ADS#
TX
光电
BLAST#
转换
口
IRDY#
接
RX
光纤接收
模块
TRDY#
BIGEND
FPGA可
READY#
编程逻
FRAME#
插
口
LINT#
DEVSEL#
辑阵列
LCLK
STOP#
槽
IDSEL
芯
PAR#
40M
REQ#
晶振
GNT#
设
INTA#
片
EECS
SERR#
串行
PERR#
EESK
EEPROM
计
CLK
EEDI
(93LC56)
RST#
EEDO
2.1PCI9054
接口卡槽信号
2.1.1.系统信号
CLKIN:
系统时钟信号,为所有
PCI传输提供时序,对于所有的
PCI设备都是输入信
号。
其频率最高可达33MHz/66MHz
,这一频率也称为PCI的工作频率。
(PCI接口卡槽)
RST#IN:
复位信号。
用来迫使所有
PCI专用的寄存器、定序器和信号转为初始状态。
2.1.2.地址和数据信号
AD[31:
:
00]T/S:
地址、数据复用的信号。
PCI总线上地址和数据的传输,必需在
FRAME#有效期间进行。
当FRAME#有效时的第1个时钟,AD[31:
:
00]上的信号为地址
信号,称地址期;当IRDY#和TRDY#同时有效时,AD[31:
:
00]上的信号为数据信号,称数据期。
一个PCI总线传输周期包含一个地址期和接着的一个或多个数据期。
C/BE[3:
:
0]#T/S:
总线命令和字节允许复用信号。
在地址期,这4条线上传输的是
总线命令;在数据期,它们传输的是字节允许信号,用来指定在数据期,AD[31:
:
00]线
上4个数据字节中哪些字节为有效数据,以进行传输。
PART/S:
奇偶校验信号。
它通过AD[31:
:
00]和C/BE[3:
:
0]进行奇偶校验。
主设
备为地址周期和写数据周期驱动
PAR,从设备为读数据周期驱动
PAR。
2.1.3.接口控制信号
FRAME#S/T/S:
帧周期信号,由主设备驱动。
表示一次总线传输的开始和持续时间。
当FRAME#有效时,预示总线传输的开始;在其有效期间,先传地址,后传数据;当FRAME#
撤消时,预示总线传输结束,并在IRDY#有效时进行最后一个数据期的数据传送。
IRDY#S/T/S:
主设备准备好信号。
IRDY#要与TRDY#联合使用,当二者同时有效时,
数据方能传输,否则,即为未准备好二进入等待周期。
在写周期,该信号有效时,表示数据
已由主设备提交到AD[31:
:
00]线上;在读周期,该信号有效时,表示主设备已做好接收
数据的准备。
TRDY#S/T/S:
从设备(被选中的设备)准备好信号。
同样TRDY#要与IRDY#联合使
用,只有二者同时有效,数据才能传输。
STOP#S/T/S:
从设备要求主设备停止当前的数据传送的信号。
显然,该信号应由从
设备发出。
LOCK#S/T/S:
锁定信号。
当对一个设备进行可能需要多个总线传输周期才能完成的
操作时,使用锁定信号LOCK#,进行独占性访问。
例如,某一设备带有自己的存储器,那
么它必需能进行锁定,以便实现对该存储器的完全独占性访问。
也就是说,对此设备的操作
是排它性的。
IDSELIN:
初始化设备选择信号。
在参数配置读/写传输期间,用作片选信号。
DEVSEL#S/T/S:
设备选择信号。
该信号由从设备在识别出地址时发出,当它有效时,
说明总线上有某处的某一设备已被选中,并作为当前访问的从设备。
2.1.4.仲裁信号(只用于总线主控器)
REQ#T/S:
总线占用请求信号。
该信号有效表明驱动它的设备要求使用总线。
它是一
个点到点的信号线,任何主设备都有它自己的REQ#信号。
GNT#T/S:
总线占用允许信号。
该信号有效,表示申请占用总线的设备的请求已获得
比准。
2.1.5.错误报告信号
PERR#S/T/S:
数据奇偶校验错误报告信号。
一个设备只有在响应设备选择信号
(DEVSEL#)和完成数据期之后,才能报告一个PERR#。
SERR#O/D:
系统错误报告信号。
用做报告地址奇偶错、特殊命令序列中的数据奇偶
错,以及其他可能引起灾难性后果的系统错误。
它可由任何设备发出。
2.1.6.中断信号在PCI总线中,中断是可选项,不一定必须具有。
INTA#O/D:
用于请求中断。
INTB#O/D、INTC#O/D、INTD#O/D:
用于请求中断,仅对多功能设备有意义。
所谓
的多功能设备是指:
将几个相互独立的功能集中在一个设备中。
各功能与中断线之间的连接
是任意的,没有任何附加限制。
2.1.7.其他可选信号
(1)高速缓存支持信号:
SBO#IN/OUT、SDONEIN/OUT
(2)64位总线扩展信号:
REQ64#S/T/S、ACK65#S/T/S、AD[63:
:
32]T/S、C/BE[7:
:
4]#T/S、PAR64T/S。
(3)测试访问端口/边界扫描信号:
TCKIN、TDIIN、TDOOUT、TMSIN、TRST#IN。
2.2PCI9054与LOCALBUS的接口
2.2.1.连接信号说明
硬件电路第三部分是
9054
与
Local
端联接。
PCI9054
芯片
Local
端用到的部分引脚信
号描述如下:
LHOLD:
申请使用本地总线,输出信号
LHOLDA:
对LHOLD应答,输入信号;
;
ADS:
新的总线访问有效地址的开始,在总线访问
BLAST:
表示为总线访问的lasttransfer,输出信号
firstclock;
设置时,输出信号;
LW/R:
高电平表示读操作,低电平表示写操作,输出信号
LA:
地址线。
LD:
数据线。
READY:
表示总线上读数据有效或写数据完成。
用以连接
;
PCI9054
等待状态产生器,
输入信号。
2.2.2.LOCAL总线上的数据传输
PCITarget单周期写开始时,PCI9054首先驱动LHOLD有效来申请Local总线,如果
Local总线空闲,控制模块驱动LHOLDA有效将总线控制交给9054.接着,PCI9054将驱
ADS#(地址锁存信号)、LW/R#(读写信号)、LBE#(字节使能信号)和LA(地址信号),
控制模块将对以上信号锁存和译码来确定目标及操作类型。
Local端写操作的时序吐如图
4-8所示。
在LOCAL端,本接口卡选用的存储器为MOTOROLA的MCM6706B(32×8bit),
存储周期为8ns。
由于是静态DATA线和ADDR线直接与MOTOROLA的SRAM的DAA
和ADDR线进行连接。
另外将9054的LW/R线一分二:
一根经过非门,变成负向信号;另一根不变,分别与SRAM的WR连接和SRAM的RD连接。
2.3PCI9054与EEPROM
的接口
EEPROM的作用就是配置
PCI9054
内部寄存器.
2.3.1.EEPROM的选择
PLX54推荐的串行EEPROM
可以使用5V供电的串行EEPROM
如下所示:
(1)FairchildSemicondctor
公司的FM93CS46L;
(2)Holtel公司的HT93LC46
(把ORG引脚拉高以设置成
16位)
(3)IntegratedSiliconSolution
公司的IS93C46;
(4)MicrochipTechnology公司的93C46B,83LC46B
或93AA46
(把ORG引脚拉高
以设置成16位)
(5)Rohm公司的BR93LC46;(6)Seiko公司的S-93C46A
(7)STMicroeletronic公司的M93C46或M93S46或其他兼容的串行
本课题选用MicrochipTechnology公司的串行EEPROM-96LC66B
EEPROM。
作为PCI9054
的
配置存储器。
128x8or64x16-bitorganization(93LC46)1kByte
256x8or128x16-bitorganization(93LC56)2kByte使用的是这款芯片
512x8or256x16-bitorganization(93LC66)4kByte
96LC66B是一个4K的低电压串行电可查处PROM存储器,用来组成一个256×16位
的存储块。
93LC66B具有3线穿行接口总线功能,并与Microwire工业标准兼容。
该器件
的最低单电源工作电压可到2.5V,商用/工业用温度范围(-40Cto+85C),具有先进的
CMOS技术。
这些都使93LC66B成为实现低功耗,非易失性存储器应用系统的理想器件。
93LC66B具有8脚PDIP封装和表面粘贴SOIC封装两种封装形式。
2.3.2.EEPROM
的接口
PCI9054有四根信号线用于与EEPROM的接口:
EESK.EEDO.EEDI.和EECS,如表
4-1所示。
串行EEPROM也有四根相应的引脚:
CS.DI/DO.CLK。
具体介绍如下:
(1)CS
(2)DI/DO
DI与DO接到一起与EEDI、EEDO相接,接一个上拉电组。
在复位之后。
PCI9054
将会尝试着从SerialEEPROM中读取数据。
第一个双字将用于标识是否该SerialEEPROM
已被编程过,如果全为"1",则表示为空的SerialEEPROM:
如果全为"0",则表示没有Serial
EEPROM。
在这两种情况下PCI9054将会使用默认值。
等系统起来以后,再用PLXMON
对SerialEEPROM编程即可。
(3)CLK
3.3V的串行EEPROM时钟是由PCI总线内部时钟分频得到的。
PCI9054通过内部对PCI时钟的32分频来产生串行EEPROM时钟。
PCI9054与EEPROM的电路连接图如下图所示
三、PCI9054接口芯片的工作方式选择
通过对
MODE[1:
0]的选择(
pqfp--pins157
和156)可以选中三种模式之一,本电路用的
C模
式
PCI9054有三种工作模式:
M,J,C
M模式,直接为Motorola公司的MPC850和MPC860准备的非复用接口;
C模式,地址,数据线不复用;
J模式,地址数据线复用。
由于M模式使用范围比较小,J模式使用起来控制比较复杂,一般使用C模式。
3.1PIN定义:
所有模式
AD[31:
0](AddressandData)地址和时钟复用,首先是一个地址段,后面跟着一个或多个
数据段,支持突发模式的读写;
C/BE[3:
0]#(BusCommandandByteEnables)总线命令和数据使能复用管脚,在AD为
地址线的时候作为总线命令,在AD为数据线的时候作为数据使能;
DEVSEL#(DeviceSelect)有效的时候表示当前设备被选中,作为输入端口;
FRAME#(CycloneFrame)由主设备驱动,用来表示当前设备已经开始接入,总线开始传
输数据。
有效:
传输数据。
无效:
完成最后一个数据的传输;
GNT#(Grant)用来表示当前接入的设备已经被接受;
IDSL
(InitializationDeviceSelect
)在配置寄存器读写的时候用做片选信号;
INTA#
(InterruptA
)PCI
中断请求;
IRDY#(InitiatorReady
)说明当前数据有效,可以并要完成传输;
LOCK#
(Lock)提示有自动操作,需要消耗若干个时钟来完成操作;
PAR(Parity)作为AD和C/BE两部分总线的基偶校验,在传输地址的时候PAR要在地址
传输完毕后一个时钟周期保持稳定。
对于数据段,PAR要在IRDY#或者TRDY#有效以后一
个时钟周期保持稳定。
一旦PAR数据有效,将保持有效到当前数据或地址段传输结束;
PCLK(Clock
)系统时钟,
9054
工作在
33MHz;
PERR#
(ParityError
)用来报告奇偶校验错误,不包括特殊周期;
PME#
(PowerManagementEvent
)唤醒中断;
REQ#(Request)请求信号,通知总线判决器,当前设备必须使用总线;
RST#(Reset)系统复位;
SERR#(SystemError)用来报告特殊周期的奇偶校验错误和其他系统错误;
STOP#(Stop)要求主系统,停止当前设备的数据传输;
TRAY#(TargetReady)目标设备准备完毕,可以传输当前数据;
BIGEND#(BigEndianSelect)
CCS#(ConfigurationRegisterSelect
)低有效的片选信号;
EECS(SerialEEPROMChipSelect
)选择串行EEPROM;(EEPROM
93LC56)
EEDI/DDEO(SerialEEPROMDataIn/SerialEEPROMDataOut
)控制串行EEPROM
读
写数据;(EEPROM
93LC56)
EESK(SerialDataClock)EEPROM读写时钟;(EEPROM
93LC56)
ENUM#(Enumeration
)突发输出,用来表示一个使用
PCI9054芯片的适配器刚刚从一个
CPI总线通道里面加入或者移出;(EEPROM93LC56)
LCLK(LocalProcessorClock)本地时钟输入;(40MHZ)
LEDon/LEDinLED控制;
LFRAME#(PCIBufferedFRAME#Signal
)指示PCI总线的状态;
LINT#(LocalInterrupt
)本地总线中断。
输入到9054
,低有效,触发一个
PCI中断。
作为
输出,等待到一个触发发生;
LRESETo#(LocalBusResetOut
)当PCI9054芯片被复位以后,该管脚可以用来驱动其
他芯片的RESET#信号;
MDREQ#/MDPAF/EOT#
MODE[1:
0](BusMode)11:
M模式;10:
J模式;01:
保留;00:
C模式;(PIN156,PIN157)
TEST(TestPin)芯片检测管脚,高为检测,低为工作,平时置低;
USERi/BACK0#/LLOCKi#复用管脚
USERo/DREQ0#/LLOCKo#复用管脚
VDD电源
VSS
地
3.2C模式:
ADS#AddressStrobe
OUTPUT
BLAST#
(BurstLast
)该信号由本地总线控制,表示最后一个字符的传输;
OUTPUT
BREQi
(BusRequestIn
)本地总线控制,数据从本地总线输入;
BREQo
(BusRequestOut
)PCI
总线控制,数据从
PCI
总线输出;
BTERM#(BurstTerminate)作为输入,表示当前突发操作结束,开始下一个突发地址的
读写,和PCI9054内部的可编程等待状态生成器一起使用。
作为输出,和READY#一起使
用,中断当前突发操作,开始下一个突发操作地址周期;
DP[3:
0](DataParity)奇偶校验数据;
LA[31:
2](AddressBus)地址总线;
LBE[3:
0]#(ByteEnable)控制数据有效,不同的模式有不同的控制方法;
LD[31:
0](DataBus)数据总线;
LHOLD(HoldRequest)发送要求使用本地总线,本地总线决定分配给当前装置以后,判
决器发送LHOLDA信号反馈;
LHOLDA(HoldRequest)反馈信号;
LSERR#(SystemErrorInterruptOutput)系统错误中断;
LW/R#(Write/?
Read)低电平读,高电平写;
READY#(ReadyInput/Output)无论主还是从模式,表示数据准备好,有效;
WAIT#(WaitInput/Output)作为输入,控制PCI9054插入等待状态。
作为输出,PCI9054
处于Ready状态。
3.3J模式:
ADS#(AddressStrobe)说明地址有效,总线有新设备接入;
ALE(AddressLatchEnable)地址传输时有效,数据传输时无效;
BLAST#(BurstLast)该信号由本地总线控制,表示最后一个字符的传输;
BREQi(BusRequestIn)本地总线控制,数据从本地总线输入;
BREQo