📄 单片机与pci接口的以太网解决方案.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0032)http://www.laogu.com/MY/pci2.htm -->
<!-- saved from url=(0042)http://www.21ic.com/info/news.asp?new=4939 --><HTML><HEAD><TITLE>单片机与PCI接口的以太网解决方案</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>.main {
FONT-SIZE: 12px
}
.main1 {
FONT-SIZE: 14px
}
.main2 {
FONT-SIZE: 16px
}
.main3 {
FONT-SIZE: 7px
}
.main4 {
FONT-SIZE: 10px
}
A:link {
COLOR: #0000ff; TEXT-DECORATION: underline
}
A:visited {
TEXT-DECORATION: underline
}
color:active:unknown {
COLOR: #ff0000; TEXT-DECORATION: none
}
A:hover {
COLOR: #aa0000; TEXT-DECORATION: underline
}
.downbor {
BORDER-RIGHT: black 0px solid; BORDER-TOP: black 0px solid; BORDER-LEFT-COLOR: black; BORDER-BOTTOM-COLOR: #ffd0a2; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid
}
border-bottom-width.downbor1:unknown {
BORDER-RIGHT: black 0px solid; BORDER-TOP: black 0px solid; BORDER-LEFT: black 0px solid; BORDER-BOTTOM: #ffffff 2px solid
}
.mar {
MARGIN-TOP: 10px
}
.mar2 {
MARGIN-BOTTOM: 0px
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff leftMargin=5 topMargin=4 marginwidth="5" marginheight="5">
<P align=center> </P>
<DIV align=center>
<CENTER>
<DIV align=center>
<TABLE borderColor=#ffffff cellSpacing=3 cellPadding=0 width=740 align=center
bgColor=#ccffcc border=1>
<TBODY>
<TR>
<TD width="100%">
<P align=center><FONT size=4><SPAN
class=main2><B>(3)电路图详解(PCI接口)<BR></B></SPAN></FONT></P>
<TABLE borderColor=#3333ff cellSpacing=0 borderColorDark=#000000
cellPadding=0 width="100%" borderColorLight=#000000 border=1>
<TBODY>
<TR>
<TD vAlign=top width=46><SPAN class=main1>日期</SPAN></TD>
<TD width=673><SPAN class=main>2001-11-02</SPAN></TD></TR>
<TR>
<TD vAlign=top width=46><SPAN class=main1>作者</SPAN></TD>
<TD width=673><SPAN class=main>老古 <A href="http://www.laogu.com/"
target=_blank>http://www.laogu.com/</A> Email:<A
href="mailto:laogu@laogu.com">laogu@laogu.com</A></SPAN></TD></TR>
<TR>
<TD vAlign=top width=46><SPAN class=main1>内容</SPAN></TD>
<TD width=673>
<P><BR> 关于PCI总线的标准PCI2.1(33Mhz) PCI2.2(66Mhz)的标准化文件可以在本站的<A
href="http://www.laogu.com/script/script/default.asp?action=search&sName=on&sContent=on&keyword=pci"
target=_blank>下载特区</A>下载.或者到官方的网站:http://www.pcisig.com下载.为英文的pdf文件,中文的PCI标准可以购买<<PCI系统结构(第四版)
>>
一书,电子工业出版社.中国电子网(http://www.21ic.com)也有一些关于PCI的文章,但是都比较简单,并没有很具体的对PCI进行论述.我们将陆续刊登一些文章,论述PCI总线,也可以给设计PCI板卡的做为参考.
<BR> RTL8029AS的芯片资料可以在<A
href="http://www.laogu.com/script/Display.asp?Did=244"
target=_blank>这里下载</A>. <BR> RTL8029AS网卡(单口)电路图在<A
href="http://www.laogu.com/script/Display.asp?Did=246"
target=_blank>这里下载</A>.<BR> RTL8029AS网卡(双口)电路图在<A
href="http://www.laogu.com/script/Display.asp?Did=247"
target=_blank>这里下载</A>. <BR> PCI卡的引脚定义图: <BR><IMG height=936
src="单片机与PCI接口的以太网解决方案.files/pcika.jpg" width=299>
<BR> 我们以PCI标准V2.1为蓝本来做说明,因为PCI V2.2是66Mhz的64 bit总线标准.RTL8029AS
PCI网卡只支持V2.1标准(33Mhz,32 bit)
,在上面的定义中,我省略了很多GND的引脚的定义,在标准的定义中,有很多的引脚被定义为GND,主要是用来做信号的屏蔽和隔离的作用.特别是对66Mhz的PCI总线.因为我们用到的总线的频率不高,连线也不长,可以不需要这些GND的引脚.去掉这些GND引脚的好处是方便布线.去掉这些引脚不会影响性能,因为在RTL8139(100Mhz)的网卡里,也是没有连接这些引脚的.<BR> 我们用的是PCI
V2.1版
5伏的32位卡的标准.PCI卡分为主(Master),从(Target)两种类型,主卡可以控制PCI总线,从卡不能控制PCI总线.RTL8029AS网卡只能作为从卡,也就是说它只能作为Target,而不能做为主设备.标准的主设备至少有49条线跟PCI总线相连.从设备至少有47条线跟PCI总线相连.要支持中断的话,加一条INTA#引脚(共50或48条引脚).图中引脚名称中带#号的表示该引脚为低电平有效,不带#号的为高电平有效.INTA#是带"#"号的,表示低电平有效,就是说当它为低电平时引起中断,平时为高电平.<BR><IMG
height=592 src="单片机与PCI接口的以太网解决方案.files/pcipinlist.jpg" width=633>
<BR> 上图左边的为必须要的引脚,右边的为可选的引脚(我们可以都不用).
因为RTL8029AS只能作为target设备,所以上面的主设备才有的引脚(REQ#,GNT#),可以不用.(在我提供的demo里,这些引脚还是被连接到逻辑电路EPM7128S里(PAR等引脚也被连到CPLD里,为了将来可以使用RTL8139),但是事实上并没有用到,连到逻辑电路的目的是为了将来可能使用RTL8139(10M/100M自适应网卡)来代替10M的RTL8029AS网卡,因为RTL8139可以做为主设备进行DMA数据传输,所以需要这两个引脚,但是RTL8139需要的控制逻辑要比RTL8029AS复杂).<BR> 那么对于RTL8029AS来说,只要用从设备的48个引脚.是不是一定要这48条引脚呢?答案是还可以进行简化.下面我将做一个分析:<BR> PAR引脚:PAR是奇偶校验引脚,校验AD[31..0]和C/BE[3..0]#.但是因为RTL8029AS不作奇偶校验,也不报告校验错误,因此该引脚也可以不要.<BR> PERR#:为校验报告,因为RTL8029AS不作该报告,可以不要.<BR> SERR#:系统错误报告,RTL8029AS同样不报告系统错误,可以不要.<BR> DEVSEL#:为RTL8029AS的输出引脚,以表示地址译码有效.因为RTL8029AS最慢不会超过4个PCI时钟有效,
一般是第2个PCI时钟便有效.我们提供的demo的PCI的时钟为22.1184Mhz,而单片机的机器周期(总线速度)每秒只有22.1184/12=1.8432Mhz,比PCI总线慢12倍,也就是说不需要经过0.4个单片机的机器周期,RTL8029AS便会输出DEVSEL#有效.对单片机来说,网卡是随时准备好的.因此没有必要去判断该引脚,该引脚也可以不要.<BR>TRDY#:为网卡输出的准备好的信号.网卡准备好最慢不会超过8个PCI时钟周期(不超过0.8个单片机机器周期),
对于单片机来说,网卡同样是随时准备好的.该引脚也可以不要.<BR> STOP#:RTL8029AS没有这个引脚,所以可以不要.<BR> 那么PCI的接口信号就被简化为:<BR>AD[31..0]<BR>C/BE[3..0]#<BR>FRAME#<BR>IRDY#<BR>IDSEL#<BR>CLK<BR>RST#<BR>INTA#<BR> 共42条引脚,如果不想用中断方式来驱动网卡,那么中断INTA#也可以不要.我的demo
里还是将INTA#连到CPLD里.以方便用户使用.<BR> 去掉这些引脚的目的,是为了简化逻辑设计,altera提供的<A
href="http://www.altera.com/cgi-bin/ip_search2.pl"
target=_blank>标准的PCI核</A>一般至少需要440个LCELL,<BR>相当于1万门以上的逻辑,必须使用FLEX10K,APEX20K等大容量的CPLD,而这些芯片都比较贵.而我使用的EMP7128才2500门(共128个LCELL),虽然我用的EPM7128有128个LCELL,但我只用了其中的67个
LCELL,用了不到1500门.可见简化接口有着非常重要的意义,就是简化逻辑,降低成本.<BR></P></TD></TR>
<TR>
<TD vAlign=top width=46><BR><SPAN class=main1>来源</SPAN></TD>
<TD width=673><SPAN class=main><A href="http://www.laogu.com/"
target=_blank>老古开发网</A>
</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></CENTER></DIV>
<HR align=center width=740 SIZE=1>
<P align=center><SPAN class=main><A href="http://www.laogu.com/bbs"
target=_blank>欢迎技术探讨和发表评论</A></SPAN> </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -