top of page
Leonardo Ritter

Hardware - A interface RS-232

Atualizado: 10 de ago. de 2022

Esta é a sequência do estudo das interfaces presentes no Super I/O, para que se tenha mais noção de como as interfaces de comunicação funcionavam antigamente e como elas funcionam atualmente.

Este artigo é sobre a interface RS-232, que utiliza o conector DE9 (erroneamente chamado de DB9).

Conector DE9

Imagem 1


Popularmente conhecida como "porta serial", a EIA RS-232, comumente chamada de RS-232 foi muito utilizada durante os anos 1980 e 1990 para conectar mouses, modems e outros dispositivos (neste padrão chamados de DCE - "comunicador de dados", de Data Communication equipment) em um computador (chamado de DTE - "terminal de dados", de Data Terminal equipment).

Assim como as outras interfaces, ela caiu em desuso com a chegada da interface USB na virada do século. No entanto, em pleno 2016 ainda era possível encontrar placas-mãe novas e defasadas com conector DE9 (vide algumas AsRock da linha N68).

Abaixo, você vê uma comparação entre a interface RS-232 "C" (terceira versão, publicada pela EIA em 1969) e outras populares:

Comparação de RS-232 com outras interfaces populares

Tabela 1


A faixa de frequência em que o I³C opera se estende a alguns kHz. As primeiras versões trabalham na faixa dos 100 kHz, depois surgiu a de 400 kHz (Modo rápido), 1 MHz (Fast Mode Plus) e 3,4 Mhz (Ultra Fast Mode).

A interface RS-232 possui apenas duas linhas para transferências de dados e a I³C possui uma linha de dados e outra de clock para conectar até 127 dispositivos. A interface SPI possui duas linhas de dados, uma de clock e a possibilidade de ter vários pinos para seleção de dispositivo escravo.

Para saber mais sobre a interface I³C e SMBus, CLIQUE AQUI!

Para saber mais sobre a interface SPI, CLIQUE AQUI!

Inicialmente, a interface serial foi definida com um conector DB25 de 25 pinos. Podemos diferencia-lo da porta paralela (conhecida como LPT) pela cor: a porta serial original DB25 possui cor azulada, já a popular porta LPT possui cor rosada.

O conector serial DB25 passou a ficar obsoleto quando a IBM decidiu que apenas 9 pinos seriam necessários, fazendo com que o conector DE9 fosse utilizado. Desta forma, todas as fabricantes passaram a dar prioridade para esta versão da interface serial, abolindo aos poucos o conector original. Por este motivo daremos ênfase apenas ao conector DE9, que foi muito popular no mundo inteiro e ainda é utilizado em alguns sistemas.

Abaixo, você vê a tabela de pinos deste conector:

Tabela de pinos do conector DE9

Tabela 2 - Lista de pinos do conector DE9, erroneamente chamado de DB9


Como o nome já diz, esta é uma comunicação serial. Há apenas um fio para envio e outro para recebimento de dados. A comunicação é do tipo Full-Duplex, mas sem controle de fluxo, o dispositivo emissor pode receber e enviar dados simultaneamente.

A taxa de transferência é baixa devido a evitar interferências eletromagnéticas (EMI) entre os fios do cabo. Na época em que o padrão foi definido, os engenheiros não tinham noção da vantagem da comunicação de dados em série, por isso não investiram muito nela e deram mais chances aos barramentos paralelos. Veja mais sobre conexões paralelas e seriais CLICANDO AQUI!


OBSERVAÇÃO: O conhecimento básico sobre pares de cancelamento, Lógica CMOS e Lógica TTL é de fundamental importância para o entendimento desta publicação, portanto, eu aconselho a leitura do texto linkado no parágrafo anterior!


Sempre que um controlador precisa mandar um dado, o emissor faz o pedido pela linha RTS (Request-To-Send) para saber se o receptor está podendo receber. Caso esteja, um sinal é mandado por outro fio, o CTS (Clear-To-Send).

