Differential Manchester Encoding (DME) - serial protocol decoding

Differential Manchester encoding (DME) is a technique similar to Manchester encoding used to convert digital data into a format suitable for transmission over a physical medium like a cable. It's a type of line code that combines data and clock signals into a single, self-synchronising two-level data stream. This means no separate clock signal is needed, as the transitions signal both data and timing information, thus reducing cost. 

DME uses the presence or absence of transitions (either in the middle of the bit transition or at the bit boundary depending on the DME variant) to indicate logical values (zero or one). As a result DME eliminates any baseline wandering, and data is immune to noise and polarity inversions due to the use of transitions, not absolute voltage levels. 

There are several reasons why DME is used:

It is self-clocking, meaning it doesn't require a separate clock signal for synchronisation. This is because transitions in the signal represent both data and timing information. This simplifies hardware design and reduces transmission overhead.

DME relies on transitions for data representation, making it less susceptible to noise and distortion in the transmission channel. Unlike encoding methods based on absolute voltage levels, DME only needs to detect a change in signal level, making it more robust in noisy environments.

Unlike Manchester encoding, which is affected by polarity inversion of the signal, DME does not rely on absolute high and low levels to represent data. This makes it immune to accidental or intentional flips in the signal polarity, ensuring reliable data transmission.

DME is employed in various applications such as:

  • Automotive communication: DME is preferred in some automotive communication protocols such as10Base-T1S Ethernet due to its noise immunity and ability to operate in harsh environments.
  • Low-bandwidth Ethernet: DME is used in applications requiring reliable data transmission over short distances with limited bandwidth, such as industrial automation and embedded systems.
  • Token Ring networks: DME was used in the original Token Ring network specification due to its robust nature and efficient use of bandwidth.
  • Magnetic stripe data: DME is used to encode data on magnetic stripes found on credit cards and ID cards due to its self-clocking feature and noise immunity.

There are 3 subtle variants of DME:

Differential Manchester 

Each bit period is represented by a transition in the middle of a bit period. No transition at the start of a bit boundary represents logic ‘1’ and a transition present represents logic ‘0’.

packet diagram displaying each bit read on a DME bus

Biphase-M 

A transition occurs at the start of each bit period; this is the clock signal. A signal level transition in the middle of a bit period represents logic ‘1’ otherwise no transition represents logic ‘0’.

packet diagram displaying each bit read from a Biphase-M DME bus

Biphase-S 

A transition occurs at the start of each bit period; this is the clock signal. The absence of a signal level transition in the middle of a bit period represents logic ‘1’ otherwise a transition represents logic ‘0’.

packet diagram displaying each bit read from a Biphase-S DME bus

In conclusion DME is a valuable encoding technique used in a diverse range of applications due to its self-clocking, noise immunity, and polarity inversion immunity capabilities. DME is the preferred choice for applications where overall performance and reliability are critical. 

Capturing and analysing Differential Manchester communications with PicoScope

This guide will show you how to use the Differential Manchester decoder in the PicoScope software.

Select Serial decoding from the tab on the left. If it doesn’t appear on the main page, select the More… tab and you’ll find it there.

Next, select Differential Manchester from the list of available protocols.

In the Configuration tab, select the corresponding PicoScope input channel for Data and provide the appropriate values for the relevant Differential Manchester fields. Configuration options are described in more detail in the Manchester decoding guide.

In the Display tab, select the desired Graph and Table display format options to display Differential Manchester packets in the appropriate locations.

Double-click a packet in the graph view to see the same packet in the table view, and vice versa, or use the zoom feature to focus on the appropriate areas of the decoder packets.