Para a transmissão entre duas máquinas, a comunicação pode ser realizada de diferentes maneiras. Ela se caracteriza pelo sentido das trocas, por como as trocas são realizadas, pelo modo de transmissão, pelo número de bits enviados simultaneamente e pela sincronização entre o emissor e o receptor.
Dependendo do sentido das trocas, existem três modos de transmissão de dados: ligação simplex, half-duplex e full-duplex.
A ligação simplex caracteriza-se pela circulação dos dados em apenas um sentido, ou seja, do emissor para o receptor. Esse tipo de ligação é útil quando os dados não precisam circular nos dois sentidos (por exemplo, do seu computador para a impressora ou do mouse para o computador):
A ligação half-duplex (também chamada de ligação de alternância ou semi-duplex) caracteriza-se pela circulação dos dados nos dois sentidos, mas um de cada vez. Assim, com este tipo de ligação, cada extremidade emite apenas na sua vez. Esse tipo de ligação permite ter uma ligação bidirecional, utilizando a capacidade total da linha:
A ligação full-duplex (também chamada de duplex integral) aracteriza-se pela circulação dos dados de maneira bidirecional e simultânea. Assim, cada extremidade da linha pode emitir e receber ao mesmo tempo, o que significa que a banda larga está dividida em dois para cada sentido de emissão dos dados, caso um mesmo suporte de transmissão seja utilizado para as duas transmissões:
O modo de transmissão designa o número de unidades de informação (bits) que podem ser transmitidas simultaneamente pelo canal de comunicação. Um processador (o computador) nunca trata só um bit de cada vez, normalmente atuando sobre 8 bits (ou 1 byte) ao mesmo tempo. É por isso que a ligação básica em um computador é chamada de paralela.
Chamamos de ligação paralela a transmissão simultânea de N bits. Esses bits são enviados simultaneamente para N vias diferentes (em geral, uma via é um fio, cabo ou outro suporte físico). A ligação paralela dos computadores precisa geralmente de 10 fios:
Essas vias podem estar em N linhas físicas. Nesse caso, cada bit é enviado para uma linha física. Essa é a razão pela qual os cabos paralelos são compostos por vários fios. Uma linha física dividida em vários subcanais por compartilhamento da banda larga é usada. Assim, cada bit é transmitido em uma frequência diferente. Como os fios condutores estão próximos em uma cobertura, podem ocorrer perturbações (principalmente com débito elevado) que diminuem a qualidade do sinal.
Em uma ligação em série, os dados são enviados, bit por bit, pela via de transmissão. Contudo, já que a maior parte dos processadores trata as informações de maneira paralela, trata-se de transformar dados que chegam de maneira paralela como dados em série no emissor e, no sentido inverso, no receptor:
Essas operações são realizadas graças a um controlador de comunicação, na maior parte do tempo um chip UART (Universal Asynchronous Receiver Transmitter - Transmissor Receptor Assíncrono Universal). Esse controlador de comunicação funciona da seguinte maneira:
A transformação paralelo-série é feita graças a um registro de desfasamento. Ele permite, através de um relógio, deslocar o registro (o conjunto dos dados presentes em paralelo) para uma posição bem à esquerda e depois emitir o bit de peso forte (o mais à esquerda) e assim sucessivamente:
A transformação série-paralelo é realizada quase da mesma maneira. O registro de desfasamento permite deslocar o registro de uma das posições para a esquerda a cada recepção de um bit e depois emitir a totalidade do registro em paralelo quando este está cheio e assim sucessivamente:
Com os problemas que surgem na ligação paralela, a ligação em série é a mais utilizada. Contudo, já que apenas um fio transporta a informação, existe um problema de sincronização entre o emissor e o receptor, ou seja, o receptor não pode, a priori, distinguir os caracteres (ou, de maneira mais geral, as sequências de bits) porque os bits são enviados sucessivamente. Há dois tipos de transmissão que permitem remediar este problema: assíncrona e síncrona.
Na conexão assíncrona, cada caractere é emitido de maneira irregular no tempo (ex: um usuário que digita caracteres no teclado). Assim, imaginemos que só um bit seja transmitido durante um longo período de silêncio. O receptor não poderia saber se a sequência é 00010000 ou 10000000, por exemplo. Para remediar esse problema, cada caractere é precedido de uma informação que indica o início da transmissão do caractere ('bit START') e termina com o envio de uma informação de fim de transmissão ('bit STOP'). Eventualmente, há vários 'bits STOPS'.
Na conexão síncrona, emissor e receptor são sincronizados pelo mesmo relógio. O receptor recebe continuamente (mesmo quando nada é transmitido) as informações no ritmo em que o emissor as envia. Além disso, informações suplementares são inseridas para evitar erros durante a transmissão. Em uma transmissão síncrona, os bits são enviados de maneira sucessiva, sem separação entre caracteres. Assim, é preciso inserir elementos de sincronização.
O principal inconveniente da transmissão síncrona é o reconhecimento das informações no receptor, pois podem existir diferenças entre os relógios do emissor e receptor. Por isso, cada envio de dados deve ser feito em um período bastante longo, de modo que o receptor possa distingui-lo. A velocidade de transmissão não pode ser muito elevada em uma ligação síncrona.
Foto: © Joshua Sortino - Unsplash.