run411 发表于 2008-3-31 21:29

以太网芯片 高手来看看这个问题撒

1.&nbsp;&nbsp;&nbsp;&nbsp;做如图所示的A、B电路板(虚线框部分),完成如图所示的通信功能。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从图中可以看出,A、B电路板是完全相同的两块板子。<br />2.&nbsp;&nbsp;由于要求是数据率是千兆(光模块可以满足千兆,所选用光模块数据率是1.25Gb/s),因此以太网控制芯片需要是支持1000M,不是10/100M的。<br />3.&nbsp;&nbsp;光模块起光电、电光转换的功能,采用商用产品即可。初步计划用SFF&nbsp;或SFP型的光模块,更倾向于SFF型。光模块焊接到A、B板上即可<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我认为,光模块对本课题没有影响,只需要知道光模块输入输出电平形式,设计电路板即可。光模块输入输出电平一般是PECL或LVPECL,也有的是TTL.<br /><br />目前困扰我的问题是:<br />1.&nbsp;&nbsp;&nbsp;&nbsp;收发数据&nbsp;如何实现;<br />2.&nbsp;&nbsp;&nbsp;&nbsp;生成/还原以太网信号。<br /><br />生成以太网信号可以用太网控制芯片(也就是网卡芯片,只要选用千兆光网卡芯片即可),但是由于网卡芯片大多是PCI或PCI-E的(即把PCI类型的信号转化成以太网信号)。如果采用常见的PCI或PCI-E的网卡芯片,以上两个问题都可以解决。可以说,做出A、B板子可以说就是光网卡。<br />网卡芯片完成生成/还原以太网信号;<br />光网卡插入电脑的PCI或PCI-E插槽,用电脑收发数据即可。<br />即把两个光网卡分别插入不同电脑上主板的PCI或PCI-E插槽,即可来试验如图所示的通信过程。<br /><br />问题是,课题不希望使用PCI或PCI-E,这样就引出两个难题(对我来说是难题)<br />1.怎样收发数据(因为不用电脑了);<br />2.网卡芯片完成的是PCI或PCI-E信号到以太网信号的转换,现在不用PCI&nbsp;、PCI-E了,如何把数据源发出的数据转成以太网信号呢???<br /><br /><br /><br />另外:说一下我自己的感觉<br />我感觉&nbsp;千兆以太网芯片都是PCI&nbsp;或者PCI-E的,似乎不可避免要用PCI或PCI-E的。<br />导师意思是尽量找找非PCI的,或者即使用PCI或PCI-E的网卡芯片,能不能不走PCI或PCI-E形式的信号,而用其他形式的信号呢<br />

armecos 发表于 2008-3-31 21:59

选择HDMP-1636A/1646A

&nbsp;&nbsp;&nbsp;&nbsp;1000M以太网传输速率是1000M,但是由于开销、碰撞等,实际有效数据速率可能只有100M。PCI是共享的,实际带宽达不到千兆。<br />&nbsp;&nbsp;&nbsp;&nbsp;HDMP-1636/1646与IEEE802.3z千兆比特以太网兼容,支持1250MBd千兆比特以太网。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;《Agilent光纤通信及高速数据接口产品手册》里有HDMP-1636/1646千兆比特串行/解串行芯片说明。<br />&nbsp;&nbsp;&nbsp;&nbsp;HF**-53D5&nbsp;1000/1250Mb/s&nbsp;双工SC接口光收发模块。<br />&nbsp;&nbsp;&nbsp;&nbsp;HF**-5912&nbsp;1000/1250Mb/s&nbsp;MT-RJ接口小封装光收发模块。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;www.armecos.com

菜人菜语 发表于 2008-4-1 11:15

千兆是全双工,没有碰撞

从物理层看,大的流量是可以接近双向千兆的。瓶颈在于处理器的能力,这个对处理能力要求太高了。一般的结构是&nbsp;CPU&nbsp;+&nbsp;MAC&nbsp;+&nbsp;PHY,楼主所说的PCI位于CPU和MAC之间,面向PC的芯片当然要做成这样了。不过还有不少其它选择,有的芯片是CPU+MAC,比如MPC系列有内置千兆MAC,可以选用,再配合一片千兆PHY即可。如果还觉得不够快,可以用FPGA实现MAC和一部分数据处理功能,可以用软核CPU或者独立的CPU。支持-x的PHY芯片还是有一些的。

run411 发表于 2008-4-1 20:52

我怎么忘记了放上框图呢

https://bbs.21ic.com/upfiles/img/20084/20084120527942.jpg

run411 发表于 2008-4-1 20:57

谢谢2楼 3楼的 回答 ,很专业啊

搞这个我不专业啊,只是做硕士课题。<br />2楼&nbsp;3楼&nbsp;所说的方法&nbsp;是不是都要用到电脑呢?<br />也就是说,把这个东西做成类似PCI或PCI-E插口的网卡,然后插到电脑主板上就可以了,用电脑的CPU,是这样吗??<br /><br />我上面说了,导师的意思是&nbsp;不用电脑,也就是不用PCI口的,这样可行吗??<br />如果不可行的话,我就必须得做成PCI的了——虽然我目前不会<br /><br />请高手出招~~~~~~~~~~~~~~~~~·

ruraliter 发表于 2008-4-3 09:35

用ARM加上一个pci转换器,就可以了

wenming 发表于 2008-4-3 10:54

不同意2楼的看法

