Skip to content

Extend 10Base-T decoder to catch wide eye at the beginning of the preamble of TX frames - #1114

Open
juan-domenech wants to merge 1 commit into
ngscopeclient:masterfrom
juan-domenech:master
Open

Extend 10Base-T decoder to catch wide eye at the beginning of the preamble of TX frames#1114
juan-domenech wants to merge 1 commit into
ngscopeclient:masterfrom
juan-domenech:master

Conversation

@juan-domenech

Copy link
Copy Markdown

Fix for issue:
Ethernet10BaseTDecoder expects frames to begin with a falling edge. In some cases TX frames (from the host computer to the network) begin with a positive edge.
Also, in these cases, the first zero crossing is 100ns long instead of the 50ns we see in RX frames.
This causes the decoder to not decode TX frames.

Debug log of the issue:

[Ethernet10BaseTDecoder::Refresh]     Start of frame
    [T = 799983.000 ns] Found initial falling edge
[Ethernet10BaseTDecoder::Refresh]     Edge was in the wrong place, skipping it and attempting resync
[Ethernet10BaseTDecoder::Refresh]     Edge was in the wrong place, skipping it and attempting resync
[Ethernet10BaseTDecoder::Refresh]     Edge was in the wrong place, skipping it and attempting resync
...
...
...
[Ethernet10BaseTDecoder::Refresh]     Edge was in the wrong place, skipping it and attempting resync
[Ethernet10BaseTDecoder::Refresh]     Capture ended while looking for end of this bit

Beginning of the 10Base-T transmission frame:
10baset-tx-frame-example

Proposed solution:

  • Create 2 new constants for a Full Width eye
  • Extend the "Edge was in the wrong place" range condition to make valid both cases: 50ns and 100ns length

This has been tested using Ethernet 10Mbits hardware and waveforms from a Rigol oscillloscope.

Additional context on this Youtube ▶️ video:
Exploring Ethernet: Decoding 10BASE-T (success!)

@juan-domenech

Copy link
Copy Markdown
Author

Waveform used in the test http://juan-domenech.github.io/chan2-source.csv.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant