Introdução à comunicação entre computadores e tecnologias de rede/Como representar dados em sinais digitais

Origem: Wikilivros, livros abertos por um mundo aberto.
Saltar para a navegação Saltar para a pesquisa

Veremos agora quais são as principais formas utilizadas para se representar dados por meio de sinais digitais.

Não Retorno a o Zero (NRZ - Non-Return to Zero)[editar | editar código-fonte]

Esta é o tipo de codificação mais simples. Por meio dela, nós apenas representamos um 1 por meio de um sinal alto e um 0 por meio de um sinal baixo:

NRZcode.png

A desvantagem deste tipo de codificação é que nós podemos ter que enviar sinais repetitivos como "1111111111111..." ou "000000000...". Caso nós não mudemos o sinal enviado digitalmente para "alto" e "baixo" por muito tempo, corremos o risco de perdermos a sincronia. Se isso ocorrer, as mensagens deixarão de ser compreendidas pelo nó de destino.

Não Retorno a o Zero Invertido (NRZI - Non-Return to Zero Inverted)[editar | editar código-fonte]

Nesta codificação, para transmitir um "0", nós mantemos o sinal como está e para transmitir um "1", nós invertemos o sinal. É comum que na prática a cada 4 bits transmitidos por meio do NRZI, seja enviado um bit lógico "1" para que não ocorra uma perda de sincronia caso estejamos transmitindo muitos zeros.

Abaixo, vemos um exemplo de transmissão NRZI:

NRZI example.png

Codificação de Manchester[editar | editar código-fonte]

Segundo Tanenbaum, em seu livro Redes de Computadores Quarta Edição, neste tipo de codificação, representamos um "1" por um sinal alto que desce e "0" por um sinal baixo que sobe. Esta codificação é usada em redes Ethernet/802.3. A sua principal vantagem é a facilidade de se recuperar erros. Mesmo que parte da transmissão se perca, ainda assim é fácil detectar qual foi o sinal enviado.

Abaixo, você vê um exemplo de dados sendo enviado pela Codificação de Manchester:

Manchester 0to1 logic.svg

Codificação de Manchester Diferencial[editar | editar código-fonte]

Ao contrário da Codificação de Manchester que nos permite saber qual é o sinal enviado simplesmente acompanhando uma transição, a Codificação de Manchester Diferencial é um pouco mais complexa. Para descobrirmos no Manchester Diferencial qual é o sinal transmitido, precisamos saber também qual era o estado anterior do sinal.

Um "1" é representado fazendo a primeira metade do sinal igual à última metade do sinal anterior e um "0" é representado fazendo a primeira metade do sinal ser diferente da segunda metade do sinal anterior. Ou, em outras palavras, se no começo do sinal houve mudança de sinal, é 0 e se não houve, é 1.

Perceba que mesmo que o sinal seja invertido, por meio desta codificação, os nós poderão se comunicar sem problemas. Afinal, o que importa é a transição, não a polaridade.

Abaixo vemos um exemplo de transmissão via Manchester Diferencial:

Differential manchester encoding.svg

Inversão de Sinal Alternada (AMI - Alternated Mark Inversion)[editar | editar código-fonte]

Por meio desta codificação, representamos um 0 como um sinal de 0 volts e um 1 ora com uma voltagem positiva e ora com voltagem negativa.

Abaixo vemos uma transmissão AMI:

Ami encoding.svg