Texto extraído do site INCB - www.newtoncbraga.com.br

A norma RS232C para portas seriais (ART948)

Todos os computadores podem se comunicar com o mundo exterior, enviando ou recebendo informações de diversas maneiras. No entanto, o modo comum, que todos entendem é dado por uma norma, chamada RS232 e que é aplicada à comunicação serial. Todos os computadores possuem uma porta serial e todas elas se comunicam segundo estas normas adotadas pela EIA (Electronics Industry Association) e que vamos analisar neste artigo.(1998)

 

Quando se deseja interligar dois computadores de modo que eles possam trocar informações uma das maneiras mais usadas é a que faz uso da porta serial mais conhecida como RS-232.

O nome RS232 vem do fato de que o modo como os dados são enviados e recebidos estão na norma EIA RS232, proposta inicialmente em 1969.

Esta norma estabelece os tipos de sinais que são usados na comunicação entre terminais de dados (DTE) e equipamentos de comunicações de dados ou modems (DCE), conforme mostra a figura 1

 

A norma RS-232-C determina o modo de conexão de equipamentos na comunicação de dados.
A norma RS-232-C determina o modo de conexão de equipamentos na comunicação de dados.

 

 

OS TIPOS DE SINAIS

Os sinais enviados estão na forma serial, conforme já explicamos, o que significa que os bits são enviados sequencialmente, um a um através de uma linha única de comunicações, conforme mostra a figura 2.

 

Na comunicação serial os bits são enviados um após o outro.
Na comunicação serial os bits são enviados um após o outro.

 

Na norma RS232, as tensões na faixa de +3 a +15 volts são reconhecidas como níveis baixos enquanto que as tensões de -3 a -15 volts são reconhecidas como níveis altos. Veja que a lógica negativa aplicada ao caso visa a obtenção de maior segurança na transmissão dos dados.

O circuito equivalente a um sistema de comunicação RS232 é mostrado na figura 3.

 

Circuitos equivalente ao transmissor na norma RS-232-C
Circuitos equivalente ao transmissor na norma RS-232-C

 

São definidos 25 sinais, mas na prática são usados menos de 10. Estes sinais são:

Pino 2 - Transmissão de dados de DTE para DCE

Pino 3 - Transmissão de dados de DCE para DTE

Pino 20 - DTR, o equipamento DTE está operando

Pino 6 - DSR - o equipamento DCE está operando

Pino 4 - RTS - pedido de DTE para iniciar o envio

Pino 5 - CTS - DCE está pronto para receber

Pino 8 - DCD - o DCE detecta a portadora

Pino 7 - Massa

Pino 1 - Terra de proteção

 

Na figura 4 temos a conexão lógica dos sinais RS-232-C que são mais usados na prática.

 

Conexão lógica norma Rs<sup>2</sup>32-C (sinais mais importantes).
Conexão lógica norma RS232-C (sinais mais importantes).

 

É interessante observar que em muitos casos, como a norma é usada para interligação direta, as características de equipamentos de fabricantes diferentes podem não casar e isso pode acarretar problemas de funcionamento.

 

CONECTOR

A conexão mecânica é feita por um conector DB-25 cuja parte fêmea é mostrada na figura 5 com a identificação dos pinos. Observe o sentido da contagem, se bem que na maioria dos tipos o número de cada pino está gravado no próprio soquete.

 

Conector DB-25 usado normalmente para conexões RS-232.
Conector DB-25 usado normalmente para conexões RS-232.

 

Com este conector podem ser usados diversos tipos de cabos como, por exemplo, cabo chato, fios trançados, cabo coaxial, conforme a distância que separa os dispositivos que devem ser interligados.

 

A TRANSMISSÃO

O modo mais comum de transmissão de sinais é o assíncrono (em que não há necessidade do receptor estar sincronizado com o receptor, pois ele é informado quando cada "pacote de dados" começa e termina) e que tem bits de start e stop.

Assim, conforme mostra a figura 6, o sinal é formado por bits individuais que são enviados um a um num "pacote" de tamanho definido no formado ASCII.

 

Comunicação síncrona de 8 bits com bit de paridade.
Comunicação síncrona de 8 bits com bit de paridade.

 

A quantidade de bits de cada pacote pode variar de 5 a 8 sendo enviados depois de um sinal de START que é reconhecido quando a linha, que está normalmente no nível 1 (negativa) passa para o nível 0 (positiva). No flanco descendente do sinal (passagem de 1 para 0) há o reconhecimento do aviso de início de transmissão de mensagem.

No final do pacote de bits de dados é também enviado um bit de paridade que serve para verificar se a informação chegou correta e depois um bit de STOP.

Se este foi o último pacote o nível da linha se mantém alto (1), mas se um novo pacote deve ser enviado temos nova transição do nível 1 para o zero que é reconhecida como START e o processo se repete.

Observe que o sincronismo deste modo de transmissão é feito com base no bit de START de cada pacote.

