RS-232
Pilha de protocolos TCP/IP |
---|
Camada de Aplicação |
|
Camada de Transporte |
|
Camada de Rede |
|
Camada de Ligação de Dados |
|
RS-232 (também conhecido por EIA RS-232C ou V.24) é um padrão de protocolo para troca série 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.[1]
Índice
1 Abrangência do padrão
2 História
3 Papel na computação moderna
3.1 Detalhes do padrão
3.2 Conectores
3.3 Configurações
4 Padrões correlatos
5 Referências
6 Ligações externas
Abrangência do padrão |
A Eletronics Industries Association (EIA), que padronizou o RS-232-C em 1969 define:
- Características elétricas como níveis de tensão, taxa de sinalização, taxa de rotação dos sinais, nível máximo de tensão, comportamento de curto-circuito e carga máxima da capacitância.
- Características mecânicas da interface, conectores "plugáveis" e identificação dos pinos.
- Funções de cada circuito no conector da interface
- Subconjuntos padrões de circuitos de interface para aplicações selecionadas de telecomunicação
O padrão não define elementos como:
- Codificação de caracteres (por exemplo, ASCII, código Baudot ou EBCDIC)
- Enquadramento dos caracteres no fluxo de dados (bits por caractere, bits de início e parada, paridade)
- Protocolos para detecção de erros ou algoritmos para compressão de dados
- Taxas de bit para transmissão, apesar de o padrão dizer ser destinado para taxas de bits menores que 20.000 bits por segundo, muitos dispositivos modernos suportam velocidade de 115.200 bit/s
- Fornecimento de energia para dispositivos externos
História |
Este padrão foi originalmente usado para conectar um teletipo (equipamento eletromecânico de comunicação assíncrona que usava código ASCII) a um modem. Quando terminais eletrônicos 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 às características elétricas destes dispositivos. Deste modo, foi 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 I/O 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 de Telecomunicação) anexados a seus canais multiplexadores. O TCU deveria suportar múltiplos terminais, às vezes centenas. 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 a tornarem-se efetivamente obrigatórias. 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 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, geralmente, trabalhavam a taxas de 60 palavras por minuto. Os equipamentos com teclados de quatro linhas, código ASCII e letras maiúsculas e minúsculas começaram a aparecer quando computadores pessoais se popularizaram. Os circuitos integrados de comunicação serial UART, introduzidos no início dos anos 70, continuam sendo emulados por muitos chipsets e ainda suportam os primeiros formatos, incluindo 1,5 bits de parada. Contudo tais recursos são raramente utilizados.
Algumas tecnologias utilizam muito esse protocolo.
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. Hoje é comum utilizar conexões Ethernet Base 10, 100 ou 1000. Num futuro próximo, velocidades ainda maiores serão comuns.
Papel na computação moderna |
Hoje, o protocolo de comunicação RS-232 vem sendo, gradualmente, suprimido pelo USB para comunicação local. O protocolo USB é mais rápido, possui conectores mais simples de 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, esse protocolo 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). Por essa razões, computadores para estes fins continuam sendo produzidos com portas RS-232, tanto on-board ou em placas para barramentos PCI ou barramento ISA. 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 protocolo de comunicação 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 início, seguido por oito bits de dados, possivelmente um bit de paridade, e um, 1,5 ou dois bits de paragem sendo então necessários pelo menos 10 bits para enviar um único caractere. Tal facto acarreta a necessidade em dividir por um fator de dez a taxa de transmissão para obter a velocidade de transmissão. A alternativa mais comum ao "start-stop assíncrono" é o HDLC. O protocolo HDLC pode operar nos modos Síncrono e Assincrono. 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 30 diferentes sinais de conexão, e um conector em forma de D usado de forma comum. 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 - e estão disponíveis adaptadores m-m e f-f. Há também os chamados "null modems" para conectar unidades utilizando-se ambas como terminais de dados (ou modems). Para configuração e diagnóstico de problemas com cabos RS-232 pode-se utilizar uma "breakout box". Este dispositivo possui um conector macho e um conector fêmea e deve ser anexado em linha. Além disso, possui 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 conexões menores. A segunda geração dos IBM PC AT foi disponibilizada com um conector em forma de D com apenas 9 pinos, tornando-se o padrão. Grande parte dos dispositivos utilizam conectores de 25 pinos. Conseqüentemente, cabos com 9 pinos em uma extremidade e 25 em outra são comuns. O Apple Macintosh 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. 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 para 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 tensão 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 início 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 porque tudo o que é recebido são zeros, o caractere NULL.
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:
Sinal | Significado |
---|---|
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 para enviar(computador) |
CTS | Envie os dados (modem) |
DCD | Portadora detectada |
RI | Indicador de telefone tocando |
FG | (Frame Ground) |
Os dispositivos RS-232 podem ser classificados em DTE e DCE. Essa classificação permite definir quais fios irão mandar e/ou enviar sinais de dados. De qualquer modo, estas definições nem sempre seguidas. Normalmente é necessário consultar a documentação ou testar 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 é necessário. 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. Em 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 desenvolver cabos para uma conexão, pode-se testá-lo 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. Necessariamente, deve-se utilizar tanto o pino TX quanto o pino RX.
Outros handshakes podem ser necessários por um ou por outro dispositivo. Por exemplo, o pino 20 é comumente usado para indicar "dispositivo pronto". Os pinos também podem ser 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 deve 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. Pode haver 1, 1,5 ou 2 bits de parada (1,5 era utilizado em teletypewriters baudot de 60 palavras por minuto).
Outras 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 para 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 Para 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 escassa e cara. Em alguns minicomputadores antigos, a fita de papel era a única maneira de efetuar guardar e restaurar dados .
Padrões correlatos |
Existem diversos "padrões" que são chamados de "padrões" 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 opticamente.
Outras interfaces similares ao RS-232:
EIA-422 (alta velocidade, similar ao RS-232 com sinalização diferencial)
RS-423 (alta velocidade, similar 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)
Referências
↑ «The RS232 Standard». www.camiresearch.com. Consultado em 9 de maio de 2012
Ligações externas |
Tutorial de RS-232 (em inglês)
Funções dos RS-232 pinos (em inglês)
Portas Seriais e Comunicação Serial (em português)