CONVERSOR RS-232/TTL DUPLO



O circuito a ser apresentado neste artigo não traz muitas novidades, pois sua configuração é utilizada em “conjunto” com outros circuitos apresentados aqui neste site e em outros. A novidade está em demonstrá-lo de maneira “isolada” de qualquer outro circuito, ou seja, de maneira independente. Desta forma o circuito transforma-se em uma versátil ferramenta de apoio àquele que desenvolve suas próprias soluções com microcontroladores.



Muitos já se depararam com a necessidade de ligar um microcontrolador a porta RS-232 de um PC, por exemplo. Os níveis de tensão na porta RS-232 de um PC (ou outro equipamento qualquer) são bastante diferentes dos níveis de tensão presentes nos pinos de I/O de um microcontrolador. Assim, quando projetando, a solução adotada por muitos é incluir um circuito “conversor” junto com o projeto em questão.

A proposta deste artigo permitirá que você use o Conversor RS-232/TTL entre o seu projeto com um microcontrolador qualquer e a porta RS-232 de um PC, sem a necessidade de montar tal circuito durante os testes.

Você deve estar se perguntando: Mas se o circuito pode ser facilmente montado, junto com o circuito principal, porque eu deveria montá-lo de forma separada? Esta questão tem duas respostas interessantes:

- Primeiro porque a montagem do mesmo, de maneira separada, garante que caso você se depare com um problema com a parte de comunicação do seu projeto, poderá descartar os testes da parte conversora RS-232/TTL do circuito, pois como esta “etapa” foi montada e testada anteriormente, sua eficácia é comprovada.

- E em segundo porque a montagem deste “acessório” em conjunto com outros já apresentados permitirá você a “construção” de um “laboratório de estudos” para microcontroladores com uma série de acessórios desejáveis.

Posso então dizer que ao adotar pequenos “circuitos auxiliares” durante a execução de um projeto, você garante uma economia de tempo considerável. Este é o caso também do "Teclado matricial", outro circuito auxiliar que pode interessar o desenvolvedor.

Antes de partirmos para a analise do circuito, um pouco de teoria sobre o padrão RS-232, sua pinagem, níveis de tensão aceitos e outras informações poderão ser úteis. Vamos a elas.



O PADRÃO RS-232

O padrão RS-232 é um dos mais difundidos no mundo da automação e controle. Hoje em dia apesar de muitos PCs, Notebooks e Netbooks não serem mais produzidos com esta porta, muitos outros equipamentos ainda fazem uso da mesma. 

O tipo de transmissão é serial, ou seja, transmitimos os bytes através de uma única via bit a bit e não byte a byte como na porta paralela, por exemplo (porta também em fase de extinsão total!!!). Este método permite que seja utilizado um único fio para a transmissão/recepão ou dois fios, uma para transmissão e outro para recepção. E devido aos níveis de tensão estabelecidos na norma, o tamanho do cabo de transmissão de dados pode chegar a 15 metros. Existem notícias de técnicos/engenheiros que conseguiram comunicação com cabos com mais de 30 metros de comprimento. Porém cada caso é um caso e não é possível afirmar que isso poderia funcionar em qualquer situação e ambiente sem um estudo prévio. Procure usar o comprimento seguro de 15 metros.

Para trabalhar com a comunicação RS-232 precisamos conhecer um pouco sobre o que a norma determina com relação as características “mecânicas” (formato dos conectores e distribuição dos pinos), “elétricas” (níveis de tensão presentes) e lógicas (como os dados são transmitidos e recebidos) da mesma.



CARACTERÍSTICAS MECÂNICAS


Na figura abaixo você pode ver como são os conectores para a RS-232 na maioria dos PC’s e na tabela mais abaixo a distribuição dos pinos e suas funções.


Tabela – Distribuição dos pinos nos conectores

Nome do pino Conector DB25 Conector DB09 Abreviação Descrição
Transmit Data 2 3 TxD Transmissão de dados. Por este pino a seqüência de bits é enviada
Receive Data 3 2 RxD Recepção de dados. Por este pino a seqüência de bits é recebida
Request to Send 4 7 RTS Requisição de envio. Por esta linha o agente transmissor informa que está pronto para enviar. Ativo em “1” antes de cada transmissão.
Clear to Send 5 8 CTS Limpa para enviar. Por esta linha o modem informa que está pronto para receber dados.
Data Set Ready 6 6 DSR Sinaliza que o modem ou periférico está pronto
Signal Ground 7 5 SG Terra comum do sinal. Referência para níveis de tensão RS-232
Carrier Detect 8 1 CD Detecção de transporte
Data Terminal Ready 20 4 DTR Indica que o terminal DTR está pronto para iniciar troca de informações
Ring Indicator 22 9 RI Indica “toque de chamada”


