📄 pci总线接口芯片9054及其应用--skycanny的笔记.htm
字号:
</LI></UL></LI></UL></DIV></DIV>
<DIV id=centercontent>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-5340227906261827";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as_rimg";
google_cpa_choice = "CAAQnaWdzgEaCINObkyS6oFDKIvN93M";
google_ad_channel = "";
//--></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/show_ads.js"
type=text/javascript>
</SCRIPT>
<DIV class=day>
<DIV class=dayTitle>2006-8-16 8:49:00 </DIV>
<DIV class=postTitle>PCI总线接口芯片9054及其应用 </DIV>
<TABLE style="TABLE-LAYOUT: fixed" border=0>
<TBODY>
<TR>
<TD><SPAN id=ob_logd24203></SPAN>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD class=l16 height=40>
<DIV align=center>PCI总线接口芯片9054及其应用</DIV></TD></TR>
<TR class=l12>
<TD height=40>
<DIV align=center>福州南南信息科技有限公司 黄身锞</DIV></TD></TR>
<TR class=l12>
<TD>
<P>概述 <BR><BR>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等性能更优越。</P>
<P>PCI
9054其内部原理如图1所示。它采用先进的PLX数据管道结构技术,是32Bit、33MHz的PCI总线主I/O加速器。</P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG onmousewheel="return bbimg(this)"
src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/xsj062812_1.jpg"></DIV></TD></TR></TBODY></TABLE>
<P>PCI9054主要特性如下:</P>
<P>·符合PCI V2.1,V2.2规范,包含PCI电源管理特性。</P>
<P>·支持VPD(Vital Product Data)的PCI扩展。</P>
<P>·支持PCI双地址周期,地址空间高达4GB。</P>
<P>·具备120准备报文单元,完全兼容120 V1.5规范。</P>
<P>·提供了两个独立的可编程DMA控制器,每个通道均支持块和</P>
<P>Scatter/Gather的DMA方式,DMA通道0支持请求DMA方式。</P>
<P>·在PCI启动模式下,PCI 9054可插入类型1和类型2的配置周期。</P>
<P>·PCI和Local Bus数据传送速率高达132MB/S。</P>
<P>·支持本地总线直接接口Motorola MPC850或MPC860系列、Intel i960系列、IBM
PPC401系列及其它类似总线协议设备。
·本地总线速率高达50MHz;支持复用/非复用的32bit地址/数据;本地总线有三种模式;M模式、C模式和J模式,可利用模式选择引脚加以选择。</P>
<P>·具有可选的串行EEPROM接口。</P>
<P>·具有8个32bit Mailbox寄存器和2个32位Doorbell寄存器。</P>
<P><BR>功能描述</P>
<P>PCI9054的物理总线接口</P>
<P>PCI9054提供了三种物理总线接口:PCI总线接口,LOCAL总线接口及串行EPROM接口。LOCAL总线的数据宽度为32位,时钟频率可达到50MHz并且支持数据预取功能。</P>
<P>PCI9054的总线操作包括PCI总线操作和本地总线操作。对于PCI总线操作,它完全遵守2.2版本PCI规范。PCI9054本地总线支持非多路复用32位地址/数据总线,多路复用32位和8位,16位或32位本地总线设备从属访问,运行速率高达50MHz,可以获得200MB/S的本地总线突发传输速率。</P>
<P>PCI9054的LOCAL总线与PCI总线之间数据传输有三种方式:主模式(Direct Master)、从模式(Direct
Slave)和DMA方式。其内部具有两个DMA数据通道,双向数据通路上各有6个FIFO进行数据缓冲,可同时进行高速的数据接收和发送。8个32位Maibox寄存器可为双向数据通路提供消息传送。
</P>
<P>PCI9054还提供了一个串行EEPROM接口,容量2K字节。在配置存储器中存放了厂家标志、设备标志以及本地总线的基地址空间、I/O空间和中断控制信号等信息。初始化时,系统自动将串行EEPROM中的配置参数装入PCI配置寄存器,并根据本地总线对内存、I/O端口和中断的需求统一划分,自动配置。其中本地端寄存器也可以由本地CPU读写,直接进行配置。</P>
<P>PCI9054工作模式</P>
<P>PCI9054有3种工作模式:C、M和J模式。M模式主要针对Motorola公司高性能MPC850/860的应用而设计,主要应用在电信领域。J模式的接口设计相对比较复杂,通常用的是C模式。</P>
<P>C模式下PCI9054分为PCI Initiator操作和PCI Target操作。在PCI
Initiator操作过程中,本地处理器或本地总线主控设备能够直接通过PCI9054访问PCI总线,发起Local-to-PCI的数据传输。而在PCI
Target操作过程中,PCI总线主控设备可以以可编程的等待状态、总线宽度和突发传输功能访问PCI9054的三个本地空间(空间0,空间1和扩充ROM空间)。</P>
<P>PCI9054的DMA突发模式</P>
<P>PCI9054集成了两个相互独立的DMA通道,每个通道都支持Block DMA和Scatter/Gather
DMA,通道0还支持Demand DMA传输方式<BR>Block
DMA要求PCI主机或Local主机提供PCI和Local的起始地址、传输字节数、传输方向。主机设定DMA开始位启动数据传输,一旦传输完成,PCI9054设定DMA"传输结束位"结束DMA。如果启动中断允许位,在传输结束时PCI9054将向主机申请中断。在DMA传输中,PCI9054既是PCI总线的主控器又是Local总线的主控器。</P>
<P>Scatter/Gather
DMA要求主机在PCI空间或Local空间设定Descriptor模块,模块包括PCI和Local的起始地址、传输字节数、传输方向和下一个Descriptor模块的地址。PCI9054载入第一个Descriptor模块并发起传输,连续加载下一个模块,直到它侦测到“链结束位”有效,PCI
9054设置“传输结束位”,或者申请PCI或Local中断。这种模式下,PCI9054也可以在每个模块加载时有效中断信号,结束DMA传输。若Descriptor模块在本地存储空间,可以编程使DMA控制器在每次DMA传输结束后清除传输字节数。</P>
<P>PCI9054寄存器</P>
<P>PCI9054内部提供了5种寄存器:PCI配置寄存器、本地端配置寄存器、运行时间RUNTIME寄存器、DMA寄存器和120信息寄存器。下面对PCI配置寄存器和本地端配置寄存器的功能做简要介绍。</P>
<P>PCI配置寄存器也就是我们常说的PCI配置空间,它提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI设备的识别。
</P>
<P>命令寄存器(Command)包含设备控制位,包括允许存储器读写响应等。</P>
<P>状态寄存器(Status)用于记录PCI总线的相关事件。</P>
<P>PCI配置寄存器提供了6个基地址寄存器,这些基地址都在系统中的物理地址范围内,其中BASE0和BASE1用来访问其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端内存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。</P>
<P>可以通过PCI端内存和PCI端I/O来访问LOCAL配置寄存器与其他3种寄存器。BASE2~5四个空间提供了访问本地端所接的4个芯片(当然可以少于4个),它们将本地端的芯片通过本地端地址(在LOCAL配置寄存器中设)翻译成PCI的地址,也就是将本地的芯片映射到系统的内存或I/O口。这样使得用程序操作这一段内存(或I/O)实际上就是对本地的芯片操作。</P>
<P>本地端配置寄存器提供了本地端的一些信息,如图2 C模式部分时序图</P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG onmousewheel="return bbimg(this)"
src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/xsj062812_2.jpg"></DIV></TD></TR></TBODY></TABLE>
<P>LCLK:输入信号,时钟信号</P>
<P>LHOLD:输入信号,申请使用本地总线</P>
<P>LHOLFA:输入信号,对LHOLD应答</P>
<P><BR>基于PCI9054的PCI接口设计</P>
<P>PCI 9054
以其强大的功能和简单的用户接口,为PCI总线接口的开发提供了一种简洁的方法,设计者只需设计出本地总线接口控制电路,即可实现与PCI总线的高速数据传输。</P>
<P>图3是应用PCI9054作为接口芯片,开发PCI总线扩展卡的总体硬件框架图</P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD height=15>
<DIV align=center><IMG onmousewheel="return bbimg(this)"
src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/xsj062812_3.jpg"></DIV></TD></TR></TBODY></TABLE>
<P>下面简单介绍以PCI9054为接口芯片的网卡设计。</P>
<P><BR>硬件设计</P>
<P>见图4</P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG onmousewheel="return bbimg(this)"
src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/xsj062812_4.jpg"></DIV></TD></TR></TBODY></TABLE>
<P>第一部分是9054和PCI插槽间的连接信号线。这些信号包括地址数据复用信号AD[31:0],总线命令信号C/BE[3:0]#和PCI协议控制信号PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、PERR#和SERR#。</P>
<P>第二部分是9054与EEPROM的连线。这里有四根信号线:EESK、EEDO、EEDI、EECS,串行EEPROM的数据通过烧写编程的方式,也可以通过本地CPU直接编程的方式来完成初始化。</P>
<P>第三部分就是9054与应用电路的连接。其中LA地址总线、LD数据总线、LBE#字节使能信号和CPLD相连;LW/R读写信号、BLAST#、READY#、ADS#和8051单片机相连。</P>
<P>PCI9054工作在初始化器模式时,要求本地端的总线是32位的。在这里,用CPLD实现将80C51单片机的8位数据与16位地址转换成32位的数据和地址,使用RAM的目的是提高8051的数据传输速度和处理复杂的TCP/IP协议,EEPROM用来保存相关的信息状态等。</P>
<P><BR>软件设计</P>
<P>软件程序主要分为两大部分,一是对PCI9054芯片的PCI端配置寄存器和本地端配置寄存器进行正确的编程配置;二是网络通讯,包括网卡初始化、发送控制和接收控制3部分。</P>
<P><BR>结束语</P>
<P>在实践开发中我们发现,用PCI9054开发各种高速数据采集系统、图象处理系统等PCI设备,能够减少许多相应的外围器件,降低开发难度,缩短开发周期,大幅度压缩成本。
</P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<DIV class=postDesc>posted @ 2006-8-16 8:49:00 skycanny <A
href="http://blog.21ic.com/user1/1202/24203.html#">阅读全文<SPAN
id=ob_logreaded></SPAN></A> | <A
href="http://blog.21ic.com/user1/1202/24203.html#cmt">回复(0)</A> <SPAN
id=ob_logm24203></SPAN>| <A href="http://blog.21ic.com/showtb.asp?id=24203"
target=_blank>引用通告<SPAN id=ob_tbnum></SPAN></A> | <A
href="http://blog.21ic.com/user_post.asp?logid=24203"
target=_blank>编辑</A></DIV></DIV>
<DIV id=morelog>
<UL>
<LI>上一篇:<A
href="http://blog.21ic.com/user1/1202/24202.html">基于AT89C51的激光密码锁的设计</A>
<LI>下一篇:<A
href="http://blog.21ic.com/user1/1202/24204.html">基于DDS的调制信号发生器的设计</A>
</LI></UL></DIV>
<DIV id=form_comment>
<DIV id=gg_usercomment></DIV><A name=cmt></A>
<DIV class=title>发表评论:</DIV>
<FORM id=commentform name=commentform onsubmit="return Verifycomment()"
action=/savecomment.asp?logid=24203 method=post>
<DIV class=d1><LABEL>昵称:<INPUT id=UserName maxLength=20
name=UserName></LABEL></DIV>
<DIV class=d2><LABEL>密码:<INPUT id=Password type=password maxLength=20
name=Password> (游客无须输入密码)</LABEL></DIV>
<DIV class=d3><LABEL>主页:<INPUT id=homepage maxLength=50 size=42 value=http://
name=homepage></LABEL></DIV>
<DIV class=d4><LABEL>标题:<INPUT id=commenttopic maxLength=50 size=42
value=Re:PCI总线接口芯片9054及其应用 name=commenttopic></LABEL></DIV>
<DIV class=d5><INPUT id=edit type=hidden name=edit>
<DIV id=oblog_edit>21IC页面载入....</DIV></DIV>
<DIV class=d6><SPAN id=ob_code></SPAN><INPUT onclick='oblog_edittext.createTextRange().execCommand("Copy");' type=submit value= 提 交 ></DIV></FORM></DIV></DIV>
<DIV class=footer>Copyright ©2006 <SPAN id=blogname>21IC页面载入....</SPAN></DIV>
<SCRIPT language=javascript src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/682187.js"
type=text/javascript></SCRIPT>
<NOSCRIPT><A href="http://www.51.la/?682187" target=_blank><IMG
style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"
alt=我要啦免费统计 src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/go.htm"></A></NOSCRIPT>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-5340227906261827";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as_rimg";
google_cpa_choice = "CAAQnaWdzgEaCINObkyS6oFDKIvN93M";
google_ad_channel = "";
//--></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/show_ads.js"
type=text/javascript>
</SCRIPT>
<SPAN id=gg_userbot></SPAN>
<DIV id=powered><A href="http://www.oblog.cn/" target=_blank><IMG
alt="Powered by Oblog."
src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/oblog_powered.gif" border=0></A></DIV>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/200608.htm"></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/count.htm"></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/commentedit.htm"></SCRIPT>
<SCRIPT
src="C:\Documents and Settings\yd\桌面\pci\PCI总线接口芯片9054及其应用--skycanny的笔记.files\count(1).htm"></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/login.htm"></SCRIPT>
<SCRIPT src="PCI总线接口芯片9054及其应用--skycanny的笔记.files/ShowXml.htm"></SCRIPT>
<SCRIPT
src="C:\Documents and Settings\yd\桌面\pci\PCI总线接口芯片9054及其应用--skycanny的笔记.files\count(2).htm"></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -