Duplex Mismatch and PROFINET

 

Profinet recommendation is to set both ends of each link to auto-negotiation.  This is also the general recommendation for ethernet in general. There is a good basis for this, and I will attempt to shed some light as to why it’s recommended and what are the alternatives and/or repercussions from not using auto-negotiation.

 

Auto-negotiation utilizes a series of pulses to determine both speed and duplex settings. When one end of the link is configured using auto-negotiation, but the other is fixed, the side using auto-negotiation can not detect the duplex mode being used. The reason for this is that auto-negotiation only sends out the fast link pulses to indicate full-duplex. So, if one end is set to fixed 100Mbs Full-Duplex it’s not sending out the fast link pulses for full duplex because that’s only done with auto-negotiation. Then on the other end, the device that is using auto-negotiation is NOT receiving the fast-link pulses indicating full-duplex, so this device will revert back to half-duplex.

 

What’s this mean? This means you have one device communicating at half-duplex and one device communicating at full-duplex. This will result in 1 of 2 things depending on which device you look at it from. The fixed (full-duplex) device will see CRC (cyclic redundancy check) errors and fragments (partial frame). This is caused by the device not watching for collisions when sending information. The auto (half-duplex) device will see this as collisions and late-collisions. With TCP traffic  or with very light loads this may not ever be noticed. TCP will see the message was not received and will retransmit. However, with real-time traffic (i.e. Profinet IO) the problem is the data will actually never arrive. As traffic increases the problem worsens.

 

In summary, the preferred method to avoid a duplex mismatch is to allow both sides to auto-negotiate. If this can not be achieved,ensure that both sides are fixed to the same duplex and speed.

If you have any questions please call 812-773-8326 where we are pleased to offer emergency 24/7 service.