Análisis del protocolo CAN

Diagrama de conexión de red de bus CAN

Según las características de hardware del bus CAN, cuando se conectan varios variadores a un bus CAN, las conexiones y el cableado deben realizarse de acuerdo con el siguiente diagrama. Debe conectar una resistencia de 120 Ω al punto inicial y final de la línea. Y el autobús CAN solo puede tener una línea principal y los ramales no deben ser demasiado largos.
Actualmente estoy tomando cursos de ST y GD, si necesitas muestras de GD puedes unirte al grupo y postular: 6_15061293.
Insertar descripción de la imagen aquí

Como se puede ver en la figura anterior, la comunicación CAN se completa a través de dos cables:
uno es CAN_High amarillo
y el otro es CAN_Low verde.
CAN puede utilizar una variedad de medios físicos como medios de comunicación, el más utilizado es el par trenzado y el óptico. También se pueden utilizar fibras y otros materiales. La señal del bus CAN se transmite a través de dos líneas de señal de voltaje diferencial CAN_ H y CAN_ L. Cuando el valor de voltaje en las líneas de señal CAN_ H y CANL es de aproximadamente 2,5 V, indica que el bus está en lo que llamamos un nivel lógico "1 " estado. , también se puede llamar estado recesivo; cuando el valor de voltaje en CAN_ H es mayor que el de CAN_ L, significa "0" lógico. Por lo general, los valores de voltaje en las dos líneas de señal en este estado son CAN_ H=3,5 V y CAN_ L=1,5 V, que es el estado dominante en este momento. La siguiente figura es el valor nominal del nivel del bus CAN de par trenzado. La figura muestra el valor aproximado de voltaje del bus correspondiente al nivel lógico alto y al nivel lógico bajo.
Insertar descripción de la imagen aquí

La siguiente imagen muestra el envío de datos 0x111111 con una longitud de 3 y el ID de trama estándar es 0001.
Insertar descripción de la imagen aquí

Se puede ver que en el estado inactivo, el nivel es de aproximadamente 2,5 V, la línea amarilla es CANL y la línea violeta es CAN_H. Cuando es dominante, el nivel CAN_H se eleva a aproximadamente 3 V y el nivel CAN_L se eleva. a aproximadamente 1 V. CAN_ H-CAN_ L = 2 V, la línea naranja es CAN_ H-CAN_ L.
Insertar descripción de la imagen aquí

Formato de mensaje CAN

Formato de mensaje

首先,CAN总线协议中的报文指的是总线单元间传递的消息,消息的格式各有不同,总线上的单元想要发送新信息就要检测到总线空闲状态的位信息才可以发送。总线上的报文信息表示为几种固定的帧类型,下图列出了根据CAN总线通信中5种不同用途所设置的帧类型。

Insertar descripción de la imagen aquí

La siguiente tabla es una descripción de los tipos de identificadores.
Insertar descripción de la imagen aquí

Cuando finaliza el protocolo CAN2.0B, no se pueden enviar mensajes en formato extendido y el bus aún puede funcionar normalmente. La siguiente es una descripción detallada del formato de mensaje en las diversas estructuras de trama funcionales del bus CAN. La trama de datos se compone de 7 segmentos. La estructura del marco de datos se muestra en la figura.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

El CAN estándar tiene solo un identificador de 11 bits y la longitud de datos de cada trama es de 44+8N bits.
● SOF: Inicio de trama, dominante (0 lógico) indica el inicio del mensaje y se utiliza para sincronizar nodos en el bus.
● Identificador: CAN estándar tiene un identificador de 11 bits, que se utiliza para determinar la prioridad del mensaje. Cuanto menor sea el valor de este campo, mayor será la prioridad.
● RTR - Bit de solicitud de transmisión remota, este bit es dominante (0 lógico) cuando se necesita solicitar información desde otro nodo. Todos los nodos pueden recibir esta solicitud, pero el identificador de trama determina el nodo que se designa. Todos los nodos también reciben marcos de datos de respuesta y pueden ser utilizados por los nodos interesados.
● IDE: cuando el bit de extensión del identificador es dominante, significa que se trata de un formato CAN estándar y, cuando es invisible, significa que se trata de un formato CAN extendido.
● r0 - bit reservado (puede usarse en futuras revisiones estándar)
● DLC - El código de longitud de datos de 4 bits indica el número de bytes de datos transmitidos. Una trama de CAN puede transmitir hasta 8 bytes de datos de usuario
● Datos 0~8 – se pueden transmitir hasta 8 palabras Sección Datos de usuario
● CRC: el código de verificación CRC de 16 bits (incluido el delimitador de 1 bit) se utiliza para verificar el segmento de datos de transmisión antes del área de datos del usuario (incluido el área de datos).
● ACK: 2 bits, incluido el bit de respuesta y el delimitador de respuesta. En el marco del mensaje del nodo emisor, los dos bits ACK son bits recesivos. Cuando el receptor recibe correctamente un mensaje válido, el receptor enviará un bit dominante al nodo emisor durante el período de bit de respuesta, lo que indica una respuesta. Si el receptor encuentra que hay un error en la trama de datos, no enviará una respuesta ACK al nodo emisor y el nodo emisor retransmitirá la trama de datos más tarde.
● EOF: indicador de fin de trama de 7 bits, todos bits recesivos. Si aparecen bits dominantes en estos 7 bits, se producirá un error de relleno.
● IFS: indicador de intervalo de trama de 7 bits. El controlador CAN tarda un cierto tiempo en colocar correctamente la trama recibida en el búfer de mensajes. El intervalo de trama puede proporcionar este tiempo.
Insertar descripción de la imagen aquí

CAN extendido

Insertar descripción de la imagen aquí

● CAN extendido tiene un identificador de 29 bits y la longitud de datos de cada trama es de 64+8N bits.
● SRR: reemplaza el bit de solicitud remota y es recesivo. Entonces, cuando la transmisión de trama estándar y la trama extendida entran en conflicto entre sí y el identificador básico de la trama extendida es el mismo que el de la trama estándar, la trama estándar tiene una prioridad más alta que la trama extendida.
● IDE: el bit recesivo indica la trama de extensión del bit de bandera; el identificador de extensión de 18 bits sigue al bit IDE.
● r1 – reservado

detección de errores

Insertar descripción de la imagen aquí

Análisis de forma de onda

Envíe datos 0x111111 con longitud 3 y ID de trama estándar 0001.

IDENTIFICACIÓN

Cuando el ID es 0001, para el binario 000 0000 0001, debido al mecanismo de llenado de bits, siempre que el transmisor detecte 5 bits consecutivos con el mismo valor, automáticamente agregará un valor opuesto al siguiente bit y el receptor. El bit agregado se elimina automáticamente.
Insertar descripción de la imagen aquí

Longitud de datos

RTR, IDE, R0 son 0 de forma predeterminada y la longitud de los datos es 0011 (3).
Insertar descripción de la imagen aquí

Campos de información

Los datos transmitidos son 3 bytes de datos, que son 0x111111.
Insertar descripción de la imagen aquí

CDN

Bit de verificación (CRC) = 15 bits seguidos de un bit delimitador CRC recesivo.
Área de respuesta (ACK) 2 bits, incluida la ranura ACK más un delimitador ACK recesivo. Los dos bits ACK son bits recesivos. Cuando el receptor recibe correctamente Al recibir un mensaje, el receptor enviará un bit dominante al nodo emisor durante el período del bit de respuesta para indicar la respuesta.
CRC es 0x1984 (001 1001 1000 0100), el delimitador CRC es 1 y
ACK es 01
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_24312945/article/details/127308857
Recomendado
Clasificación