VERY 发表于 2010-2-24 18:39:08

ping ENC28j60丢包

开始使用enc28j60。

但是ping enc28j60 模组居然会丢包,发送4个包,丢包在100%到50%之间不等。

条件描述:
STM32RTT 0.30RC1
PC和enc模组之间有一个5口_交换机,网线长度改成了1米,无改善。
测量enc模组电源电压 3.31V。


finsh>>list_if()
Default network interface: e0
ip address: 192.168.0.30
gw address: 192.168.0.1
net mask: 255.255.255.0
dns server: 208.67.222.222
      -555858992, 0xdede43d0

finsh>>enc28j60()
-- enc28j60 registers:
HwRevID: 0x06
Cntrl: ECON1 ECON2 ESTATEIREIE
       0x040x800x010x000xc8
MAC: MACON1 MACON3 MACON4
       0x0d   0x33   0x40
Rx   : ERXSTERXNDERXWRPT ERXRDPT ERXFCON EPKTCNT MAMXFL
       0x0000 0x19fe 0x19000x19000xa1    0x00    0x05ee
Tx   : ETXSTETXNDMACLCON1 MACLCON2 MAPHSUP
       0x19ff 0x1fff 0x0f   0x3f   0x10
      0, 0x0000

Pinging 192.168.0.30 with 32 bytes of data:

Request timed out.
Request timed out.
Reply from 192.168.0.30: bytes=32 time=1ms TTL=255
Request timed out.

Ping statistics for 192.168.0.30:
    Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms


网络变压器为hr911105A。


不知道到底是什么问题了。ffxz大哥有空的话帮忙看一下啊:)

2010-02-25 10:33:37添加:
最新测试进展:

做了交叉线,和电脑直连,完全正常。100%

与五口_交换机连接用交叉线,还是loss 50%以上。

使用另外一台24口_交换机,ping正常,100%。

那台小交换机那么差劲?一直在用呢

VERY 发表于 2010-2-24 18:44:34

ping其他的机子没有问题。
Pinging 192.168.0.1 with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time<1ms TTL=64
Reply from 192.168.0.1: bytes=32 time<1ms TTL=64
Reply from 192.168.0.1: bytes=32 time<1ms TTL=64
Reply from 192.168.0.1: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

PZLPDY 发表于 2010-2-24 18:58:04

有些模块电平不匹配所致。以前出现过这个现象。换一家的就好了

VERY 发表于 2010-2-24 19:18:00

回复【2楼】PZLPDY
有些模块电平不匹配所致。以前出现过这个现象。换一家的就好了
-----------------------------------------------------------------------

是哪里的电平不匹配呢,看电路,这个模块就只有enc芯片和变压器了,是指这个变压器不行么?

还好,差点要一次再买10个回来了……

ffxz 发表于 2010-2-24 19:43:36

你直接和PC连试试,不行就再换个机器或路由器试试

enc28j60的这个问题遇到的太多了

astudent 发表于 2010-2-24 19:53:17

关注一下

VERY 发表于 2010-2-24 19:54:59

回复【4楼】ffxz
你直接和PC连试试,不行就再换个机器或路由器试试
enc28j60的这个问题遇到的太多了
-----------------------------------------------------------------------

看来还是模组本身的的问题啊,要是换交换机能够用的话,那么这个模块也还是不能用了,这么挑机器怎么行呢。
有点纳闷,那个模组的电路不是很多啊,难道是变压器不匹配?

另:ffxz有没有推荐的ENC28J60模组啊?比较稳定的那种。

VERY 发表于 2010-2-24 19:56:26

我用网线把模组直接和电脑连接,电脑没有反应。

aozima 发表于 2010-2-24 20:11:24

ENC28J60不支持auto_mdix吧,要用交叉线.

astudent 发表于 2010-2-24 20:13:23

正在用ENC28J60,有上万台出货量,除了特别老的10M交换机外,都还好!PING也会丢包,但最多1%的样子。有段时间发现长时间运行,出现只能收不能发的问题,后来发现是驱动程序问题。

VERY 发表于 2010-2-24 20:21:02

回复【9楼】astudent
正在用ENC28J60,有上万台出货量,除了特别老的10M交换机外,都还好!PING也会丢包,但最多1%的样子。有段时间发现长时间运行,出现只能收不能发的问题,后来发现是驱动程序问题。
-----------------------------------------------------------------------

astudent 你是用的是模块的么?网络变压器是什么的?
我用的交换机是100M的 5口不交的

astudent 发表于 2010-2-24 20:26:12

不是模块,是在产品中用,自己做板,LPC2132+ENC28J60架构,变压器为13-60FD,和汉仁那个差不多。

my2009 发表于 2010-2-24 20:28:58

回复【10楼】VERY VERY低调
-----------------------------------------------------------------------

我用的ENC28J60电路板, 使用20F001N-YCL网络变压器, 一切正常,交换机是 100M/10M

