Los mensajes CAN (Controller Area Network) son paquetes de datos que se transmiten por el bus CAN y se utilizan para la comunicación entre automóviles y otros dispositivos de hardware. Un mensaje CAN típico consta de varias partes, y su composición específica puede variar en función de las distintas versiones del protocolo CAN y de aplicaciones concretas. A continuación se muestra un ejemplo de mensaje CAN y sus componentes basado en el protocolo estándar CAN 2.0:

1. Inicio de la trama (SOF):

Se trata de un patrón de bits especial que marca el inicio de un nuevo mensaje. Suele ser un bit dominante (en CAN, el bit dominante suele ser un 0 lógico y el bit recesivo un 1 lógico, pero esto depende de la implementación específica de la capa física).

2. Campo de arbitraje:

(1) Identificador: Es una de las partes más importantes del mensaje CAN y se utiliza para distinguir diferentes mensajes. En el formato estándar CAN 2.0, el identificador tiene una longitud de 11 bits; en el formato ampliado, tiene una longitud de 29 bits (formada por un identificador base de 11 bits y un identificador ampliado de 18 bits). El identificador determina la prioridad del mensaje y cómo lo reconoce el receptor.

(2) Bit de solicitud de transmisión remota (RTR, Remote Transmission Request): Este bit indica si el mensaje es una trama de datos o una trama remota. Las tramas de datos se utilizan para transmitir datos, mientras que las tramas remotas se utilizan para solicitar datos.

protocolo de comunicación can bus

Herramienta de desarrollo de análisis de descodificación de diagnóstico del automóvil

3. Campo de control:

(1) Bit de extensión del identificador (IDE, Identifier Extension): En CAN 2.0B, este bit se utiliza para indicar si el identificador está en formato estándar (11 bits) o extendido (29 bits).

(2) Bit reservado: Este bit está reservado para futuras ampliaciones y actualmente no se utiliza en la mayoría de las aplicaciones.

(3) Código de longitud de datos (DLC, Data Length Code): Este campo de 4 bits indica el número de bytes del campo de datos, oscilando entre 0 y 8 bytes.

4. Campo de datos: Es la parte de datos propiamente dicha del mensaje. La longitud viene determinada por el DLC y puede ser de hasta 8 bytes (64 bits).

5. Campo CRC (Cyclic Redundancy Check Field): CRC es un código de comprobación utilizado para detectar errores en la transmisión de mensajes. El nodo emisor calcula y añade un CRC a los datos, y el nodo receptor utiliza el mismo algoritmo para verificar la integridad de los datos.

6. Campo ACK:

(1) Espacio de respuesta (ACK Slot): Es un tiempo de bit utilizado por el nodo receptor para enviar una señal de respuesta.

(2) Delimitador de respuesta (ACK Delimiter): Se trata de un bit recesivo después del campo de respuesta, que se utiliza para separar el campo de respuesta y el final posterior de la trama.

7. Fin de trama (EOF): Se trata de uno o varios bits recesivos que marcan el final del mensaje.

Un ejemplo concreto de mensaje CAN (expresado en hexadecimal) puede ser el siguiente:

Inicio de trama: sin valor específico, detectado por hardware

Campo de arbitraje: 123 (se supone un identificador de 11 bits, aquí sólo a modo de ejemplo, el valor real depende de la aplicación)

Campo de control: 80 (suponiendo formato extendido, la longitud de los datos es de 8 bytes)

Campo de datos: 01 02 03 04 05 06 07 08 (8 bytes de datos)

Campo CRC: Valor CRC (este valor se calcula a partir de los datos anteriores)

Campo de respuesta: sin valor específico, procesado por hardware

Fin de trama: sin valor específico, detectado por hardware

Tenga en cuenta que el ejemplo de mensaje anterior no sigue exactamente la especificación real del protocolo CAN, ya que los mensajes CAN se transmiten normalmente en forma binaria, no hexadecimal. Además, los mensajes CAN reales también deben tener en cuenta factores como el relleno de bits y la sincronización de bits. Este ejemplo es sólo para ilustrar los componentes básicos de los mensajes CAN.

Si necesita un analizador que puede detectar el estado de comunicación de datos CAN, puede ponerse en contacto con nosotros en cualquier momento.