![]() |
|
TN237 |
|
Description of Problem
The RealTek chip used in RabbitCore RCM3000 series modules (labeled 175-263 Rev. A) and in the SmartStar SR9150 CPU card (labeled 175-0197 Rev. ARev. C) fails to auto-negotiate from full duplex to half duplex when the board is placed on a half-duplex network. These earlier versions of the RabbitCore RCM3000 series modules and the SmartStar SR9150 CPU card do not support half-duplex operation. Other Z-World/Rabbit Semiconductor boards using the RealTek chip are by default in the half-duplex mode, but this setting can be overridden with a macro at compile time.
Discussion
The original Ethernet specification defines a default mode of operation with a half-duplex connection that is shared by all of the hosts on a network segment, and specifies the CSMA/CD, which is a set of rules to arbitrate access to that segment of the network. When a device on a half-duplex network wants to transmit, it first listens to make sure that the network is free. If the network is not being used, the device starts transmitting the Ethernet frame. Even with listening, it is still possible for two devices to start transmitting at the same time. When this happens, the condition is registered as a collision. Early collisions result in the host device retransmitting the frame at a later time.
An enhancement to the original Ethernet specification describes an optional point-to-point full-duplex connection. When hosts are in this mode, they do not need to use the CSMA/CD algorithm because they each have their own transmit channel that is not shared with other hosts.
When there is a mismatch between a full-duplex device and a half-duplex device on a network, the full-duplex side can start transmitting on the network when it is already in use from the half-duplex perspective. This can degrade the performance of a half-duplex network by causing extra, possibly late, collisions and unnecessary retransmissions.
Software Solution
RabbitCore RCM3000 series modules (labeled 175-263 Rev. A) and SmartStar SR9150 CPU cards (labeled 175-0197 Rev. ARev. C) cannot be configured for half-duplex operation. Later revisions of these boards support full-duplex or half-duplex connections with a software driver change. The new driver will operate correctly on older versions of the hardware, and the old driver will work on the newer revisions on the hardware, though in both of these cases the RealTek chip will remain configured for full-duplex operation. When both the new version of the hardware and software are used, the RCM3000 and SR9150 act like other Z-World/Rabbit Semiconductor RealTek-based products as described below.
Other Z-World/Rabbit Semiconductor RealTek-Based Boards
By default, the Dynamic C software is configured to place the RealTek-based board in the half-duplex mode. Use the
RT_FULLDUPLEXmacro to force the RealTek chip into full-duplex operationZ-World does not recommend forcing the RealTek chip into full-duplex operation if the board will be deployed on a half-duplex network.Non-RealTek Ethernet Boards
Z-World/Rabbit Semiconductor boards based on the SMSC or ASIX Ethernet chips negotiate properly between full duplex and half duplex, and so do not have this problem.
| 022-0090 Rev. A | |
| Z-World, Inc. www.zworld.com Phone: 1.530.757.3737 FAX: 1.530.757.3792 |
Rabbit Semiconductor www.rabbitsemiconductor.com Phone: 1.530.757.8400 FAX: 1.530.757.8402 |