如何提高W5100的通信速度

在很多應用領域都需要提高W5100與其它網絡設備(如PC機)的通信速度。理論上講,W5100的最大通信速度可以達到25Mbps,實際應用中,由於網絡的原因、CPU與W5100之間通信速度的原因等等,使W5100的網絡傳輸速度遠遠低於25Mbps。
這裡拋開網絡速度的影響,談談如何提高W5100的網絡通信速度。
影響W5100的網絡通信速度的最大因素是CPU與W5100之間的通信速度。因此要提高W5100的網絡通信速度,必須提高CPU與W5100之間的通信速度。CPU與W5100之間的通信方式對W5100的網絡通信速度影響很大。直接總線的速度最快,間接總線的速度次之,SPI總線的速度最慢。

W5100CPU
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接收緩衝區的數據就可能被覆蓋。

通過以上方法的改進,我們在EVB-W5100/Cortex評估板上測試,極限通信速度可以達到23Mbps。(評估板上Cortex與W5100的接口採用間接總線,軟件模擬總線的訪問時序)。如果採用其它更快的CPU,這個速度還可以提高。

原文來自:浩然電子