Saltar para o conteúdo

RS-232: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Traduzi este artigo da Wikipédia em inglês...
(Sem diferenças)

Revisão das 02h34min de 8 de setembro de 2004

RS-232 (também conhecido por EIA RS-232C ou V.24) é um padrão para troca serial de dados binários entre um DTE (terminal de dados, de Data Terminal equipment) e um DCE (comunicador de dados, de Data Communication equipment). É comumente usado nas portas seriais dos PCs.


História

Este padrão foi originalmente usado para conectar uma teletypewriter (equipamento eletromecânico de comunicação assíncrona que usava código ASCII) a um modem. Quando terminais eletrônicos (burros ou não) começaram a ser usados, eram projetados para serem intercambiáveis com as teletypewriters, e também suportavam RS-232. A terceira revisão deste padrão (chamada de RS-232C) fora publicada em 1969, em parte para adequar-se à características elétricas destes dispositivos. Deste modo, fora utilizado em diversos tipos de comunicação remota, especialmente por modems. Posteriormente PCs (e outros equipamentos) começaram a utilizar este padrão para comunicação com equipamentos já existentes. Quando a IBM lançou computadores com uma porta RS-232, esta interface tornou-se realmente onipresente. Por muitos anos o padrão para comunicação serial em quase todos os computadores era algum tipo de porta RS-232. Continuou sendo utilizado em grande escala até o fim dos anos 90. Durante este tempo esta foi a maneira padrão para a conexão de modems. Uma exceção eram os mainframes, que geralmente não se comunicavam diretamente com dispositivos terminais. Estes costumavam ter processadores especializados em E/S conectados a eles, por exemplo, alguns mainframes da IBM possuíam uma unidade de controle de telecomunicação (TCU - telecommunication control unit, unidade de controle da telecomunicação) anexados a seus canais multiplexadores. O TCU deveria suportar múltiplos terminais, centenas às vezes. Vários desses TCUs suportavam RS-232 quando necessário, assim como outras interfaces seriais. Há alguma confusão sobre o que a EIA (Eletronics Industries Alliance) padronizou no RS-232. Este padrão apenas especifica características elétricas dos circuitos e a numeração dos pinos. Outras características como o conector em forma de "D", o uso de código ASCII, formato dos dados e comunicação assíncrona não são parte do RS-232, a palavra "padrão" porém é utilizada geralmente quando todos estas características aparecem juntas, de modo que tornam-se efetivamente obrigatórias, ou então se perderia o sentido da palavra. Foram construídas em torno de 100.000 teletypewriters (33-ASR) e milhares de PCs feitos toda semana, todos eles podem atuar como teletypewriters virtuais. Uma única característica que era utilizada em teletypewriters e que fora abandonada é que uma teletypewriter real requer dois bits de parada para trabalhar de modo satisfatório, deste modo um caractere ocupava 11 bits. Por isso teletypewriters de 100 palavras por minuto transmitiam a 110 bauds. Hoje em dia utiliza-se apenas um bit de parada. Sendo que trataremos aqui uma simulação de um 33-ASR, não o documento RS-232. A IBM favoreceu o uso do código EBCDIC de oito bits ao invés do ASCII com sete bits, favoreceu também um formato de transmissão "big endian" ao invés do formato "little endian" do ASCII. A IBM ofereceu suporte a esses outros formatos também, de modo que para transmitir caracteres "little endian", o mainframe precisaria somente inverter cada caractere usando uma instrução para tradução de bloco. Os primeiros teletypewriters tinham três linhas de teclas e suportavam somente letras maiúsculas. Elas utilizavam o código baudot e trabalhavam geralmente a 60 palavras por minuto. Os equipamentos com teclados de quatro linhas, código ASCII e letras maiúsculas e maiúsculas começaram a aparecer quando computadores pessoais começaram a ficar mais populares. Os circuitos integrados de comunicação serial UART, introduzidos no início dos anos 70 e continua sendo emulado por muitos chipsets, ainda suportam os primeiros formatos, incluindo 1,5 bits de parada, mas estes recursos são raramente utilizados. A importância de portas seriais começou a decrescer gradualmente quando redes de alta velocidade tornaram-se disponíveis para comunicação PC com PC. Há, porém, vários padrões competindo, hoje é comum utilizar conexões Ethernet Base 10 ou 100. Num futuro próximo, velocidades ainda maiores serão comuns.

