Leia o barramento CAN e o protocolo de comunicação em um artigo

carro de ônibus CAN

 

conceito CAN

CAN é a abreviação de Controller Area Network (CAN). Foi desenvolvido pela empresa alemã BOSCH  , famosa por P&D e produção de produtos eletrônicos automotivos, e finalmente se tornou um protocolo de comunicação padrão internacional ( )ISO11898 . É um dos barramentos de campo mais amplamente utilizados no mundo. Na América do Norte e na Europa Ocidental, o protocolo de barramento CAN tornou-se o barramento padrão para sistemas de controle de computador automotivo e LANs de controle industrial incorporadas, e possui um protocolo J1939 projetado para caminhões grandes e veículos de maquinário pesado com CAN como protocolo subjacente . Nos últimos anos, sua alta confiabilidade e boa capacidade de detecção de erros foram valorizadas, e é amplamente utilizado em sistemas de controle de computador automotivo e ambientes industriais com temperaturas ambientes severas, forte radiação eletromagnética e grandes vibrações.

Os dois padrões internacionais ISO da CAN:

1) ISO11898  : define  um padrão de comunicação CAN de alta velocidade com uma taxa de comunicação de 125 kbps a 1 Mbps. Pertence a um barramento de malha fechada com taxa de transmissão de até 1 Mbps e comprimento de barramento ≤ 40 metros .

2) ISO11519 : define um padrão de comunicação CAN de baixa velocidade  com uma taxa de comunicação de 10-125 kbps , que pertence a um barramento de malha aberta. Quando a taxa de transmissão é de 40 kbps, o comprimento do barramento pode chegar a 1000 metros.

tipo CAN

1) CAN de alta velocidade:

a. Forneça taxa de transmissão de 5 Kbit/s a 1 Mbit/s de acordo com o comprimento do cabo.

b. A rede CAN de alta velocidade é terminada com um resistor de 120 ohms em cada extremidade da rede.

c. O nível silencioso é de 2,5 V e os limites superior e inferior são de 3,5 V e 1,5 V.

2) CAN tolerante a falhas:

a. Fornece taxa de transmissão de 5 Kbit/s a 125 Kbits/s.

b. Quando dominante, é 1V e 4V.

3) CAN de fio único:

a. Fornece taxa de transmissão de 5 Kbit/s a 125 Kbits/s.

b. A taxa de transmissão do CAN de fio único é geralmente de 33,3 KHz.

Rede CAN automotiva

 

Rede CAN automotiva

Barramento CAN automotivo

 

Composição do CAN

Um quadro do barramento CAN é composto principalmente de informações do quadro , ID do quadro e dados do quadro .

1) Informações do quadro : divididas em quatro categorias, quadro de dados padrão (veículo a gasolina, motor), quadro remoto padrão (raro), quadro de dados estendido (a maioria dos veículos a diesel, alguns veículos a gasolina), quadro remoto estendido (raro).

2) Frame ID: É uma espécie de "endereço" do CAN. Uma característica do CAN é o mecanismo de competição : quanto menor o ID do quadro, mais direito ele tem de ocupar os recursos do barramento e mais prioridade ele enviará.

        


ID da CAN

Arquivo DBC: Na indústria de veículos, se uma interpretação padrão for feita para cada ID de quadro e cada dado de quadro no barramento CAN do veículo, o arquivo formado é um arquivo DBC.

3) Dados do quadro: Em comparação com a porta serial, os dados do quadro do CAN possuem apenas 8 bytes, ou seja, 64 bits , e não haverá mais. Mas o CAN FD resolve o problema de apenas 8 bytes como um novo barramento.

4) Resistência do terminal: CAN é igual ao RS485, é necessário diminuir a reflexão do sinal diferencial no terminal, se não adicionar a resistência nos dois terminais, o sinal vai ricochetear e afetar a comunicação. Deve haver dois resistores terminais no barramento CAN, com valor de resistência de 120 ohms, conectados em paralelo e um no lado terminal mais distante. Se houver vários nós, a resistência terminal deve ser aumentada adequadamente.

5) Taxa de transmissão : As taxas de transmissão de veículos comuns são 500K, 250K, 125K, 100K.

Padrão de barramento CAN

padrão ISO

 