No entanto, este processo de transmissão traz alguns problemas quando se pretende uma velocidade muito alta.

Para altas velocidades, o formato usado é o mostrado na figura 7 em que temos um ou dois bytes de sincronismo.

 

Comunicação síncrona de dados na norma RS-232-C.
Comunicação síncrona de dados na norma RS-232-C.

 

No caso do código ASCII este byte é o 0010110, seguindo-se então dois bytes de dados. Como a transmissão deve ser contínua, bytes de sincronismo devem ser intercalados quando necessário.


PROTOCOLOS

Existem duas técnicas de protocolos de comunicação: a de protocolo por sinais e de protocolo por códigos.

No protocolo por sinais são empregados alguns dos sinais da própria norma RS-232 para que os dispositivos conectados podem ou não receber as informações. Podem ser empregados dois pares de sinais para esta finalidade como o DTR/DSR ou ainda o RTS/CTS.

No primeiro caso o sinal DTR ou RTS indica que o dispositivo DTE está conectado e pronto enquanto que o sinal DSR ou CTS indica que é o dispositivo DCE que está pronto.

No protocolo por códigos existem diversas técnicas possíveis todas baseadas em códigos. Uma delas é que a faz uso dos códigos XON (caractere DC3 no ASCII) e XOFF (caractere DC1 em ASCII) para que o receptor possa avisar se está ou não em condições de receber as informações.

O funcionamento deste protocolo pode ser descrito em detalhes da seguinte maneira: inicialmente partimos da condição que o receptor está pronto para receber informações, quando então o transmissor começa seu envio.

Quando a memória do receptor se aproxima do ponto de saturação o receptor envia ao transmissor um sinal XOFF para que ele pare de enviar as informações. Quando a memória esvazia, à medida que vai usando as informações, e chega a um nível que pode receber mais, um sinal XON é enviado ao transmissor. Com isso o receptor volta a operação enviando um novo trem de informações, conforme mostra a figura 8.

 

Quando a memória está cheia, a transmissão é bloqueada pelo envio do sinal XOFF.
Quando a memória está cheia, a transmissão é bloqueada pelo envio do sinal XOFF.

 

Também podemos encontrar em algumas aplicações o protocolo que usa os caracteres ASCII ETX e ACK. O funcionamento deste protocolo é o seguinte: partindo do momento em que o transmissor pode receber sinais, o transmissor envia uma série de pacotes que finaliza com o código ETX.

Quando o receptor termina de assimilar a informação enviada e está pronto para receber mais, ele envia ao transmissor o sinal ACK. Os pacotes de informação máxima adotados por este protocolo variam de 80 a 132 bytes.

 

UMA INTERFACE RS232 NA PRÁTICA

Hoje existem circuitos integrados VLSI disponíveis e que fazem parte de todos os computadores pessoais e que têm por finalidade serializar as informações paralelas que correm nos barramentos internos e que eventualmente devam ser transmitidas para o mundo exterior e também executar a função inversa: tornar paralelas as informações que chegam do mundo exterior na forma serial.

O circuito que executa estas funções e mais algumas outras como gerar as formas de onda correspondentes à velocidade de transmissão para sincronismo que o receptor recebe o nome de USART (Universal Synchronous/Asynchronous Receiver/Transmitter).

Na figura 9 temos um sistema de comunicação dupla que faz uso da USART 8251.

 

Sistema full duples segundo a norma RS-232-C.
Sistema full duples segundo a norma RS-232-C.

 

Um outro tipo de chip VLSI é que executa as mesmas funções é denominado UART (Universal Asyncrhronous Receiver/Transmitter) e que é muito usado nos modems.

Nos computadores mais antigos era usado um chip denominado 8250 para as placas de comunicação e multifunção sendo ainda encontrado em modems internos de baixas velocidades de equipamentos mais antigos.

Este chip controla também a velocidade de troca de informações dividindo a frequência de seu clock interno de 1,8432 MHz por valores determinados gravados num registrador do próprio chip. Registradores internos definem o tamanho da palavra, paridade e o número de bits de cada pacote.

No entanto, este chip logo foi substituído por outros de tecnologia mais avançada como o 16540 e depois o 16550 e o 16552 (Dual) a partir de 1987.

Estes chips de maior velocidade atendendo os modelos V.32bis e outros permitem que o computador continue fazendo seu processamento normal sem precisar parar para atender o modem. No entanto, para que este circuito funciona apropriadamente o software deve ser escrito de modo cuidadoso levando em conta as possibilidades dos buffers.

 

O FIM DAS UARTs

Nos computadores mais modernos os chips de UARTs já não mais são encontrados tendo suas funções exercidas pelos chips denominados ASICs (Application-Specific Integrated Circuits). Assim, dentro dos computadores existem chips que reúnem diversas funções dentre elas a de serializar dados que devem ser enviados ou ainda de tornar paralelos dados que devem ser recebidos.