Papel na computação moderna

Hoje, o RS-232 está sendo gradualmente suprimido pelo USB para comunicação local. USB é mais rápido, tem conectores mais simples de conectar e usar, e tem um melhor suporte por software. Por isso muitas placas-mãe, destinadas ao uso em escritórios ditas "livre de legados" (legacy-free) são produzidas sem circuitos RS-232. Mesmo assim, continua sendo utilizado em periféricos para pontos de venda (caixas registradoras, leitores de códigos de barra ou fita magnética) e para a área industrial (dispositivos de controle remoto), então computadores para estes fins continuam sendo produzidos com portas RS-232, tanto 'on-board' ou uma placa PCI ou ISA separada. Como alternativa, existem adaptadores para portas USB, que podem ser utilizados para conectar teclados ou mouses PS/2, uma ou mais portas seriais e uma ou mais portas paralelas.


Detalhes do padrão

No RS-232, caracteres são enviados um a um como um conjunto de bits. A codificação mais comumente usada é o "start-stop assíncrono" que usa um bit de inicio, seguido por sete ou oito bits de dados, possivelmente um bit de paridade, e um ou dois bits de parada. Sendo então necessários 10 bits para enviar um único caractere, que acarreta em ter que dividir por dez a taxa de transmissão para conseguir a velocidade de transmissão. A alternativa mais comum ao "start-stop assíncrono" é o HDLC. O padrão define os níveis elétricos correspondentes aos níveis lógicos um e zero, a velocidade de transmissão padrão e os tipos de conectores.

Conectores

O padrão especifica 20 diferentes sinais de conexão, e um conector em forma de D é comumente usado. São utilizados conectores machos e fêmeas - geralmente os conectores dos cabos são machos e os conectores de dispositivos são fêmeas; mas não sempre; estão disponíveis adaptadores m-m e f-f. Há também os chamados "null modems" para conectar unidades utilizando ambas como terminais de dados (ou modems). Para configuração e diagnóstico de problemas com cabos RS-232, pode ser usada uma "breakout box". Este dispositivo normalmente possui um conector macho e um fêmea e deve ser anexado em linha, possui também, luzes para cada pino e meios de interconectar os pinos com diferentes configurações. A maioria dos pinos são inutilizados pela maioria dos dispositivos, sendo então comum que máquinas economizem espaço e dinheiro, utilizando conecções menores. A segunda geração dos IBM PC AT foi disponibilizada com um conector em forma de D com apenas 9 pinos e de fato tornou-se o padrão, grande parte dos dispositivos utilizam conectores de 25 pinos, então cabos com 9 pinos em uma extremidade e e 25 em outra são comuns. O Apple Macintoch utilizava um sistema similar, mas posteriormente mudou para um novo conector com apenas 8 pinos, menos que o necessário para um modem. Os cabos para RS-232 podem ser construídos com conectores disponíveis em qualquer loja de eletrônicos. Os cabos podem ter de 3 a 25 pinos; são usados tipicamente cabos de 4 ou 6. Cabos "Flat RJ" (cabos de telefone) podem ser usados com conectores RJ-RS232, e são os de mais fácil configuração A razão pela qual é possível criar uma interface mínima com apenas três fios é que todo sinal RS-232 utiliza o mesmo fio terra para referência. O uso de circuitos desbalanceados deixa o RS-232 altamente suscetível a problemas devido a diferenças de potencial entre os sinais de terra dos dois circuitos. Este padrão também tem um pobre controle dos tempos de picos e descidas do sinal, levando a potenciais problemas de comunicação. O RS-232 é recomendado pra conexões curtas (quinze metros ou menos). Os sinais variam de 3 a 15 volts positivos ou negativos, valores próximos de zero não são sinais válidos. O nível lógico um é definido por ser voltagem negativa, a condição de sinal é chamada marca, e tem significado funcional de OFF (desligado). O nível lógico zero é positivo, a condição de sinal é espaço, e a função é ON (ligado). Níveis de sinal +-5, +-10, +- 12 e +-15 são vistos comumente, dependendo da fonte elétrica disponível. Marca e espaço são termos herdados das teletypewriters. O modo de comunicação nativo destas eram simples séries de circuitos de corrente contínua que são interrompidos, muito similar aos telefones que possuíam as "rodas de discagem" que interrompiam o sinal telefônico. A condição de marca é quando o circuito está fechado e a condição de espaço, quando o circuito está aberto. O inicio de um caractere é sinalizado por um espaço e os bits de parada são marcas. Quando a linha é interrompida, a teletypewriter entra num ciclo contínuo mas nada é impresso pq tudo o que é recebido são zeros, o caractere NUL. Três são os sinais carregados por esses fios: terra, transmissão/recepção e "handshake". Existem códigos para estes sinais, por exemplo:

