Codificação Manchester

Como já estamos cansados de ver, nas LANs que seguem o padrão IEEE 802.3 (Ethernet) os equipamentos estão ligados através de cabos. E como as informações trafegam nestes cabos? Através de pulsos elétricos, claro. Como toda a linguagem dos computadores é na base dos 0's e 1's, foi preciso pensar em uma maneira de dizer, através de pulsos elétricos, o que é um '0' e o que é um '1'.

A primeira solução que vem a cabeça de qualquer um é realmente muito simples: durante uma transmissão os 1's são transmitidos como pulsos e os 0's como a ausência de pulsos. É o velho conceito dos interruptores, onde ligado significa 1 e desligado significa 0. Tá, muito bonito, mas e quando simplesmente não houver transmissão nenhuma? O receptor vai pensar que está recebendo uma seqüência infinita de zeros? Vê-se logo que esta não é uma boa solução.

Uma solução para resolver este problema, e que é usada por todos os sistemas Ethernet, é a Codificação Manchester. Neste esquema os pulsos elétricos enviados só têm significado aos pares: a cada par de pulsos enviados, se o primeiro for mais forte que o segundo, indica a transmissão de um 1. Inversamente, se o primeiro for mais fraco que o segundo, indica a transmissão de um 0. Assim, quando não houver transmissão, todos os pulsos serão fracos ou simplesmente inexistentes.

Para exemplificar, imagine a seguinte seqüência de pares de pulsos enviados: (alto baixo), (alto baixo), (alto baixo), (baixo alto), (alto baixo). Nesta codificação os números transmitidos seriam 11101.

Existe uma variação, chamada Manchester Diferencial, que é um pouco mais complicada. A explicação oficial é um pouco complicada, veja só: nesta codificação, os bits também são representados por pares de pulsos, só que, se o primeiro pulso de um par for da mesma intensidade do segundo pulso do par anterior, ou seja, não houve uma transição, há a transmissão de um 1; já se o primeiro pulso de um par for de intensidade diferente do segundo pulso do par anterior, ou seja, houve uma transição, há a transmissão de um 0.

Só que eu arranjei um jeito mais simples de entender a coisa: se o par recebido for igual ao par anterior a ele, significa um 0 transmitido. Se o par recebido for diferente do anterior a ele, significa um 1 transmitido. Pegando a mesma seqüência de pares de pulsos que usei acima, veja que a interpretação é bem diferente: 10011.

Agora fica a pergunta: como saber o valor primeiro bit nesta codificação se não há um anterior para comprar? Ao que parece, ele segue o esquema definido pela codificação Manchester original: se o primeiro pulso do par for mais forte, há a transmissão de um bit 1; se o primeiro pulso do par for mais fraco, há a transmissão de um bit 0.

Pra fechar, deixo um exercício para minhas leitoras: neste artigo vimos como seriam os pares de pulsos dos números 11101 (na Manchester simples) e 10011 (na Manchester Diferencial). Como seriam então os pares de pulsos do número 11101 na Manchester Diferencial e do número 10011 na Manchester simples?

(Resposta do exercício)

10 comentários:

Fillipe Furtado disse...

Boa explicação!

Mário Marinato disse...

Valeu o elogio, Filipe. É isso que busco ao escrever: explicações simples e direto ao ponto.

Não quis fazer o exercício, não?

Unknown disse...

beleza parceiro!
Estou estudando por tanembaum e com um grafico que ele colocou aqui, deu um nó em minha cabeça e por isso fiz uma busca sobre o assunto e encontrei o seu site. Voltarei agora ao tanembaum e irei reler o tópico! Um forte abraço e obrigado pelas informações

Mário Marinato disse...

Olá, George.

Se você não entender o que o Tanenbaum disse, me fala o que é que eu tento arranjar um jeito melhor de explicar e escrevo um artigo aqui pro blog.

Grande abraço.

Unknown disse...

Boa explicação!, usarei, aliás já estou usando, seu blog como fonte de pesquisa também.

FIrmes disse...

Boa explicação, farei prova de redes hj e isso ajudou muito ao entedimento.

Mário Marinato disse...

Servíamos bem para servir sempre!

Anônimo disse...

Muito boa a explicação, eu estava com dúvida se tinha entendido da maneira correta a partir do livro que estou lendo (Use a cabeça - Redes de computadores) e vendo a sua explicação percebi que estava certo! obrigado! muito bom conhecer o blog

Anônimo disse...

Caramba que explicação boa, parabéns!!.

No livro que estou estudando explicação era tão difícil de entender, estava até desanimando.

De novo muito obrigado mesmo, e parabéns pelo blog.

Unknown disse...

A melhor explicação de todas. Conseguiu expressar de forma simples e clara. Obrigada!