Protocolo CAN: Compreendendo a rede de área do controlador

O Rede de área do controlador ou Protocolo CAN é um método de comunicação entre dispositivos eletrônicos incorporados em um veículo, como sistemas de gerenciamento de motor, suspensão ativa, travamento central, ar condicionado, airbags, etc. A ideia foi iniciada pela Robert Bosch GmbH em 1983 para melhorar a qualidade e a segurança dos automóveis, aumentando a fiabilidade dos automóveis e a eficiência de combustível.

O protocolo CAN da Bosch, lançado pela primeira vez em 1986, também proporcionou avanços na comunicação. Isto foi significativo porque os desenvolvimentos em as indústrias eletrônica e de semicondutores da época geraram novas tecnologias, mas também desafios para os engenheiros da indústria automobilística. Por exemplo, a eletrónica oferecia mais funcionalidades e complexidades, incluindo a capacidade de “comunicação” entre dispositivos. Os engenheiros automotivos muitas vezes recebiam a tarefa de incorporar esses dispositivos, garantindo que funcionassem sem erros.

CAN simplificou o processo, onde diferentes módulos eletrônicos poderiam se comunicar entre si usando um cabo comum.

A necessidade do CAN
Um veículo contém uma rede de dispositivos eletrônicos que compartilham dados e informações entre si. Um motor de ignição por centelha, por exemplo, requer uma faísca para iniciar a câmara de combustão. O tempo é importante aqui. Para garantir que isso ocorra com precisão, ele “se comunica” com a unidade de controle do motor do veículo, que escolhe o momento ideal para a ignição fornecer potência e eficiência de combustível.

Outro exemplo de comunicação entre dispositivos inclui a unidade de controle de transmissão de um automóvel. Ele muda automaticamente a marcha de um veículo em relação à sua velocidade usando dados da unidade de controle do motor e vários sensores no sistema. Todo dispositivo eletrônico possui uma ECU/MCU (eletrônico/microcontrolador unidade de controle) com seu próprio conjunto de regras para compartilhar e transferir informações.

No entanto, para que dois ou mais dispositivos interajam, eles devem estar equipados com hardware e software para se comunicarem adequadamente. Antes do CAN ser usado em veículos, cada dispositivo eletrônico era conectado a outro por meio de fios (ou, mais especificamente, por fiação ponto a ponto). Isso funcionou de maneira bastante eficaz quando as funções eram básicas. Mas um dos principais problemas para os engenheiros automóveis à medida que a electrónica avançava era ligar as ECUs de diferentes dispositivos para que a informação pudesse ser trocada em tempo real. O protocolo CAN foi projetado para resolver esse problema.

Imagem mostrando conexão de fiação ponto a ponto em um protocolo CAN

Um exemplo de conexão de fiação ponto a ponto em um protocolo CAN.

O protocolo estabelece regras pelas quais os dispositivos eletrônicos podem trocar informações entre si por meio de um barramento serial comum. Reduziu as conexões de fiação e a complexidade geral do sistema.

Diagrama algorítmico mostrando a conectividade entre vários dispositivos usando o protocolo CAN

Um diagrama algorítmico que mostra a conectividade entre dispositivos usando o protocolo CAN.

A tecnologia padrão da época – transmissor/receptor assíncrono – não era capaz de suportar comunicação multidomínio. Um domínio é um grupo de dispositivos eletrônicos que possuem requisitos semelhantes para funcionar corretamente no sistema. Por exemplo, um reprodutor de CD/DVD, GPS e monitores e monitores formam um único domínio. Da mesma forma, o painel, o sistema de ar condicionado (ou controle climático), os limpadores, as luzes e as fechaduras das portas formam outro domínio.

TOs dispositivos eletrônicos em um veículo podem ser classificados em diferentes domínios e o CAN facilita a comunicação em vários domínios, o que é uma grande ajuda para os engenheiros automotivos.

Tabela mostrando a comunicação multidomínio suportada pelo protocolo CAN

Comunicação multidomínio de um veículo, suportada pelo protocolo CAN.

Como o protocolo CAN é implementado?

O protocolo CAN é um conjunto de regras para transmissão e recepção de mensagens em uma rede de dispositivos eletrônicos. Define como os dados são transferidos de um dispositivo para outro em uma rede.