É muito importante também dizer que a norma separa equipamentos transmissores dos receptores (ou periféricos). Os transmissores geralmente são chamados de “Equipamentos de Dados” (DTE) e os periféricos de “Equipamentos de comunicação de dados” (DCE). Para os DTE temos os conectores no formato “macho” e para os equipamentos DCE os mesmo terão formato “fêmea”. Um PC pode ser considerado DTE e um modem externo, por exemplo, DCE.

Obs.: Existem muitas formas de conexão entre equipamentos DTE e DCE, e a norma EIA RS-232C determina como as mesmas devem ser feitas. Não abordaremos este tema neste artigo, nos restringindo a comunicação RS-232 entre um PC (DTE) e um microcontrolador (DCE) sem qualquer controle de fluxo (hardware ou software).



CARACTERÍSTICAS ELÉTRICAS

Os sinais elétricos na porta serial (RS-232) possuem níveis de tensão entre +15VDC e -15VDC (na grande maioria dos equipamentos estes níveis ficam entre +/- 12VDC). Na figura abaixo, você tem a representação de um sinal RS-232 na transmissão de um byte. Na RS-232 o “1” lógico tem nível de tensão entre -15VDC à -3VDC e o “0” lógico tem nível entre +3VDC à +15VDC. Se compararmos com a lógica TTL onde o “1” lógico tem nível de tensão +5VDC e o “0” lógico tem nível de tensão igual a 0VDC, é fácil se confundir. Tenha atenção nisso!





CARACTERÍSTICAS LÓGICAS

Toda comunicação assíncrona depende de alguns fatores, tais como: velocidade, número de bits, paridade e stop bits.


Velocidade:

A velocidade de comunicação é medida em bps (bits por segundo). Ela também é fundamental para o sucesso na comunicação entre equipamentos. Ambos os equipamentos (transmissor e receptor) devem ser configurados para operar na mesma velocidade, sempre. Esta velocidade pode ser configurada de 300 bps a 115000 bps (ou mais) nos dias atuais, dependendo exclusivamente do equipamento.


Número de bits:

O número de bits define quantos bits compõe o byte enviado. Atualmente, para a maioria dos equipamentos ele tem oito bits. Porém é possível realizar a comunicação com 5 à 8 bits.


Paridade:

A paridade é o modo mais antigo e simples de se verificar um erro durante a transmissão. Ela considera o número de bits em estado lógico igual a “1”. Assim a unidade transmissora “conta” o número de bits do byte transmitido em estado lógico “1” e envia um bit informando isso. Se o número de bits for par o bit de paridade assume o estado lógico “1”. Se ele for impar seu estado lógico será “0”.

Existem três formas de controle de paridade: par, impar e nenhuma. A diferença esta em indicar se o número de bits no estado lógico “1” é sempre par, impar ou nenhum. Nesse caso o bit de paridade assume estado lógico “1” de acordo com a opção selecionada. Se a escolha for nenhum, o bit de paridade é ignorado pelo equipamento receptor.

Obs.: Apesar do bit de paridade poder informar um erro, não existe fator de correção. Neste caso seria necessário via software no receptor verificar a paridade e se detectado um erro, solicitar ao transmissor um novo envio do byte danificado.


Start e stop bits

O Start bit serve para informar sobre o inicio de uma transmissão. O Stop bit é uma forma de informar o agente receptor sobre o final do byte. Ele pode assumir “1” ou “2” bits de parada.



CONFIGURAÇÕES PARA UMA PORTA RS-232

Durante a configuração de uma porta RS-232, o usuário deverá conhecer algumas informações, referentes aos equipamentos que deseja “conectar”. Estas informações basicamente são as seguintes:

- velocidade de comunicação;
- número de bits;
- paridade;
- número de stop bits.

A velocidade de comunicação, número de bits, paridade e número de stop bits deve ser a mesma nos equipamentos transmissor e receptor, caso contrário a comunicação não será estabelecida corretamente.

Obs.: Você poderá encontrar mais informações sobre a RS-232 e seus usos em outros artigos neste site. É o caso do artigo “Comunicação RS-232 com PIC".



