logo

Protocolo CAN (Rede de Área do Controlador)

CAN significa Rede de área do controlador protocolo. É um protocolo desenvolvido por Roberto Bosch por volta de 1986. O protocolo CAN é um padrão projetado para permitir que o microcontrolador e outros dispositivos se comuniquem entre si sem qualquer computador host. A característica que torna o protocolo CAN único entre outros protocolos de comunicação é o tipo de barramento de transmissão. Aqui, transmissão significa que a informação é transmitida a todos os nós. O nó pode ser um sensor, microcontrolador ou gateway que permite ao computador se comunicar pela rede por meio de um cabo USB ou porta Ethernet. O CAN é um protocolo baseado em mensagens, o que significa que a mensagem carrega o identificador da mensagem e, com base no identificador, a prioridade é decidida. Não há necessidade de identificação de nó na rede CAN, portanto fica muito fácil inseri-lo ou excluí-lo da rede. É um tipo de protocolo de comunicação serial half-duplex e assíncrono. O CAN é um protocolo de comunicação de dois fios, pois a rede CAN é conectada através do barramento de dois fios. Os fios são pares trançados com impedância característica de 120Ω conectados em cada extremidade. Inicialmente, foi concebido principalmente para comunicação dentro dos veículos, mas agora é utilizado em muitos outros contextos. Assim como o UDS e o KWP 2000, também PODE ser usado para diagnósticos integrados.

Por que pode?

A necessidade de um protocolo de comunicação padrão centralizado surgiu devido ao aumento do número de dispositivos eletrônicos. Por exemplo, pode haver mais de 7 TCU para vários subsistemas, como painel de instrumentos, controle de transmissão, unidade de controle do motor e muitos mais em um veículo moderno. Se todos os nós estivessem conectados um a um, a velocidade da comunicação seria muito alta, mas a complexidade e o custo dos fios seriam muito altos. No exemplo acima, um único painel requer 8 conectores, portanto, para superar esse problema, o CAN foi introduzido como uma solução centralizada que requer dois fios, ou seja, CAN alto e CAN baixo. A solução de utilização do protocolo CAN é bastante eficiente devido à sua priorização de mensagens, e flexível, pois um nó pode ser inserido ou removido sem afetar a rede.

Aplicações do protocolo CAN

Inicialmente, o protocolo CAN foi projetado para solucionar problemas de comunicação que ocorrem dentro dos veículos. Mas posteriormente, pelas funcionalidades que oferece, é utilizado em diversas outras áreas. A seguir estão as aplicações do protocolo CAN:

qual é a diferença entre um megabyte e um gigabyte
  • Automotivo (veículos de passeio, caminhões, ônibus)
  • Equipamentos eletrônicos para aviação e navegação
  • Automação industrial e controle mecânico
  • Elevador e escadas rolantes
  • Automação predial
  • Instrumentos e equipamentos médicos
  • Marinha, médica, industrial, médica

Arquitetura em camadas CAN

Como sabemos que o Modelo OSI particiona o sistema de comunicação em 7 camadas diferentes. Mas a arquitetura em camadas CAN consiste em duas camadas, ou seja,

Vamos entender ambas as camadas.

  • Camada de enlace de dados: Esta camada é responsável pela transferência de dados de nó para nó. Ele permite que você estabeleça e termine a conexão. Também é responsável por detectar e corrigir os erros que possam ocorrer na camada física. A camada de enlace de dados é subdividida em duas subcamadas:
      MAC:MAC significa Controle de acesso à mídia. Define como os dispositivos em uma rede obtêm acesso ao meio. Ele fornece encapsulamento e desencapsulamento de dados, detecção de erros e sinalização.
  • LLC:LLC significa controle de link lógico. É responsável pela filtragem de aceitação de quadros, notificação de sobrecarga e gerenciamento de recuperação.
  • Camada física: A camada física é responsável pela transmissão de dados brutos. Ele define as especificações para parâmetros como nível de tensão, temporização, taxas de dados e conector.