O padrão CAN é dividido em duas categorias: o padrão da camada inferior (camada física e camada de enlace de dados) e o padrão da camada superior (camada de aplicação).

  • ISO 11898-1 - Protocolo CAN
  • ISO 11898-2 – CAN Camada Física de Alta Velocidade
  • ISO 11898-3 - Camada física tolerante a falhas CAN de baixa velocidade
  • ISO 11898-4 – CAN acionado por tempo
  • ISO 11898-5 – "Unidade de acesso de mídia de alta velocidade no modo de baixo consumo de energia" – atualmente em rascunho
  • ISO 11519-2 - Obsoleto, substituído por 11898-3.
  • ISO 14230 - "Protocolo de palavra-chave 2000" - define partes de diagnósticos de linha serial não-CAN.
  • ISO 15765 - o padrão que define o diagnóstico no barramento CAN - é essencialmente o Protocolo de palavra-chave 2000 no barramento CAN.
  • J1939 – O protocolo de alto nível baseado em CAN mais utilizado para caminhões e ônibus, definido pela SAE. J1939 é dividido em várias partes, descrevendo a camada física, camada de enlace de dados, gerenciamento de rede e um grande número de mensagens predefinidas.
  • ISO 11783 – semelhante ao J1939, mas para o setor agrícola (como tratores)
  • ISO 11992 – define a interface entre caminhões e reboques
  • NMEA 2000 – protocolo baseado em J1939 usado no setor marítimo. Definido pelo comitê NMEA.

Se você não especificar de qual padrão está falando, geralmente o padrão é o protocolo da camada de enlace de dados definido pela ISO 11898-1 e a camada física definida pela ISO 11898-2.

Padrão subjacente:

Os padrões subjacentes do CAN são basicamente os mesmos, abrangendo a camada física e a camada de enlace de dados no modelo OSI, e a relação correspondente com o modelo ISO/OSI é mostrada na figura a seguir:

Correspondência

 

  • ISO 11898-1: Protocolo da camada de enlace de dados, descreve a arquitetura básica do barramento CAN e define os métodos de comunicação de diferentes dispositivos de barramento CAN na camada de enlace de dados
  • ISO 11898-2: Protocolo de camada física de barramento CAN de alta velocidade, a taxa máxima de transmissão de dados é de 1 Mbps e o aplicativo é um sinal balanceado de dois fios (CAN_H, CAN_L)
  • ISO 11898-3: Define o padrão da camada física do barramento CAN de baixa velocidade (LS-CAN, CAN tolerante a falhas), com uma taxa de transmissão de dados de 5 Kbps ~ 125 Kbps. Tolerante a falhas significa que quando um sinal de transmissão no barramento falha, ele também pode se comunicar contando com outro sinal único
  • ISO 11898-4: Define o mecanismo acionado por tempo (CAN acionado por tempo, TTCAN) no barramento CAN, define a entidade de sincronização de quadro que coopera com a ISO 11898-1 e realiza o método de comunicação acionado por tempo entre ECUs automotivos.

Padrão superior:

Diferentes campos de aplicação ou fabricantes têm práticas diferentes e não há um padrão internacional uniforme

Comparação de protocolos da camada superior

 

Tipos de quadros CAN (quatro tipos de quadros)

1) Quadro de dados

Um quadro usado por uma unidade emissora para transmitir dados a uma unidade receptora.

O diagrama de estrutura de quadro do quadro de dados:

Quadro de dados

 

SOF: Indica o início do quadro de dados; (1 bit), uma borda de bit dominante é enviada e o nó da rede começa a sincronizar

ID: 11 bits no formato padrão, 29 bits no formato estendido incluindo Base ID (11 bits) e Extended IDr (18 bits), esta seção identifica a prioridade do quadro de dados, quanto menor o valor, maior a prioridade;

RTR: bit de solicitação de transmissão remota, 0 significa quadro de dados, 1 significa quadro remoto, ou seja, quando RTR=1, o campo de dados do quadro de mensagem está vazio; (1 bit)

IDE: (1 bit) bit de extensão do identificador, 0 indica o formato padrão, 1 indica o formato estendido; o quadro estendido e o formato do quadro padrão são diferentes e não podem existir na mesma rede de latas

DLC: código de comprimento de dados, 0-8 significa que o comprimento de dados é de 0 a 8 bytes; (4 bits)

Campo de Dados: campo de dados; (0~8 Byte)

CRC (15 bits):

  • Verifique o campo, codifique todos os dados de sof para o campo de dados
  • Preenchido pelo remetente
  • Verifique o algoritmo G(x) = x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1; (15 bits)

DEL: o delimitador implícito do campo de verificação e campo de resposta; (1 bit)

ACK:(1 bit)

  • Campo de resposta, para confirmar se os dados são recebidos normalmente.A chamada recepção normal significa que não contém erros de preenchimento, erros de formato e erros de CRC.
  • O nó emissor define este bit como 1, e o receptor confirma e dá um bit dominante 0 ao receber a mensagem
  • Se um nó não confirmar o recebimento da mensagem, o remetente reportará um erro se monitorar este bit como um bit invisível

