EthernetExtensions

From RevSpace
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Project EthernetExtensions
Exploring Ethernet PHYs features, faillures, and timing
Status Initializing
Contact cmpxchg
Last Update 2020-06-09

Problem description

Ethernet is very ubiquitous in today's world. Many of the courseware is about ARP, DHCP, and TCP/IP. But, what happens at the layers below, that provided us with 10, 100 and 1000 megabits per second ?

  • What can cause such link to fail ?
  • Are there any propietary extensions known that can be triggered by older or newer hardware ?
  • Which bandwidth limits apply to the physical layer, relative to the theoretical bandwidth ?
  • How can one push that bandwidth limit to the fullest, so that no time on the cable gets wasted ?
  • Would using a VPN or IPV6 waste bandwidth by adding more headers to each ethernet frame, or does the time-slotted nature of a real link make this less relevant ?
  • There are ways to not only distribute data over ethernet, but also provide accurate time-stamping of all or specific ethernet frames. This way timing can be distributing along with data. This can be beneficial for multimedia-purposes, synchronising multiple audiostreams, or aligning delays with multiple conference-calls going on in the same room (echo cancellation).
  • IEEE 1588 can be used https://en.wikipedia.org/wiki/Precision_Time_Protocol

Exploring problem space

10 megabits per second, or 10-Base-T is using manchester-coding, a simple signal with an embedded clock. In the ethernet PHY, it is converted to a 2.5 MHz, 4-bit parallel signal. When using 100 megabits per second, or 100-Base-T, 4B5B encoding is used, next to MLT-3 encoding. This allows for a few ambiguities that can be turned into (propietary) extensions between ethernet PHYs. In the ethernet PHY, these ambiguities are resolved and lead to a 25 MHz, 4-bit parallel signal to the microcontroller.

Specific PHY implementation of 10/100 megabit

Some STM32 development board have have a SMSC / Microchip ethernet PHY mounted, the LAN8742 RMII 10/100 ethernet PHY. http://ww1.microchip.com/downloads/en/DeviceDoc/8742a.pdf

It nicely details all design decisions that go into making an Ethernet link work, or potentially make it fail.

  • 100 mbps TX

The bitrate after of 25 MHz/4 bits or 50 MHz/2 bits (100 mbps). After the 4B/5B encoding it is actually 125 mbps. After this is additionally, scrambled, serialized, NRZI encoded, and MLT-3 modulated onto two differential lines, amplified, and routed to a pin on the chip. External to the chip, there are four transformers that remove DC components and prevent large voltages to be dissipated by a receiving chip.

  • 100 mbps RX

For reception, a clock must be recovered, as each ethernet transceiver has it's own clock and will wander tens of kHz around the advertised frequency/bitrate. On the short-term, lots of clock wandering can be expected. This clock is recovered, a PLL has a VCO that is steered towards the average bitrate the is received.The wander in speed/frequency can pose a limit on the length of a packet, in this case 1588 bytes. The end result is a 50 MHz, 2-bit wide signal transmitted to the microcontroller.

  • 10 mbps TX

The signal is accepted by the PHY from the microcontroller as a 5 MHz 2-bit wide signal.

  • 10 mbps RX

The signal is generated by the PHY to the microcontroller as a 5 MHz 2-bit wide signal.