As especificações CAN definem o protocolo CAN e a camada física CAN, que são definidos no padrão CAN ISO 11898. ISO 11898 tem três partes:

  • ISO 11898-1: Esta parte contém a especificação da camada de enlace de dados e do enlace de sinal físico.
  • ISO 11898-2: Esta parte está na camada física CAN para CAN de alta velocidade. O CAN de alta velocidade permite taxas de dados de até 1 Mbps utilizadas no trem de força e na área de carga do veículo.
  • ISO 11898-3: Esta parte também está incluída na camada física CAN para CAN de baixa velocidade. Permite taxas de dados de até 125 kbps, e o CAN de baixa velocidade é utilizado onde a velocidade de comunicação não é um fator crítico.

CiA DS-102: A forma completa de CiA é CAN em Automação, que define as especificações do conector CAN.

No que diz respeito à implementação, o controlador CAN e o transceptor CAN são implementados no software com a ajuda do aplicativo, sistema operacional e funções de gerenciamento de rede.

PODE enquadrar

Vamos entender a estrutura do quadro CAN.

Protocolo CAN
    SOF:SOF significa início do quadro, o que indica que o novo quadro foi inserido em uma rede. É de 1 bit.Identificador:Um formato de dados padrão definido na especificação CAN 2.0 A usa um identificador de mensagem de 11 bits para arbitragem. Basicamente, este identificador de mensagem define a prioridade do quadro de dados.RTR:RTR significa Remote Transmission Request, que define o tipo de quadro, seja um quadro de dados ou um quadro remoto. É de 1 bit.Campo de controle:Possui funções definidas pelo usuário.
      IR:Um bit IDE em um campo de controle significa extensão de identificador. Um bit IDE dominante define o identificador padrão de 11 bits, enquanto o bit IDE recessivo define o identificador estendido de 29 bits.DLC:DLC significa Data Length Code, que define o comprimento dos dados em um campo de dados. É de 4 bits.Campo de dados:O campo de dados pode conter até 8 bytes.
    Campo CRC:O quadro de dados também contém um campo de verificação de redundância cíclica de 15 bits, que é usado para detectar a corrupção caso ela ocorra durante o tempo de transmissão. O remetente calculará o CRC antes de enviar o quadro de dados, e o receptor também calculará o CRC e depois comparará o CRC calculado com o CRC recebido do remetente. Se o CRC não corresponder, o receptor irá gerar o erro.Campo ACK:Este é o reconhecimento do receptor. Em outros protocolos, um pacote separado para confirmação é enviado após o recebimento de todos os pacotes, mas no caso do protocolo CAN, nenhum pacote separado é enviado para confirmação.EOF:EOF significa fim do quadro. Ele contém 7 bits recessivos consecutivos conhecidos como Fim do quadro.

Agora veremos como os dados são transmitidos pela rede CAN.

Protocolo CAN

Uma rede CAN consiste em vários nós CAN. No caso acima, consideramos três nós CAN e os nomeamos como nó A, nó B e nó C. O nó CAN consiste em três elementos que são fornecidos abaixo:

  • Hospedar
    Um host é um microcontrolador ou microprocessador que executa algum aplicativo para realizar um trabalho específico. Um host decide o que significa a mensagem recebida e qual mensagem deve ser enviada em seguida.
  • Controlador CAN
    O controlador CAN lida com as funções de comunicação descritas pelo protocolo CAN. Também aciona a transmissão ou recepção das mensagens CAN.
  • Transceptor CAN
    O transceptor CAN é responsável pela transmissão ou recepção dos dados no barramento CAN. Ele converte o sinal de dados no fluxo de dados coletados do barramento CAN que o controlador CAN pode entender.

No diagrama acima, um cabo de par trançado não blindado é usado para transmitir ou receber dados. Também é conhecido como barramento CAN, e o barramento CAN consiste em duas linhas, ou seja, linha CAN baixa e linha CAN alta, que também são conhecidas como CANH e CANL, respectivamente. A transmissão ocorre devido à tensão diferencial aplicada a essas linhas. O CAN usa cabo de par trançado e tensão diferencial devido ao seu ambiente. Por exemplo, em um carro, o motor, o sistema de ignição e muitos outros dispositivos podem causar perda e corrupção de dados devido ao ruído. A torção das duas linhas também reduz o campo magnético. O barramento é terminado com resistência de 120Ω em cada extremidade.

Características CAN

Protocolo CAN

