FuelTech ManualsGlossárioBuscar

2. Fundamentos da rede CAN

Versão 1.2Software: FuelTech Vision 3.0Firmware: 00.03.00.01Produtos: FT700, FT470, VisionFT2026-10-13

#O que é CAN

CAN (Controller Area Network) é uma rede de comunicação criada nos anos 1980 para ligar os módulos eletrônicos de um veículo com poucos fios. Em vez de um fio por sinal, todos os módulos compartilham um único par de fios, o barramento, e trocam mensagens curtas por ele. A norma que define a rede é a ISO 11898.

Três ideias explicam quase tudo sobre CAN:

Na prática, a VCU usa CAN para conversar com os dispositivos FuelTech (sonda, módulo de ignição, drivers de injeção, painéis), com equipamentos de outras marcas e com os módulos originais do veículo.

#Camada física: os fios

O barramento CAN de alta velocidade usa dois fios, CAN_H (CAN alto) e CAN_L (CAN baixo), trançados entre si. A informação está na diferença de tensão entre eles, não na tensão de cada um em relação ao terra. Por isso a rede tolera bem o ruído elétrico do motor: uma interferência que entra nos dois fios ao mesmo tempo não muda a diferença.

Níveis elétricos do barramento CAN. O bit dominante (0) sempre vence o recessivo (1).
Níveis elétricos do barramento CAN. O bit dominante (0) sempre vence o recessivo (1).

Os dois estados possíveis são:

Se um módulo transmite dominante e outro recessivo no mesmo instante, o barramento fica dominante. Essa regra simples é a base da arbitragem e da confirmação de recebimento.

#Topologia e terminação

O barramento é uma linha, com um começo e um fim. Cada módulo se liga a ela por uma derivação curta. Nas duas pontas da linha, e só nelas, vai um resistor de 120 Ω entre CAN_H e CAN_L, chamado terminador. Ele absorve o sinal que chega ao fim do fio e evita que ele volte refletido e se misture com os próximos bits.

Barramento em linha com um terminador de 120 Ω em cada ponta.
Barramento em linha com um terminador de 120 Ω em cada ponta.

Regras práticas de instalação:

O comprimento total da rede limita a velocidade, porque o sinal precisa ir e voltar dentro de um bit. Os valores abaixo são referências usuais de cabo para CAN de alta velocidade:

Taxa de transmissãoComprimento máximo de referência
1 Mbit/s40 m
500 kbit/s100 m
250 kbit/s250 m
125 kbit/s500 m

Num carro de corrida as distâncias são curtas e qualquer uma dessas taxas costuma funcionar. O que costuma falhar é terminação errada, emenda mal feita e derivação longa.

#O quadro CAN

Cada mensagem trafega dentro de um quadro (frame). O quadro tem campos fixos antes e depois dos dados: eles servem para identificar a mensagem, dizer quantos bytes ela tem e verificar se chegou sem erro.

Estrutura do quadro CAN clássico, padrão e estendido.
Estrutura do quadro CAN clássico, padrão e estendido.
CampoO que faz
SOFStart of Frame, início do quadro. Um bit dominante que sincroniza todos os módulos.
Identificador (ID)O nome da mensagem e, ao mesmo tempo, a sua prioridade. Tem 11 bits no quadro padrão (0x000 a 0x7FF) ou 29 bits no estendido (até 0x1FFFFFFF).
RTR, IDE, SRRBits de controle: dizem se o ID é padrão ou estendido e se o quadro é de dados ou um pedido remoto (raro hoje).
DLCData Length Code, código de tamanho: quantidade de bytes de dados, de 0 a 8 no CAN clássico.
DadosDe 0 a 8 bytes. É aqui que ficam os sinais (rotação, temperatura, pressão...).
CRCCódigo de verificação calculado sobre o quadro. Quem recebe recalcula e compara.
ACKConfirmação. Qualquer módulo que recebeu o quadro sem erro força esse bit para dominante.
EOFEnd of Frame, fim do quadro.

Os IDs costumam ser escritos em hexadecimal, com o prefixo 0x. O ID 0x640, por exemplo, é 1600 em decimal. Arquivos DBC escrevem o ID em decimal; telas e analisadores costumam usar hexadecimal.

#Arbitragem: quem fala primeiro

Quando o barramento fica livre, qualquer módulo pode começar a transmitir. Se dois começam ao mesmo tempo, cada um continua mandando o seu ID bit a bit e, ao mesmo tempo, lendo o barramento. Como o bit dominante (0) vence o recessivo (1), o módulo que manda 1 e lê 0 percebe que perdeu, para de transmitir e passa a ouvir. O vencedor nem percebe a disputa: o quadro dele segue intacto.

Arbitragem entre dois módulos. Vence o menor ID.
Arbitragem entre dois módulos. Vence o menor ID.

A consequência prática é que ID menor tem prioridade maior. Mensagens críticas, como rotação e torque, costumam ter IDs baixos. Um módulo que transmite um ID muito baixo com muita frequência pode atrasar todos os outros.

#Taxa de transmissão e ponto de amostragem

Todos os módulos de um barramento precisam usar a mesma taxa de transmissão (baud rate; na tela Portas CAN, Baudrate, em kbps, o mesmo que kbit/s). As taxas mais comuns em veículos são 500 kbit/s e 250 kbit/s; equipamentos de competição e a rede FTCAN da FuelTech usam 1 Mbit/s. Um módulo numa taxa diferente não entende nada e, pior, gera erros que atrapalham os demais.

Divisão de um bit em fatias de tempo (quanta) e o ponto de amostragem.
Divisão de um bit em fatias de tempo (quanta) e o ponto de amostragem.

Cada bit é dividido em pequenas fatias de tempo. O ponto de amostragem é o instante, dentro de cada bit, em que o controlador lê se o barramento está em 0 ou 1. Ele é dado em porcentagem da duração do bit e normalmente fica entre 75% e 87,5%. Módulos com pontos de amostragem muito diferentes podem até funcionar em bancada e falhar com cabo longo ou com ruído.

#Detecção de erros

CAN é uma rede muito robusta porque todos os módulos vigiam todos os quadros. Os principais mecanismos são:

Ao detectar um erro, o módulo destrói o quadro com um sinal de erro e o transmissor tenta de novo. Cada módulo mantém contadores de erro. Com poucos erros ele trabalha normalmente; com erros demais passa a um modo restrito e, no limite, se desliga do barramento para não atrapalhar os outros. Esse estado se chama bus-off. Taxa de transmissão diferente, terminação errada e CAN_H trocado com CAN_L são as causas mais comuns de módulo em bus-off.