O que acontece se dois segmentos de ID de nó forem iguais?

Apr 04, 2018Deixe um recado

O que acontece se dois segmentos de ID de nó forem iguais?




As redes de barramento CAN não permitem que dois nós tenham o mesmo segmento de ID em princípio, mas o que acontece se os dois segmentos de ID de nó forem os mesmos?

Antes do experimento, devemos ter uma compreensão clara da estrutura das mensagens da CAN e dos princípios da arbitragem.


Primeiro, a estrutura da mensagem CAN

O padrão de rede CAN-bus mais utilizado é a versão V2.0. Esta norma é dividida em partes A e B. Sua principal diferença é o comprimento do código de ID na área de arbitragem. Entre eles CAN2.0A (quadro padrão) é 11 bit ID, CAN2.0B (quadro de expansão) é 29 bit ID. A Tabela 1 abaixo mostra a estrutura da mensagem CAN:

Tabela 1 Estrutura da mensagem CAN

Nome da fase Comprimento de fase / bit Descrição
SOF 1 significa início de fase de dados e compor por bit dominante
Fase de Abtrição Quadro padrão 12 Indica a prioridade do quadro, composta por 11 endereços de ID e 1 RTR
quadro estendido 32 Indica a prioridade do quadro, composta por 29 endereços de ID, SRR de 1 bit, IDE estendido e RTR
Fase de Controle 6 significa o código de grupo e os bits reservados do comprimento de dados do segmento de dados
Fase de dados 0 ~ 8 conteúdo de dados, controle de fase de controle o comprimento dos dados
CRC 16 cheque transimission erro de frame, de SOF para fase de dados, todo o conteúdo, exceto bits de preenchimento
ACK 2 outro nó confirma este quadro para ser recebido corretamente
Final do quadro 7 significa o final do quadro


Em segundo lugar, o princípio da arbitragem

A arbitragem de barramento CAN é baseada em "linha e princípio", como mostra a Figura 1. Quando um transceptor emite sinais de diferentes níveis ao mesmo tempo, o nível recessivo é sempre coberto pelo nível dominante. Ao enviar a mensagem, o controlador CAN monitorará se o status do barramento é o mesmo que o enviado por ele mesmo. Se a inconsistência ocorrer no segmento ID, a arbitragem ocorrerá. Se ocorrer em outras áreas, o erro correspondente será acionado.

O seguinte é o ponto chave. E se os dois segmentos de ID de nó forem os mesmos? Começamos o experimento com dois cartões CAN e um CANScope. O cartão CAN simula o nó padrão CAN para enviar e receber mensagens, e o CANScope faz o monitoramento de comunicação, conforme mostrado na Figura 2.

                                                           

1.jpg

Fig.2 Construção da plataforma experimental


Terceiro, experimente um "O segmento ID é o mesmo, mas os dados são diferentes"

Um cartão CAN é usado para enviar um quadro CAN com dados ID 000H para 01020304050607H e outro cartão CAN para enviar um quadro CAN com dados 000H para 02020304050607H. Os dados que o CANScope escuta são mostrados na Fig. 3. Pode-se observar que há um grande número de erros de preenchimento de campo de dados.


2.jpg

Fig.3 Erro no preenchimento do campo de dados

Porque isto é assim? Primeiro obtemos as formas de onda correspondentes às duas mensagens de transmissão do cartão CAN, conforme mostrado na Figura 4. Como a mensagem de dois pinos é um quadro de dados padrão e cada quadro contém 8 bytes de dados, as formas de onda correspondentes aos dois quadros de pacotes são exatamente o mesmo nos segmentos de ID, RTR, IDE, R0 e DLC. Portanto, o papel da arbitragem é ineficaz e ambos os nós consideram-se prioritários e continuam enviando dados.

3.jpg

Agora nos concentramos no segmento de dados, os primeiros dados de byte são os mesmos, são 00H; os dados do segundo byte são diferentes, respectivamente 01H, 02H. As setas na Figura 5 indicam que a lógica dos bits correspondentes é 0 e 1, respectivamente. Anteriormente, mencionamos que o nó CAN detectará se o nível do barramento é o mesmo que o nível que enviou ao enviar a mensagem. Se a inconsistência ocorrer na área de não arbitragem, o erro correspondente será acionado, portanto, se os dois quadros forem enviados ao barramento ao mesmo tempo, os erros de bit deverão ocorrer. Como o erro de envio de bit fará com que o nó envie 6 bits dominantes que violam a regra de preenchimento (o erro ativo destrói os dados de quadro), ocorre o erro de preenchimento de campo de dados, como mostrado na FIG. 3


4.jpg

Fig.5 Conflitos no Campo de Dados


Em quarto lugar, experimente dois "os mesmos dados com o mesmo ID"

Ao mesmo tempo, use dois cartões CAN para enviar quadros CAN, cujo ID é 000H para 01020304050607H, e o CANScope faz o monitoramento de comunicação. Em primeiro lugar, não verificamos a opção "resposta de bus" para que o CANScope funcione no modo apenas de escuta. Os resultados experimentais são mostrados na Figura 6 e o delimitador de resposta está no formato errado.

5.jpg

Fig.6 Erro no formato do delimitador de resposta


Por que isso acontece? O nó que envia a mensagem enviará dois bits recessivos no segmento ACK. Se um nível dominante é recebido durante o primeiro bit, o quadro é considerado como recebido corretamente. Como os dois árbitros acham que obtiveram o direito de arbitragem quando possuem o mesmo segmento de arbitragem, eles aguardam uma resposta no segmento ACK, mas existem apenas dois nós na rede. Portanto, nenhuma resposta pode ser recebida no segmento ACK e ocorre um erro de delimitador de resposta. Simplesmente falando, esta situação é semelhante ao fato de que apenas um nó no barramento não será capaz de enviar dados. A Figura 7 mostra a comparação da forma de onda quando não há resposta no segmento ACK.

6.jpg

Fig.7 Resposta ACK


Verificamos a resposta do barramento e iniciamos o experimento novamente (neste momento existem 3 nós no barramento). Neste momento, como mostrado na FIG. 8, os dados do barramento são transmitidos e recebidos normalmente.

7.jpg

Fig.8 Iniciar BUS Responder


Resumo: quando dois nós enviam pacotes com o mesmo ID e dados ao mesmo tempo, ocorre um erro de preenchimento do campo de dados. Quando dois nós enviam pacotes com o mesmo ID e os mesmos dados, nenhum erro ocorre se outros nós responderem. Outros nós responderam com um erro de resposta. Portanto, devemos evitar a mesma situação no segmento ID ao projetar o barramento CAN.


Enviar inquérito

whatsapp

Telefone

Email

Inquérito