Curiosamente, PODE foi desenvolvido com foco específico na indústria automobilística, mas sua arquitetura e vantagens levaram várias outras indústrias (como os setores ferroviário, aeronáutico e médico) a adotarem o protocolo também.

Versão simplificada do protocolo CAN

Uma versão simplificada do protocolo CAN.

Todo dispositivo eletrônico (ou) que se comunicam via protocolo CAN são conectados entre si por meio de um barramento serial comum, que permite a transferência de mensagens. Para que essa troca de dados ocorra, os nós requerem primeiro o hardware e o software necessários.

Imagem gráfica mostrando vários nós presentes em uma rede CAN

Vários nós presentes em uma rede CAN.

Conforme mostrado na figura acima, uma rede CAN típica consiste em vários nós. Cada dispositivo possui um controlador host (ECU/MCU), que é responsável pela função de um nó específico, e o Controlador e transceptor CAN.

O O controlador CAN converte mensagens dos nós de acordo com os protocolos CAN, que são então transmitidos através do transceptor CAN através do barramento serial – e vice-versa. O controlador é um chip incorporado ao controlador host do nó ou adicionado separadamente.

O protocolo CAN faz não seguem a arquitetura mestre-escravo, o que significa que todos os nós têm acesso para ler e escrever dados no barramento CAN. Quando o nó está pronto para enviar dados, ele verifica a disponibilidade do barramento e grava um quadro CAN na rede. Um quadro é uma estrutura que carrega uma sequência significativa de bits ou bytes de dados dentro da rede.

Existem dois tipos de protocolos: endereço ou baseado em mensagem.

  • Em um protocolo baseado em endereçoos pacotes de dados contêm o endereço do dispositivo ao qual a mensagem se destina.
  • Em um protocolo baseado em mensagemcada mensagem é identificada por um ID predefinido em vez de um endereço.

O quadro transmitido CAN é normalmente um protocolo baseado em mensagens. Uma mensagem é um pacote de dados que transporta informações. Uma mensagem CAN é composta por 10 bytes de dados, que são organizados em uma estrutura específica (chamada quadro). Os dados transportados em cada byte são definidos no protocolo CAN.

Todos os nós que utilizam o protocolo CAN recebem um quadro e dependendo do ID do nó, o CAN “decide” se aceita ou não. Se vários nós enviarem a mensagem ao mesmo tempo, o nó com a prioridade mais alta (portanto, o ID de arbitragem mais baixo) receberá o acesso ao barramento. Os nós de prioridade mais baixa devem esperar até que o barramento esteja disponível.

Benefícios

  • Baixo custo: Como um barramento serial CAN usa dois fios (com produção de alto volume e baixo custo), ele oferece uma boa relação preço-desempenho.
  • Confiável: CAN oferece excelente mecanismos de detecção e tratamento de erros, que fornecem transmissão altamente confiável. Também é amplamente imune a interferências eletromagnéticas.
  • Flexível: Os nós CAN não são limitados pelo protocolo e podem ser facilmente conectados ou desconectados.
  • Rápido: Suporte CAN a taxa de dados de 1 MBit/s @ comprimento de barramento de 40 m.
  • Comunicação multimestre: Qualquer nó pode acessar o barramento
  • Confinamento de falhas: Nós defeituosos não perturbam a comunicação.
  • Capacidades de transmissão: As mensagens podem ser enviadas para um/muitos/todos os nós.
  • Padronizado: A ISO padronizou o protocolo CAN via ISO-DIS 11898 (para aplicações de alta velocidade) e ISO-DIS 11519-2 (para aplicações de baixa velocidade). O protocolo CAN também é padronizado por organizações industriais, como a SAE-Society of Automotive Engineers.

Arquitetura CAN

O protocolo CAN utiliza o modelo de referência OSI existente para transferir dados entre os nós conectados em uma rede. O modelo de referência OSI representa um conjunto de sete camadas por onde os dados passam durante a comunicação entre dispositivos conectados. A estrutura de sete camadas do modelo OSI é confiável e amplamente utilizada em diversos protocolos de comunicação.

Diagrama de blocos mostrando a arquitetura CAN

A arquitetura CAN.

Cada camada tem sua função específica que suporta a camada acima e abaixo, conforme descrito abaixo.

· Camada de aplicação

Ele serve como uma janela para usuários e processos de aplicativos acessarem serviços de rede. As funções comuns das camadas são compartilhamento de recursos, acesso remoto a arquivos, gerenciamento de rede, mensagens eletrônicas e assim por diante.

· Camada de apresentação

A função mais importante desta camada é definir formatos de dados como texto ASCII, texto EBCDIC BINARY, BCD e JPEG. Ele atua como um tradutor de dados para um formato usado pela camada de aplicação na extremidade receptora da estação.

· Camada de sessão

Permite estabelecer, comunicar e encerrar sessões entre processos executados em dois dispositivos diferentes realizando segurança, reconhecimento de nomes e registro.

· Camada de transporte

A camada de transporte garante que as mensagens sejam entregues sem erros, em sequência e sem perdas ou duplicações. Isso alivia a camada superior de qualquer preocupação com a transferência de dados entre eles e seus pares.

· Camada de rede

Ele fornece sistema de endereçamento lógico ponta a ponta para que um pacote de dados possa ser roteado através de várias camadas e estabelecer, conectar e encerrar conexões de rede.

· Camada de enlace de dados

Ele empacota dados brutos em quadros transferidos da camada física. Esta camada é responsável por transferir frames de um dispositivo para outro sem erros. Após enviar o quadro ele aguarda a confirmação do dispositivo receptor. A camada de enlace de dados possui duas subcamadas:

