Manchester code

From Free net encyclopedia

Revision as of 04:34, 15 March 2006; view current revision
←Older revision | Newer revision→

In telecommunication, Manchester code is a form of data communications line code in which each bit of data is signified by at least one transition. Manchester encoding is therefore considered to be self-clocking, which means that accurate synchronisation of a data stream is possible. Each bit is transmitted over a predefined time period.

Manchester coding provides a simple way to encode arbitrary binary sequences without ever having long periods without clock transitions, thus preventing the loss of clock synchronisation, or bit errors from low-frequency drift on poorly-equalized analog links (see ones-density). If transmitted as an AC signal it ensures that the DC component of the encoded signal is zero, again preventing baseline drift of the repeated signal, making it easy to regenerate and preventing waste of energy. However, there are today many more sophisticated codes which accomplish the same aims with less bandwidth overhead, and less synchronisation ambiguity in pathological cases. Regardless of these losses, manchester coding has been adopted into many efficient and widely used telecommunications standards, such as Ethernet.

To accomplish this, manchester codes always have a transition at the middle of each bit period, and depending on the state of the signal, may have a transition at the beginning of the period as well. The direction of the mid-bit transition is what carries the data, with a low-to-high transition indicating one binary value, and a high-to-low transition indicating the other. Transitions that don't occur mid-bit don't carry useful information, and exist only to place the signal in a state where the necessary mid-bit transition can take place. Though this allows the signal to be self-clocking, it carries significant overhead as there is a need for essentially twice the bandwidth of a simple NRZ or NRZI encoding.

Image:Manchester encoding.svg

Manchester Encoding as Binary Phase Shift Keying

Manchester encoding is just a special case of Binary Phase Shift Keying, where the data to be transmitted controls the phase of a square wave carrier that is at the data rate in frequency. Therefore, it is extremely easy to generate such a signal digitally.

To control the consumed amount of bandwidth, a filter can be used to reduce the bandwidth to as low as 1Hz per bit/second, and still not lose any information during transmission. However, for practical reasons (and to further control bandwidth consumption, especially on crowded radio bands), most BPSK modulators choose a carrier frequency which is much higher than the data rate, thus resulting in tighter, more easily filtered bandwidths. The property of 1Hz/bit/second is preserved, however.

Conventions for representation of data

Image:Manchester.png
Encoding of 11011000100 in Manchester code (as per G. E. Thomas)

There are two opposing conventions for the representations of data.

The first of these was first published by G. E. Thomas in 1949 and is followed by numerous authors (e.g., Andrew S. Tanenbaum). It specifies that for a 0 bit the signal levels will be Low-High (assuming an amplitude physical encoding of the data) - with a low level in the first half of the bit period, and a high level in the second half. For a 1 bit the signal levels will be High-Low.

The second convention is also followed by numerous authors (e.g., Stallings) as well as by IEEE 802.4 (token ring) and IEEE 802.3 (Ethernet) standards. It states that a logic 0 is represented by a High-Low signal sequence and a logic 1 is represented by a Low-High signal sequence.

If a Manchester encoded signal gets inverted somewhere along the communication path, it transforms from one variant to another. However, such cases can be easily overcome by using differential Manchester encoding.

A consequence of the transitions for each bit is that the bandwidth requirement for Manchester encoded signals is doubled compared with asynchronous communications, and the signal spectrum is considerably wider. Although Manchester encoding is a highly reliable form of communication, the bandwidth requirements are seen as a disadvantage, and most modern communication takes place with protocols with more modern line codes which achieve the same goals with better coding performance and smaller bandwidth requirements.

One consideration with Manchester encoding is synchronising the receiver with the transmitter. At first sight it might seem that a half bit period error would lead to an inverted output at the receiver end, but further consideration reveals that on typical data this will lead to code violations. The hardware used can detect these code violations, and use this information to synchronise accurately on the correct interpretation of the data.

In summary:

  • data and clock signals are combined to form a single self-synchronising data stream
  • each encoded bit contains a transition at the midpoint of a bit period
  • the direction of transition determines whether the bit is a "0" or a "1," and
  • the first half is the true bit value and the second half is the complement of the true bit value. Contrast with non-return-to-zero.

Some source: from Federal Standard 1037C in support of MIL-STD-188de:Manchester Code es:Codificación Manchester fr:Codage Manchester it:Codifica Manchester sv:Manchesterkodning