Visão geral do RS-485
Assim como o RS-232, o RS-485 é um padrão de comunicação serial. Sua designação oficial atual é TIA-485/EIA-485-A, mas é comumente chamada de padrão RS-485. RS-485 é amplamente utilizado em indústrias como automação industrial, automotiva e gerenciamento predial.
O barramento RS{8}}485 supera as deficiências do RS-232, como distâncias curtas de comunicação e baixas taxas de dados. RS-485 suporta taxas de dados de até 10 Mbit/s e tem uma distância teórica de comunicação de até 1.200 metros. Ao contrário da transmissão single-ended do RS-232, o RS-485 utiliza transmissão diferencial através de um par de fios de par trançado, com um fio designado como A e o outro como B.
Camada Física RS-485
A camada física RS-485 é responsável pela transmissão de dados brutos entre os dispositivos e o meio físico de transmissão. Ele lida com a conversão de sinais elétricos em dados digitais, ao mesmo tempo que define níveis de tensão, temporização, taxas de dados e outros parâmetros.
① Sinais Diferenciais
O cabeamento-de longa distância resulta na atenuação do sinal e aumenta a probabilidade de ruído e interferência. Isto se manifesta como mudanças na amplitude da tensão nos cabos A e B. No entanto, a vantagem de usar linhas diferenciais é que subtrair a diferença entre os dois sinais cancela a interferência, permitindo a saída de um sinal normal. A capacidade de um receptor diferencial de ignorar tensões idênticas em ambas as linhas de sinal é chamada de rejeição de modo-comum.


O padrão especifica que a lógica 1 é +2V a +6V e a lógica 0 é de -6V a -2V.
RS-485 não requer tensão de barramento específica; considera apenas a tensão diferencial mínima. Em comprimentos de cabo mais longos, a tensão recebida pelo receptor pode cair para +/- 200 mV, o que ainda é perfeitamente aceitável para RS-485 – esta é uma das vantagens do RS-485.
Muitos transceptores atendem ou até excedem o padrão TIA/EIA-485A; em aplicações práticas, entretanto, os parâmetros especificados do dispositivo têm precedência. Por exemplo, o limite mínimo de entrada negativa para um determinado transceptor é -200 mV.


② Definições de Sinal
Muitos conversores RS{3}}485 atuais são compatíveis com RS-422, então você verá frequentemente sinais rotulados como T/R+ e T/R- nesses conversores, que correspondem a A+ e B- do RS-485.
Para conectores DB9 fêmea, a definição da fiação RS-485 é a seguinte: Os pinos 6 a 9 são N/A e não devem ser conectados.
| DB9 | Sinal de saída | Fiação Full Duplex RS-422 | Fiação Half-Duplex RS-485 |
| 1 | T/R+ | Enviar (A+) | RS-485(A+) |
| 2 | T/R- | Enviar(B-) | RS-485(B-) |
| 3 | RXD+ | Receber (A+) | Vazio |
| 4 | RXD- | Receber(B-) | Vazio |
| 5 | GND | Fio terra | Fio terra |
③ Topologia
RS-485 suporta configurações de dois-fios e quatro{4}}fios. A configuração de quatro-fios é limitada à comunicação ponto-a-ponto e raramente é usada atualmente; a configuração de dois fios é mais comumente empregada. Esta configuração utiliza uma topologia de barramento, permitindo que até 32 nós sejam conectados em um único barramento.
Assim como o I²C, o barramento RS{1}}485 opera em modo mestre-escravo. Ele oferece suporte ao modo escravo-a{5}}ponto único-e ao modo multi-escravo, mas não oferece suporte ao modo multimestre.


Transceptor RS-485
RS-485 usa transmissão diferencial. Se quiser controlar um dispositivo RS-485 usando um microcontrolador, você precisará de um transceptor semelhante ao barramento CAN. O diagrama a seguir ilustra um MCU controlando um dispositivo RS-485.
Dentro de um transceptor há um receptor (metade superior) e um transmissor (metade inferior). Abaixo está uma breve explicação de como funciona um transceptor para ajudá-lo a entender como um MCU se comunica com um dispositivo 485.

Estrutura Interna de um Transceptor RS-485
Onde:
A e B são o ônibus;
R é a entrada do receptor;
RE é o sinal de habilitação do receptor;
DE é o sinal de habilitação do transmissor;
D é a saída do transmissor;
Para sinais de ativação, aqueles com uma linha acima da letra são ativos-baixos (por exemplo, RE na figura acima), enquanto aqueles sem linha são ativos-altos (por exemplo, DE).
Tabela Verdade do Receptor
Para o transmissor, a tabela verdade é a seguinte:
1. Quando o pino DE de habilitação do driver está em um nível lógico alto, as saídas diferenciais A e B seguem o estado lógico na entrada de dados D. Um nível lógico alto em D faz com que A fique alto e B fique baixo. Neste caso, a tensão diferencial de saída, definida como VOD=VA – VB, é positiva. Quando D é baixo, os estados de saída são invertidos: B vai para alto e A vai para baixo, e VOD é negativo.
2. Quando DE é baixo, ambas as saídas ficam com impedância-alta. Neste caso, o estado lógico em D é irrelevante.
A seguinte tabela verdade se aplica ao receptor:
1. Quando o pino de habilitação do receptor (RE) está em nível lógico baixo, o receptor é ativado. Quando a tensão de entrada diferencial, definida como VID=VA – VB, é positiva e excede o limite de entrada positivo VIT+, a saída R do receptor fica alta. Quando VID é negativo e abaixo do limite de entrada negativo VIT-, a saída R do receptor fica baixa. Se VID estiver entre VIT+ e VIT-, a saída será indefinida.
2. Quando RE é lógico alto ou flutuante, a saída do receptor é de alta impedância, independentemente da magnitude ou polaridade do VID.