{C1. Camada MAC (controle de acesso médio): Ele executa codificação de quadros, detecção de erros, sinalização, serialização e desserialização.

Camada LLC (Logical Link Control): A subcamada LLC fornece multiplexação mecanismos que possibilitam diversos protocolos de rede (IP, Decnet e Appletalk) coexistam em uma rede multiponto e sejam transportados no mesmo meio de rede. Desempenha a função de multiplexar protocolos transmitidos pela camada MAC durante a transmissão e decodificação ao receber e fornecendo fluxo nó a nó e controle de erros.

· Camada física

A camada física transmite bits de um dispositivo para outro e regula a transmissão de fluxos de bits. Ela define a voltagem específica e o tipo de cabo a ser usado para protocolos de transmissão. Ele fornece os meios de hardware para enviar e receber dados em uma operadora, definindo cabos, placas e aspectos físicos.

O protocolo CAN usa duas camadas inferiores do OSI, ou seja, camada física e camada de enlace de dados. As cinco camadas restantes, que são camadas de comunicação, são deixadas de fora pela especificação CAN da BOSCH para que os projetistas de sistemas otimizem e se adaptem de acordo com suas necessidades.

Diagrama de blocos mostrando várias camadas de uma rede usando protocolo CAN

Fig. 7: Diagrama de blocos mostrando várias camadas de uma rede usando protocolo CAN

A função de cada parte é mostrada na figura abaixo.

Diagrama de blocos mostrando funções de várias partes de uma rede CAN

Fig. 8: Diagrama de blocos mostrando funções de várias partes de uma rede CAN

O conceito do protocolo CAN pode ser entendido usando a figura acima. Cada nó possui um controlador Host, também conhecido como microcontrolador, que é um computador pequeno e de baixo custo. O controlador host implementa a camada de aplicação do modelo OSI. O microcontrolador coleta informações de outras unidades de controle eletrônico, como freios, direção, vidros elétricos, etc. para se comunicar com outros nós e as transfere para o controlador CAN. O controlador CAN incorpora controle de link lógico e controle de acesso ao meio MAC da camada de link de dados. LLC permite a filtragem de mensagens usando um ID exclusivo em cada mensagem e, em seguida, a subcamada MAC enquadra a mensagem. Uma vez feito o enquadramento, ele é seguido por arbitragem, detecção de erros e reconhecimento de que tudo está na subcamada MAC do link de dados. O quadro é transferido para o trans-receptor CAN, para codificação e decodificação. Finalmente, o trans-receptor CAN sincroniza com o barramento CAN para enviar a mensagem para outro nó.

Termos associados ao protocolo CAN.

VALORES DE ÔNIBUS

Os valores binários no protocolo CAN são denominados bits dominantes e recessivos.

· PODE definir o “0” lógico como bit dominante.

· PODE definir a lógica “1” como bit recessivo.

No sistema CAN, o bit dominante sempre substitui o bit recessivo.

Comunicação baseada em mensagens

Uma mensagem é um pacote de dados que transporta as informações a serem trocadas entre os nós. Cada mensagem no CAN possui um número de identificação único. O número de identificação é especificado de acordo com o conteúdo da mensagem e armazenado no identificador de mensagem. Este número de identificação também é único dentro da rede, portanto, quando o nó transmissor coloca os dados na rede para acesso a todos os nós, ele verifica o número de identificação exclusivo para permitir que a mensagem passe pelo filtro e o restante seja ignorado. Isso é feito para economizar o tempo gasto na classificação. Com o protocolo baseado em mensagens, outros nós podem ser adicionados sem reprogramação, uma vez que as unidades conectadas ao barramento não possuem informações de identificação, como endereçamento de nó. Portanto, não há necessidade de alteração no software e hardware de nenhuma das unidades conectadas no barramento.

Diagrama mostrando a comunicação baseada em mensagens em um protocolo CAN usando rede

Fig. 9: Diagrama mostrando a comunicação baseada em mensagens em um protocolo CAN usando rede

Enquadramento de mensagem

Mensagens em PODE são enviados em um formato chamado frames. Uma moldura é uma estrutura definida, carregando significativo sequência de bits ou bytes de dados dentro da rede. Enquadramento de mensagem é feito pela MAC subcamada de link de dados Camada .Lá são dois tipos de molduras padrão ou estendido. Estes os quadros podem ser diferenciados com base em campos identificadores. Um quadro CAN com 11 bits campos identificadores chamados CAN padrão e com 29 bits O campo identificador é chamado de quadro estendido.

Quadro padrão

Figura mostrando como a mensagem é enquadrada em um quadro CAN padrão

Fig. 10: Figura que mostra como a mensagem é enquadrada em um quadro CAN padrão

Vários campos no CAN padrão são os seguintes-

{C· SOF – bit de início do quadro. Indica o início da mensagem e é utilizado para sincronizar os nós de um barramento. Um bit dominante no campo marca o início do quadro.

· IDENTIFICADOR – Tem dupla finalidade: determinar qual nó tem acesso ao barramento e, segundo, identificar o tipo de mensagem.

· RTR – Solicitação de Transmissão Remota. Ele identifica se é um quadro de dados ou um quadro remoto. O RTR é dominante quando é um quadro de dados e recessivo quando é um quadro remoto.

{C}{· IDE – Extensão de identificador. É usado para especificar o formato do quadro. A ponta dominante é para moldura padrão e recessiva para moldura estendida.

{C}· R0 – Bit invertido. Não usado atualmente e mantido para uso futuro.

{C· DLC – Código de comprimento de dados. É um código de comprimento de dados de 4 bits que contém o número de bytes que estão sendo transmitidos.

{· DADOS– Usado para armazenar até 64 bits de dados de aplicação a serem transmitidos.

{C}· CRC – Verificação de Redundância Cíclica. A verificação de redundância cíclica (CRC) de 16 bits (15 bits mais delimitador) contém a soma de verificação dos dados do aplicativo anteriores para detecção de erros.

{· RECONHECIMENTO – Campo de reconhecimento (ACK). Compromete o slot ACK e o delimitador ACK. Quando os dados são recebidos corretamente, o bit recessivo no slot ACK é substituído como bit dominante pelo receptor.

{C}· Fim de ano– Fim do quadro (EOF). O campo de 7 bits marca o fim de um quadro CAN (mensagem) e desativa

Bit – recheio, indicando erro de recheio quando dominante.

{C}· IFS – Espaço Inter-Quadro que especifica o número mínimo de bits que separam mensagens consecutivas. fornece o intervalo entre dois quadros e consiste em três bits recessivos conhecidos como bits de intervalo. Este tempo permite que os nós sejam processados ​​internamente antes do início do próximo quadro.

ESTENDIDO PODE

Peças de rede CAN estendidas e suas funcionalidades

Fig. 11: Peças da rede CAN estendida e suas funcionalidades

É igual ao identificador de 11 bits com alguns campos adicionados

{C· SRR- Solicitação reversa de substituição. O bit SRR é sempre transmitido como um bit recessivo para garantir que, no caso de arbitragem entre um Quadro de Dados Padrão e um Quadro de Dados Estendido, o Quadro de Dados Padrão sempre terá prioridade se ambas as mensagens tiverem o mesmo identificador de base (11 bits). .

{· R1- É outro bit não utilizado atualmente e guardado para uso futuro.

Quadro de mensagem

Existem quatro quadros diferentes que podem ser usados ​​no barramento.

Quadros de dados– Esses são quadros mais comumente usados ​​e usados ​​quando um nó transmite informações para qualquer um ou todos os outros nós do sistema. Os Data Frames consistem em campos que fornecem informações adicionais sobre a mensagem conforme definido pela especificação CAN. Incorporados nos quadros de dados estão campos de arbitragem, campos de controle, campos de dados, campos CRC, um campo de confirmação de 2 bits e um fim de quadro.

Quadros de dados usados ​​em uma rede CAN

Fig. 12: Quadros de dados usados ​​em uma rede CAN

· Quadros remotos – O objetivo do quadro remoto é buscar permissão para a transmissão de dados de outro nó. Isto é semelhante ao quadro de dados sem campo de dados e o bit RTR é recessivo. Por exemplo, o microprocessador que controla o travamento central do seu carro pode precisar saber o estado do seletor de marcha da transmissão do controlador do trem de força.

· Quadros de erro – Se o nó transmissor ou receptor detectar um erro, ele abortará imediatamente a transmissão e enviará um quadro de erro composto por um flag de erro composto por seis bits dominantes e um delimitador de flag de erro composto por oito bits recessivos. O controlador CAN garante que um nó não possa bloquear um barramento transmitindo repetidamente um quadro de erro.

Quadros de erro usados ​​em uma rede CAN

Fig. 13: Quadros de erro usados ​​em uma rede CAN

· Quadro de sobrecarga-É semelhante ao quadro de erro, mas usado para fornecer atraso extra entre as mensagens. Um quadro de sobrecarga é gerado por um nó quando ele fica muito ocupado e não está pronto para receber.

Quadro de sobrecarga presente em uma rede CAN

Fig. 14: Quadro de sobrecarga presente em uma rede CAN

Arbitragem

É um mecanismo que resolve o conflito quando dois ou mais nós tentam enviar a mensagem ao mesmo tempo. Nesta técnica sempre que o barramento estiver livre, qualquer unidade pode transmitir uma mensagem. Se duas ou mais unidades começarem a transmitir ao mesmo tempo, o acesso ao barramento entra em conflito, mas este problema pode ser resolvido por arbitragem usando identificador. Durante a arbitragem, cada transmissor compara o valor do bit transmitido com o valor do bit no barramento. Se o valor do bit for igual, o nó continua a enviar os bits. Mas a qualquer momento, se o valor do bit transmitido for diferente do valor do barramento, o bit dominante sobrescreve os bits recessivos. O campo de arbitragem da mensagem CAN consiste em um identificador de 11 ou 29 bits e um bit de transmissão remota (RTR). O identificador com menor valor numérico tem a prioridade mais alta. O RTR simplesmente distingue entre o quadro remoto para o qual o RTR é recessivo e o quadro de dados para o qual o RTR é dominante. Se o quadro de dados e o quadro remoto com o mesmo identificador forem iniciados ao mesmo tempo, o quadro de dados prevalecerá sobre o quadro remoto. Com o conceito de arbitragem não se perde informação nem tempo.

CAN como um protocolo CSMA

CSMA é um protocolo de acesso múltiplo com detecção de portadora, no qual o nó verifica a ausência de tráfego antes de transmitir em um meio compartilhado, como um barramento elétrico. No CSMA, cada nó de um barramento espera um tempo específico antes de enviar a mensagem. Uma vez terminado esse período de espera, todos os nós terão oportunidades iguais de enviar a mensagem. Com base na prioridade pré-programada de cada mensagem no campo identificador, ou seja, o identificador de maior prioridade ganha o acesso ao barramento. É implementado na camada física do modelo OSI. Vamos entender o CSMA com um exemplo. Numa discussão, todas as pessoas têm oportunidades iguais de expressar os seus pensamentos, no entanto, quando uma pessoa está a falar, os outros ficam calados e ouvem e esperam pela oportunidade de falar (sentido de portador). Mas se duas ou mais pessoas começarem a falar ao mesmo tempo, elas detectam o fato e param de falar (detecção de colisão).

Controle de erros

Verificação de erros e confinamento de falhas

Este é um dos atributos do CAN que o torna robusto. O protocolo CAN possui cinco métodos de verificação de erros, dos quais três estão no nível da mensagem, enquanto os outros dois estão no nível do bit. Cada quadro é simultaneamente aceito ou rejeitado por todos os nós da rede. Se um nó detectar um erro, ele transmite um sinalizador de erro para cada nó e destrói o quadro transmitido e o nó transmissor reenvia o quadro.

Nível de mensagem

Verificação CRC

Neste estágio, um valor de verificação de redundância cíclica de 15 bits é calculado pelo nó transmissor e transmitido no campo CRC. Este valor é recebido por todos os nós. Em seguida, todos os nós calculam o valor CRC e comparam os resultados com o valor transmitido. Se os valores diferirem, um quadro de erro será gerado. Como um dos nós não recebeu a mensagem corretamente ela é reenviada.

Slots ACK

Quando o nó transmissor envia uma mensagem, um bit recessivo é enviado no slot de confirmação. Depois que a mensagem é recebida, o slot de reconhecimento é substituído pelo bit dominante que reconheceria que pelo menos um nó recebeu a mensagem corretamente. Se este bit for recessivo, nenhum nó recebeu a mensagem corretamente.

Erro de formulário

Fim do quadro, espaço entre quadros, delimitador de reconhecimento são campos que são sempre recessivos, se algum nó detectar um bit dominante em um desses campos o protocolo CAN chama isso de violação e um quadro de formulário é gerado e a mensagem original é reenviada após determinado período .

Nível de bits

Erro de material

Bit stuffing – É uma técnica muito comum usada em telecomunicações e transmissão de dados para inserir bits não informativos para ter as mesmas taxas de bits ou para preencher os quadros. Esses bits extras são removidos pela camada de enlace de dados para recuperar a mensagem original. Esta mesma técnica é usada em erro de bit. O barramento CAN nunca fica ocioso porque usa o método NRZ. Após cinco bits consecutivos do mesmo valor, um bit com complemento ou valor oposto é inserido no fluxo de bits. Se seis bits do mesmo valor forem detectados entre o delimitador SOF e CRC, o quadro de erro será gerado. Após a detecção de erros, a transmissão é abortada e o quadro é repetido. Se os erros persistirem, a estação ou nó poderá desligar-se para evitar que o barramento fique preso.

Erro de bit

Um nó que envia o bit sempre monitora o barramento. Se o bit enviado pelo transmissor for diferente do valor do bit no barramento, será gerado um quadro de erro. Mas há uma exceção no caso de campo de arbitragem ou slot de reconhecimento onde um bit recessivo é enviado e um bit dominante é recebido. Então nenhum erro de bit ocorre quando o bit dominante é monitorado.

Conclusão

Protocolo CAN inicialmente desenvolvido para redes automotivas em veículos, expandiu suas aplicações em vários outros setores. A aplicação iniciada para carros luxuosos agora está sendo utilizada em veículos pesados ​​como caminhões, ônibus, trens e veículos ferroviários. A característica única do CAN que permite que várias unidades eletrônicas se comuniquem entre si tornou-o importante no domínio da saúde. Por exemplo, unidades de cuidados intensivos e salas de operações onde o tempo e a comunicação são de extrema importância. A indústria do entretenimento também usou protocolos CAN para melhorar os recursos dos estúdios para controlar luzes e sistemas de portas e para controlar palcos de teatros, salas de eventos, etc. Máquinas de jogos de azar e brinquedos são outros exemplos no campo do entretenimento. No campo da ciência, os experimentos de alta energia e telescópios astronômicos utilizam CAN em redes embarcadas.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.