SRR: Substitute remote request bit, usado em formato estendido, deve ser 1; (1 bit)

EOF: 7 bits recessivos consecutivos (1) indicam o final do quadro; (7 bits)

ITM(3 bits):

  • O espaço Interframe, Intermission (ITM), também conhecido como Interframe Space (IFS), possui 3 bits consecutivos recessivos, mas não pertence ao quadro de dados.
  • O espaço entre quadros é um quadro usado para separar os quadros de dados e os quadros remotos dos quadros anteriores. Quadros de dados e quadros remotos podem separar esse quadro de qualquer quadro anterior (quadro de dados, quadro remoto, quadro de erro, quadro de sobrecarga) inserindo espaço entre quadros. O espaço entre quadros não pode ser inserido antes de quadros de sobrecarga e quadros de erro.

2) quadro remoto

Um quadro usado por uma unidade receptora para solicitar dados de uma unidade transmissora com o mesmo identificador.

A estrutura do quadro remoto é semelhante à do quadro de dados, a diferença é:

  • 1. O valor RTR do quadro de dados é "0" e o valor RTR do quadro remoto é "1".
  • 2. Não há bloco de dados no quadro remoto.
  • 3. O bloco DLC do quadro remoto indica o comprimento dos dados enviados pela unidade de envio de solicitação.

diagrama de formato

quadro remoto

 

Quando o quadro de dados e o quadro remoto com o mesmo identificador no barramento são enviados ao mesmo tempo, porque o bit RTR do quadro de dados é dominante, o quadro de dados ganhará o direito de controle do barramento na arbitragem.

3) Quadro de erro

Frame usado para notificar outras unidades de um erro quando um erro é detectado.

A estrutura de quadro de um quadro de erro consiste em um sinalizador de erro e um delimitador de erro.

Sinalizador de erro: 6 bits,

sinalizador de erro

 

Delimitador de erro: composto por bits recessivos de 8 bits.

4) quadro de sobrecarga

A unidade receptora notifica a unidade transmissora de que ainda não concluiu os preparativos para a recepção.

Dois casos de envio de quadros de sobrecarga:

1. A condição da unidade receptora exige que o nó emissor atrase a transmissão do próximo quadro de dados ou quadro remoto.

2. Um bit dominante é detectado nos 3 bits da Intermissão.

Cada nó pode enviar no máximo dois quadros de sobrecarga continuamente, e o quadro de sobrecarga é composto por um sinalizador de sobrecarga e um delimitador de sobrecarga (8 bits recessivos).

quadro de sobrecarga

 

Quadro de dados e comparação de quadros remotos:

Comparar

 

Arbitragem do barramento CAN

Prioridade de arbitragem: quanto menor o valor do identificador, maior a prioridade da mensagem

Linha e lógica : Somente quando os nós enviados são todos recessivos , o nível do barramento é recessivo

Ao enviar dados, todos os nós de envio também detectam o status do nível no barramento e comparam o nível no barramento com o nível enviado por ele mesmo bit a bit.

  • 1) Quando 0 é enviado, 1 aparece: um erro é relatado.
  • 2) Envie 0 e apareça 0: continue.
  • 3) Envie 1 e apareça 1: Continuar.
  • 4) Enviando 1 e aparecendo 0: a concorrência falha, e ele passa a ser o receptor.

enviar autoteste

 

Conforme mostrado na figura abaixo, o nó C que falhou na competição tentará enviar novamente automaticamente na primeira vez que detectar que o barramento está ocioso.

Os nós CAN A e C enviam quadros de dados ao mesmo tempo, o barramento CAN é arbitrado de acordo com a prioridade e C perde energia

 

CAN acesso condicional

As mensagens no barramento CAN são transmitidas . Os nós podem determinar se devem receber a mensagem definindo o código do filtro (Filter Code) e a máscara (Mask Code) no controlador e, em seguida, verificando o identificador da mensagem no barramento. Para a máscara , "1" indica que este bit está relacionado a este nó e "0" indica que este bit não está relacionado a este nó.

Fluxo de dados CAN-BUS

 

STM32 pode filtrar código

 

pouco recheio

O barramento CAN adota codificação NRZ, sem uma linha de clock separada, que tem a vantagem de alta eficiência, mas não é fácil distinguir onde o bit começa e onde termina o bit. Portanto, para garantir saltos de nível suficientes durante a comunicação síncrona, um mecanismo de preenchimento de bits , ou seja, um nível de inversão é inserido a cada 5 níveis idênticos consecutivos , e o nó receptor recebe automaticamente a mensagem após receber a mensagem .Remova o enchimento.

