Redes Industriais - Meio Físico RS232
- Paulo Ricardo Siqueira Soares
- Oct 4, 2023
- 6 min read
Vamos começar falando dos meios físicos guiados das redes seriais, apesar de lentos e obsoletos ainda são muito utilizados para alguns equipamentos específicos, como algumas IHMs - Interfaces Homem Máquina, leitores de código de barras, impressoras, etc, no geral são usados para sistemas legados sistemas mais novos protocolos baseados em ethernet são mais adequados e usados.
Bom o RS232 é um meio físico antigo, utilizado para comunicação serial de dados em até médias distâncias, introduzido na década 1960 ele achou seu nicho dentro da informática naquele tempo em especial com impressoras, na automação industrial ele ainda é largamente usado para impressoras de nota fiscal e leitores de código de barras, etc.
Um pouco da história em 1969, foi liberada a revisão C, RS232C para acomodar as características dos hardwares da época, depois disso ainda foi lançada a revisão D em 1986, onde foram adicionados alguns elementos de tempo para harmonizar com um outro padrão o CCITT V.24 (Não vou entrar em detalhes nele então se quiser saber um pouco mais aqui está um link em inglês para consultar: https://support.huawei.com/enterprise/en/doc/EDOC1100041787/99be4de7/v24-dte-cable
Com a evolução algumas variantes do RS232 foram criadas:
EIA/TIA-232: EIA (Electronic Industry Alliance) and TIA (Telecommunications Industry Alliance);
RS-232C: Padrão Original de 1969;
RS-232D: Padrão de 1986 para comportar CCITT V.24;
RS-232F: Padrão de 1997 para acomodar futuras atualizações;
V10: Padrão de 1976 - Para circuitos até 100kbps;
V24 e V28: International Telecommunications Union (ITU) / CCITT (International Telegraph and Telephone Consultative Committee)
Aqui vamos abordar o EIA/TIA-232, que é mais comum na indústria.
Esse padrão define os detalhes dentro da camada 1 - Física do modelo OSI (calma que ainda vai ter um artigo sobre ele, mas já vai acostumando com os termos, ok?)
No princípio podíamos encontrar como interface para RS-232 mais comumente, conectores de 9 e 25 pinos, inclusive por um bom tempo os teclados dos computadores e mouses eram todos seriais, com o tempo nos computadores eles foram substituídos por conectores PS/2 e depois por USB, como estamos mais acostumados hoje, mas na indústria ainda estão sobrevivendo, principalmente usando conectores DB9 (9 pinos).

Exemplo de um conector DB-9 Macho (https://www.eltima.com/pt/article/9-pin-serial-port.html)
A RS-232 ou EIA/TIA-232, tem como intenção criar uma rede ponto-a-ponto (point-to-point) entre 2 dispositivos somente, nesse caso essa rede, utiliza pulsos que tem como referência uma conexão terra única (common ground) e um fio é utilizado para transferir dados para cada direção.

O padrão também especifica as voltagens positivas e negativa, tendo como referência o terra comum, para codificação NRZ (Non-Return-to-Zero - Sem retorno ao zero), nesse caso qualquer sinal menor do que -3 volts detectado pelo receptor, é considerado valor binário (1) e qualquer sinal positivo maior do que +3 volts detectado no receptor é considerado 0, pelo padrão EIA/TIA 232 (valores mínimos, comumente -3V a -15V e +5V e +15V), os transmissores devem gerar sinais de -5 e 5 volts de amplitude mínima, para ter 2 volts de margem de ruído, são definidos também a velocidade máxima de 20kbps e velocidade de varredura de dentro de 30mv/ms (slew rate), tudo isso para evitar interferência na comunicação (crosstalk).
A impedância entre o transmissor e receptor também é definida entre 3KΩ e 7kΩ, originalmente os cabos podem ter um comprimento máximo de 15 metros e uma impedância menor de 2500pF, porém tem um detalhe não existe uma tipo de construção recomendada para os cabos.
Para resumir vamos ver essa tabela do site www.analog.com, que resume bem.

Fonte: https://www.analog.com/en/technical-articles/fundamentals-of-rs232-serial-communications.html
Outras definições que a EIA/TIA 232 trazem são DTE - Data Terminal Equipment, ou o sistema host e DCE - Data Circuit Terminating Equipment, que é o sistema periférico.
O padrão também ira tratar das características funcionais da interface em 4 categorias distintas: common, data, control and timming, e possui uma série de sinais definidos, abaixo uma tabela do site analog.com:

Fonte: https://www.analog.com/en/technical-articles/fundamentals-of-rs232-serial-communications.html
Conectores DB9 Pinagem

O mais comum é utilizar apenas os pinos 2 e 3 conectados de forma cruzada com o terra

Se você tem interesse em ver toda a especificação técnica, com as formulas etc, a Texas Instruments possui esse documento online com tudo: https://www.ti.com/lit/an/slla037a/slla037a.pdf?ts=1696369876556&ref_url=https%253A%252F%252Fwww.google.com%252F
Protocolos
As comunicações são medidas em "baud rate", que simplesmente é a medição de bits transmitidos por segundo - taxa de transmissão, com por exemplo 19200bauds é o mesmo que 19200 bits por segundo. - As velocidades usuais para comunicação RS232 são: 110, 300, 1200, 2400, 4800, 9600, 19200bps.
Quando estamos falando de comunicação RS232 estamos falando de comunicação serial, ou seja enviada bit a bit.
E para isso ocorrer existem modos de transmissão na comunicação serial:
Asynchronous Data Transfer (Transferência de dados Assíncrona): os bits dos dados não são sincronizados pelo pulso de clock (sinal de sincronismo em um sistema eletrônico)
Synchronous Data Transfer (Transferência de dados Síncrona): as transferências dos dados são sincronizadas pelo clock.
Paridade: uma forma de organizar a transmissão dos dados é através da paridade, se a paridade está habilitada o máximo de 8 bits pode ser transmitida, se a paridade não é usada 9 bits podem ser transmitidas, para organizar essa transmissão existem também bits de start (início) e bits de stop (parada/fim), que podem na verdade ser 1 ou 2 bits.
Uma coisa importante quando configuramos uma conexão serial todos os parâmetros devem ser configurados de forma igual dos 2 lados (DTE e DCE), ou seja, mesmo baud rate e a utilização de paridade ou não.
Outra ferramenta importante para a comunicação serial é o handshake, ele é como verificado se o receptor recebeu os dados com sucesso.
Existem 3 tipos de handshake:
Sem Handshake (No Handshake):
Mesmo não existindo handshake ainda assim é considerado um tipo já que falamos sobre confirmação da informação recebida com sucesso.
Quando não tem o handshake significa que o receptor já leu os dados recebidos enquanto o transmissor já está enviando o próximo dado, sem verificar a mensagem de confirmação dos últimos dados recebidos com sucesso, como pode imaginar esse é um método que a transmissão de dados em teoria é mais rápida, porém caso exista uma perda de informação, será necessário uma camada superior de software para tratar e talvez seja necessário cancelar a transmissão dos dados e iniciar novamente desde o começo, e para tal o emissor deve ter uma camada de software que detecte essa falha, podenda essa forma que em teoria é mais rápida de transmissão se tornar mais lenta.
Hardware Handshaking:
Utilizado por portas seriais específicas que possuem o RTS e o CTS para controle da dados, conforme pinagem abaixo:

Esse processo possui um ciclo no qual o transmissor pergunta para o receptor se o mesmo está pronto para receber dados e o receptor, verifica se o buffer está livre para receber novos dados, e o transmissor só irá enviar dados novos quando receber essa confirmação de receptor pronto.
Aqui como isso funciona:
Transmissor --- Receptor você está pronto para novos dados? --> Receptor
Transmissor <-- Estou sim! Manda aí! ---------------------------------- Receptor
Transmissor -------- Toma os dados aí! --------------------------------->Receptor
Transmissor <---- Não manda dados não to lendo ainda o último--Receptor
Transmissor --- Receptor você está pronto para novos dados? --> Receptor
Transmissor <---- Não manda dados não to lendo ainda o último--Receptor
Transmissor --- Receptor você está pronto para novos dados? --> Receptor
Transmissor <-- Estou sim! Manda aí! ---------------------------------- Receptor
Transmissor -------- Toma os dados aí! --------------------------------->Receptor
Software Handshaking:
Conhecido também como Xon/Xoff, é usado para o controle de fluxo de dados, basicamente o receptor enviando o caractere xoff para transmissor, fazendo que o mesmo pare a transmissão e quando o receptor está pronto para receber novamente envia um caractere Xon, para essa operação são usados caracteres ASCII (17 Xon e 19 Xoff).
Comunicação Half-Duplex e Full-Duplex
O RS-232 comporta a comunicação Half-Duplex (apenas um dos envolvidos pode enviar informação) e Full-Duplex onde ambos enviam informações ao mesmo tempo
Protocolos:
O EIA/TIA RS-232 define basicamente o meio físico, porém existem alguns protocolos que são mais comuns utilizarem esse meio, Modbus-RTU e ASCII, o ASCII nos dias de hoje é o mais usado, por ser simples, apenas um conjunto de caracteres envia baseado em uma tabela que contém valores hexadecimais para cada caractere, o Modbus-RTU apesar de ser mais complexo, no passado podia ser visto facilmente usando RS-232, nos dias de hoje utiliza-se mais o serial RS-485 (teremos um artigo específico falando somente do Modbus)
Limitações
RS232 precisa de um terra comum entre o transmissor e receptor, por isso os cabos acabam sendo mais curtos;
Sinal susceptível a ruído.
Níveis de voltagem não compatíveis com os circuitos TTL e CMOS modernos, precisando de um conversor.
Se você sabe inglês tem esse vídeo aqui que é legal tb - Realparts tem vários vídeos legais na verdade.
Bibliografia:



Comments