Manchester Encoding is used in Ethernet to send data through the cable. It is a digital signal scheme that helps to reduce errors.

Manchester Encoding is a form of State-Transition Encoding (STE). Basically, the actual changing of the state from a signal, from a low (0 Volts) to a high voltage (+3 or +5 Volts) or from a high to low voltage. Manchester Encoding can also be classified as a type of Biphase coding.


 Data         0    1    0    1    1    1    0    0
          __      _____     ___  ___  ____      
            |    |     |   |   ||   ||    |   ||   
            |    |     |   |   ||   ||    |   ||   
            |____|     |___|   ||   ||    |___||___   
 Time    0    1    2    3    4    5    6    7    8

To set a digital 0, the signal must transition from high to low. To set a digital 1, the signal must transition from low to high. These state changes occur just before the bit is set in the device. It is the actual change of the state of the voltage that creates the digital value.

In the above example:

  1. For the first data bit at time 1, the signal is transitioning from high to low just before the time mark is reached, therefore at time 1 the digital bit is a zero.

  2. For the second bit at time 2, the signal transitions from low to high. Therefore, the data is a digital 1.

  3. For the third bit, at time 3, the signal is transitioning from high to low, therefore at time 1 the digital bit is a zero.

  4. For the fifth bit at time 4, the signal transitions from low to high. Therefore, the data is a digital 1.

  5. This is the one that sometimes confuses people. To create another digital 1, the signal must transition from low to high just before the time mark. Therefore, the signal goes low and then immediately goes back high. This last transition creates the digital 1 at time 5.

  6. Same as above.

  7. The signal transitions from high to low and stays there, creating a digital 0 at time 7.

  8. This is similar to creating consecutive 1's. To create another digital 0, the state must transition from high to low. The signal goes high then immediately low, which creates a digital 0 again because the state goes from high to low.

Manchester Encoding is used in a lot of electronics besides Ethernet. It is also used in military communications and data signaling.

The Manchester encoding I know about is slightly different than the one Rancid_Pickle wrote about. First of all, there are two 'polarities' associated with Manchester encoding: one can choose low-to-high to represent either a digital '1' or a digital '0'. I normally associate low-to-high with digital '0', but that's a choice that varies from individual to individual (and 'standard' to 'standard').

More significantly, however, the Manchester encoding I know always has the transition exactly in the middle of the bit. Therefore, a digital '0' is always represented by half a bit period of low signal followed by half a bit period of high signal, and a digital '1' is always represented by half a bit period of high signal followed by half a bit period of low signal. The test data in the above writeup then look like this:

Data   <-0-> <-1-> <-0-> <-1-> <-1-> <-1-> <-0-> <-0->
          -----       -----    --    --       --    --
         |     |     |     |  |  |  |  |     |  |  |
         |     |     |     |  |  |  |  |     |  |  |
       --       -----       --    --    -----    --
Time  0     1     2     3     4     5     6     7     8

A lot more regular-looking a waveform than in the above writeup. It has a number of features worth noting. Every pulse is exactly half a bit wide or exactly one bit wide. When the data are unchanging, the signal is a regular square wave with a frequency equal to the bit rate. When the data are alternating, the signal is a regular square wave with a frequency equal to half the bit rate. A sequence of '1's always begins with a high pulse a full bit period wide, a sequence of '0's always begins with a low pulse a full bit period wide (except for the very first bit transmitted).

A more technical name for Manchester encoding is fully-coherent bi-phase encoding. Differentially-coherent bi-phase encoding is achieved by performing a gray code to binary transformation on the data, and transmitting the result with Manchester encoding.

Log in or register to write something here or to contact authors.