Der differentielle Manchester-Code (auch Conditioned Diphase[1]) ist ein Leitungscode zur Übertragung von Bitfolgen als Digitalsignal. Wie beim Manchester-Code selbst ist das Signal bei symmetrischer Aussteuerung DC-frei und enthält in jeder Bitperiode mindestens eine Flanke zwecks einfacher und robuster Taktrückgewinnung. Zusätzlich ist es invariant gegen Verpolung, eine Folge der Differenzcodierung.
Der differentielle Manchester-Code kommt in zwei Ausprägungen:
Die Bezeichnung differentieller Manchester-Code bedeutet nicht, dass der Sender die Bitfolge erst differenziert und dann Manchester-kodiert, sondern dass er (für BP-S) das Signal so aus den Manchester-II[6]-Symbolen 01 und 10 zusammensetzt, dass die differenzierte Symbolfolge die Bitfolge ergibt:
Die Flanken innerhalb der Symbole sind die garantierten Taktflanken, während sich zwischen zwei Symbolen nur dann eine Flanke ergibt, wenn sie gleich sind, also 0 kodieren, siehe nebenstehende Abbildung.
Dass der Code keinen Gleichspannungsanteil bewirkt, ergibt sich aus den verwendeten Symbolen 01 und 10, die jeweils beide Pegel enthalten. Das ermöglicht, die codierte Signalfolge zwecks galvanischer Trennung über Impulstransformatoren zu übertragen.
Der wesentliche Vorteil der differentiellen Manchester-Kodierung besteht darin, dass die Polarität des codierten Signals für den korrekten Empfang und die Decodierung keine Rolle spielt. Bei einer üblichen symmetrischen Signalübertragung über Aderpaare hat die Vertauschung der Adern untereinander keine Auswirkung, was die Installation vereinfacht (welche Adern als Paar zusammengehören, sieht man an der Verdrillung).
Ein Nachteil der zusätzlichen Signalflanke pro Bitperiode ist die hohe benötigte Bandbreite, doppelt so hoch wie bei der einfachen Binärcodierung (z. B. Non Return to Zero, NRZ), die jedoch ohne Lauflängenbegrenzung keine sichere Taktrückgewinnung bietet. Für verschiedene Kompromisse siehe Leitungscode.
Formal kann man die Manchester-Kodierung (differentiell oder nicht) als Blockcode 1B2B kennzeichnen – ein Datenbit wird in zwei Code-Bits kodiert. Von den vier Symbolen (00 01 10 11) werden nur zwei benutzt (01 10). Die beiden anderen Symbole (00 11) haben keine Flanke, wo in der Manchester-Kodierung eigentlich eine Flanke garantiert ist. Sie werden im Token-Ring-Netzwerk eingesetzt, um Anfang und Ende eines Rahmens zu markieren, und heißen dort J (00) und K (11).[5]