Link de dados RS-485
Tendo discutido os princípios operacionais do transceptor RS{3}}485 acima, descreveremos agora brevemente o link de dados RS-485. Você pode primeiro dar uma olhada no formato de quadro do protocolo UART fácil de entender.
Quer o mestre envie dados para o escravo ou o escravo envie dados para o mestre, ambas as linhas A e B são usadas; portanto, RS-485 normalmente é usado no modo half-duplex.
O GPIO do host controla o pino DE do transceptor RS-485 para definir o modo de transmissão. Um único byte é enviado da linha UART TXD para a linha de dados (D ou DI) do transceptor RS-485. O transceptor converte o fluxo de bits UART de terminação única em um fluxo de bits diferencial nas linhas A e B. Assim que os dados saem do transceptor, o host imediatamente muda o transceptor para o modo de recepção.
O escravo opera de forma semelhante ao mestre. O escravo controla o pino /RE do transceptor RS-485 para configurá-lo para o modo de recepção, recebe o fluxo de bits enviado pelo mestre, converte-o em um sinal de terminação única e o recebe através da linha UART RXD do escravo. Quando o escravo está pronto para responder, ele transmite dados da mesma maneira que o mestre, enquanto o mestre muda para o modo de recepção.
Conversão de RS-232 para RS-485
É possível converter entre RS-232 e RS-485. Um método é converter RS-232 em TTL e depois converter TTL em RS-485. Claro, também existem chips que suportam conversão direta de RS-232 para RS-485, e muitos desses módulos estão disponíveis online.
Módulos de conversão RS-232 para RS-485
Diferenças entre RS-485 e CAN
Embora o RS-485 não possua um formato de protocolo de dados padronizado, ele compartilha muitas semelhanças com o barramento CAN. Por exemplo, tanto A&B quanto CANH&CANL são sinais diferenciais; ambos requerem transceptores para comunicação; e ambos usam resistores de terminação de 120 ohms, entre outras semelhanças.
| Características do ônibus | Ônibus CAN | Ônibus RS-485 |
| Custos de hardware | Um pouco mais alto | Barato |
| Utilização de ônibus | Arbitragem automática de prioridade, alta utilização | Usa votação; baixa utilização |
| Taxa de transferência de dados | Alto | Baixo |
| Mecanismos de detecção de erros | O controlador inclui um mecanismo de soma de verificação para garantir a precisão da transmissão-de dados de baixo nível | Somente especificações da camada física; sem especificações da camada de enlace de dados |
| Impacto de uma falha de{0}nó único | Nenhum impacto no ônibus | Paralisia de ônibus |
| Custos de desenvolvimento | Desenvolvimento de software flexível, baixo custo de tempo | Difícil de desenvolver |
| Custos do sistema | Relativamente baixo | Alto |
Circuitos RS-485 Comuns
Aqui está um circuito RS-485 comum que encontrei online. Há dois pontos a serem observados:
1. Os sinais de habilitação RE e DE podem ser controlados por um único GPIO para conservar recursos. Quando o GPIO25 emite um nível alto, RE e DE são 0 V e o dispositivo entra no modo de recepção; quando o GPIO25 emite um nível baixo, RE e DE são 3,3 V e o dispositivo entra no modo de transmissão.
2. Em alguns circuitos, um resistor pull{1}}up é adicionado ao pino A e um resistor pull{2}}down ao pino B. A principal razão para isso é que, quando o barramento RS-485 está no estado inativo, o nível de tensão não é fixo-isto é, ele flutua entre -200 mV e +200 mV - e o transceptor pode emitir um nível alto ou baixo. A UART deve manter um nível alto quando ociosa; se o transceptor emitir um nível baixo neste momento, o UART o interpretará como um bit de início, o que pode causar erros de comunicação. Os valores específicos de R_u e R_d não serão discutidos em detalhes aqui; Pretendo escrever um artigo detalhado sobre esse tópico no futuro.

Em relação ao segundo ponto, observe o seguinte:
① Se você aplicar um resistor pull{0}}up ao pino A e um resistor pull{1}}down ao pino B, a comunicação de dados poderá falhar devido a conexões invertidas.
② Se um transceptor tiver resistores pull-up e pull{2}}down integrados, não há necessidade de adicionar resistores externos.




