terça-feira, 5 de abril de 2011

Como funcionam as portas seriais

Introdução

Considerada uma das conexões externas mais básicas para um computador, a porta serial é parte integrante da maioria dos computadores há mais de 20 anos. Embora muitos sistemas novos tenham abolido a porta serial completamente, colocando em seu lugar conexões USB, a maioria dos modens ainda utiliza a porta serial, assim como algumas impressoras, PDAs e câmeras digitais. Poucos computadores possuem mais de duas portas seriais.


Duas portas seriais na parte de trás de um PC
Essencialmente, as portas seriais oferecem um protocolo e um conector padrão para permitir a conexão de dispositivos como modens ao computador. Neste artigo, você aprenderá a diferença entre uma porta paralela e uma porta serial, o que cada pino faz e como é controle de fluxo de dados. 


Precisa-se de UART

Todos os sistemas operacionais em uso atualmente suportam portas seriais. Isso porque elas estão presentes há décadas. As portas paralelas são uma criação mais recente e são muito mais rápidas que as portas seriais. As portas USB têm apenas alguns anos de vida e provavelmente irão substituir completamente as portas seriais e paralelas dentro de alguns anos. O nome "serial" vem do fato de que uma porta serial "serializa" os dados. Isto é, ela pega um byte de dado e transmite os 8 bits de byte, um por vez. A vantagem é que uma porta serial necessita de apenas um fio para transmitir os 8 bits (uma porta paralela necessita de 8). A desvantagem é que ela leva 8 vezes mais tempo para transmitir os dados do que se tivesse 8 fios. As portas seriais tornam os cabos menores, diminuindo seu custo.
Antes de cada byte de dado, uma porta serial envia um bit de partida (start bit), que é um bit único com o valor 0. Após cada byte de dado, ela envia um bit de parada (stop bit) que indica que o byte está completo. Ela pode enviar também um bit de paridade.
As portas seriais, também chamadas de portas de comunicação (COM), são bidirecionais. A comunicação bidirecional permite que cada dispositivo receba e envie dados. Dispositivos seriais utilizam diferentes pinos para receber e transmitir dados, pois a utilização dos mesmos pinos limitaria a comunicação a uma conexão do tipo half-duplex, o que significa que a informação poderia trafegar em apenas uma direção por vez. A utilização de pinos diferentes permite a comunicação full-duplex, em que a informação pode trafegar nas duas direções ao mesmo tempo.


Este chip Dual Inline Package (DIP) de 40 pinos é uma variação do chip UART NS16550D da National Semiconductor
As portas seriais dependem de um chip controlador especial, a UART (Universal Asynchronous Receiver/Transmitter), para funcionar adequadamente. A UART transforma em serial a saída paralela do barramento do computador, para realizar a transmissão via porta serial. Para funcionar de maneira mais rápida, a maioria dos chips UART possui um buffer embutido entre 16 e 64 kilobytes. Esse buffer permite que o chip armazene um cache de dados proveniente do barramento do sistema enquanto processa os dados que saem para a porta serial. Enquanto a maioria das portas seriais padrão possui uma transferência máxima de 115 Kbps (kilobits por segundo), portas seriais de alta velocidade como a Enhanced Serial Port (ESP) e a Super Enhanced Serial Port (Super ESP) podem atingir taxas de transferência de 460 Kbps. 



A conexão serial

O conector externo para uma porta serial pode ser tanto de 9 como de 25 pinos. Originalmente, a utilização principal de uma porta serial era conectar um modem ao computador. As funções dos pinos refletem isso. Vejamos o que acontece em cada pino quando um modem é conectado.

Conectores seriais de 9 e de 25 pinos
Conector de 9 pinos:
1. Detector de portadora (carrier detect) - determina se o modem está conectado a uma linha telefônica em operação.
2.
Recebimento de dados (receive data) - o computador recebe as informações enviadas pelo modem.
3.
Transmissão de dados (transmit data) - o computador envia informações ao modem.
4.
Terminal pronto (data terminal ready) - o computador avisa ao modem que está pronto para se comunicar.
5.
Sinal de terra (signal ground) - pino ligado a terra.
6.
 Modem pronto (data set ready) - o modem avisa ao computador que está pronto para se comunicar.
