打印
[技术问答]

W5100 UDP通信时 一包数据最多只能16个字节吗

[复制链接]
1559|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
s290484188|  楼主 | 2017-2-24 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 s290484188 于 2017-2-24 14:27 编辑

在调W5100,与PC通讯,接收电脑数据返回相同数据

每次电脑端UDP发 16个字节以上数据时,W5100返回的数据总是分成多个包,每包16字节

没看的相关的寄存器配置啊

求助用过的朋友
沙发
ic12580| | 2017-2-24 16:05 | 只看该作者
可以加一下我,我介绍个人,你联系联系

使用特权

评论回复
板凳
598330983| | 2017-2-24 18:33 | 只看该作者
W5100发送数据的速度直接受CPU与W5100之间的通信速度影响。因此提高CPU与W5100之间的速度是提高W5100网络发送数据的关键。
    W5100接收数据的速度除了受CPU与W5100之间的通信速度影响外,还可以通过下面的方法提高数据的传输速度。
    1. 在TCP方式(不管是客户端还是服务器),将Sn_MR寄存器设置为:S_MR_TCP|S_MR_MC。选择S_MR_MC的目的是当W5100接收到一个数据包后无延迟地回送一个ACK相应。在UDP模式下无效。
    2. 将Socket的数据缓冲区扩大到4k或8k(这样允许2个Socket工作或1个Socket工作),这样接收到数据后,先读取Sn_RX_RSR和Sn_RX_RR,重新计算Sn_RX_RR,然后发送对Sn_CR寄存器S_CR_RECV命令。完成上面的操作后再读取数据。注意使用这种方法必须快速读取W5100接收缓冲区的数据,否则W5100接收缓冲区的数据就可能被覆盖。

使用特权

评论回复
地板
s290484188|  楼主 | 2017-2-28 14:38 | 只看该作者
598330983 发表于 2017-2-24 18:33
W5100发送数据的速度直接受CPU与W5100之间的通信速度影响。因此提高CPU与W5100之间的速度是提高W5100网络 ...

数据宽度没被覆盖,我测试了,TCP连接成功后,MCU往W5100发生缓冲区写20个字节数据,然后再执行send,这样也是分两次发送的
具体的发送步骤也是按你说的那样的

使用特权

评论回复
5
s290484188|  楼主 | 2017-2-28 15:12 | 只看该作者
s290484188 发表于 2017-2-28 14:38
数据宽度没被覆盖,我测试了,TCP连接成功后,MCU往W5100发生缓冲区写20个字节数据,然后再执行send,这样 ...

设置了最大分片长度就可以了Sn_MSSR

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

54

帖子

0

粉丝