Sincronização de bit

André Moreira (andre@dei.isep.ipp.pt)
Professor Adjunto do Departamento de Engenharia Informática do ISEP

Introdução

Um emissor de dados provoca alterações numa grandeza física do sinal de acordo com os dados que pretende transmitir (modulação ou codificação). O receptor monitoriza essa grandeza física e deste modo consegue obter os dados que estão a ser transmitidosi (desmodulação ou descodificação):

Para que isto seja possível é necessário que emissor e receptor estejam sincronizados, isto é o receptor têm de realizar as leituras sobre o sinal na altura certa. Tome-se como exemplo uma codificação binária NRZ-L dos bits 10101110001, a sequência de dados a transmitir vai originar um sinal com a seguinte forma:

O desejavel é que o receptor efectue as leituras exactamente nos pontos médios da codificação, isto é especialmente importante porque o comportamento "passa-baixo" dos meios de transmissão usados tem tendência a "arredondar" os sinais por supressão das frequências mais elevadas

Na figura seguinte podem ser observados erros na interpretação do sinal devido a desvios do ponto de leitura.

Devido à necessidade de evitar que evitar que o ruído seja confundido com o sinal, existe normalmente uma zona de sombra na qual o sinal não é considerado:

Como se pode observar as zonas onde o sinal deve ser lido pelo receptor tornam-se relativamente estreitas, o que significa que um pequeno desvio pode levar à impossíbilidade de realizar uma interpretação correcta:

Supondo que num dado momento inicial emissor e receptor estão sincronizados correctamente, a perda de sincronismo deve-se à existência de uma diferença entre as taxas de modulação/codificação e de desmodulação/descodificcção, deste modo o desvio tem sempre o mesmo sentido e acomula-se sucessivamente até atingir valores que levam à perda de dados.

O problema acabado de descrever tem a designação de sincronismo de bit, a designação não é inteiramente correcta porque não se aplica apenas a codificações binárias.

Transmissão assincrona

Esta abordagem implica a divisão dos dados em blocos suficientemente pequenos (geralmente 5 a 8 bits) para garantir que, existindo sincronização no ínicio, os desvios no final não serão significativos. Imediatamente antes do bloco de bits é colocado um bit adicional, designado por "start bit", que deve provocar uma mudança de estado. Por exemplo se o estado inactivo da linha corresponde a um valor baixo, numa codificação NRZ-L o "start bit" deve ser um 1.

O receptor detecta o "start bit" e nessa altura sincroniza o seu ponto de amostragem, como o número de bits que se segue é reduzido o eventual desvio existente não chega a acomular um valor significativo.

Os blocos de dados não podem ser enviados imediatamente a seguir uns aos outros porque isso impossibilitava o sincronismo, por exemplo numa codificação NRZ-L se o último bit de um bloco fosse 1, não existiria transição de estado com o "start bit" do bloco seguinte. Para evitar esta situação são acrescentados "stop bits" que devem correspoder ao estado inactivo da linha, por exemplo em NRZ-L se o estado inactivo é um valor baixo os "stop bits" devem ter o valor 0. Pode ser usado um "stop bit", dois "stop bits" ou um "stop bit" com duração equivalente a um bit e meio.

Embora simples, a eficiência das transmissões assincronas é baixa, os "overheads" (percentagem de informação não útil) são, no seu limite:

  • 37,5 %, com blocos de 5 bits, 1 "start bit" e 2 "stop bits"
  • 20 %, com blocos de 8 bits, 1 "start bit" e 1 "stop bit"

Transmissão sincrona

Nas transmissões sincronas os pontos onde o receptor realiza a amostragem são controlados directamente pelo emissor, deste modo garante-se que nunca existem desvios. Para isto ser conseguido é necessário um meio que garanta a transmissão do sinal de sincronismo desde o emissor ate ao receptor. As formas de enviar o sínal de sincronismo dependem do tipo de sinal que é usado:

  • para sinais digitais utilizam-se as codificações bifásicas, que por esta razão também são conhecidas por "self-clocking", ou seja "auto-sincronizadas". Uma vez que estas codificações garantem trasições no sinal em todos os bits, estas transições representam um sinal de sincronismo.
  • para sinais analogicos existem várias possibilidades, geralmente é usada a mudança de fase na portadora. Note-se que em modulação PSK as variações de fase nunca são nulas e têm como referência a fase anterior.

Sincronismo de tramas

O objectivo da sincronização de bit é garantir que o receptor sabe em que instante se inicia a transmissão de cada bit. Numa transmissão sincrona o sinal de sincronismo é enviado conjuntamente com os bits de informação, para tal ser possível tem de existir um fluxo continuo de bits entre emissor e receptor. Na prática a informação é enviada em blocos, existindo periodos de inactividade entre blocos sucessivos.

O sincronismo de bit é claramente uma função do nível 1 do modelo OSI, contudo problemas semelhantes podem ser considerados no nível acima, assim no nível 2 a informação está organizada em blocos de grande dimensão que tomam a designação de tramas, por isso aqui o problema é determinação do inicio de uma trama e garantir a sincronização de bit antes do seu ínicio. Trata-se de um problema semelhante ao colocado pelas transmissões assincronas, estabelecendo um paralelo entre os caracteres de uma comunicação assincrona e uma trama de uma comunicação sincrona, a determinação do ínicio dos caracteres transforma-se agora na determinação do ínicio das tramas.

Para resolver este problema as tramas possuem no seu inicio uma sequência de bits que é facilmente identificavel pelo receptor e que deve ter uma constituição tal que facilite o sincronismo de bit.

As tramas podem ser organizadas em bits ou em bytes (octetos/caracteres), as figuras seguintes ilustram uma trama Ethernet 802.3, organizada em bytes e uma trama HDLC, organizada em bits.

Trama Ethernet 802.3Trama HDLC

Enquanto uma trama Ethernet possui um número de bits sempre multiplo de 8, uma trama HDLC pode possuir qualquer número de bits.

Note-se, no caso Ethernet, a existência de uma sequência longa de bits alternados, como o Ethernet utiliza codificação Manchester, essa é a sequência que facilita o sincronismo de bit, pois produz um sinal regular de frequência mais baixa. Os últimos dois bits 1 seguidos sinalizam o inicio da trama propriamente dita (sincronismo de trama).

As tramas HDLC utilizam apenas oito bits para sinalizar o inicio e fim da trama, enquanto as tramas Ethernet possuem no seu interior um número (total) que indica o comprimento da trama em bytes, nas tramas HDLC o fim é detectado pela ocorrência da sequência "01111110", para o mecanismo funcionar é necessário garantir que no interior da trama não ocorre nenhuma sequência destas.