7.
Solicitação de envio (request to send) - o computador pergunta ao modem se pode enviar informações.
8.
Pronto para enviar (clear to send) - o modem avisa ao computador que as informações podem ser enviadas.
9.
Indicador de sinal (ring indicator) - assim que a ligação é estabelecida, o computador reconhece o aviso (enviado pelo modem) que indica que o sinal foi detectado.
Conector de 25 pinos:
1. Não utilizado.
2.
Transmissão de dados (transmit data) - o computador envia informações ao modem.
3.
Recebimento de dados (receive data) - o computador recebe as informações enviadas pelo modem.
4.
Solicitação de envio (request to send) - o computador pergunta ao modem se pode enviar informações.
5.
Pronto para enviar (clear to send) - o modem avisa ao computador que as informações podem ser enviadas.
6. Modem pronto (data set ready) - o modem avisa ao computador que está pronto para se comunicar.
7. Sinal de terra (signal ground) - o pino está ligado à terra.
8.
Detector do sinal de linha recebida (received line signal detector) - determina se o modem está conectado a uma linha funcional.
9. Não utilizado: loop de corrente de tansmissão - retorno (+).
10. Não utilizado.
11. Não utilizado: loop de corrente de tansmissão - dados (-).
12. Não utilizado.
13. Não utilizado.
14. Não utilizado.
15. Não utilizado.
16. Não utilizado.
17. Não utilizado.
18. Não utilizado: loop de corrente de recepção - dados (+).
19. Não utilizado.
20.
Terminal de dados pronto (data terminal ready) - o computador avisa ao modem que está pronto para se comunicar.
21. Não utilizado.
22.
Indicador de sinal (ring indicator) - assim que a ligação é estabelecida, o computador reconhece o aviso (enviado pelo modem) que indica que o sinal foi detectado.
23. Não utilizado.
24. Não utilizado.
25. Não utilizado: loop de corrente de recepção - retorno (-).
A tensão nos pinos do conector pode estar em dois estados: ligada ou desligada. Ligado (valor binário "1") significa que o pino está transmitindo um sinal entre -3 e -25 volts, enquanto desligado (valor binário "0") significa que ele está transmitindo um sinal entre +3 e +25 volts. 



Controle de fluxo

Um importante aspecto da comunicação serial é o conceito de controle de fluxo. Trata-se da habilidade de um dispositivo em ordenar que outro pare de enviar dados por um momento. Os comandos Solicitação de envio (RTS), Pronto para enviar (CTS), Terminal pronto (DTR) e Modem pronto (DSR) são utilizados para habilitar o controle de fluxo.

Placa com duas portas seriais
Vejamos um exemplo de como o controle de fluxo funciona: você possui um modem que se comunica a 56 Kbps. A conexão serial entre o seu computador e o modem transmite a 115 Kbps, o que é mais que o dobro da velocidade. Isso significa que o modem está recebendo mais dados do computador do que pode transmitir pela linha telefônica. Mesmo que o modem possua um buffer de 128K para armazenamento de dados, ele logo ficará sem espaço disponível no buffer e será incapaz de funcionar adequadamente com o fluxo de dados que chega.
Com o controle de fluxo, o modem pode parar o fluxo de dados provenientes do computador antes que ele ultrapasse o buffer do modem. O computador envia constantemente um sinal no pino RTS e verifica se há sinal no pino CTS. Se não houver resposta do pino, o computador pára de enviar os dados, aguardando a resposta do pino CTS antes de reiniciar. Isso permite que o modem mantenha o fluxo de transferência de dados sem maiores problemas.

Nenhum comentário:

Postar um comentário