ENCODING
ENCODING
========
None of the versions of Ethernet uses straight binary encoding with 0 volts
for a 0 bit and 5 volts for a 1 bit because it leads to ambiguities.
If a station sends the bit string 001000, others might falsely interpret it as
100000000 or 01000000 because they cannot tell the difference between and idle
sender (0 volts) and a 0 bit (0 volts).
This problem can be solved by using a +1 volts for a 1 and -1 volts for a 0.
There is still the problem of a receiver sampling the signal at a slightly
different frequency other than the sender used to generate it.
In this situation the receivers need a way to unambiguously determine the
start, end or middle of each bit without reference to an external clock.
The 2 approaches are Manchester encoding and differential Manchester encoding:
MANCHESTER ENCODING
===================
In Manchester encoding, each bit is divided into 2 equal intervals.
A binary 1 bit is sent by having voltage set high during the first interval
and low during the second one.
A binary 0 bit is sent by having voltage set low during the first interval and
high in the second one.
This scheme ensures that every bit period has a transition in the middle,
making it easy for the receiver to synchronize with the sender.
The disadvantage of Manchester encoding is that it requires twice as much
bandwidth as straight binary encoding because the pulses are half the
bandwidth.
In both cases, there is a transition in the middle, making it easy for the
receiver to synchronize with the sender.
The Differential scheme requires more complex equipment but offers better
noise immunity.
All Ethernet systems use Manchester encoding due to its simplicity. The high
signal is +0.85 volts and the low signal are -0.85 volts, giving a DC value of
0 volts.