Recently, I got a question from one of customers.
That is what they found out WIZ107SR’s flow control has something wrong while evaluating it.
As a result, I can say that WIZ107SR’s flow control works well but they had a different expectation.
Below is their network configuration for test.
Working scenario is like below.
- When one activates RTS signal of Computer A, it informs that Computer A has no buffer for data from WIZ107SR A.
- Then, WIZ107SR A doesn’t send any data received from its peer, WIZ107SR B, to Compter A via Serial I/F. (Decreasing windows size of WIZ107SR A shows that RTS/CTS flow control of WIZ107SR works well)
- But, WIZ107SR A has 2KB Rx data buffer inside its TCP/IP core logic so it accepts data from WIZ107SR B and stores it into its internal buffer.
- It means that Computer B can send data to WIZ107SR A via WIZ107SR B, even though Computer A activated RTS signal to inform that it has no room to store data.
- However, data which Computer B sent isn’t lost because WIZ107SR A stores it in its internal buffer.
- If one deactivates RTS signal of Computer A then all data which stored in Rx buffer of WIZ107SR A will be transferred to Computer A.
And to conclude,
- WIZ107SR’s RTS/CTS Flow control works well under the condition which we designed.
- With above network configuration, if ones want for Computer B not to send any data while Computer A activates RTS signal, then that is not WIZnet’s design goal.
- If someone wants that Computer B knows it instantly when Computer A activates RTS signal, then it’s an customization issue.