huatuizh 发表于 2010-2-24 20:57:36

顶楼那个模块,pcb layout的很差,不丢包才怪.
差分线的布线规则都不讲究,估计更没有注意100欧阻抗匹配了.
本来10M以太网要求不那么严格的,随便根据原则布布就可以了.
但是那个线布的也太差了.
100M的fast ether,2层板布的好的话,也不会丢包,用smart bits测试100%流量.
好像是抄的icdev的板子.

当然,软件的协议栈也有可能处理不过来导致丢包.

所以要先排除硬件问题,再找软件问题.

astudent 发表于 2010-2-24 21:08:18

那个模块的布线还可以。对于现在的交换机或路由器,走通就可以了。

huatuizh 发表于 2010-2-24 21:20:59

omg,R9 R10的RX方向差分线,不要说等距平行,隔的那个叫远,中间还有led线走着

huatuizh 发表于 2010-2-24 21:25:44

06年阿莫的7S64用到ENC28J60的板子,ping丢包都非常严重. 那个板子lay的比楼顶的还要差.
后来重新layout做到另外的板子上,同样的固件,ping24小时都不丢包了.
要测硬件性能,还是和pc直连,用100m长线是规范.这都能过,那经过交换机/路由器更没问题了.

VERY 发表于 2010-2-24 21:40:00

楼上你很神奇哎,2004年一月一日注册……

发表主题2

积分63

元老啊,拜过……

huatuizh 发表于 2010-2-24 21:49:56

惭愧,没有做出太多贡献
差分布线的模块我现在就有空板子,送你一个测试都可以,只是ssop的enc28j60

VERY 发表于 2010-2-25 00:55:04

回复【18楼】huatuizh
惭愧,没有做出太多贡献
差分布线的模块我现在就有空板子,送你一个测试都可以,只是ssop的enc28j60
-----------------------------------------------------------------------


可以卖10个模块给我么:)
因为没时间自己做模块了

youki1234 发表于 2010-2-25 08:14:29

回复【18楼】huatuizh
惭愧,没有做出太多贡献
差分布线的模块我现在就有空板子,送你一个测试都可以,只是ssop的enc28j60
-----------------------------------------------------------------------

请问有没有PCB文件?想看看如何布线的。。。谢谢1

VERY 发表于 2010-2-25 10:11:47

最新测试进展:

做了交叉线,和电脑直连,完全正常。100%

与五口_交换机连接用交叉线,还是loss 50%以上。

使用另外一台24口_交换机,ping正常,100%。

那台小交换机那么差劲?一直在用呢。

huatuizh 发表于 2010-2-25 10:21:40

以太网差分线,就是常规意义的差分线布线原则:
平行等距等长紧耦合,最好不要换层,如果能做阻抗控制最好,单端阻抗50欧,差分阻抗100欧,远离其他数字电路布线3W以上.TX和RX的差分对也要远离3W以上.
变压器底部要掏空,内侧是gnd,外侧是shell gnd,单点磁珠或者0欧电阻相连.
用于阻抗匹配的49.9欧0603电阻放背面,变压器离芯片不要太远,离RJ45也不要太远,三者越近越好.
外侧的75欧安规电阻也放背面,最好是0805封装,否则有浪涌电流如感应雷击时立刻就暴了.如果用HR911105/02这个就免了.
整个板子的底层当然最好是一个完整的gnd平面,2层板的VDD3.3V也只能是粗线进去了.SPCK离其他信号要在3W以上,能间隔gnd最好.

top:
http://cache.amobbs.com/bbs_upload782111/files_27/ourdev_535239.JPG
(原文件名:ENC28-TOP.JPG)

bottom:
http://cache.amobbs.com/bbs_upload782111/files_27/ourdev_535237.JPG
(原文件名:ENC28-BOTTOM.JPG)

huatuizh 发表于 2010-2-25 10:23:31

to VERY VERY低调
我没有现成的模块,只有以前的空pcb,焊了2个测性能.
现在已经不用该方案了,转用SAM7X和LPC2368的100M FE.

TBN1 发表于 2010-2-25 10:30:33

引用图片【22楼】huatuizh
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_27/ourdev_535239.JPG
(原文件名:ENC28-TOP.JPG)
回复【22楼】huatuizh
-----------------------------------------------------------------------

看老兄理解的挺透彻的,问一下,为什么间距要3W呢?

huatuizh 发表于 2010-2-25 10:38:52

那个模块的layout是有问题的.
在实际网络环境下,可以测协议栈的健壮性.
局域网环境下,那么多的广播包,还有其他各种各样的包,要是交换芯片功能比较弱,往端口转发的无效包会很多,这样协议栈处理负荷太高,丢包也是常有的事.比如没有广播风暴抑制功能,MAC表深度比较小.如果还同时连着internet,那更加多的包了,mac地址一旦增加的太多,交换芯片的学习learning没有跟上,那又是一堆广播包发下去.
有个办法,用sniffer这样的抓包工具,抓PC端.
同时读取enc28j60的内部寄存器,丢包错误统计计数相关的寄存器,看是什么原因导致的丢包.比如crc错误--多半是硬件信号不好导致,比如memory overflow则是处理器没有来得及读走数据,处理不过来导致的溢出丢包.

