Difference between revisions of "EthernetExtensions"

From RevSpace
Jump to navigation Jump to search
m
(Undo revision 25543 by Cmpxchg (talk))
(Tag: Undo)
Line 1: Line 1:
 +
  {{Project
 +
  |Name=EthernetExtensions
 +
  |Picture=
 +
  |Omschrijving=Exploring Ethernet PHYs features, faillures, and timing
 +
  |Status=Initializing
 +
  |Contact=cmpxchg
 +
  }}
 +
 +
==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==
 
==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.  
 
Some STM32 development board have have a SMSC / Microchip ethernet PHY mounted, the LAN8742 RMII 10/100 ethernet PHY.  
Line 6: Line 33:
  
 
* 100 mbps TX
 
* 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 a differential line, amplified, and routed to a pair of pins on the chip. External to the chip, there are two ethernet signal transformers that remove DC components and prevent large voltages to be dissipated by a receiving chip, preventing large DC currents and DC components of a static discharge.
+
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
 
* 100 mbps RX
Line 12: Line 39:
  
 
* 10 mbps TX
 
* 10 mbps TX
The signal is accepted by the PHY from the microcontroller as a 5 MHz 2-bit wide signal. Simple manchester encoding is used @ 20 MHz, no propiery extensions in the form of 4B/5B encoded words possible.
+
The signal is accepted by the PHY from the microcontroller as a 5 MHz 2-bit wide signal.
  
 
* 10 mbps RX
 
* 10 mbps RX
 
The signal is generated by the PHY to the microcontroller as a 5 MHz 2-bit wide signal.
 
The signal is generated by the PHY to the microcontroller as a 5 MHz 2-bit wide signal.

Revision as of 22:12, 9 June 2020

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.