INSERÇÃO DE BITS NO CAN CLÁSSICO
Como o receptor separa os dados úteis dos bits de preenchimento
Na região sujeita à inserção de bits, o transmissor insere um bit de valor oposto após cinco bits consecutivos de mesmo valor no barramento. O receptor verifica e remove esse bit antes de interpretar os campos. Comece localizando o limite do quadro e, em seguida, compare o sinal capturado no barramento com o quadro decodificado.
Inserir
O transmissor insere um bit de valor oposto após cinco bits consecutivos de mesmo valor no barramento.
Localizar o limite
O receptor deixa de aplicar a regra de inserção dinâmica após a sequência CRC.
Medir nas duas extremidades
Compare o mesmo quadro de teste nos dois segmentos de cobre.
Confirme que se trata de CAN clássico e identifique o tipo de quadro e a taxa nominal de bits.
Verifique se a sequência de bits iguais está na região sujeita à inserção de bits.
Correlacione as transições do sinal bruto com o quadro exibido pelo analisador e com os erros do controlador.
Lista de verificação da captura — expandir
| Verificação | O que confirmar | Como verificar |
|---|---|---|
| Bits no barramento | Sequência de estados iguais | Conte a partir do início da região aplicável |
| Limite do campo | Fim da sequência CRC | Identifique o delimitador, o ACK e o EOF |
| Extensão por fibra | Ponto de observação | Alinhe as capturas dos dois segmentos de cobre |
Depois de gravar dados CAN em um controlador, você pode observar no osciloscópio mais bits do que a soma dos campos lógicos do quadro sugere. Esses bits extras resultam da inserção de bits, também chamada de bit stuffing. Na região aplicável de um quadro CAN clássico, o transmissor insere um bit de valor oposto após cinco bits consecutivos de mesmo valor. O receptor identifica e remove esse bit usando a mesma regra e, em seguida, interpreta os campos originais. Esse processo ajuda os receptores a corrigir a temporização dos bits e explica por que mensagens de mesmo comprimento podem ocupar o barramento por tempos diferentes.
Um sinal constante ainda transporta bits
Em um barramento CAN de alta velocidade em cobre, o transceptor converte os bits do controlador em estados diferenciais entre CAN_H e CAN_L. Um bit dominante representa o valor lógico 0 e um bit recessivo representa o valor lógico 1. Quando um nó impõe o estado dominante, ele pode sobrepor-se aos estados recessivos transmitidos por outros nós. Mesmo que o estado elétrico permaneça constante, o controlador receptor determina o valor do bit no ponto de amostragem de cada intervalo de bit. Um patamar dominante pode conter vários zeros, cada um ocupando um intervalo de bit.
Cada nó tem seu próprio oscilador. A duração nominal do bit pode ser configurada com o mesmo valor em todos os nós, embora na prática persistam pequenos desvios. O receptor alinha sua temporização no início do quadro e usa as bordas que atendem às condições de sincronização para corrigir a fase dentro do quadro. Quando não há uma borda adequada por um período prolongado, aumenta a defasagem entre a amostragem do receptor e os limites dos bits do transmissor. A inserção de bits cria transições em sequências longas de bits iguais, oferecendo oportunidades de sincronização. A amostragem correta também depende do atraso de propagação, da configuração do ponto de amostragem e da qualidade do sinal.

