Padrão Serial RS-232
Também conhecido por EIA RS-232C ou V.24, o RS-232 é um padrão bastante antigo mas que continua sendo bem utilizado por sua simplicidade e confiabilidade.
Como Funciona
Como qualquer dispositivo de transmissão serial, os bit são enviados
um à um, sequencialmente, e normalmente com bit menos significante
primeiro (LSB). Por ser um protocolo assíncrono isto é, sem uma
linha de relógio (clock), é responsabilidade do transmissor e do
receptor efetuarem controles de tempo para saber quando cada bit inicia
e finaliza.
Na sua forma padrão o RS-232 utiliza dois sinais de controle, o RTS
(ready to send) e o CTS (clear to send) para
efetuar o controle de fluxo via hardware. Basicamente, quando o
transmissor deseja começar um envio ele sinaliza através do pino RTS. O
receptor, ao perceber que o transmissor deseja enviar algum dado,
prepara-se para recebe-lo e seta o pino CTS. Apenas depois de receber o
sinal CTS o transmissor pode começar a transmissão.
Para cada byte existem bit de start e stop; o mais comum é utilizar-se
1 bit de início (start bit) e 1 bit de parada (stop bit),
mas é possível encontrar aplicações que utilizam 1,5 ou 2 bit de
início/parada. A figura abaixo mostra como a transmissão de um byte
ocorre:
Como já citado anteriormente, esta transmissão é assíncrona. Tendo a
velocidade de comunicação ajustada nos dois dispositivos inicialmente,
cada um deles sabe quanto tempo um bit demora para ser transmitido, e é
com base nisto que a identificação dos bit é possível.
No transmissor o envio basicamente resume-se à enviar um bit de início,
aguardar um tempo, e enviar os próximos 8 bit + bit de parada, com o
mesmo intervalo de tempo entre eles.
No receptor, após a primeira borda de descida (nível lógico de "1" para
"0") (start bit) o receptor sabe que uma sequencia de mais 8 bit
de dados + bit de parada chegará. Ele também conhece a velocidade de
transmissão, então tudo que ele precisa fazer é aguardar o tempo de
transmissão entre cada bit e efetuar a leitura. Após receber o bit de
parada, a recepção encerra-se e ele volta à aguardar o próximo start
bit.
Nos microcontroladores modernos todo este trabalho normalmente é
efetuado por uma UART (Universal Asynchronous Receiver
Transmitter). Este periférico encarrega-se de efetuar todo o
controle e apenas gerar interrupções quando um byte é recebido. No
entanto, algumas vezes o microcontrolador utilizado não possui uma
UART, ou mesmo ela está sendo utilizada. Nestes casos é possível
implementar uma interface serial através de software, tratando a
seqüência de transmissão e recepção descrita anteriormente.
Na interface RS232 o nível lógico "1" corresponde à uma tensão entre
-3V e -12V e o nível lógico "0" à uma tensão entre 3V e 12V. Valores de
tensão entre -3V e +3V são indefinidos e precisam ser evitados. O
estado idle da linha é 1 lógico (-V).
Porém a grande maioria dos periféricos que trabalham com portas
seriais não utilizam o padrão RS232 para níveis elétricos diretamente.
Portanto é sempre necessário um circuito de conversão de nívels
TTL/RS232. O circuito integrado mais comum para efetuar esta conversão,
de baixo custo, é o MAX232 que possui alimentação TTL.
Abaixo você pode ver os dois conectores mais utilizados no padrão
RS-232, o DB9 e o DB25, com seus respectivos pinos:

CTS Clear To Send [DCE –> DTE]
DCD Data Carrier Detected (Tone from a modem) [DCE –>
DTE]
DCE Data Communications Equipment eg. modem
DSR Data Set Ready [DCE –> DTE]
DSRS Data Signal Rate Selector [DCE –> DTE] (Not commonly
used)
DTE Data Terminal Equipment eg. computer, printer
DTR Data Terminal Ready [DTE –> DCE]
FG Frame Ground (screen or chassis)
NC No Connection
RCk Receiver (external) Clock input
RI Ring Indicator (ringing tone detected)
RTS Ready To Send [DTE –> DCE]
RxD Received Data [DCE –> DTE]
SG Signal Ground
SCTS Secondary Clear To Send [DCE –> DTE]
SDCD Secondary Data Carrier Detected (Tone from a modem)[DCE
–> DTE]
SRTS Secondary Ready To Send [DTE –> DCE]
SRxD Secondary Received Data [DCE –> DTE]
STxD Secondary Transmitted Data [DTE –> DTE]
TxD Transmitted Data [DTE –> DTE]
Grande parte da confiabilidade do padrão deve-se à sua boa imunidade à
ruídos, por ter níveis elétricos diferenciais em suas linhas. Mesmo
assim, o padrão RS-232 é destinado à aplicações de curto alcance.
Outras interfaces, como RS-485 são mais recomendadas quando grandes
distâncias são necessárias.
Roberto Alcântara
roberto@eletronica.org

