WIZnet Developer Forum

Wiz107 Retransmission Errors - for large received packets

I am using my Wiz107 to interface with a commercial instrument. When the instrument responds with a large data set (1456 bytes), the Wiz107 sends a duplicate ACK and then follows with a retransmission of the invoking command (command sent to the instrument that results in the large data stream response).

What is the size of the Wiz107 Ethernet receive buffer? Is there a standard method to implement flow control on the Ethernet bus? Changing the instrument’s parameters is not an option. If not, is there a better choice than the Wiz107? The Wiz107 is interfaced with a 16 bit Freescale MCU. Once the Wiz107 goes through this retransmit sequence, the communications link becomes unreliable.

I’ve tested the setup on a separate instrument with short responses and it works fine. I am monitoring the data stream between the Wiznet and instrument via a Lineeye LAN sniffer (hardware sniffer) and Wireshark (as the user interface).

Thanks for the help.

Hi. KHuffman.
WIZ107SR Receive buffer is consist of 2kB ‘H/W Rx socket buffer’ and 2kB ‘Ethernet to UART(Serial) buffer’ .

Main function of WIZ107SR is data transfer between the Ethernet and Serial device, especially Ethernet data is received immediately it arrived. if the continuous big data stream arrived from Ethernet to module before E2S process done, problem can be occurred very occasionally. in this case, the remaining data is discarded.

Would you please attach the wireshark capture file(.pcap) and configuration tool capture image on this post reply?
I will checked your configuration of WIZ107SR.
based on this, I think that we can find the cause of the problem.

Regards,
Eric.

Hi Eric,

Attached are the requested files. I am also reviewing the W5200E01-M3 as an alternate product (larger buffers and higher processor speed). However, it does not appear I can interface an external microcontroller with this board directly to the serial port and I don’t have embedded drivers for interface with the USB port. If the WIZ107 doesn’t have the buffer space or speed, please offer an alternate part recommendation.

Thanks for the assistance.
Kevin
Config_wireshark.zip (440 KB)

Hi, Kevin.
Thank you for your reply. I’ve checked your attachments.
so, I suggest the option adjusted as follows.

  • no [data packing timer] value (50 -> 0)
    => If this option enabled, the received data is stored to buffer until the specified time. it could cause a buffer overflow and packet discards.

If possible, it is good to try to control baud rate (more faster than 9600bps).
After adjusting options, let me know the results.

Regards,
Eric.

More to the point,
The W5200E01-M3 is not ‘S2E module’, it is the evaluation board of W5200 H/W TCP/IP chip.
so, this module is unsuitable for your application I guess.
(If you want to use ‘W5200E01-M3’ module, the S2E functions and configuration tool (for Windows) should be implemented yourself.)

Thanks,
The data packet timer was implemented for transmissions to the server. Without the timer implementation, each transmitted character was sent as an individual character transmissions over the ethernet link. The server could not correctly process received messages without the timer implementation.
I will adjust the timer and baud rates for optimized performance and let you know if problems still exist.

Does the W5200 chip (not the development module) fully implement the serial to ethernet functionality? I wasn’t clear if all layers for the ethernet communications was implemented in the W5200 or if some of the functionality was implemented on the associated ARM processor. Please advise what (if any) ethernet specific code would need to be implemented on my microcontroller if a W5200 chip were used. In other words, is the same level of functionality implemented in the W5200 as in the Wiz107? I understand the W5200 uses SPI versus serial (Wiz107) and the commands are different, but does the W5200 implement all of the ethernet stack and controls that are found on the Wiz107?

Thanks
Kevin

I adjusted the baud rate to 57600 and reduced the timer interval to 1 ms. I am still receiving transmission failures. At the faster baud rate I did attempt to disable the timer, but the Wiz107 began sending data in one byte packets to the client, so I need this function enabled.

Any more ideas?

Thanks
KEvin

As an alternate plan, I’ve purchased a WIZ145SR to use as a possible replacement for the WIZ107SR in my application. Some of the information I need is missing from your documentation. Please address the following:

  1. Is the Wiz145SR serial interface TTL level or RS232? The schematic for the test board shows USARTs for all of the serial channels from the Wiz145. This implies the Wiz145 serial interface is TTL level for all channels.

  2. The test board schematic shows a total of 5 serial channels (one is labeled as console). Is the console port the same as the debug port referenced in the user manual and datasheet? Do the UART1 through UART4 labels on the schematic correspond to Wiz14XSR config tool channels 1 through 4?

  3. I’m not quite sure I understand how the four serial channels and one ethernet port work together. Does the system have a single ethernet physical connection but can communicate with up to four different connected clients or servers (one device for each serial connection)? Please give an example of how you may use two or more serial ports in an application.

  4. Is there a configuration setting that tells the Wiz145 how many serial ports are used and which serial ports are used?

Thanks for the help
Kevin

Hello,

[quote]1) Is the Wiz145SR serial interface TTL level or RS232? The schematic for the test board shows USARTs for all of the serial channels from the Wiz145. This implies the Wiz145 serial interface is TTL level for all channels.
[/quote]
Yes, All serial interfaces on WIZ145SR are TTL level.

Yes, console port is identical to debug port. And all UARTx is corresponding to Channel x on WIZ14xSR Configuration tool with the same number.

Yes, you can attach four serial devices to its corresponding DB9 and communicate with peer system respectively.
Logically, there are four communication TCP/IP sockets on WIZ145SR which can communicate with peer systems thru one ethernet port. Every UART port is being bound to its dedicated TCP/IP socket and its corresponding socket will communicate with its peer system.

WIZ145SR tells how many channels are connected to peer system. But there is no option to show how many serial ports are used.

Thank you.

James.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.