Manchester code
In telecommunication and data storage, Manchester coding (also known as phase encoding, or PE) is a line code in which the encoding of each data bit is either low then high, or high then low, of equal time. It therefore has no DC component, and is self-clocking, which means that it may be inductively or capacitively coupled, and that a clock signal can be recovered from the encoded data. As a result, electrical connections using a Manchester code are easily galvanically isolated using a network isolator—a simple one-to-one isolation transformer.
Contents
Background
The name comes from its development at the University of Manchester, where the coding was used to store data on the magnetic drum of the Manchester Mark 1 computer.
Manchester coding is widely used (e.g., in 10BASE-T Ethernet (IEEE 802.3); consumer IR protocols; see also RFID or near field communication). There are more complex codes, such as 8B/10B encoding, that use less bandwidth to achieve the same data rate but may be less tolerant of frequency errors and jitter in the transmitter and receiver reference clocks.[citation needed]
According to Cisco, "Manchester encoding introduces some difficult frequency-related problems that make it unsuitable for use at higher data rates."[1]
Features
Manchester code ensures frequent line voltage transitions, directly proportional to the clock rate; this helps clock recovery.
The DC component of the encoded signal is not dependent on the data and therefore carries no information, allowing the signal to be conveyed conveniently by media (e.g., Ethernet) which usually do not convey a DC component.
Description
Extracting the original data from the received encoded bit (from Manchester as per 802.3):
original data = clock XOR Manchester value
0 0 0
0 1 1
1 0 1
1 1 0
Summary:
- Each bit is transmitted in a fixed time (the "period").
- A
0
is expressed by a low-to-high transition, a1
by high-to-low transition (according to G.E. Thomas' convention—in the IEEE 802.3 convention, the reverse is true).[2] - The transitions which signify
0
or1
occur at the midpoint of a period. - Transitions at the start of a period are overhead and don't signify data.
Manchester code always has a transition at the middle of each bit period and may (depending on the information to be transmitted) have a transition at the start of the period also. The direction of the mid-bit transition indicates the data. Transitions at the period boundaries do not carry information. They exist only to place the signal in the correct state to allow the mid-bit transition. The existence of guaranteed transitions allows the signal to be self-clocking, and also allows the receiver to align correctly; the receiver can identify if it is misaligned by half a bit period, as there will no longer always be a transition during each bit period. The price of these benefits is a doubling of the bandwidth requirement compared to simpler NRZ coding schemes (or see also NRZI).
Manchester encoding as phase-shift keying
Manchester encoding is a special case of binary phase-shift keying (BPSK), where the data controls the phase of a square wave carrier whose frequency is the data rate. Such a signal is easy to generate.
Conventions for representation of data
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., Andy Tanenbaum).[3] 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., William Stallings [4]) as well as by IEEE 802.4 (token bus) and lower speed versions of 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 is inverted in communication, it is transformed from one convention to the other. This ambiguity can be overcome by using differential Manchester encoding.
See also
- Coded mark inversion
- Differential Manchester encoding
- Self-clocking signal
- Binary offset carrier modulation
References
- ↑ http://docwiki.cisco.com/wiki/Ethernet_Technologies
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
This article incorporates public domain material from the General Services Administration document "Federal Standard 1037C" (in support of MIL-STD-188).