PROTOCOLOS DE COMUNICAÇÃO

É muito importante que você compreenda que a RS-232 é um padrão de comunicação, com normas que definem o formato para os conectores utilizados, níveis de tensão, etc. Muitos confundem o padrão com um protocolo e acabam chamando equivocadamente o padrão RS-232  de  Protocolo RS-232.

Um protocolo de comunicação define como os dados serão transportados pelo meio físico, como será feita a verificação da integridade dos dados recebidos, qual a formatação para comandos, etc. São exemplos de protocolo de comunicação serial: XModem, ZModem, I2C, SPI, TCP/IP, Zigbee, BlueTooth, entre outros.

Obs.: Ao usar alguns protocolos neste artigo não estou afirmando que todos os que foram citados podem ser aplicados sobre o padrão RS-232 (meio físico). Apenas utilizei alguns protocolos bastante conhecidos, para facilitar o entendimento da diferença entre um “padrão” e um “protocolo”.



O CIRCUITO

Na figura abaixo temos o circuito elétrico do “Conversor RS-232/TTL”. CI1 é um drive RS-232 com dois canais. Este CI é o responsável pela conversão do nível de tensão do padrão RS-232 (+/- 15VDC - em alguns casos +/- 12VDC) para o nível de tensão do padrão TTL (0 a 5VDC).

C1 a C4 são capacitores eletrolíticos que dão suporte a CI1 quando da adaptação dos níveis de tensão TTL para RS-232. C5 é um capacitor de desacoplamento para CI1 atuando como “filtro” contra transientes “externos”. Os conectores CN1 (RS-232_1) e CN2 (RS-232_2) seguem a norma DCE do padrão RS-232 (conectores DB09 fêmea) e permitem a conexão com equipamentos que atendam a norma DTE do padrão RS-232 como um PC, por exemplo. A pinagem deste conector já foi detalhada anteriormente. Para o circuito em questão, apenas os sinais TX, RX e GND foram utilizados.

Os conectores CN3 (TTL1) e CN3 (TTL2) servem para a conexão com os pinos de I/O de um microcontrolador (ligados ou não a sua USART interna - padrão TTL). A pinagem destes conectores pode ser vista na tabela abaixo. Utilize esta tabela para realizar a ligação do circuito conversor com um microcontrolador.

Tabela – pinagem dos conectores TTL1 e TTL2

Pino Nome Descrição
TTL1(2)-1 TX (TTL) Utilizado para envio dos dados
TTL1(2)-2 RX (TTL) Utilizado para a recepção dos dados
TTL1(2)-3 GND Comum

Para se orientar com relação às conexões RS-232/TTL dos conectores descritos, utilize a tabela abaixo.

Tabela – Relação entre CN1/2 e CN3/4

Conector RS-232 Conector TTL
CN1 (RS-232_1) CN3 (TTL1)
CN2 (RS-232_2) CN4 (TTL2)

A alimentação do circuito é externa com 5 VDC (+/- 10%) e corrente igual ou superior a 100 mA. Esta alimentação poderá ser retirada do circuito em teste (com microcontrolador), por exemplo.



MONTAGEM

Na figura abaixo você tem minha sugestão para o lay-out para a confecção da placa de circuito impresso. Trata-se de uma placa de face única bastante simples de ser confeccionada. Porém você poderá montar o circuito em uma placa do tipo “padrão”. A escolha pelo tipo de montagem fica por conta de cada um, como sempre :-).

É aconselhável o uso de um suporte para CI1 para facilitar sua troca ou o seu reaproveitamento em um outro circuito qualquer. Os capacitores C1 a C4 são do tipo eletrolíticos e, portanto, polarizados. Você deve ter atenção ao montá-los. Siga atentamente o desenho fornecido para que a ligação dos mesmos seja feita de maneira correta (polaridade).

Os conectores CN1 e CN2 utilizados em meu protótipo são do tipo DB09 fêmea 90º, para montagem na placa. Porem você poderá utilizar os do tipo “aéreo” no caso da instalação do circuito em uma caixa (opcional). Os conectores CN3 (TTL1) e CN4 (TTL2) são do tipo barra de pinos 90º ou 180º. Você também poderá utilizar fios e neste caso aconselhamos que os mesmos sejam “coloridos” para facilitar a identificação das ligações no lado “TTL” da placa.