O transmissor conta os bits já enviados no barramento
Considere uma sequência simplificada na região sujeita à inserção dinâmica de bits, com o contador da sequência inicialmente em zero. A sequência lógica prevê cinco zeros seguidos de um bit de valor 1. Após enviar o quinto zero, o transmissor insere um bit de valor 1 e depois envia o bit de valor 1 original. O barramento transporta cinco zeros, um bit de preenchimento de valor 1 e o bit de valor 1 original. A inserção pode ocorrer dentro de um byte ou logo após o fim de um campo. O controlador acompanha um fluxo contínuo de bits e mantém a contagem ao passar de um byte para outro.
O próprio bit inserido faz parte da sequência transmitida e inicia uma nova contagem de bits iguais. Suponha que a sequência original preveja quatro bits de valor 1 após os cinco zeros. Esses quatro bits e o bit de valor 1 inserido formam cinco bits consecutivos de valor 1, de modo que o transmissor insere então um zero. A regra não se resume a uma inserção a cada cinco bits originais. Os campos vizinhos e os bits inseridos anteriormente afetam o momento da próxima inserção.
Após cinco bits idênticos, o receptor espera que o próximo bit tenha o estado oposto. Ao amostrar o valor esperado, ele reconhece o bit de preenchimento e atualiza o estado da contagem da sequência recebida, sem usar esse bit na interpretação dos campos. O bit de valor 1 original que vem a seguir é mantido. Os dois bits de valor 1 podem aparecer como um único patamar contínuo no barramento. O receptor distingue a função de cada um pela posição e pelo histórico da sequência.

Onde termina a contagem de bits consecutivos
A inserção dinâmica de bits também se aplica aos campos sujeitos a essa regra em um quadro remoto do CAN clássico. Seu DLC pode indicar o comprimento dos dados solicitados, mas o quadro não tem campo de dados. Ao verificar uma captura manualmente, identifique o tipo de quadro antes de localizar a sequência CRC. Interpretar o DLC do quadro remoto como a quantidade de bytes de dados que vêm a seguir deslocaria todos os limites subsequentes.
Em um quadro de dados do CAN clássico, a inserção dinâmica de bits começa no início do quadro, abrange os campos de arbitragem, controle e dados e vai até o fim da sequência CRC. O receptor acompanha o comprimento dos campos ao processar essa região. Os bits de preenchimento aumentam o tempo de ocupação do barramento. O código de comprimento dos dados, ou DLC, mantém seu significado original. A estrutura lógica dos campos pode diferir das divisões de tempo observadas no osciloscópio.
Após a sequência CRC, o delimitador CRC, o campo ACK e o fim do quadro seguem regras próprias. A contagem anterior para a inserção dinâmica de bits deixa de valer. Por exemplo, o fim de um quadro CAN clássico contém sete bits recessivos consecutivos. Essa sequência, por si só, não indica um erro de inserção de bits. Localize o limite do quadro e eventuais sinalizadores de erro antes de determinar em que região está o patamar.
O transmissor calcula a sequência CRC do CAN clássico com base nos bits lógicos sem preenchimento, do início do quadro até o fim do campo de dados. Em seguida, inclui a sequência CRC na região sujeita à inserção de bits durante a transmissão. O receptor remove os bits de preenchimento dinâmico e realiza a verificação CRC correspondente. Os bits adicionais da codificação e a verificação da integridade dos campos, portanto, têm finalidades distintas. O CAN FD usa regras diferentes em seu campo CRC. Verifique o formato do quadro e a configuração do controlador em relação à especificação aplicável.
Dados de mesmo comprimento podem ocupar o barramento por tempos diferentes
Separe o tempo de transmissão do quadro do tempo que a mensagem passa esperando para ser transmitida. A inserção de bits afeta o tempo que o próprio quadro ocupa no barramento. O atraso de arbitragem depende do que os outros nós estão transmitindo naquele momento. Para uma mensagem periódica, registre o intervalo entre bits de início de quadros sucessivos separadamente da duração entre o início e o fim de um único quadro. Variações nessas duas medições apontam para causas diferentes.
Considere dois quadros de dados do CAN clássico transmitidos com sucesso e com a mesma quantidade de bytes de dados. Seus identificadores ou padrões de dados podem ser diferentes. Um quadro pode conter várias sequências longas de bits iguais, enquanto no outro zeros e uns se alternam com frequência. O primeiro pode exigir mais bits de preenchimento, e os valores específicos da sequência CRC também influenciam a contagem. Para a mesma taxa nominal de bits, cada bit de preenchimento acrescenta um intervalo de bit. Para estimar a carga do barramento, use o comprimento do quadro observado no barramento ou uma estimativa conservadora desse comprimento.
Um analisador de protocolo normalmente exibe o identificador, o DLC e os dados recuperados na visualização decodificada. Para verificar a ocupação do barramento, defina onde a medição começa e termina. O tempo de transmissão de um quadro, a espera desde a entrada na fila até a arbitragem bem-sucedida e o tempo gasto com retransmissões após um erro são grandezas distintas. Documentar esses limites permite distinguir o aumento do comprimento do quadro do atraso causado pela disputa pelo barramento.
Localize a região em que aparece o erro de inserção de bits
Em um campo sujeito à inserção dinâmica de bits, o receptor indica um erro de inserção se amostrar um sexto bit de mesmo valor na posição em que deveria aparecer um bit de valor oposto. Um patamar longo pode resultar de um comportamento anormal no lado transmissor, da configuração local do ponto de amostragem, da taxa de bits ou de distorção do sinal. Se um nó no estado de erro ativo enviar um sinalizador de erro ativo, os outros nós poderão então observar uma sequência longa de bits dominantes que viola a regra. Portanto, um erro de inserção de bits em um registro pode ser consequência de um erro anterior.
Registre os tipos de erro, o primeiro evento e qualquer forma de onda disponível. Um erro de CRC indica uma divergência entre o cálculo do receptor e a sequência CRC recebida. Um erro de formato envolve um campo com formato predefinido. Um erro de ACK significa que o transmissor não detectou a confirmação dominante esperada no intervalo de ACK. Esses erros podem ocorrer em sequência no mesmo incidente. Ordenar os eventos cronologicamente e verificar o campo afetado ajuda a delimitar a investigação.

