Você entrou em seu carro, apertou o botão de partida e o motor ganhou vida em pouco tempo, mas como seu carro decidiu se deveria dar partida ou não?

Bem, para fazer o carro ligar, várias antenas e Unidades de Controle Eletrônico se comunicaram com o chaveiro. O protocolo Controller Area Network (CAN) garante que a comunicação entre seu chaveiro, antenas e ECUs ocorra adequadamente dentro do seu carro.

Então, o que é o protocolo CAN e como ele ajuda os dispositivos nos sistemas do seu veículo a trabalharem juntos? Bem, vamos descobrir.

O que é o protocolo CAN e por que ele é necessário?

Antigamente, os carros não tinham muitos eletrônicos. Na verdade, se você quisesse dar partida no seu veículo no início dos anos 1900, teria que sair do veículo e acionar o motor manualmente.

Os carros de hoje, ao contrário, têm vários sensores eletrônicos, e dispositivos eletrônicos monitoram tudo, desde a temperatura da cabine até as rotações do virabrequim.

Dito isso, os dados recebidos desses sensores não têm valor até que sejam processados. Esse processamento de dados é realizado por dispositivos de computação conhecidos como Unidades de Controle Eletrônico (ECUs).

Créditos da imagem: Sensei Alan/Flickr

Ao contrário de um computador com uma única CPU, um carro possui várias ECUs, cada uma delas responsável por realizar uma tarefa específica. Embora essas ECUs possam executar uma única tarefa com eficiência, elas devem trabalhar juntas para garantir recursos como abdômen e ESC trabalhe corretamente.

Devido a isso, todas as ECUs em um carro precisam estar conectadas. Pode-se usar uma topologia ponto a ponto para fazer essas conexões, onde cada ECU é conectada diretamente a todas as outras ECU. No entanto, essa arquitetura tornaria o sistema complexo. Na verdade, um veículo moderno tem mais de 70 ECUs, e conectá-los de forma um-para-um aumentaria exponencialmente o peso da fiação.

Para resolver esse problema, a Bosch, juntamente com a Mercedes-Benz e a Intel, criou o protocolo Controller Area Network em 1986. Este protocolo permitiu que as ECUs se comunicassem umas com as outras usando um barramento de dados compartilhado conhecido como barramento CAN.

Como o CAN funciona?

O protocolo CAN é uma metodologia de comunicação baseada em mensagens que conta com um conjunto de cabos de par trançado para transmissão de dados. Esses fios são conhecidos como CAN alto e CAN baixo.

Para habilitar a transmissão de dados nesses fios, seus níveis de tensão são alterados. Essas mudanças nos níveis de tensão são então traduzidas em níveis lógicos, permitindo que as ECUs de um carro se comuniquem umas com as outras.

Crédito da imagem: Spinningspark/Wikimedia

Para transmitir a lógica um no barramento CAN, a tensão de ambas as linhas é ajustada para 2,5 volts. Este estado também é conhecido como estado recessivo, o que significa que o barramento CAN está disponível para uso por qualquer ECU.

Ao contrário, a lógica 0 é transmitida no barramento CAN quando a linha CAN alta está em uma tensão de 3,5 volts e a linha CAN baixa está em 1,5 volts. Este estado do barramento também é conhecido como estado dominante, que informa a cada ECU no sistema que outra ECU está transmitindo, então eles devem esperar até que a transmissão termine antes de começar a transmitir sua mensagem.

Para habilitar essas mudanças de tensão, as ECUs do carro são conectadas ao barramento CAN através de um transceptor CAN e um controlador CAN. O transceptor é responsável por converter os níveis de tensão no barramento CAN para níveis que a ECU possa entender. O controlador, por outro lado, é usado para gerenciar os dados recebidos e garantir que os requisitos do protocolo sejam atendidos.

Todas essas ECUs conectadas ao barramento CAN podem transmitir dados no cabo trançado, mas há um problema, apenas a mensagem com maior prioridade pode ser transmitida no barramento CAN. Para entender como uma ECU transmite dados no barramento CAN, precisamos entender a estrutura de mensagem do protocolo CAN.

Compreendendo a estrutura da mensagem do protocolo CAN

Sempre que duas ECUs desejam se comunicar, mensagens com a estrutura abaixo são transmitidas no barramento CAN.

Essas mensagens são transferidas alterando os níveis de tensão no barramento CAN, e o design de par trançado dos fios CAN evita a corrupção de dados durante a transmissão.

  • SOF: Abreviação de Start Of Frame, o bit SOF é um único quadro de dados de bit dominante. Este bit é transmitido por um nó quando deseja enviar dados no barramento CAN.
  • Identificador: O identificador no protocolo CAN pode ter 11 bits ou 29 bits de tamanho. O tamanho do identificador é baseado na versão do protocolo CAN que está sendo usado. Se a versão estendida do CAN for usada, o tamanho do identificador será de 29 bits e, em outros casos, o tamanho do identificador será de 11 bits. O principal objetivo do identificador é identificar a prioridade da mensagem.
  • RTR: A Solicitação de Transmissão Remota ou RTR é usada por um nó quando os dados precisam ser solicitados de outro nó. Para fazer isso, o nó que deseja os dados envia uma mensagem com um bit recessivo no quadro RTR para o nó pretendido.
  • DLC: O código de comprimento de dados define o tamanho dos dados que estão sendo transmitidos no campo de dados.
  • Campo de dados: Este campo contém a carga útil de dados. O tamanho dessa carga útil é de 8 bytes, mas protocolos mais recentes, como o CAN FD, aumentam o tamanho dessa carga para 64 bytes.
  • CRC: Abreviação de Cyclic Redundancy Check, o campo CRC é um quadro de verificação de erros. O mesmo tem 15 bits de tamanho e é calculado tanto pelo receptor quanto pelo transmissor. O nó transmissor cria um CRC para os dados quando transmitidos. Ao receber os dados, o receptor calcula o CRC para os dados recebidos. Se ambos os CRCs corresponderem, a integridade dos dados será confirmada. Caso contrário, os dados têm erros.
  • Campo de reconhecimento: Uma vez que os dados são recebidos e estão livres de erros, o nó receptor alimenta um bit dominante no quadro de confirmação e o envia de volta ao transmissor. Isso informa ao transmissor que os dados foram recebidos e estão livres de erros.
  • Fim do quadro: Uma vez que a transmissão de dados é completada, sete bits recessivos consecutivos são transmitidos. Isso garante que todos os nós saibam que um nó concluiu a transmissão de dados e podem transmitir dados no barramento.

