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)