A porta serial também pode ser utilizada para criar uma rede em anel, onde vários computadores trocam informações. Para que isso aconteça, cada computador deve ter duas portas seriais para que possa ser interligada várias máquinas uma na outra. A transferência de dados possui um sentido, e caso uma delas seja desconectada a conexão é interrompida e a rede em anel para de funcionar.

A porta serial transmite sequências de 8 bits (1 Byte) acompanhados de um bit de paridade "P", que é opcional e serve para garantir que o dado não chegue corrompido no receptor, e o circuito ignore o erro. Por ser uma interface extremamente antiga, quando suas especificações foram definidas, a transmissão era apenas sequências de 7 bits, pois a tabela ASCII da época funcionava assim. Na porta serial, o Byte é transmitido invertido, ou seja, o bit menos significativo por primeiro. Para saber mais sobre bits e Bytes, clique aqui!

A transmissão é feita sempre no modo assíncrono, ou seja, não há uma linha de clock para sincronizar o emissor e o receptor de sinal. A comunicação é feita da mesma forma que na interface PS/2: Há um START bit sinalizando o início da transmissão e um STOP bit sinalizando o fim dessa transmissão.

Veja no diagrama abaixo, para a interface PS/2:

Exemplo de transmissão de 8 bits com paraidade

Diagrama 1


Na realidade, quando a transmissão de dados ocorre entre dois chips na mesma placa os bits de valor 0 (zero) e 1 (um) são representados por sinais elétricos padrões da lógica TTL (aqui é aplicada tanto a versão de 5 Volts quanto a de 3,3 V).

No entanto, quando se tratam de transmissões de dados em distâncias maiores, que necessitam de cabos, os bits de valor 0 (zero) são representados por uma tensão de +12 Volts, e os bits de valor 1 (um) são representados por uma tensão de -12 Volts. A linha se mantém sempre em nível 1 (HIGH), ou seja, em -12 Volts e ao iniciar a transmissão a tensão é puxada para +12 Volts (nível 0 do START bit). O STOP bit é o contrário, ou seja, a tensão passa para -12 Volts.

Isto ocorre pois, se a transmissão for entre chips na mesma placa, a probabilidade de sofrer com ruídos ou gerar ruídos tende a ser menor do que numa transmissão entre duas placas, onde um cabo de comunicação está imerso num ambiente com características variáveis, isto é, EMI completamente imprevisível.

Sendo assim, a engenharia da época resolveu incluir na especificação da RS-232 uma espécie de 'sinalização diferencial rudimentar' para conexões cabeadas: ao invés de um par de fios transmitindo o mesmo sinal com polaridades invertidas, apenas um fio transmitindo sequências de zeros e uns com polaridade invertida.


CURIOSIDADE: Num CLP (Controlador Lógico Programável) os pulsos HIGH são chamados de "MARK" e os pulsos LOW são chamados de "SPACE".


O Super I/O (tanto o chip dedicado, quanto o Super I/O embutido no chipset) não fornecem as tensões de 12 e -12 Volts. Quem faz isso são CIs driver que recebem os dados da interface serial do Super I/O e geram os sinais elétricos padrão para a porta. Estes CIs driver recebem sinais de 12 Volts e -12 Volts do circuito de alimentação (através da fonte ATX) para poderem criar o sinal padrão. Veja abaixo, o diagrama de três circuitos de porta serial:

Esquema elétrico da porta serial da placa-mãe Biostar IG41M-M7S Rev. 6.0

Diagrama 2 - Esquema elétrico da porta serial da placa-mãe Biostar IG41M-M7S Rev. 6.0

Esquema elétrico da porta serial da placa-mãe ECS Q57H AM Rev. 1.0

Diagrama 3 - Esquema elétrico da porta serial da placa-mãe ECS Q57H AM Rev. 1.0

