Manchester code: Difference between revisions

Content deleted Content added
No edit summary
 
(20 intermediate revisions by 13 users not shown)
Line 1:
{{short description|A lineLine code used in early magnetic data storage and Ethernet}}
{{Use dmy dates|date=April 2022}}
 
In [[telecommunicationtelecommunications]] and [[computer data storage|data storage]], '''Manchester code''' (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, for equal time. It is a [[self-clocking signal]] with no [[DC component]]. Consequently, electrical connections using a Manchester code are easily [[galvanic isolation|galvanically isolated]].
 
Manchester code derives its name from its development at the [[University of Manchester]], where the coding was used for storing data on the magnetic drums of the [[Manchester Mark 1]] computer.
 
Manchester code was widely used for [[magnetic recording]] on 1600&nbsp;bpi computer tapes before the introduction of 6250&nbsp;bpi tapes which used the more efficient [[group-coded recording]].<ref>{{cite web |title=Digital Magnetic Tape Recording |author-first=John J. G. |author-last=Savard |date=2018 |orig-year=2006 |work=quadibloc |url=http://www.quadibloc.com/comp/tapeint.htm |access-date=2018-07-16 |url-status=livedead |archive-url=https://web.archive.org/web/20180702234956/http://www.quadibloc.com/comp/tapeint.htm |archive-date=2018-07-02 }}</ref> Manchester code was used in early [[Ethernet physical layer]] standards and is still used in [[consumer IR]] protocols, [[RFID]] and [[near-field communication]]. It was and still is used for uploading commands to the [[Voyager spacecraft]].<ref>{{cite web |last1=Hughes |first1=Mark |title=Communicating Over Billions of Miles: Long Distance Communications in the Voyager Spacecraft |url=https://www.allaboutcircuits.com/news/voyager-mission-anniversary-celebration-long-distance-communications/ |website=All About Circuits |access-date=27 September 2024 |date=2 July 2017}}</ref>
 
== Features ==
Manchester coding is a special case of [[binary phase-shift keying]] (BPSK), where the data controls the [[Phase (waves)|phase]] of a square wave [[Carrier signal|carrier]] whose frequency is the data rate. 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. Therefore connections may be [[Inductive coupling|inductively]] or [[Capacitive coupling|capacitively]] coupled, allowing the signal to be conveyed conveniently by galvanically isolated media (e.g., Ethernet) using a [[network isolator]]—a simple one-to-one [[isolationpulse transformer]] which cannot convey a DC component.
 
=== Limitations ===
According to [[Cisco]], "Manchester encoding introduces some difficult frequency-related problems that make it unsuitable for use at higher data rates".<ref>{{citation |url=http://docwiki.cisco.com/wiki/Ethernet_Technologies |title=Ethernet Technologies |publisher=[[Cisco Systems]] |access-date=2017-09-12 |quote=Manchester encoding introduces some difficult frequency-related problems that make it unsuitable for use at higher data rates. |archive-url=https://web.archive.org/web/20181228005303/http://docwiki.cisco.com/wiki/Ethernet_Technologies |archive-date=2018-12-28 |url-status=dead}}</ref><!--Difficulties are in meeting [[Title 47 CFR Part 15]] and other RF emissions requirements.-->
Manchester coding's data rate is only half that of a non-coded signal, which limits its usefulness to systems where bandwidth is not an issue, such as a [[local area network (LAN)]].<ref name=":0">{{Cite web |last=Oed |first=Richard |date=2022-04-22 |title=Old, but Still Useful: The Manchester Code |url=https://www.digikey.com/en/blog/old-but-still-useful-the-manchester-code |url-status=live |archive-url=https://web.archive.org/web/20220822210500/https://www.digikey.com/en/blog/old-but-still-useful-the-manchester-code |archive-date=2022-08-22 |access-date=2023-02-02 |website=[[DigiKey]]}}</ref>
 
According to [[Cisco]], "Manchester encoding introduces some difficult frequency-related problems that make it unsuitable for use at higher data rates.<ref name=".:0" /><ref>{{citation |url=http://docwiki.cisco.com/wiki/Ethernet_Technologies |title=Ethernet Technologies |publisher=[[Cisco Systems]] |access-date=2017-09-12 |quote=Manchester encoding introduces some difficult frequency-related problems that make it unsuitable for use at higher data rates. |archive-url=https://web.archive.org/web/20181228005303/http://docwiki.cisco.com/wiki/Ethernet_Technologies |archive-date=2018-12-28 |url-status=dead}}</ref><!--Difficulties are in meeting [[Title 47 CFR Part 15]] and other RF emissions requirements.-->
There are more complex codes, such as [[8B/10B encoding]], that use less [[bandwidth (signal processing)|bandwidth]] to achieve the same data rate but may be less tolerant of frequency errors and [[jitter]] in the transmitter and receiver reference clocks.{{cn|date=November 2015}}
 
There are more complex codes, such as [[8B/10B encoding]], that use less [[bandwidth (signal processing)|bandwidth]] to achieve the same data rate but may be less tolerant of frequency errors and [[jitter]] in the transmitter and receiver reference clocks.{{cncitation needed|date=November 2015}}
==Encoding and decoding==
[[Image:Manchester encoding both conventions.svg|thumb|650px|An example of Manchester encoding showing both [[Manchester code#Conventions for representation of data|conventions for representation of data]]]]
 
==Encoding and decoding==
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.
[[Image:Manchester encoding both conventions.svg|class=skin-invert-image|thumb|650px|An example of Manchester encoding showing both [[Manchester code#Conventions for representation of data|conventions for representation of data]], where : {{math|1=''[[Leet|1337]]''<sub>10</sub> = ''10100111001''<sub>2</sub>}}]]
 
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.
 
===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., [[Andrew S. Tanenbaum|Andy Tanenbaum]]).<ref name="tanenbaum">{{cite book |author-last=Tanenbaum |author-first=Andrew S. |author-link=Andrew S. Tanenbaum |title=Computer Networks |edition=4th |publisher=[[Prentice Hall]] |date=2002 |pages=[https://archive.org/details/computernetworks00tane_2/page/274 274–275] |isbn=0-13-066102-3 |url=https://archive.org/details/computernetworks00tane_2/page/274 }}</ref> It specifies that for a 0 bit the signal levels will be low-highlow–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 highhigh–low. This is also known as Manchester II or Biphase-lowL code.
 
The second convention is also followed by numerous authors (e.g., [[William Stallings]])<ref name="stallings">{{cite book |author-last=Stallings |author-first=William |author-link=William Stallings |title=Data and Computer Communications |edition=7th |publisher=[[Prentice Hall]] |date=2004 |pages=[https://archive.org/details/datacomputercomm00stal_1/page/137 137–138] |isbn=0-13-100681-9 |url=https://archive.org/details/datacomputercomm00stal_1/page/137 }}</ref> 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-lowhigh–low signal sequence and a logic 1 is represented by a low-highlow–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]].
Line 44 ⟶ 48:
|-
| rowspan=2 | 0
| rowspan=4 | XOR <br />⊕
| 0
| rowspan=4 | =
Line 58 ⟶ 62:
 
Encoding conventions are as follows:
* Each bit is transmitted in a fixed time (the "period").
* A <code>0</code> is expressed by a low-to-high transition, a <code>1</code> by high-to-low transition (according to G. E. Thomas's convention—inconvention – in the IEEE 802.3 convention, the reverse is true).<ref name="Manchesterencoding">{{Cite journal |author-last1=Forster |author-first1=R. |title=Manchester encoding: Opposing definitions resolved |doi=10.1049/esej:20000609 |journal=Engineering Science & Education Journal |volume=9 |issue=6 |pages=278278–280 |date=2000|doi-broken-date=12 July 2025 }}</ref>
* The transitions which signify <code>0</code> or <code>1</code> occur at the midpoint of a period.
* Transitions at the start of a period are overhead and don't signify data.
Line 70 ⟶ 74:
==References==
{{Reflist}}
{{refbegin}}
{{FS1037C MS188}}
{{refend}}
 
{{Bit-encoding}}
Line 76 ⟶ 82:
[[Category:Line codes]]
[[Category:Department of Computer Science, University of Manchester]]
[[Category:History of computing in the United Kingdom]]
[[Category:History of telecommunications in the United Kingdom]]