Connect with us

Manchester Decoder

Discussion in 'Electronic Design' started by Jim Thompson, Oct 30, 2006.

Scroll to continue with content
  1. Jim Thompson

    Jim Thompson Guest

    Anyone have a simple-minded design for a Manchester Decoder?

    Thanks in advance!

    ...Jim Thompson
     
  2. John  Larkin

    John Larkin Guest

    If you detect transitions of either direction, and fire a
    non-retriggerable one-shot of 0.75T duration, you'll recover an
    unambiguous clock. The rest is easy.

    John
     
  3. Jim Thompson

    Jim Thompson Guest

    "transitions of either direction" ??

    Now I'm lost :-(

    Please elaborate for the analog guy ;-)

    ...Jim Thompson
     
  4. PeteS

    PeteS Guest

    Manchester encoding has:

    The line always transitions in the middle of the bit. If some bit(n) is
    the same as bit (n-1) then do _not_ transition the line at the start of
    bit n. If bit(n) and bit(n-1) are different, then transition the line
    at the start of bit n.

    As there's no guaranteed transition (low - high, high - low) at any
    position, the way to recover the clock is to capture both transition edges.

    So to paraphrase John, set up a non-retriggerable one-shot with 0.75T
    and make it trigger on a high-low _or_ low-high transition direct from
    the data.

    Good picture at http://en.wikipedia.org/wiki/Manchester_encoding

    There are one-shots with dual triggers available. Try this one for size:
    http://focus.ti.com/docs/prod/folders/print/cd74hct221.html

    :)

    Cheers

    PeteS
     
  5. PeteS

    PeteS Guest

    I'll admit to a major brainfart

    The encoding is:

    If zero, then the bit will transition from high to low in the middle of
    the bit, and a one will force a transition from low to high in the
    middle of the bit.

    My apologies (my mind was on something else I am in the middle of doing)

    Cheers

    PeteS
     
  6. Luhan

    Luhan Guest

    'Pure' Manchester code can have pathalogical groups of zeros or ones
    making decoding impossible. You also need to either use either Async
    (start and stop bits), or Sync (leading known sync byte) to be able to
    decode reliably.

    Luhan
     
  7. Luhan

    Luhan Guest

    Now that I recall, my earliest one loaded an assembler program into a
    wirewrapped 8080 machine using a version of Manchester. The only
    hardware was a single comparator connected to the headphone jack of a
    portable cassette player. This fed a variable width bit directly into
    an input port. The decoding (as well as the encoding) was all done in
    software.

    Luhan
     
  8. Guest

  9. John Larkin

    John Larkin Guest

    See abse.

    John
     
  10. Andrew Holme

    Andrew Holme Guest

  11. Well, Jim,

    Suppose the digital logic is below your imagination. To make things easier
    an every day example. It's like an airplane: When it's down it may go up,
    when it's up it will go down. No other directions available :)

    petrus bitbyter
     
  12. Fred Bartoli

    Fred Bartoli Guest

    John Larkin a écrit :
    If that's too simple, just think it at the transistor level :)
     
  13. Luhan

    Luhan Guest

  14. John B

    John B Guest

  15. Check OpenCores.org. I believe they have an open Decoder in VHDL.

    Cheers
     
  16. Jim Thompson

    Jim Thompson Guest

    What's VHDL? Does it have a VBE ?:)

    ...Jim Thompson
     
  17. John Larkin

    John Larkin Guest


    Very Hard to Deceipher Language. It's a way to make a simple schematic
    into scores of pages of gibberish.

    John
     
  18. Jim Thompson

    Jim Thompson Guest

    <Smirk>

    ...Jim Thompson
     
  19. Luhan

    Luhan Guest

    In the early days, Tarbel Electronics produced cassette interface
    boards for S100 computers. They used a modification of the Manchester
    code. 1's produced a full cycle at the clock frequency, 0's produced a
    half cycle at half the clock frequency...

    Decoding was more deterministic. You got a 'carrier' of all ones
    (clock) followed by an initial zero (start bit) which was easily
    detected being twice as long (independant of phase). The data was
    decoded as async bytes with 2 stop bits (to give your software time for
    storage and other overhead).

    This was the system I duplicated on my 8080 system. It got one hard
    error in the first year of operation using a standard audio cassette
    deck.

    Luhan
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-