Verifique cada segmento de cobre e a função de cada dispositivo ao estender o CAN por fibra óptica
A documentação da FCTELE para seu modem CAN por fibra óptica de oito canais, para montagem em trilho DIN, indica repetição de sinais CAN para fibra e operação ponto a ponto. Em um teste de engenharia, liste os segmentos CAN em cobre, a fibra e os dispositivos das extremidades como pontos de observação distintos. Confira o formato do quadro, a taxa de bits, a terminação e o cabeamento com base na documentação dos dispositivos utilizados. Em seguida, use uma mensagem conhecida em uma configuração de teste isolada para verificar a recepção em cada extremidade. As figuras identificam os pontos de observação. Consulte a documentação do modelo em questão para determinar como ele transfere os sinais pela fibra.
Se o sinal e os quadros decodificados permanecerem estáveis no segmento de cobre do lado transmissor, mas houver erros intermitentes perto do receptor, compare o estado do sinal e os registros de tempo na outra extremidade. Verifique se a falha acompanha um cabo, um dispositivo de extremidade ou uma carga específica. Mantenha o período da mensagem e as demais condições documentados de forma rastreável e ajuste uma variável por vez. O registro final deve indicar se os campos foram recuperados corretamente, se os erros voltaram a ocorrer e se o tráfego real da aplicação voltou a fluir após a alteração do caminho. Isso permite distinguir o acréscimo normal de bits de preenchimento de falhas reais de transmissão.
Fontes e escopo
Bosch: detecção de erros em CAN e CAN FD · Microchip: inserção de bits e formato de quadro CAN · Unidade CAN por fibra óptica FCTEL de oito canais para trilho DIN (em chinês)
Traduzido do artigo técnico em chinês: Leia o artigo original em chinês.
Perguntas frequentes
Por que inserir um bit após cinco bits iguais?
O bit de valor oposto cria uma transição no barramento. As bordas que atendem às condições de sincronização podem ser usadas para ajustar a temporização dos bits, limitando a duração de uma sequência sem transições.
Os sete bits recessivos do EOF causam um erro de inserção de bits?
O EOF do CAN clássico tem formato fixo. Seus sete bits recessivos ficam fora da região sujeita à inserção dinâmica de bits.
Como rastrear um erro de inserção de bits em um enlace de fibra óptica?
Capture o mesmo quadro de teste nos dois segmentos de cobre, verifique a taxa de bits, a amostragem e a terminação, alinhe os registros de tempo dos erros do controlador e verifique como as unidades de fibra encaminham o tráfego.
Leitura complementar
Extensão de um barramento CAN por fibra óptica · Interfaces elétricas e arbitragem no CAN


