Error en la recepción CAN

0

Si un nodo está transmitiendo un mensaje a más de un nodo y si uno de los nodos receptores no recibió el mensaje, ¿cómo sabe el nodo transmisor qué nodo no ha recibido el mensaje?

    
pregunta SHRIRAJ SHIGWAN

2 respuestas

2

A primera vista, un ACK de bus CAN solo puede indicar que al menos un receptor recibió una buena trama de mensaje. La buena recepción de cuadros se indica sobrescribiendo un bit recesivo con un bit dominante y, para un receptor que no obtiene buenos datos, su bit natural recesivo es más que probable que aquellos receptores que reciben un buen mensaje.

Por lo tanto, la forma en que se puede hacer es generando un cuadro de error: consta de 6 bits dominantes y 6 en una fila viola la regla de relleno de bits para las transmisiones normales. Este método garantiza que el remitente original o cualquier otro receptor pueda detectar casi de inmediato un mensaje de recepción roto.

Por supuesto, si los datos de la carga útil se consideraron erróneos, entonces el receptor puede esperar hasta que tenga acceso al bus y transmitir un mensaje de nivel superior que el remitente original interpretará como que indica un problema con el mensaje.

    
respondido por el Andy aka
2

Cuando uno de los nodos CAN detecta un error, emite un cuadro de error .
Este es un cuadro que comienza con al menos 6 bits dominantes, lo que viola el relleno de bits regla.

El bit dominante hace lo que se llama después. Inhibir todo el tráfico del bus hasta que se borre la trama. Interrumpir el nodo de transmisión actual, que luego podría comenzar a transmitir nuevamente después del arbitraje de bus.
Dependiendo de la configuración de NART (sin retransmisión automática), por supuesto.

Además, CAN siempre transmite a todos los nodos. No hay direccionamiento.
El identificador describe el contenido del mensaje.
El transmisor tampoco sabe qué nodo emitió la trama de error.

    
respondido por el Jeroen3

Lea otras preguntas en las etiquetas