Além dos bits acima, o protocolo CAN possui alguns bits reservados para uso futuro.

Simplificando CAN através de um exemplo

Agora que temos uma compreensão básica de como é uma mensagem no barramento CAN, podemos entender como os dados são transmitidos entre diferentes ECUs.

Para simplificar, digamos que nosso carro tenha 3 ECUs: Nó 1, Nó 2 e Nó 3. Das 3 ECUs, o Nó 1 e o Nó 2 querem se comunicar com o Nó 3.

Vamos ver como o protocolo CAN ajuda a garantir a comunicação em tal cenário.

  • Detectando o estado do barramento: Todas as ECUs do carro estão conectadas ao barramento CAN. No caso do nosso exemplo, o Nó 1 e o Nó 2 querem enviar dados para outra ECU; antes de fazer isso, ambas as ECUs precisam verificar o estado do barramento CAN. Se o barramento estiver em um estado dominante, as ECUs não poderão transmitir dados enquanto o barramento estiver em uso. Por outro lado, se o barramento estiver em estado recessivo, as ECUs podem transmitir dados.
  • Enviando o início do quadro: Se a tensão diferencial no barramento CAN for zero, tanto o Nó 1 quanto o Nó 2 alteram o estado do barramento para dominante. Para fazer isso, a tensão do CAN alto é aumentada para 3,5 volts e a tensão do CAN baixo é reduzida para 1,5 volts.
  • Decidindo qual nó pode acessar o barramento: Uma vez que o SOF é enviado, ambos os nós competem para acessar o barramento CAN. O barramento CAN usa o protocolo Carrier Sense Multiple Access/Collision Detection (CSMA/CD) para decidir qual nó obtém acesso. Este protocolo compara os identificadores transmitidos por ambos os nós e dá acesso ao de maior prioridade.
  • Envio de dados: Uma vez que o nó tenha acesso ao barramento, o campo de dados, juntamente com o CRC, é enviado ao receptor.
  • Verificando e finalizando a comunicação: Ao receber os dados, o Nó 3 verifica o CRC dos dados recebidos. Se não houver erros, o Nó 3 envia uma mensagem CAN ao nó transmissor com um bit dominante no quadro de confirmação junto com o EOF para encerrar a comunicação.

Diferentes tipos de CAN

Embora a estrutura de mensagem usada pelo protocolo CAN permaneça a mesma, a velocidade de transmissão de dados e o tamanho dos bits de dados são alterados para transferir maiores larguras de banda de dados.

Devido a essas diferenças, o protocolo CAN possui versões diferentes, e uma visão geral do mesmo é fornecida abaixo:

  • CAN de alta velocidade: Os dados nos fios CAN são transmitidos serialmente, e essa transmissão pode ser feita em diferentes taxas. Para CAN de alta velocidade, essa velocidade é de 1 Mbps. Devido a essa alta velocidade de transmissão de dados, a lata de alta velocidade é usada para ECUs, que controlam o trem de força e os sistemas de segurança.
  • CAN de baixa velocidade: No caso de CAN de baixa velocidade, a taxa na qual os dados são transmitidos é reduzida para 125 kbps. Como a baixa velocidade pode oferecer taxas de dados mais baixas, ela é usada para conectar ECUs que gerenciam o conforto do passageiro, como o ar condicionado ou o sistema de infoentretenimento.
  • Pode FD: Abreviação de taxa de dados flexível CAN, CAN FD é a versão mais recente do protocolo CAN. Aumenta o tamanho do quadro de dados para 64 bytes e permite que as ECUs transmitam dados em velocidades que variam de 1 Mbps a 8 Mbps. Essa velocidade de transmissão de dados pode ser gerenciada pelas ECUs em tempo real com base nos requisitos do sistema, permitindo que os dados sejam transferidos em velocidades mais altas.

Qual é o futuro da comunicação automotiva?

O protocolo CAN permite que várias ECUs se comuniquem entre si. Essa comunicação permite recursos de segurança como controle eletrônico de estabilidade e sistemas avançados de assistência ao motorista, como detecção de ponto cego e controle de cruzeiro adaptativo.

Dito isso, com o advento de recursos avançados, como direção autônoma, a quantidade de dados transmitidos pelo barramento CAN está aumentando exponencialmente. Para habilitar esses recursos, versões mais recentes do protocolo CAN, como o CAN FD, estão entrando no mercado.