Esquema elétrico da porta serial da placa-mãe ECS H61H2-M12 Rev. 1.0

Diagrama 4 - Esquema elétrico da porta serial da placa-mãe ECS H61H2-M12 Rev. 1.0

Observe que nas duas placas da ECS é utilizado o mesmo modelo de CI driver: o chip ST75185CT-S da ST Microelectronics. Na placa da Biostar é utilizado o CI ST75185CTR também da ST Microelectronics. Este CI driver deve estar próximo da porta serial. Veja, na sequência, as imagens de algumas placas-mãe com porta COM (RS-232):

Imagem 2 - Observe os drivers de cada porta DB9

Observe nos diagramas e nas imagens das placas que na porta serial sempre há terminações capacitivas entre o CI driver e o conector DE9. Lembrando que, uma terminação capacitiva é um capacitor em paralelo com a linha de dados e o neutro.


A taxa de transferência máxima da porta serial é dada em bits por segundo. Em circuitos mais primitivos atingiam 300 bps e atualmente chegam a 115.200 bps. Por ter taxa de transferência mais baixa, os cabos podiam ser mais compridos, podendo atingir até 15 metros, bem diferente da porta paralela que tinha maior desempenho. Para ver mais sobre a porta LPT, CLIQUE AQUI!

O protocolo utilizado inicialmente na porta serial era chamado de 7E1 (7 bits de dados; Even = paridade par e 1 stop bit) que após alguns anos foi substituído pelo 8N1 (8 = 1 Byte de dados; N = nenhuma paridade e 1 stop bit).

O controlador da porta serial é chamado de UART (Universal Asynchronous Receiver and Transmitter - Receptor e Transmissor Assíncrono Universal). Este circuito tem a finalidade de pegar os dados recebidos em paralelo e organizá-los em série para que sejam enviados pela porta serial. Ao receber dados pela porta serial, o UART pega os dados em série e organiza-os em paralelo para que sejam enviados ao processador. Caso a transmissão para o processador fosse em série também, tudo ia ficar mais lento, pois como já foi dito, a interface serial antigamente sofria vários problemas de desempenho devido a falta de planejamento.

A cada 8 bits que o UART precisava mandar ao processador, ele gerava uma interrupção de hardware utilizando seu endereço IRQ (Interrupt Request). Com o tempo, foi adicionado um buffer de memória com arquitetura FIFO (First In, First Out - Primeiro a Entrar, Primeiro a Sair) com 4 bytes, para que fosse armazenado 32 bits, fazendo com que o UART só chamasse o processador quando o buffer estivesse cheio, reduzindo assim o número de interrupções e aumentando significativamente o desempenho. Atualmente há UARTs com um buffer de 8, 16 e até mesmo 32 Bytes.

Para cada porta serial presente no computador há um UART, e para cada UART há um endereço de identificação atribuído pelo sistema operacional. Cada porta serial possui um "rótulo" denominado "COM", que significa Communications. Nos anos 80 e 90, por mais que a porta serial fosse lenta ela ainda era bastante utilizada, fazendo com que em alguns casos, várias portas tivessem que ser utilizadas, gerando alguns inconvenientes que explicarei abaixo.

Dispositivos que utilizavam a porta serial não eram plug and play, portanto, para desconectar um dispositivo e conectar outro na porta deveríamos reiniciar o computador para que fosse descarregado o driver do dispositivo da memória RAM e carregado o driver do outro dispositivo que foi conectado naquela porta. Todo esse processo geraria transtornos, o que fez a Microsoft fazer uma pequena alteração no MS-DOS 3.3. Essa alteração fez com que o sistema operacional conseguisse endereçar até quatro portas seriais.

A porta serial COM1 utilizava o endereço 3F8h, a porta COM2 o endereço 2F8h e os outros dois endereços adicionados ao MS-DOS eram o 3E8h para a COM3 e o 2E8h para a COM4. Versões do Windows que foram lançadas depois do MS-DOS já conseguiam endereçar inúmeras portas seriais.

