Thu. Sep 29th, 2022

Este artículo presenta el bus de comunicación en serie de la Red de área del controlador (CAN), que detalla los marcos de mensajes, el arbitraje del bus y la señalización.

información de soporte

¿Qué es la CAN?

La red de área del controlador (CAN) es un bus de comunicación en serie diseñado para un rendimiento robusto y flexible en entornos hostiles, y particularmente para aplicaciones industriales y automotrices.

Originalmente inventado por Bosch y luego codificado en el estándar ISO11898-1, CAN define el enlace de datos y la capa física del modelo de Interconexión de Sistemas Abiertos (OSI), proporcionando una solución de red de bajo nivel para comunicaciones en vehículos de alta velocidad. En particular, CAN fue desarrollado para reducir el cableado de los cables, por lo que las unidades de control electrónico separadas (ECU) dentro de un vehículo podrían comunicarse con un solo par de cables. La figura 1 muestra las ECU en un automóvil conectado a un bus CAN.

Figura 1. CAN se utiliza para la comunicación de la ECU en automóviles. Imagen utilizada cortesía del Instituto Infosec.

El diagnóstico a bordo (OBD) es el sistema de informes y diagnóstico de su vehículo que le permite a usted oa un técnico resolver problemas a través de códigos de diagnóstico de problemas (DTC). Cuando se enciende la luz de "revisar motor", un técnico a menudo usará un dispositivo de mano para leer los códigos de motor del vehículo. En el nivel más bajo, estos datos se transmiten a través de un protocolo de señalización, que en la mayoría de los casos es CAN.

DeviceNet es un protocolo de red de alto nivel utilizado en aplicaciones industriales. Reduce en gran medida el cableado necesario entre un sistema de control y dispositivos de E / S. En lugar de conectar cada dispositivo a una entrada / salida independiente en los módulos de E / S de un PLC, los dispositivos pueden conectarse entre sí mediante un conector de cuatro cables y conectarse a un escáner de red en el PLC. En el nivel más bajo, encontramos a CAN trabajando su magia dentro del protocolo DeviceNet. La Figura 2 muestra un PLC que explora una red de dispositivos industriales que se comunican a través de DeviceNet.

Figura 2. PLC conectado a una red DeviceNet que utiliza CAN para el enlace de datos y la capa física.

Marcos de mensajes CAN

Entonces, ¿cómo se ve realmente un mensaje CAN? La norma ISO original estableció lo que se denomina CAN estándar. CAN estándar utiliza un identificador de 11 bits para diferentes mensajes, lo que da un total de 211, es decir, 2048, diferentes identificadores de mensaje. La CAN fue modificada posteriormente; El identificador se expandió a 29 bits, dando 2.29 identificadores Esto se llama CAN extendido. CAN utiliza un bus multi-maestro, donde todos los mensajes se transmiten en toda la red. Los identificadores proporcionan una prioridad de mensaje para el arbitraje.

CAN utiliza una señal diferencial con dos estados lógicos, llamada recesiva y dominante. Recesivo indica que la tensión diferencial es menor que una tensión de umbral mínima. Dominante indica que la tensión diferencial es mayor que este umbral mínimo. Curiosamente, el estado dominante se logra al colocar un '0' lógico en el bus, mientras que el estado recesivo se logra con un '1' lógico. Esto se invierte del alto y bajo tradicional utilizado en la mayoría de los sistemas. Estos dos estados se detallarán más adelante en el artículo. Lo importante es que un estado dominante anula un recesivo durante el arbitraje.

Estándar puede

El cuadro de mensaje CAN estándar consta de varios campos de bits. Estos se muestran en la Figura 3.

Figura 3. Marco de mensaje CAN estándar

El primer bit es el inicio del cuadro (SOF). Este bit dominante representa el inicio de un mensaje CAN. El siguiente es el identificador de 11 bits, que establece la prioridad del mensaje CAN. Cuanto menor sea el identificador, mayor será la prioridad del mensaje.

El bit de solicitud de transmisión remota (RTR) normalmente es dominante, pero se vuelve recesivo cuando un nodo solicita datos de otro. El bit de extensión de identificador (IDE) es dominante cuando se envía una trama CAN estándar y no una extendida. El bit r0 está reservado y no se utiliza actualmente. El nibble del código de longitud de datos (DLC) indica cuántos bytes de datos hay en este mensaje.

A continuación se encuentran los datos en sí mismos, con la cantidad de bytes representados en los bits de DLC. La verificación de redundancia cíclica (CRC) es una suma de comprobación de 16 bits para detectar errores en los datos transmitidos. Si el mensaje se recibe correctamente, el nodo receptor sobrescribe el bit de reconocimiento recesivo (ACK) con un bit dominante. El ACK también contiene un bit delimitador para mantener las cosas sincronizadas. El final del cuadro (EOF) significa el final del mensaje CAN y tiene 7 bits de ancho, para detectar errores de relleno de bits. La última parte de un mensaje CAN es el espacio entre tramas (IFS), utilizado como un retardo de tiempo. Este retardo de tiempo es precisamente la cantidad de tiempo necesario para que un controlador CAN mueva el mensaje recibido a un búfer para su posterior procesamiento.

CAN extendido

CAN extendido usa un identificador de 29 bits junto con algunos bits adicionales. Un mensaje extendido tiene un bit de solicitud remota sustituta (SRR) después del identificador de 11 bits, que actúa como un marcador de posición para mantener la misma estructura que el CAN estándar. Esta vez, la extensión del identificador (IDE) debe ser recesiva, lo que indica que el identificador extendido lo sigue. El bit RTR está después del ID de 18 bits y está seguido por un segundo bit de reserva, r1. El resto del mensaje sigue siendo el mismo.

Figura 4. Marco de mensaje CAN extendido

Tipos de mensajes CAN

Ahora que sabe qué aspecto tiene un mensaje CAN, es posible que se pregunte qué tipo de mensajes se transmiten a lo largo del bus. CAN permite cuatro tipos de mensajes diferentes. Son el marco de datos, el marco remoto, el marco de sobrecarga y el marco de error.

Un marco de datos CAN estándar utiliza el identificador, los datos y el código de longitud de datos, la verificación de redundancia cíclica y los bits de acuse de recibo. Tanto los bits RTR como los IDE son dominantes en las tramas de datos. Si el bit de reconocimiento recesivo en el extremo receptor se sobrescribe con un bit dominante, tanto el transmisor como el receptor lo reconocen como una transmisión exitosa.

Un marco remoto CAN se ve similar a un marco de datos, excepto por el hecho de que no contiene ningún dato. Se envía con el bit RTR en un estado recesivo; Esto indica que es un cuadro remoto. Los marcos remotos se utilizan para solicitar datos de un nodo.

Cuando un nodo detecta un error en un mensaje en el bus CAN, transmite una trama de error. Esto hace que todos los demás nodos envíen un cuadro de error. Después de esto, el nodo donde ocurrió el error retransmite el mensaje. El marco de sobrecarga funciona de manera similar, pero se usa cuando un nodo recibe marcos más rápido de lo que puede procesarlos. Este marco proporciona un búfer de tiempo para que el nodo pueda ponerse al día.

Bus arbitraje y señalización

CAN es un protocolo CSMA / CD, lo que significa que cada nodo en el bus puede detectar colisiones y detenerse durante un cierto tiempo antes de intentar retransmitir. Esta detección de colisión se logra a través de un arbitraje de prioridad basado en los identificadores del mensaje. Antes de discutir el arbitraje, echemos un vistazo más de cerca a los bits dominantes y recesivos utilizados en el bus CAN.

Lógica invertida

Un aspecto interesante del bus CAN es que utiliza una forma de lógica invertida con dos estados, dominante y recesivo. La Figura 5, a continuación, muestra una versión simplificada de la salida y entrada de un transceptor CAN. El flujo de bits '101' viene desde / y va a un controlador CAN y / o microcontrolador. Observe que cuando el controlador envía un flujo de bits, estos se complementan y se colocan en la línea CANH. La línea CANL es siempre el complemento de CANH. Para que el arbitraje funcione, un dispositivo CAN debe monitorear lo que está enviando y lo que está actualmente en el bus, es decir, lo que está recibiendo.

Figura 5. CAN salida / entrada

La Figura 6 muestra las señales CANH y CANL simultáneamente para que pueda ver el bus CAN en acción. Debajo de las señales del bus se representa la tensión diferencial que corresponde a los estados dominantes y recesivos de las señales CAN. Los primeros tres segmentos en el tiempo, t1 – t3, se dibujan para coincidir con los tres bits que se muestran arriba en la Figura 5. Lo veremos desde la perspectiva del controlador de salida. La entrada del conductor ve inicialmente un '1' y lo complementa con un cero, que se coloca en CANH. CANL ve el complemento de CANH y va alto. Esto se muestra como t1 en la Figura 6. Observe que los voltajes CANH y CANL están compensados ​​entre sí. Durante el tiempo t1, CANH – CANL está muy cerca de cero, ya que CANH y CANL tienen casi el mismo voltaje. Este período, donde el controlador está enviando un '1' lógico que hace que CANH y CANL estén cerca del mismo voltaje, es lo que llamamos el estado recesivo CAN.

El siguiente bit enviado es un '0'. CANH obtiene su complemento y CANL nuevamente obtiene el complemento de CANH. Observe esta vez que los voltajes CANH y CANL no están cerca uno del otro. Por lo tanto, la tensión diferencial (VDIFF) es mayor. Este es el estado dominante de la CAN. Decimos que la lógica está invertida porque un '1' baja el bus y un '0' lo hace alto. El receptor de entrada funciona de manera similar.

Figura 6. CAN estados recesivos y dominantes con tensión diferencial mostrada

Arbitraje de prioridad

Como se mencionó anteriormente, cuanto más pequeño sea el identificador de 11 bits, mayor será la prioridad del mensaje. Cada bit que un nodo transmite, supervisa. Así es como un nodo detecta que un mensaje de mayor prioridad se está colocando en el bus. En el momento en que un nodo envía un bit recesivo pero detecta un bit dominante en el bus, retrocede. Esto se denomina arbitraje no destructivo porque el mensaje ganador continúa transmitiéndose sin ningún problema. Tenga en cuenta que una lógica recesiva '1' se pierde con una lógica dominante '0'. Esto tiene sentido ya que un valor de identificador más bajo representa una prioridad más alta. Para tener una mejor idea de lo que esto significa, observe la Figura 7, que muestra tres nodos en un bus CAN que intentan tomar el control. Es importante recordar que cada vez que se muestra un bit recesivo, el controlador envía un '1', mientras que los bits dominantes corresponden al envío de '0'.

Todos los nodos 1-3 están enviando un flujo de bits. Este flujo de bits representa los identificadores de mensaje y su prioridad. Para empezar, los tres nodos envían un '1', que se representa en el bus CAN como un bit recesivo. A continuación, cada nodo envía un '0', o bit dominante. El tercer bit colocado en el bus es otro '1', o bit recesivo. En este punto, ninguno de los nodos ha detectado ningún conflicto con otro nodo en el bus, por lo que siguen transmitiendo.

Para el cuarto bit, el nodo 1 envía un '0' o bit dominante. El nodo 2 transmite un bit recesivo, pero detecta un bit dominante en el bus. Inmediatamente retrocede, sabiendo que actualmente se está enviando un mensaje de mayor prioridad. El nodo 3 continúa transmitiendo ya que lee el mismo bit dominante que transmitió. Cuando el quinto bit se coloca en el bus, el Nodo 3 reconoce que tiene una prioridad más baja y deja de transmitir. Tanto el Nodo 2 como el Nodo 3 esperan un cierto tiempo antes de volver a intentarlo. Esto se muestra en la mitad derecha de la Figura 7, con el arbitraje ganador del Nodo 3. Como puede ver, un bit dominante '0' lógico que corresponde a un identificador de mensaje inferior permite que se realice el arbitraje.

Figura 7. Bus arbitraje CAN con tensión diferencial.

Conclusión

Este artículo introdujo la red de área del controlador o CAN. CAN es un bus de comunicación serial robusto que se encuentra principalmente en entornos automotrices e industriales. CAN utiliza una señal diferencial, lo que la hace más resistente al ruido, junto con un esquema de arbitraje de prioridad para la transmisión de mensajes no destructivos. CAN es ideal para aplicaciones integradas que terminan en entornos peligrosos o áreas con muchas interferencias electromagnéticas. Ya sea que esté construyendo un submarino a control remoto, configurando una cervecería con bombas y sensores, o simplemente pirateando la computadora de su automóvil, CAN es una excelente manera de ampliar su conocimiento integrado al tiempo que refuerza su próximo proyecto de diseño.

By Maria Montero

Me apasiona la fotografía y la tecnología que nos permite hacer todo lo que siempre soñamos. Soñadora y luchadora. Actualmente residiendo en Madrid.