Gráfico de comparação de preenchimento de bits do DataFrame

 

Exceto para o delimitador CRC, campo ACK e EOF no quadro, o mecanismo bit stuffing é aplicado ao resto do quadro. No campo onde o bit stuffing é aplicado, a detecção de 6 bits dominantes consecutivos ou bits recessivos é considerada como um relatório de erro.

Verificação de erro CAN

erro CRC

1) Ao enviar uma mensagem, o nó remetente calculará o valor da soma de verificação do bit SOF do quadro de dados até o último bit do campo de dados de acordo com um polinômio específico e colocará o valor no campo CRC do quadro de dados, e transmitir o quadro de dados para o barramento superior.

2) Após receber os dados, o nó receptor aplica o mesmo polinômio para calcular o valor de Checksum e compara com o valor de Checksum recebido. Se os dois forem consistentes, ela será recebida normalmente; caso contrário, a mensagem será descartada e um frame de erro será enviado para solicitar ao nó remetente a retransmissão da mensagem.

Erro de resposta (Erro de ACK)

O receptor dará um nível dominante no bit de resposta ACK após receber a mensagem, e se o remetente detectar que o bit é recessivo, ele reportará um erro.

Erro de formato (erro de formulário)

Erros detectados quando o formato oposto ao campo de bit de formato fixo é detectado, como detectar se um bit dominante aparece no delimitador CRC e no delimitador ACK e na área eof.

Erro de bit

Compare o nível de saída com o nível do barramento (excluindo os bits de preenchimento) e detecte o erro quando os dois níveis forem diferentes. Se um bit dominante for enviado, mas o barramento for um bit recessivo, um erro será relatado.

Erro de material

Um erro detectado quando 6 bits do mesmo nível são detectados consecutivamente dentro de um segmento que requer preenchimento de bits.

Mecanismo de detecção de erro do barramento CAN

Cada controlador de nó no barramento CAN irá detectar se a mensagem está errada , se o nó verificar que a mensagem está errada, enviará um flag de erro, interrompendo assim a transmissão normal de dados no barramento. Outros nós do barramento que não encontraram o erro da mensagem original tomarão as medidas necessárias após receberem o sinalizador de erro, como descartar a mensagem atual no barramento.

Existem dois contadores de status de erro dentro do nodo CAN:

  • 1) TEC / Transmit Error Counter, enviando contador de status de erro, uma vez que ocorre um erro, o valor do contador +8
  • 2) REC/Contador de erro de recebimento, contador de status de erro de recebimento, uma vez que ocorre um erro, o valor do contador +1
  • 3) Se a mensagem for enviada ou recebida com sucesso uma vez, o valor TEC ou REC correspondente será -1

                                                        contagem de erros

A especificação CAN define 3 estados de erro para nós:

  • 1) Erro ativo: estado normal, neste estado, o nó pode enviar todos os tipos de quadros, incluindo quadros de erro; ele reportará ativamente o erro após encontrar o erro.
  • 2) Erro passivo: o nó pode enviar todos os quadros, exceto o quadro de erro; a contagem TEC ou REC ultrapassa 127 e entra nesse estado; neste momento, o nó enviará apenas 6 bits recessivos após encontrar o erro e não transmitirá o erro . E, ao enviar quadros contínuos, deve haver um tempo de atraso de 8 bits entre eles.
  • 3) O barramento está desligado: o nó está isolado do barramento pelo controlador; ou o TEC é maior que 255, ele entrará neste estado e precisa ser reiniciado, ou aguarde 128 níveis de bits recessivos de 11 bits.

Mecanismo de detecção de erro do barramento CAN

 

Introdução ao protocolo de barramento CAN.pdf

Código-fonte e data.rar do barramento CAN C

Código-fonte e dados do barramento CAN C, programa de fonte de partida síncrona do motor do barramento do analisador CAN

Manual de aplicação do protocolo CAN bus.pdf

Manual de aplicação do protocolo CAN bus

can-utils.zip

Ferramentas CAN, incluindo ferramentas básicas para exibição, gravação, geração e reprodução de tráfego CAN, configuração de gateway central CAN, medição e teste de barramento CAN, ferramentas ISO-TP, conversor de arquivo de log, configuração de especificação de linha serial, gerador de projeto CMake, etc. código-fonte

Escudo de barramento CAN - MCP2515&MCP2551.zip

Pode  barrar o código-fonte do protocolo e o código do caso de aplicação baseado em arduino

Acho que você gosta

Origin blog.csdn.net/xipengbozai/article/details/131352010
Recomendado
Clasificación