SG ou GND - Terra; TD ou TX - Transmissão de dados; RD ou RX - Recepção de dados; DTR - Terminal de dados pronto; DSR - Conjunto de dados pronto; RTS - Pronto pra enviar(computador); CTS - Envie os dados(modem); DCD - Portadora detectada; RI - Indicador de telefone tocando; e FG - (Frame Ground);

Os dispositivos RS-232 podem ser classificados em DTE e DCE; isto define que fios irão mandar e enviar quais sinais. De qualquer modo estas definições não são sempre seguidas, normalmente é necessário consultar a documentação ou testas as conexões com uma "breakout Box" para determinar os sinais necessários. O sinal de terra tem a função de aterrar as outras conexões e é requerido. Se os equipamentos estiverem muito longe, com diferentes fontes de eletricidade, o terra se degradará entre os dois dispositivos e a comunicação irá falhar, sendo esta uma condição difícil de traçar. Conectores de 25 pinos, o pino 7 geralmente é o terra (pino 1 e terra do chassis são raramente usados). Neste mesmo conector, os pinos 2 e 3 são os pinos de transmissão e recepção, um dispositivo deve enviar no 2 e receber no 3; o outro deve ser o contrário (se não, essa inversão deve ser feita no fim do cabo, como num cabo para "null modem", também chamado "crossover"). No caso de se estar desenvolvendo os cabos para uma conexão, pode ser checado com uma "breakout box" qual pino está transmitindo. Estritamente falando, apenas um dispositivo precisa estar transmitindo (se não for necessária comunicação duplex ou um "handshake"), por exemplo uma impressora simples que não responde seu estado para o computador. È, porém, geralmente necessária a utilização de ambos os pinos TX quanto RX. Outros "handshakes" podem ser necessários por um ou pelo outro dispositivo. Por exemplo, o pino 20 é comumente usado pra indicar "dispositivo pronto". Os pinos também podem ser "jumpeados", ou seja, curto-circuitados. Por exemplo, um pino que pergunte "você está pronto?" que parte do dispositivo A pode ser ligado diretamente no pino referente a resposta "estou pronto" no dispositivo A se o dispositivo A não transmitir tal sinal. Os pinos normalmente utilizados para "handshake" são os pinos 20, 8, 4 e 6.

Configurações

