OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12198|回复: 12

mini板 enc28j60 以太网的例程 不稳定 容易断开连接是为什么啊

[复制链接]

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-16
在线时间
0 小时
发表于 2014-4-18 10:18:41 | 显示全部楼层 |阅读模式
我现在做以太网的例程  发现不稳定  不知道各位大神 有知道的么 谢谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-11
在线时间
0 小时
发表于 2014-5-26 11:23:19 | 显示全部楼层
回复【4楼】hao123:
---------------------------------
优化好了,优化如下:
1、在ENC28J60.c里面把全双工模式改为半双工模式,解决丢包严重的问题。
2、在ENC28J60_Packet_Send里面把if((ENC28J60_Read(EIR)&EIR_TXERIF))ENC28J60_Write_Op(ENC28J60_BIT_FIELD_CLR,ECON1,ECON1_TXRTS);
改为
if((ENC28J60_Read(EIR)&EIR_TXERIF))ENC28J60_Write_Op(ENC28J60_BIT_FIELD_CLR,ECON1,ECON1_TXRST);
解决ping 一段时间可能出现的断开问题,详情需要去看勘误表。
我找到一段大家可以慢慢看:
Before attempting to transmit a packet (setting
ECON1.TXRTS), reset the internal transmit logic
by setting ECON1.TXRST and then clearing
ECON1.TXRST. The host controller may wish to
issue this Reset before any packet is transmitted
(for simplicity), or it may wish to conditionally reset
the internal transmit logic based on the Transmit
Error Interrupt Flag (EIR.TXERIF), which will
become set whenever a transmit abort occurs.
Clearing ECON1.TXRST may cause a new transmit
error interrupt event (EIR.TXERIF will become
set). Therefore, the interrupt flag should be cleared
after the Reset is completed.
3、收到每一个IP数据包后还是去更新一下ARP表,解决交换机中对ARP包的限制(我到现场测试发现过了N久才收到ARP包),最后导致丢包,但是这个问题貌似不是很严重。
4、在tcp_server_demo_appcall函数里面如果uip_newdata()收到数据且需要发送数据时(tcp_server_sta&(1<<5)不为0)就会导致这个TCP数据包丢失,而应用层并没有对这种情况做相应的处理,由于uip协议栈还没有搞懂,所以这个问题只是一个猜测,现在还没有改动,请这里的大牛指点指点呐。
说明:运行环境为接的设备比较多的局域网,测试结果开多个PING进程发现丢包为2000分之1左右,所以这个问题还是没有从根本解决。这些个问题差点搞得我吐血,还好勉强解决了。现在给大家分享分享,不足之处多多指点。
回复 支持 2 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-4-18 20:25:34 | 显示全部楼层
回复【楼主位】hao123:
---------------------------------
1,改进代码。
2,设计的时候,将模块和MCU做在一块板上,可以减少干扰。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-11
在线时间
0 小时
发表于 2014-4-30 01:50:04 | 显示全部楼层
这个是网络模块在一段时间内收到的数据包过多,导致缓存里面的数据满掉,然后产生丢包,最后导致无法正常回复从而断开连接。这个问题,接上交换机尤为明显,正在解决中。。。郁闷呐。
回复 支持 反对

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-16
在线时间
0 小时
 楼主| 发表于 2014-5-6 09:54:43 | 显示全部楼层
回复【3楼】一只大大的肥鱼:
---------------------------------
你可以试试 连不上的时候从新初始化uip (我用的是uip )但是你最好用spi2(mini板)我试过比以前好多了 但我认为还是没从根本上解决 欢迎探讨
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-26 23:57:28 | 显示全部楼层
回复【5楼】一只大大的肥鱼:
---------------------------------
不错,已经查出很多问题了,谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-8-28
在线时间
0 小时
发表于 2014-5-29 09:17:47 | 显示全部楼层
回复【5楼】一只大大的肥鱼:
---------------------------------
哥们,你说的第二个办法确实管用,没改之前PING一段时间老是PING 不通,现在PING一天 只出现过偶尔几次的PIng不通,还有就是我把网页开着,因为它自动刷新的原因,我发现网页竟然显示的是TCP服务器连接成功应该显示的那句话 。这个你有遇到过没
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-11
在线时间
0 小时
发表于 2014-7-17 12:28:31 | 显示全部楼层
回复【7楼】yinqiwu:
---------------------------------
说明:运行环境为接的设备比较多的局域网,测试结果开多个PING进程发现丢包为2000分之1左右,所以这个问题还是没有从根本解决。
搞不掂啊,自己查查数据手册吧。。。我到时实在是不想搞了。解决这个PING不通的问题可把我累坏了。
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-7
在线时间
1 小时
发表于 2014-7-18 10:06:56 | 显示全部楼层
回复【8楼】一只大大的肥鱼:
---------------------------------
你好,你用过lwip吗?
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-11
在线时间
0 小时
发表于 2014-7-18 16:22:50 | 显示全部楼层
回复【9楼】rockmanxyj:
---------------------------------
这个协议栈听说过,貌似也不是很好。
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-7
在线时间
1 小时
发表于 2014-7-18 17:02:18 | 显示全部楼层
回复【10楼】一只大大的肥鱼:
---------------------------------
你用的是那种协议栈?能推荐下吗?
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-11
在线时间
0 小时
发表于 2014-7-18 17:44:05 | 显示全部楼层
回复【11楼】rockmanxyj:
---------------------------------
轻量级的协议栈我就听说了这两个,凑合着用吧。虽然很多数据包不能处理,功能也不全。但是代码少,改起来方便。凑合着用吧,我用的就是UIP32.虽然搞了一下,BUG没有完全解决,但是已经不影响使用了。
回复 支持 反对

使用道具 举报

8

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-5-15
在线时间
8 小时
发表于 2015-5-14 18:27:28 | 显示全部楼层
有没有查一下供电是否有关系
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表