回复【21楼】VERY VERY低调
最新测试进展:
做了交叉线,和电脑直连,完全正常。100%
与五口_交换机连接用交叉线,还是loss 50%以上。
使用另外一台24口_交换机,ping正常,100%。
那台小交换机那么差劲?一直在用呢。
-----------------------------------------------------------------------

youki1234 发表于 2010-2-25 10:41:38

回复【21楼】VERY VERY低调
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``

楼主STM32的驱动源码有吗?能否发个过来参考下?谢谢!

youki1234@163.com 谢谢!

huatuizh 发表于 2010-2-25 10:46:22

回复【24楼】TBN1
-----------------------------------------------------------------------

参考 <高速数字设计>黑皮书和其他高速电路设计准则.
理论上说,差分线对与其他信号离的越远越好.离近了,会有辐射串绕.实际的工程经验和理论,超过3W的距离,串绕会降低80%~90%.
10M的好点,100M的电口,MLT-3三阶电平信号,就不是0/1两种了,受串绕影响导致的误判门限,大大降低.

VERY 发表于 2010-2-25 10:48:45

回复【26楼】youki1234
回复【21楼】VERY VERY低调
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
楼主STM32的驱动源码有吗?能否发个过来参考下?谢谢!
youki1234@163.com 谢谢!

-----------------------------------------------------------------------

开源实时操作系统:RT-Thread/STM32 0.3.0 RC1发布
帖子里面有。

就是stm32平台的RT-Thread开发包里面。

网络部分的说明也有文档:原文件名:rtthread_lwip.pdf)

帖子里面有

VERY 发表于 2010-2-25 10:53:49

回复【25楼】huatuizh
那个模块的layout是有问题的.
在实际网络环境下,可以测协议栈的健壮性.
局域网环境下,那么多的广播包,还有其他各种各样的包,要是交换芯片功能比较弱,往端口转发的无效包会很多,这样协议栈处理负荷太高,丢包也是常有的事.比如没有广播风暴抑制功能,MAC表深度比较小.如果还同时连着internet,那更加多的包了,mac地址一旦增加的太多,交换芯片的学习learning没有跟上,那又是一堆广播包发下去.
有个办法,用sniffer这样的抓包工具,抓PC端.
同时读取enc28j60的内部寄存器,丢包错误统计计数相关的寄存器,看是什么原因导致的丢包.比如crc错误--多半是硬件信号不好导致,比如memory overflow则是处理器没有来得及读走数据,处理不过来导致的溢出丢包.
-----------------------------------------------------------------------

分析得太明白透彻了,我读寄存器数据看看哈,谢谢啦。

我用24口_交换机的接enc模块的时候,测试的PC也是通过那个小的5口_交换机再接到24口_交换机的,也是100%正常。

l456789 发表于 2010-2-25 14:31:32

是不是说enc28j60在连接internet的时候根本不好用呢?

astudent 发表于 2010-2-25 14:49:36

要做到标准的50欧阻抗匹配很难。

huatuizh 发表于 2010-2-26 21:27:20

回复【30楼】l456789
是不是说enc28j60在连接internet的时候根本不好用呢?
-----------------------------------------------------------------------

怎么会呢,抛开硬件的问题,和软件的关系很大。协议栈效率高,MCU来得及处理所有的包,就不会有问题。

enc28j60还有一些包过滤功能,使用得当,会提高效率。

huatuizh 发表于 2010-2-26 21:31:20

回复【31楼】astudent
要做到标准的50欧阻抗匹配很难。
-----------------------------------------------------------------------

是的。不可避免的反射就让它反射着,能避免的串绕,辐射,尽量避免。

neilxiang 发表于 2010-3-1 21:48:59

搞的有点复杂了,看来我们的布线水平有待提高呀!

VERY 发表于 2010-3-10 10:10:13

换了个别家的模块, 两家的模块分别测试,结果,新的完全正常,可以到100%。

老的丢包50%到80%不等。

新的用的是91102A的变压器,不知道跟这个有没有关系,老的用的是911105A的变压器。

litteworm 发表于 2010-3-10 10:24:43

关注一下 呵呵····

swustlx86 发表于 2010-4-6 15:18:18

关注下

bondxie3 发表于 2011-1-20 09:58:05

标记学习

li20030505 发表于 2011-7-7 18:05:42

mark

dragonbbc 发表于 2011-9-14 22:09:07

mark 以太网布线

jielove2003 发表于 2011-9-14 22:50:33

学习了

wangyeqing333 发表于 2013-8-13 14:37:22

      mark   
页: [1]
查看完整版本: ping ENC28j60丢包