Pergunta

Eu sou novo para o protocolo, passando pela especificação de Robert Bosch, a parte Ver2.0 Parte B. Não consigo entender as seguintes linhas na página 63

"Nota: Iniciar / acordar: Se durante a inicialização apenas um nó estiver on-line, e se este nó transmitir alguma mensagem, ele não obterá reconhecimento, detectará um erro e repetirá a mensagem.Pode se tornar "erro passivo", mas não "ônibus" devido a esse motivo ".

Tanto quanto eu entendo quando um transmissor detecta um erro (como erro de confirmação), ele retransmita a mensagem e também incrementa a contagem de erros de transmissão (TEC) por 8. Então, se houver apenas um nó, seu TEC deve aumentar em 8Toda vez que ele transmite uma mensagem e deve entrar em condição 'Bus off', uma vez que o TEC for acima de 255.

Alguém pode explicar por que a especificação diz que só pode ir 'error passivo', mas não 'Bus off'?

Foi útil?

Solução

Eu acho que você perdeu esta parte da especificação:

"Exceção 1:

Se o transmissor for "Erro passivo" e detectar um erro de confirmação por não detectar um "dominante" ACK e não detectar um pouco "dominante" enquanto envia seu sinalizador de erro passivo. "

Neste caso, o TEC não é alterado!

Então, no seu caso, quando o único nó da rede re-transmite toda vez e o TEC se torna>= 128, torna-se "Erro passivo".Então o caso de exceção acima se torna válido!E o TEC não é mais alterado!Portanto, nenhum 'ônibus fora'.

Outras dicas

Sim, que é correto como se o TX ECU não esteja recebendo qualquer ACK de qualquer ECU na rede CAN, ele permanecerá em erro estado passivo. Como o protocolo de rede precisa quando mais de um sistema estão disponíveis em Rede CAN e, se não estiver disponível ECU na rede, não é significado como o ECU está tendo um problema, então, em vez de ir para o barramento do estado, deve ficar emErro estado passivo. Para saber mais sobre pode erro, você pode seguir o link abaixo:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top