CN5 permite conectar alimentação de 5VDC para CI1. Em meu protótipo utilizei um conector o tipo KRE com dois segmentos, mas na falta do mesmo vocẽ poderá utilizar, mais uma vez, fios soldados diretamente na placa. Seja qual for o caso, sugiro que os fios de ligação tenham a cor vermelha para os 5 VDC e preto para GND.

O cabo de comunicação serial a ser utilizado com este circuito poderá ser adquirido pronto no mercado especializado em produtos de informática, com o nome “Cabo de comunicação serial” (não cruzado - um para um) ou ainda ser construído a partir das informações presentes na figura abaixo.




TESTE E USO

Após fazer uma boa verificação na montagem você já pode testar o circuito. Chamo sua atenção para a ligação da fonte externa. Quando for ligar o circuito tenha bastante cuidado para não inverter esta ligação, pois se isto acontecer, CI1 se danificará irremediavelmente.

Para um primeiro teste do circuito, você precisa de:

- 1 fonte de 5 VDC;
- 1 PC com porta RS-232;
- 1 cabo de comunicação (conforme descrito anteriormente).

Agora faça o seguinte:

1º) Conecte os pinos 1 e 2, do conector CN3 (TTL1), entre si;
2º) Conecte o cabo de comunicação entre o circuito e o PC, utilizando o conector CN1 (RS-232_1);
3º) Execute o programa “Hyper erminal” (ambiente Windows) e configure-o (existem muitos tutoriais por ai!);
4º) Alimente o circuito com 5 VDC (cuidado com a polaridade !!!);
5º) Tecle algo. Neste momento você verá o caracter teclado em sua tela.

Se você nunca usou o HyperTerminal ou outro programa tipo "terminal" deve estar achando curioso este teste. Porém a explicação é bem simples. O HyperTerminal quando não configurado para grafar o caracter de ECO na tela, apenas envia o caracter teclado via RS-232, sem escrevê-lo na tela. Desta forma, o caracter que você vê é na verdade o caracter que passou pela “entrada” RS-232 (CN1) e foi convertido para o níveis elétricos do padrão TTL com saída no pino 2 de CN3 (TTL1), e retornou através do pino 1 do mesmo conector (devido a conexão realizada no inicio dos testes). Para verificar o que foi dito, basta desfazer a conexão entre os pinos 1 e 2 do conector CN3 (TTL1).

Obs.: Caso a opção de “Caracter de ECO” esteja ativada no HyperTerminal, você verá os caracteres grafados na tela “dobrados”, ou seja, para cada tecla pressionada serão grafados dois caracteres iguais.

Repita os passos 1 a 5, porém desta vez utilizando o conector CN2 (RS-232_2) e CN4 (TTL2).

A ligação do circuito em um microcontrolador é bastante simples. Basta selecionar um circuito microcontrolado qualquer e que já tenha sido testado e seja de comprovada eficácia na comunicação RS-232. Basta então ligar os pinos do conector CN3 (TTL1) ou CN4 (TTL2) aos pinos de I/O do microcontrolador com a função RX e TX (veja a primeira tabela para ter a devida orientação de como fazê-lo). Não se esqueça de utilizar o conector correto a ser ligado ao PC e de conectar o GND do conversor ao GND do circuito microcontrolado.

Caso os testes não saiam conforme o descrito, você terá de verificar toda a montagem. O circuito e o cabo devem ser verificados. Nenhum detalhe da montagem deve deixar de ser revisto. A porta RS-232 do PC também deve ser verificada no setup da máquina além da configuração da mesma no Windows, assim como a sua configuração para o HyperTerminal. A alimentação também deve ser verificada. Como dito anteriormente, se ligada de maneira invertida, CI1 terá de ser substituído.



CONCLUSÃO

A montagem de “circuitos auxiliares” como conversores de nível de tensão (como o apresentado neste artigo), teclados matriciais e outros, representa uma excelente maneira de se obter ao final das montagens uma boa “plataforma de apoio” para uso com microcontroladores além de uma boa dose de teoria a respeito do funcionamento destes. Estudantes, técnicos, engenheiros e hobistas poderão se beneficiar de tais circuitos/estudos. Sorte, sucesso e até a próxima!




DOWLOADS:

- Circuito elétrico
- Esquema elétrico do cabo de comunicação
- Lay-out para confecção do circuito impresso - método manual
- Lay-out para confecção do circuito impresso - método transferência térmica
- Lista de materiais



Este artigo foi publicado, com minha autorização, na revista Eletrônica Total nr º 116 de Junho de 2006.




Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.