O barramento CAN explicado: como os controladores, os sistemas de gerenciamento de bateria (BMS) e os displays se comunicam

Em uma máquina elétrica moderna, os componentes não apenas trocam energia: eles trocam informações. O controlador precisa saber o estado da bateria, o display a velocidade e as temperaturas, e um segundo controlador precisa saber a configuração do primeiro. O método mais comum para isso vem da indústria automobilística: o barramento CAN. Este guia explica como ele funciona e como conectá-lo corretamente.

O essencial

  • O CAN (Controller Area Network) conecta vários dispositivos através de um par de fios trançados, denominados CAN alto e CAN baixo.
  • É necessário uma resistência de 120 ohms em cada uma das duas extremidades do barramento, e apenas nas extremidades.
  • Cada mensagem possui um identificador que também serve como prioridade: a mensagem mais importante é sempre processada primeiro.
  • Todos os dispositivos devem utilizar a mesma velocidade de comunicação.

Um ônibus, não uma conexão

Uma conexão serial tradicional conecta dois dispositivos. O CAN, por outro lado, é um barramento: todos os dispositivos são conectados aos mesmos dois fios, e cada um pode se comunicar com todos. Para adicionar um dispositivo, basta conectá-lo ao barramento, sem precisar puxar um novo cabo até o controlador. É isso que o tornou essencial na indústria automobilística, onde dezenas de computadores compartilham apenas alguns pares de fios.

Em um veículo leve, geralmente encontramos um ou mais controladores, o sistema de gerenciamento da bateria (BMS), um display, um módulo de telemetria ou um carregador.

Duas linhas, uma diferença

O CAN utiliza um par de fios, CAN alto e CAN baixo. A informação não é transmitida pela tensão de um fio em relação à massa, mas sim pela diferença entre os dois:

  • Em repouso (com o bit "recessivo" ativo), os dois fios estão na mesma tensão, aproximadamente a metade da alimentação do circuito;
  • Para emitir um bit "dominante", o transmissor separa os dois fios: o fio superior sobe e o fio inferior desce.

Uma perturbação elétrica, como a gerada por um controlador que fornece centenas de amperes, afeta os dois fios da mesma maneira. A diferença entre eles, no entanto, permanece inalterada. É isso que torna o CAN tão robusto em um ambiente elétrico com ruído, desde que os dois fios estejam torcidos juntos.

As resistências de terminação

Um barramento CAN deve ter uma resistência de 120 ohms entre os pinos CAN alto e CAN baixo em cada uma de suas duas extremidades físicas. Essas resistências impedem que os sinais se reflitam no final do cabo e fazem com que o barramento retorne ao estado de repouso.

  • O teste foi bem realizado: ao medir entre o CAN alto e o CAN baixo, com os dispositivos desligados, encontramos aproximadamente 60 ohms (o equivalente a dois resistores de 120 ohms em paralelo).
  • Aproximadamente 120 ohms: está faltando um resistor de terminação.
  • Um valor significativamente inferior a 60 ohms indica que há muitas terminações ativas, o que geralmente ocorre quando vários dispositivos têm suas próprias terminações habilitadas.

Uma conexão ausente ou em excesso é a principal causa de instabilidade na comunicação.

Identificadores e prioridade

Cada mensagem CAN possui um identificador, um número que indica sobre o que se trata (por exemplo, "estado da bateria" ou "comando do motor dianteiro"). Os dispositivos leem todas as mensagens e retêm apenas aquelas que são relevantes para eles.

Quando dois dispositivos começam a transmitir simultaneamente, eles comparam seus identificadores bit a bit, no mesmo fio. Um bit dominante sobrescreve um bit recessivo: o dispositivo que emite um bit recessivo e lê um bit dominante entende que perdeu e para de transmitir. O identificador menor sempre vence, sem que nenhuma mensagem seja corrompida. Isso é chamado de arbitragem: as mensagens críticas recebem os identificadores menores.

Confiabilidade integrada

  • Cada mensagem contém um código de controle: uma mensagem corrompida é detectada e reenviada.
  • Cada receptor confirma o recebimento correto através de um bit de confirmação.
  • Um dispositivo que acumula erros entra automaticamente em modo de segurança para evitar que bloqueie todo o sistema.

A velocidade do barramento

Todos os dispositivos em um barramento devem utilizar a mesma velocidade. Os valores mais comuns são 250 e 500 kilobits por segundo, e, ocasionalmente, 1 megabit. Quanto mais rápido for o barramento, mais curta será sua distância máxima. No entanto, em um veículo leve, com uma distância de, no máximo, alguns metros, a distância nunca é uma limitação. Uma versão mais recente, o CAN FD, transmite mais dados por mensagem e em velocidades mais altas.

Exemplo: dois controladores conectados

Em uma scooter com dois motores, dois controladores conectados por CAN funcionam como um só: aquele que recebe o sinal do acelerador transmite a informação para o outro, e um único software de configuração visualiza os dois. Isso se aplica aos controladores VESC, como explicado em nosso guia "O VESC explicado de forma simples".

Dica para a oficina.

Mantenha sempre os fios CAN alto e CAN baixo juntos, longe dos cabos de fase, e verifique a resistência de 60 ohms com um multímetro antes de ligar o sistema pela primeira vez. Cinco minutos de verificação podem evitar horas de busca por problemas de comunicação intermitente.

Perguntas frequentes

O barramento CAN transporta corrente para alimentar dispositivos?

Não, o par CAN transporta apenas informações. Os dispositivos possuem sua própria fonte de alimentação, que por vezes é fornecida por outros fios do mesmo cabo.

Por que a comunicação CAN está funcionando de forma intermitente?

As causas mais frequentes são a falta ou o excesso de terminações, fios não torcidos que passam perto dos cabos de alimentação, um conector desgastado ou dois dispositivos que não possuem a mesma velocidade de barramento.

É possível conectar qualquer dispositivo CAN a qualquer outro?

Eletricamente, sim, se eles compartilham a velocidade do barramento. Mas para que eles se comuniquem, eles precisam usar a mesma "linguagem": os mesmos identificadores e o mesmo conteúdo nas mensagens. Duas marcas diferentes não se comunicam sem adaptação.