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接收缓冲区的数据就可能被覆盖。
|