Essa adição de endereços gerou um esgotamento de endereços IRQ que seguiam o padrão do PC original, com apenas 8 linhas de interrupção de hardware que já vinham sendo ocupadas por outros circuitos e por 2 portas seriais. Isso fez com que as portas seriais COM1 e COM3 fossem atribuídas ao endereço IRQ4 e as portas seriais COM2 e COM4 fossem atribuídas ao endereço IRQ3. Desta forma, se duas portas com o mesmo IRQ gerarem um interrupção de hardware ao mesmo tempo, o processador não saberá qual das duas o chamou, gerando assim um conflito. Resumindo: por mais que 4 portas seriais estejam disponíveis, apenas duas portas com endereços IRQ diferentes podem ser utilizadas simultaneamente. Isso também vale para sistemas operacionais que consigam endereçar várias portas seriais, como é o caso das versões seguintes ao MS-DOS.


CURIOSIDADE: Em conexões mais atuais, sejam elas paralelas ou seriais, vemos o emprego de um SerDes (Serializer / Deserializer) quando há a necessidade de fazer a conversão de uma interface paralela para uma serial, ou vice versa. Como exemplo posso citar os chips utilizados em placas adaptadoras para converter uma porta Serial ATA em uma porta Parallel ATA (IDE). Mas qual é a diferença entre UART e SerDes?

Conceitualmente, eles são iguais. As principais diferenças são que UART é empregada em interfaces de comunicação de baixa velocidade (Na faixa dos kbps), enquanto SerDes é empregada em interfaces de comunicação de alta velocidade (Na faixa dos Mbps e Gbps).

Alguns detalhes extras sobre esta interface...


CURIOSIDADE: Na Imagem 1 é possível perceber que a estrutura de cor azul do conector RS-232 é um plástico, mais especificamente LCP, sigla para Liquid Crystal Polymer, um material muito utilizado em slots e conectores de placas de circuito devido a sua boa rigidez dielétrica e resistência a altas temperaturas. Para saber mais sobre polímeros, CLIQUE AQUI!


Usos Atuais


Apesar de ser obsoleta em várias áreas, a RS-232 voltou a ser popular em microcontroladores, já que possui implementação muitos simples. Equipamentos industriais, tipos os CLPs mencionados anteriormente ainda vem com esta interface. Dispositivos como switches (para interligar redes de computador) e até nobreaks mais sofisticados também possuem um conector DE9 servindo como "porta de acesso" para configuração. Até mesmo projetores DLP podem vir com uma porta serial.

Na inspeção veicular, a interface RS-232 pode ser encontrada em frenômetros e detectores de gases / fumaça, onde já concorre em paralelo com a USB 2.0, mas ainda reina tranquilamente. :v.

Na imagem abaixo, podemos ver um equipamento analisador de gases da NAPRO, modelo "PC Multigás", cuja interface com o PC é através de uma porta RS-232:

Imagem 3 - NAPRO PC Multigás, para análise de gases em veículos a Gasolina / Alcool ou GLP

De qualquer maneira, o chip que controla a interface RS-232 requer um CI Driver similar aos utilizados em placas-mãe para gerar os sinais de 12 Volts e -12 Volts. O CI Driver pode estar integrado ao controlador.


A confusão dos conectores "D"


Após a dúvida de um leitor aqui do blog, resolvi dissertar sobre a utilização dos conectores DB e sua relação com as interfaces de comunicação planejadas sobre eles.

Os conectores DB foram inventados pela Cannon. O sistema de identificação da Cannon usa um "D" como prefixo para toda a série (pois o conector possui um formato de letra "D"), seguido de uma letra indicando o tamanho, como pode ser visto na lista abaixo:


-> A: 15 pinos;

-> B: 25 pinos;

-> C: 37 pinos;

-> D: 50 pinos;