千兆网络在实际使用中是,可以满速度工作的.看过一个MPC85xx系列的测试报告.可以达到&nbsp;900多兆.

drentsi 发表于 2008-4-3 16:29

千兆网

在FPGA里面测试的,不使用硬件加速,TCP传输速度300Mbps左右<br />使用硬件加速,TCP传输速度可达到700多Mbps,<br />实际上这个时候电脑有一个核会100%利用率(测试电脑,E6400+2GB)<br />如不跑TCP,发原始数据报的话,可达900多Mbps<br />

run411 发表于 2008-4-3 21:44

速度是如何测试的呢

我更新一下框图,这个看的会更明白https://bbs.21ic.com/upfiles/img/20084/200843214433853.jpg

armecos 发表于 2008-4-3 22:06

CPU性能才是瓶颈,

&nbsp;&nbsp;&nbsp;&nbsp;3楼说得对,CPU性能是瓶颈。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下面是百兆网络,64字节包,VxWorks操作系统下用smartbit测试仪得到的网络评测数据,有些CPU不能达到线速。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;型号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网络测评<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MPC860&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt10%<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MPC8245&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15%<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PPC750&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55%<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;970&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100%<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100%<br />&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;不用工控板,性能很烂。Windows用什么CPU都不可能达到百兆线速,HARD&nbsp;HAT&nbsp;Linux性能比VxWorks低10%-20%。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;千兆网络速率有好几种:理论速率、空载测试速率、实际传输速率等等。如果在CPU上跑了任务,那么实际传输速率就不到千兆了。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;影响TCP速率的关键因素不是硬件速率,而是重传延时,光纤属于高带宽低误码率介质,当非常小概率误码发生后,TCP拥塞算法启动,延迟是百毫秒量级,导致传输速率急剧下降,所以在这类介质上的TCP协议栈需要重写才能达到高速率。

and 发表于 2008-4-4 10:25

楼上讲的有道理

64字节包,满百兆的话,每秒钟的包数是14万次多一点。对任何处理这样事务的&nbsp;CPU&nbsp;+&nbsp;OS,中断处理的开销已经超过包本身的处理开销,试想WINDOWS或LINUX,每秒钟中断14万次,就要进行14万次切换,是什么概念?这还只是单向。如果CPU主频不高,就必须调整OS的调度策略,才能达到希望的性能。<br /><br />关于TCP重写,TCP是个端到端的协议,如果两端之间是纯粹的千兆光纤,那么重写的意义就非常明显,不过目前的网络实际环境,千兆往往只是网络中的某一个网段,整个路径的带宽远远无法达到千兆,在这样的情况下,重写的意义就不明显了。

high 发表于 2008-4-8 15:51

很感兴趣,外行请教.

网卡有没有buffer?比如8019的16kSRAM是不是指buffer,是不是可以配置响应16k满再中断?<br /><br />如果上面是对的话,中断就不以单个包触发.频率就减少256倍.于是140000/256=550.这样就落在毫秒级别了.

菜人菜语 发表于 2008-4-9 09:09

8019好象没有这个功能

drentsi 发表于 2008-4-9 09:33

11楼的

去年我做了个项目,就是把16个100M光纤以太网的数据打包后通过千兆以太网发出去。每个光纤网口每秒发送12K个240字节的数据包,总的数据量为46MB/S<br />,数据包为192K个,以太网的MAC使用FPGA来做的,MAC是双缓冲的。CPU是Powrpc405-300MHz。开始是用中断方式来搞,每秒可以处理120K个中断,但是额外引起的数据对齐的开销就非常大,以至于CPU不够用,后来改成查询方式,数据包一个没丢。目前也没什么问题。<br /><br />Powrpc405处理中断的能力非常强大,在另外一个设备中,中断方式,每秒处理96K的中断没问题。<br />

and 发表于 2008-4-9 17:58

你是用V-4了吧

羡慕一下,比较昂贵。用查询方式,连中断开销都省了,当然最快啦。<br />不过,你这个需求,有没有可能用纯FPGA完成,而不用CPU呢?<br />没做过,胡乱问一下,呵呵。<br />

drentsi 发表于 2008-4-10 12:36

全部用FPGA应该没问题

速度应该更快一些,<br /><br />我看了一下xilinx的100G以太网的方案,CPU倒只是摆设

flanker 发表于 2008-4-13 11:18

PPC750,百兆不能到线速?

是裸转发还是加了安全/NAT/ALG等麻烦的业务处理?<br />再就是转发流程存在内存拷贝吧。

run411 发表于 2008-6-16 21:04

怎么没高人指导了啊

后学 发表于 2008-6-17 13:40

re

LZ把思路从PC和ARM上移走,这些只会给你带来干扰,<br /><br />接CPU的主要目的是做三层交换,看起来你不需要,<br />其实导师让你做的,就是一个简单的千兆光纤收发器,<br />你去google&nbsp;“光纤收发器”<br /><br />一个光模块,一个主芯片,一个千兆网口,<br />你要做的,就是找到(或自己做出来)这个主芯片,<br /><br />IP113F是最常用的10/100M光纤收发器芯片方案,<br />http://www.cyberwin.com.cn/cyber_chanpin.asp?typeid=2&classid=16<br />

run411 发表于 2008-6-26 21:55

楼上的楼上

我需要的是千兆的啊
页: [1]
查看完整版本: 以太网芯片 高手来看看这个问题撒