Manchester encoding

A method of transmitting bits which enables the receiver to easily synchronise with the sender.

A simple way of signalling bits might be to transmit a high voltage for some period for a 1-bit and a low voltage for a 0 bit:

` Bits Sent:             1     1     0     0`

``` Signal:      High    ___________
Low                |___________```

` Time: ->            .     .     .     .     .`

However, when several identical bits are sent in succession, this provides no information to the receiver about when each bit starts and stops.

Manchester encoding splits each bit period into two, and ensures that there is always a transition between the signal levels in the middle of each bit. This allows the receiver to synchronise with the sender.

In normal Manchester encoding, a 1-bit is transmitted with a high voltage in the first period, and a low voltage in the second, and vice verse for the 0 bit:

` Bits Sent:             1     1     0     0`

``` Signal:      High    __    __       __    __
Low       |__|  |_____|  |__|```

` Time: ->            .  '  .  '  .  '  .  '  .`

In Differential Manchester encoding, a 1-bit is indicated by making the first half of the signal equal to the last half of the previous bit's signal and a 0-bit is indicated by making the first half of the signal opposite to the last half of the previous bit's signal. That is, a zero bit is indicated by a transition at the beginning of the bit.

Like normal Manchester encoding, there is always a transition in the middle of the transmission of the bit.

`       Differential Manchester Encoding`

` Bits Sent:            1     1    0     0`

``` Signal:      High  ____       __    __    __
Low       |_____|  |__|  |__|```

` Time: ->            .  '  .  '  .  '  .  '  .`

With each bit period half as long, twice as much bandwidth is required when using either of the Manchester encoding schemes.