-> E: 9 pinos.


A sequência de duas letras vem acompanhada do número real de pinos, seguido pelo gênero (M=macho, F=fêmea). Por exemplo, DB25M indica um conector "D" com um envoltório para 25 pinos contendo 25 contatos machos. A Cannon também produziu conectores com pinos especiais, maiores que os comuns. Posso citar como exemplo a variante DB13W3, que foi utilizada para conexões de vídeo de alta performance. Ela possuía 10 pinos regulares e mais três contatos coaxiais para os sinais de vídeo Red, Green e Blue (RGB).

É provável que, pelo fato do IBM ter grande influência sobre a conexão serial e paralela utilizando estes conectores, tornou-se comum denominar todos eles como sendo "DB", independentemente de serem, na verdade, "DA" "DC" ou "DE". Quando a porta serial do PC começou a usar conectores de 9 pinos, ela foi batizada de "DB9" em vez de "DE9". Essa nomenclatura caiu no gosto popular, ou foi a que 'pegou' entre os leigos, como preferir.

Os conectores DB estão agora definidos por uma norma internacional, a DIN 41652.


Os conectores DE9, DA15, DB25, DC37 e demais variações possuem centenas de utilidades até hoje. Posso até listar algumas delas:


-> interface Game: Utilizada para conectar Joysticks e até mouses muito antigos - utiliza conector DA15;

-> interface LPT: Impressoras e scanners antigos - utiliza o conector DB25;

-> Interface RS-232: Conexão de dados seriais (utilizadas em mouses antigos, anteriores a interface PS/2), que utiliza o conector DE9. A RS-232 também utiliza um conector DB25 em aplicações extremamente antigas.


Como você pode notar em meus exemplos acima, o DB25 foi utilizado tanto em uma interface de comunicação serial (RS-232 primitiva) quanto numa paralela (LPT). Isso se deve aos conectores, que foram projetados pra inúmeras utilidades, não havendo um padrão de uso, portanto, caso você encontre uma placa de expansão com conector DB25, DC37 ou qualquer outro, talvez ele tenha alguma aplicação específica, cabendo a análise por parte do técnico.

No caso do leitor que enviou a dúvida, a placa em questão possuía um conector DB25 e relés do tipo palheta (Reed Relays), além de, claro, alguns chips, sendo um deles uma interface de periféricos programável. Atualmente ainda é comum achar placas deste tipo para aplicações que excedem as utilizações comuns dos conectores DB, como por exemplo a SeaLevel REL-16, que possui 16 reed relays e um conector DC37.

Nos Chips Super I/O, além da interface serial conectada ao UART, há também a conexão com um IF (Infravermelho), que também transmite os dados de forma serial e depende de um UART para funcionar, o que fez as fabricantes o conectarem junto ao circuito controlador da porta RS-232.


Caso tenha ficado com dúvidas ou achou que falta alguma coisa, mande suas palavras nos comentários do Facebook ou para hardwarecentrallr@gmail.com. Se gostou é só curtir e compartilhar! Ajude a divulgar a página!

 

FONTES e CRÉDITOS

Texto, imagens e gráficos: Leonardo Ritter

Fontes: Passeidireto.com; Pinouts.ru; Hardware.com; Wikipedia (somente artigos com fontes verificadas!)

Última atualização: 23 de Maio de 2022.

1.856 visualizações

O Hardware Central abandonou de vez o Facebook. Não temos mais fanpage e a caixa de comentários que aqui habitava foi chutada pra longe! Não somos Mainstream! Redes socias não combinam com nós! Somos a galera dos livros!

Como também repassamos conteúdo de terceiros, não é justo restringir a cópia! O uso do conteúdo do HC e de toda a internet deve ser livre!

Para relatar erros, incongruências ou sugerir conteúdo, nos chame pelo hardwarecentrallr@gmail.com! Não somos perfeitos, mas sempre é possível melhorar!

bottom of page