Usando a tensão diferencial, determinaremos como 0 e 1 são transmitidos através do barramento CAN. A figura acima é o gráfico de tensão que mostra o nível de tensão de CAN baixo e CAN alto. Na terminologia CAN, a lógica 1 é considerada recessiva, enquanto a lógica 0 é dominante. Quando a linha CAN alta e a linha CAN baixa são aplicadas com 2,5 volts, a tensão diferencial real seria zero volt. Um zero volt no barramento CAN é lido pelo transceptor CAN como recessivo ou lógico 1. Um zero volt no barramento CAN é um estado ideal do barramento. Quando a linha alta do CAN é puxada para 3,5 volts e a linha baixa do CAN é puxada para 1,5 volts, a tensão diferencial real do barramento seria de 2 volts. É tratado como um bit dominante ou 0 lógico pelo transceptor CAN. Se o estado do barramento for atingido como dominante ou lógico 0, será impossível passar para o estado recessivo por qualquer outro nó.

exemplo de formato json

Pontos-chave aprendidos com as características do CAN

  • A lógica 1 é um estado recessivo. Para transmitir 1 no barramento CAN, tanto CAN alto quanto CAN baixo devem ser aplicados com 2,5V.
  • A lógica 0 é um estado dominante. Para transmitir 0 no barramento CAN, o CAN alto deve ser aplicado em 3,5V e o CAN baixo deve ser aplicado em 1,5V.
  • O estado ideal do barramento é recessivo.
  • Se o nó atingir o estado dominante, ele não poderá voltar ao estado recessivo por qualquer outro nó.

Lógica de barramento CAN

Protocolo CAN
Protocolo CAN

A partir do cenário acima, ficamos sabendo que o estado dominante substitui o estado recessivo. Quando o nó envia o bit dominante e o recessivo simultaneamente, o barramento permanece dominante. O nível recessivo ocorre somente quando todos os nós enviam o bit recessivo. Essa lógica é conhecida como lógica AND e fisicamente é implementada como um circuito coletor aberto.

Princípio de comunicação CAN

Como sabemos que a mensagem é enviada com base na prioridade definida no campo de arbitragem. Para o quadro padrão, o identificador da mensagem é de 11 bits, enquanto para o quadro estendido, o identificador da mensagem é de 29 bits. Ele permite que o projetista do sistema projete o identificador da mensagem no próprio projeto. Quanto menor o identificador da mensagem, maior será a prioridade da mensagem.

Vamos entender como funciona a arbitragem através de um fluxograma.

Protocolo CAN (Rede de Área do Controlador)

O remetente deseja enviar a mensagem e aguarda que o barramento CAN fique ocioso. Se o barramento CAN estiver ocioso, o remetente envia o SOF ou o bit dominante para o acesso ao barramento. Em seguida, envia o bit identificador da mensagem no bit mais significativo. Se o nó detectar o bit dominante no barramento enquanto transmite o bit recessivo, significa que o nó perdeu a arbitragem e para de transmitir mais bits. O remetente irá esperar e reenviar a mensagem assim que o barramento estiver livre.

Exemplo de Arbitragem CAN

Protocolo CAN

Se considerarmos três nós, ou seja, Nó 1, Nó 2 e Nó 3, os identificadores de mensagem desses nós são 0x7F3, 0x6B3 e 0x6D9, respectivamente.

Protocolo CAN

A transmissão de todos os três nós com o bit mais significativo é mostrada no diagrama acima.

passagem de pré-encomenda

onzeºbit: Como todos os três bits dos nós são recessivos, o bit do barramento também permanecerá recessivo.

10ºbit: Todos os nós possuem o 10º bit como recessivo, então o barramento também permanecerá recessivo.

9ºbit: O nó 1 possui um bit recessivo enquanto outros nós possuem um bit dominante, portanto o barramento também permanecerá dominante. Nesse caso, o nó 1 perdeu a arbitragem e para de enviar bits.

8ºbit: Tanto o nó 2 quanto o nó 3 estão enviando bits recessivos, de modo que o estado do barramento permanecerá recessivo.

7ºbit: O nó 2 está enviando o bit dominante enquanto o nó 3 enviou o bit recessivo, de modo que o estado do barramento permanecerá dominante. Neste caso, o nó 3 perdeu a arbitragem, então ele para de enviar a mensagem enquanto o nó 2 ganha a arbitragem, o que significa que ele continuará segurando o barramento até que a mensagem seja recebida.