analyze Ethernet signals by Pico scope

Post any questions you may have about our current range of oscilloscopes
Post Reply
Posts: 0
Joined: Sat Oct 14, 2017 1:20 pm

analyze Ethernet signals by Pico scope

Post by hadi_m » Sat Oct 14, 2017 1:42 pm

I am working on Ethernet signal 100BASE-Tx. So I want to analyze Ethernet signals by Pico scope. For this I connected two devices base on stm32 microcontroller and configure them base on 100BASE-TX. My problem is how I can recognize beginning of the packet and how can I decode MLT-3 Signal code to original data only by using signals. And another problem is, before sending any packet I see signal on the line So what is that and how data will send over this signal?

Posts: 471
Joined: Mon Aug 11, 2014 11:14 am

Re: analyze Ethernet signals by Pico scope

Post by Gerry » Mon Oct 16, 2017 5:46 pm

Hi hadi_m,

First of all, just so that you are aware, to perform 100base-TX analysis with a PicScope you should have a PicoScope that has a fast enough sample rate, i.e. ≥375MS/s.
Note - If you're not interested in how we arrive at 375MS/s then skip to the next paragraph. So, for 100Base-TX using MLT3 encoding, NRZI (Non-Return-to-Zero, Invert-on-one) encoding, aswell as 4B5B encoding, the waveform frequency at the physical layer is 31.25MHz (100B/s ÷2 for MLT3, ÷2 for NRZI, x 5/4 for 4B5B). However MLT3 uses 3 level encoding, which means that the levels (and therefore rise-times) are halved, and the waveform is a pulse (as opposed to a sine-wave, which requires a sample rate of greater than 5 times the bandwidth). So, to capture 100Base-TX with enough signal integrity for decoding you need a PicoScope that has a bare minimum bandwidth of 2 x 31.25 x 6 MHz, i.e. 375MS/s. Alternatively, according to the IEEE 802.3 specification for 100BASE-TX, the rise/fall time of the physical layer signal is approx 4.7nS. This equates to an equivalent bandwidth of approx 75MHz, which requires a 375MS/s sample rate.

Also, so that you're aware, the 100Base-TX data packets can be quite large, and a data transaction on the bus could consist of many packets of data exchanged between devices (with significant gaps between them). Depending upon what type of communication transactions you are analyzing, and whether you want to analyze individual data packets, or transactions of multiple data packets, the amount of data that you will be able to analyze, in one communication session, will be limited by the size of the waveform buffer in the model of PicoScope that you have. So, if you want to analyze a large transaction between 2 devices, you will need a PicoScope with a deep buffer.

I also need to mention that in our Windows version of PicoScope 6 software we already have Serial Decoding of 100Base-TX (see here: ... l-analysis). So, if you are on not using our SDK (Software Development Kit), and not using a MAC or Linux version of PicoScope 6 (at the time of writing this) then you don't need to perform your own 100Base-TX decoding.
If you're thinking of performing decoding using the SDK then, unless you can find a suitable decoding algorithm from somewhere, developing the algorithm from first principles will not be trivial, and is beyond the scope of this post (a starting point would be to refer to the IEEE 802.3 standard for 100Base-TX, along with an application note for a 100Base-TX PHY).

Finally, so that you're aware, the Ethernet signal uses differential signalling. So, you should either use a Differential Probe or 2 similar probes on 2 channels, and then create a Math Channel that Calculates A-B for your own Decoding (or, if using our 100Base-TX serial decoder, use the Differential Probe or Math Channel for the data signal). Also, for the probes you might need to consider how you probe the physical layer signal, so that you don't load it too much and corrupt the communication (especially if your pushing the limits of the communication medium).

So, to answer your questions, for 100Base-TX, the line is never truly quiet, because a 4B5B pattern is transmitted as an idle signal (this particular signal allows devices to synchronize to each other during times of no data transmission). However, when signalling starts, it is sent as MLT3 over 4B5B. The beginning of the packet has a Preamble, followed by a Start-of-Frame Delimiter (SFD), so, if you were going to decode the signal you would look for the 8 Byte SFD, after the Preamble, as the start point. This isn't the forum for in depth discussion on the mechanics of communication protocols, so I won't go into any more detail here (besides, there are many sources on the internet explaining MLT3 encoding, NRZI encoding, 4B5B encoding, aswell as the 100Base-TX idle signal, preamble, and SFD packet segments).


Technical Specialist

Post Reply