Há várias configurações de software para conexões seriais. As mais comuns são velocidade e bits de paridade e parada. A velocidade é a quantidade de bits por segundo transmitida de um dispositivo para outro. Taxas comuns de transmissão são 300, 1200, 2400, 9600, 19200, etc. Tipicamente ambos os dispositivos devem estar configurados com a mesma velocidade, alguns dispositivos, porém, podem ser configurados para auto-detectar a velocidade. Paridade é um método de verificar a precisão dos dados. Paridade é normalmente nula (não usada), mas pode ser par ou ímpar. Paridade funciona modificando os dados, em cada byte enviado. Paridade nula é simples, os dados não são modificados. Na paridade par, os dados são acomodados de modo que o número de bits 1 (isto é, sua contagem em um byte) seja um número par; isto é feito definindo o bit de paridade (geralmente os bits mais ou menos significativo) como 0 ou 1. Na paridade impar, o número de bits 1 é um número impar. A paridade pode ser usada pelo receptor para detectar a transmissão de erros - se um byte foi recebido com o número errado de bits 1, então ele deve estar corrompido. Se a paridade estar correta então não devem haver erros, ou então há um número par de erros. Bits de parada são enviados no fim de cada byte transmitido com o intuito de permitir que o receptor do sinal se sincronize. Existe uma convenção para a notação se uma configuração de software de uma conexão serial, esta notação é da forma D/P/S. Sendo que a configuração mais comum é a 8/N/1 que especifica que são transmitidos 8 bits de dados, paridade nula e um bit de parada. O número de bits de dados pode ser 7, 8 ou (às vezes) 9. Paridade pode ser nula (N), impar (O) ou par (E); o bit de paridade é emprestado dos bits de dados, então 8/E/1 significa que um dos oito bits de dados é utilizado como bit de paridade. Podem haver 1, 1,5 ou 2 bits de parada (1,5 era utilizado em teletypewriters baudot de 60 palavras por minuto). Outra configurações definem quando pinos enviam sinais de "handshake", ou outras checagem de integridade dos dados. Combinações comuns são RTS/CTS, DTR/DSR, ou XON/XOFF (que não usam pinos no conector, mas caracteres especiais no fluxo dos dados). O caractere XON diz ao receptor que o remetente do caractere está pronto pra receber mais dados. O caractere XOFF diz ao receptor para parar de enviar caracteres. O XON/XOFF está em desuso, e é preferível que se utilize o controle de fluxo RTS/CTS. XON/XOFF é um método "em banda" que funciona entre dois pontos, mas ambos devem suportar o protocolo, e há uma confusão em potencial no início. Pode ser feito numa interface com três fios. RTS/CTS foi desenvolvido com o intuito de permitir que a teletypewriter e o modem coordenassem ligações half-duplex onde apenas um modem pode transmitir por vez. O terminal deve "levantar" o sinal Pronto Pra Enviar e esperar que o modem responda com Envie os Dados. RTS/CTS é um "handshake" no nível do hardware, mas tem suas vantagens. Uma teletypewriter ASR tinha um leitor de fita de papel. Os caracteres eram enviados quando a fita era lida (ASR vem de Automatic Send Receive, envia e recebe automaticamente). Quando a máquina recebia um caractere XOFF, ela desligava a leitora de fita e ao receber um XON a religava. O sistema remoto poderia enviar um XOFF quando era necessário que o remetente diminuísse sua velocidade. Nos sistemas, originalmente, as mensagens eram previamente preparadas na fita de papel para que o tempo de transmissão fosse minimizado. Largura de banda era muito escaça e cara. Em alguns minicomputadores antigos, a fita de papel era a única maneira de efetuar guardar e restaurar dados e programas.

Padrões correlatos

Existem diversos "padrões" que são chamados de RS-232 mas na verdade não o são. TTL RS-232 usa +5V para alto e 0V para baixo. CMOS RS-232 usa +3,3V para alto e 0V para baixo. Tipicamente estes sinais são utilizados entre dois dispositivos na mesma placa de circuito. Laços de corrente com 20mA utilizam tal corrente para alto e a presença de corrente no laço para baixo; este nível de sinal é comumente usado para comunicações de longa distância e para ligações isoladas oticamente.

Outras interfaces similares ao RS-232:

  • RS-422 (alta velocidade, semilar ao RS-232 com sinalização diferencial)
  • RS-423 (alta velocidade, semilar ao RS-232 com sinalização não balanceada)
  • RS-449 (um proposto sucessor para o RS-232, que usa sinais do RS-422 e RS-423, nunca "pegou" como o RS-232)
  • MIL STD 188 (um sistema como o RS-232, mas com melhor controle de impedância e de tempo de subida)

Link Externo

[[Categoria:]]