Protocolo CAN: comprensión de la red de área del controlador

La Controller Area Network o Protocolo CAN es un método de comunicación entre dispositivos electrónicos integrados en un vehículo como sistemas de gestión del motor, suspensión activa, cierre centralizado, aire acondicionado, airbags, etc. La idea fue iniciada por Robert Bosch GmbH en 1983 para mejorar la calidad y seguridad de los automóviles aumentando la confiabilidad y la eficiencia del combustible.

El protocolo CAN de Bosch, lanzado por primera vez en 1986, también ha aportado avances en la comunicación. Esto fue significativo porque los avances en las industrias de la electrónica y los semiconductores en ese momento generaron nuevas tecnologías, pero también desafíos para los ingenieros de la industria del automóvil. Por ejemplo, la electrónica ofrecía más funcionalidad y complejidad, incluida la capacidad de "comunicarse" entre dispositivos. A los ingenieros automotrices a menudo se les encomendaba la tarea de incorporar estos dispositivos, asegurándose de que funcionaran sin errores.

CAN simplificó el proceso, donde diferentes módulos electrónicos podían comunicarse entre sí mediante un cable común.

La necesidad de CAN
Un vehículo contiene una red de dispositivos electrónicos que comparten datos e información entre sí. Un motor de encendido por chispa, por ejemplo, requiere una chispa para encender la cámara de combustión. El tiempo es importante aquí. Para garantizar que esto ocurra con precisión, se “comunica” con la unidad de control del motor del vehículo, que elige el momento óptimo de encendido para brindar potencia y eficiencia de combustible.

Otro ejemplo de comunicación de dispositivo a dispositivo incluye la unidad de control de transmisión de un automóvil. Cambia automáticamente la marcha de un vehículo en relación con su velocidad utilizando datos de la unidad de control del motor y varios sensores del sistema. Cada dispositivo electrónico tiene una ECU/MCU (unidad de control electrónica/ microcontrolador ) con su propio conjunto de reglas para compartir y transferir información.

Sin embargo, para que dos o más dispositivos interactúen, deben estar equipados con hardware y software para comunicarse correctamente. Antes de que se utilizara CAN en los vehículos, cada dispositivo electrónico se conectaba a otro mediante cables (o, más específicamente, cableado punto a punto). Esto funcionó con bastante eficacia cuando las funciones eran básicas. Pero uno de los principales problemas para los ingenieros automotrices a medida que avanzaba la electrónica fue conectar las ECU de diferentes dispositivos para poder intercambiar información en tiempo real. El protocolo CAN fue diseñado para resolver este problema.

Imagem mostrando conexão de fiação ponto a ponto em um protocolo CAN

Un ejemplo de una conexión de cableado punto a punto en un protocolo CAN.

El protocolo establece reglas mediante las cuales los dispositivos electrónicos pueden intercambiar información entre sí a través de un bus serie común. Conexiones de cableado reducidas y complejidad general del sistema.

Diagrama algorítmico mostrando a conectividade entre vários dispositivos usando o protocolo CAN

Un diagrama algorítmico que muestra la conectividad entre dispositivos que utilizan el protocolo CAN.

La tecnología estándar en ese momento (transmisor/receptor asíncrono) no era capaz de soportar la comunicación multidominio. Un dominio es un grupo de dispositivos electrónicos que tienen requisitos similares para funcionar correctamente en el sistema. Por ejemplo, un reproductor de CD/DVD, un GPS y monitores y monitores forman un único dominio. Asimismo, el tablero de instrumentos, el sistema de aire acondicionado (o control climático), los limpiaparabrisas, las luces y las cerraduras de las puertas forman otro dominio.

Los dispositivos electrónicos de un vehículo se pueden clasificar en diferentes dominios y CAN facilita la comunicación entre dominios, lo cual es de gran ayuda para los ingenieros automotrices.

Tabela mostrando a comunicação multidomínio suportada pelo protocolo CAN

Comunicación multidominio desde un vehículo, soportada por el protocolo CAN.

¿Cómo se implementa el protocolo CAN?

El protocolo CAN es un conjunto de reglas para transmitir y recibir mensajes a través de una red de dispositivos electrónicos. Define cómo se transfieren los datos de un dispositivo a otro a través de una red.

Curiosamente, Podemos se desarrolló con un enfoque específico en la industria del automóvil, pero su arquitectura y ventajas han llevado a otras industrias (como el ferrocarril, la aviación y el sector médico) a adoptar también el protocolo.

Versão simplificada do protocolo CAN

Una versión simplificada del protocolo CAN.

Cada dispositivo electrónico (o nodo ) que se comunica mediante el protocolo CAN está conectado entre sí mediante un bus serie común, que permite la transferencia de mensajes. Para que se produzca este intercambio de datos, los nodos primero requieren el hardware y software necesarios.

Imagem gráfica mostrando vários nós presentes em uma rede CAN

Múltiples nodos presentes en una red CAN.

Como se muestra en la figura anterior, una red CAN típica consta de varios nodos. Cada dispositivo tiene un controlador host (ECU/MCU), que es responsable de la función de un nodo específico, y el controlador CAN y el transceptor .

El controlador CAN convierte los mensajes de los nodos según los protocolos CAN, que luego se transmiten a través del transceptor CAN a través del bus serie y viceversa. El controlador es un chip integrado en el controlador host del nodo o agregado por separado.

El protocolo CAN no sigue la arquitectura maestro-esclavo, lo que significa que todos los nodos tienen acceso para leer y escribir datos en el bus CAN. Cuando el nodo está listo para enviar datos, verifica la disponibilidad del bus y escribe una trama CAN en la red. Una trama es una estructura que transporta una secuencia significativa de bits o bytes de datos dentro de la red.

Hay dos tipos de protocolos: basados ​​en direcciones o basados ​​en mensajes.

  • En un protocolo basado en direcciones, los paquetes de datos contienen la dirección del dispositivo al que está destinado el mensaje.
  • En un protocolo basado en mensajes, cada mensaje se identifica mediante una ID predefinida en lugar de una dirección.

La trama transmitida por CAN normalmente es un protocolo basado en mensajes. Un mensaje es un paquete de datos que transporta información. Un mensaje CAN se compone de 10 bytes de datos, que están organizados en una estructura específica (llamada trama). Los datos transportados en cada byte se definen en el protocolo CAN.

Todos los nodos que utilizan el protocolo CAN reciben una trama y dependiendo del ID del nodo, CAN “decide” si la acepta o no. Si varios nodos envían el mensaje al mismo tiempo, el nodo con la prioridad más alta (por lo tanto, el ID de arbitraje más bajo) recibirá acceso al bus. Los nodos de menor prioridad deben esperar hasta que el autobús esté disponible.

Beneficios

  • Bajo costo: debido a que un bus serie CAN utiliza dos cables (con una producción de alto volumen y bajo costo), ofrece una buena relación precio-rendimiento.
  • Fiable: CAN ofrece una excelente Mecanismos de detección y manejo de errores, que proporcionan una transmisión altamente confiable. También es en gran medida inmune a las interferencias electromagnéticas.
  • Flexible: los nodos CAN no están limitados por protocolo y se pueden conectar o desconectar fácilmente.
  • Rápido: PUEDE admitir una velocidad de datos de 1 MBit/s a una longitud de bus de 40 m.
  • Comunicación multimaestro: cualquier nodo puede acceder al bus
  • Confinamiento de fallas: los nodos defectuosos no interrumpen la comunicación.
  • Capacidades de transmisión: los mensajes se pueden enviar a uno/varios/todos los nodos.
  • Estandarizado: ISO ha estandarizado el protocolo CAN mediante ISO-DIS 11898 (para aplicaciones de alta velocidad) e ISO-DIS 11519-2 (para aplicaciones de baja velocidad). El protocolo CAN también está estandarizado por organizaciones industriales como la SAE-Society of Automotive Engineers.

Arquitectura CAN

El protocolo CAN utiliza el modelo de referencia OSI existente para transferir datos entre nodos conectados en una red. El modelo de referencia OSI representa un conjunto de siete capas a través de las cuales pasan los datos durante la comunicación entre dispositivos conectados. La estructura de siete capas del modelo OSI es confiable y ampliamente utilizada en varios protocolos de comunicación.

Diagrama de blocos mostrando a arquitetura CAN

La arquitectura CAN.

Cada capa tiene su función específica que soporta la capa superior e inferior, como se describe a continuación.

· Capa de aplicación

Sirve como una ventana para que los usuarios y los procesos de aplicaciones accedan a los servicios de red. Las funciones comunes de las capas son compartir recursos, acceso remoto a archivos, gestión de redes, mensajería electrónica, etc.

· Capa de presentación

La función más importante de esta capa es definir formatos de datos como texto ASCII, texto BINARIO EBCDIC, BCD y JPEG. Actúa como traductor de datos a un formato utilizado por la capa de aplicación en el extremo receptor de la estación.

· capa de sesión

Le permite establecer, comunicar y finalizar sesiones entre procesos que se ejecutan en dos dispositivos diferentes, realizando seguridad, reconocimiento de nombres y registro.

· Capa de transporte

La capa de transporte garantiza que los mensajes se entreguen sin errores, en secuencia y sin pérdidas ni duplicaciones. Esto alivia a la capa superior de cualquier preocupación sobre la transferencia de datos entre ellos y sus pares.

· Capa de red

Proporciona un sistema de direccionamiento lógico de extremo a extremo para que un paquete de datos pueda enrutarse a través de múltiples capas y establecer, conectar y finalizar conexiones de red.

· Capa de enlace de datos

Empaqueta datos sin procesar en tramas transferidas desde la capa física. Esta capa se encarga de transferir fotogramas de un dispositivo a otro sin errores. Después de enviar la trama, espera la confirmación del dispositivo receptor. La capa de enlace de datos tiene dos subcapas:

{C1 . Capa MAC (Control de acceso al medio): realiza codificación de tramas, detección de errores, señalización, serialización y deserialización.

Capa LLC (Control de enlace lógico): la subcapa LLC proporciona multiplexación mecanismos que habilitan diferentes protocolos de red (IP , Decnet Es Appletalk) coexisten en una red multipunto y se transportan en el mismo medio de red. Realiza la función de multiplexar protocolos transmitidos por la capa MAC durante la transmisión y decodificación al recibir y proporciona control de errores y flujo de nodo a nodo.

· Capa fisica

La capa física transmite bits de un dispositivo a otro y regula la transmisión de flujos de bits. Define el voltaje específico y el tipo de cable que se utilizará para los protocolos de transmisión. Proporciona los medios de hardware para enviar y recibir datos en un operador definiendo cables, tarjetas y aspectos físicos.

El protocolo CAN utiliza dos capas inferiores de OSI, a saber, la capa física y la capa de enlace de datos. Las cinco capas restantes, que son capas de comunicación, quedan fuera de la especificación BOSCH CAN para que los diseñadores de sistemas las optimicen y adapten según sus necesidades.

Diagrama de blocos mostrando várias camadas de uma rede usando protocolo CAN

Fig. 7: Diagrama de bloques que muestra varias capas de una red utilizando el protocolo CAN

La función de cada pieza se muestra en la siguiente figura.

Diagrama de blocos mostrando funções de várias partes de uma rede CAN

Fig. 8: Diagrama de bloques que muestra las funciones de varias partes de una red CAN

El concepto de protocolo CAN se puede entender en la figura anterior. Cada nodo tiene un controlador host, también conocido como microcontrolador, que es una computadora pequeña y de bajo costo. El controlador de host implementa la capa de aplicación del modelo OSI. El microcontrolador recopila información de otras unidades de control electrónico como frenos, dirección, elevalunas eléctricos, etc. para comunicarse con otros nodos y los transfiere al controlador CAN. El controlador CAN incorpora control de enlace lógico y control de acceso al medio MAC de capa de enlace de datos. LLC permite el filtrado de mensajes mediante el uso de una identificación única en cada mensaje y luego la subcapa MAC enmarca el mensaje. Una vez realizado el encuadre, le sigue el arbitraje, la detección de errores y el reconocimiento de que todo está en la subcapa MAC del enlace de datos. La trama se transfiere al transreceptor CAN para su codificación y decodificación. Finalmente, el transreceptor CAN se sincroniza con el bus CAN para enviar el mensaje a otro nodo.

Términos asociados al protocolo CAN.

PRECIOS DE AUTOBÚS

Los valores binarios en el protocolo CAN se denominan bits dominantes y recesivos.

· PUEDE establecer un “0” lógico como bit dominante.

· PUEDE establecer el “1” lógico como bit recesivo.

En el sistema CAN, el bit dominante siempre reemplaza al bit recesivo.

Comunicación basada en mensajes

Un mensaje es un paquete de datos que transporta información para ser intercambiada entre nodos. Cada mensaje en CAN tiene un número de identificación único. El número de identificación se especifica según el contenido del mensaje y se almacena en el identificador del mensaje. Este número de identificación también es único dentro de la red, por lo que cuando el nodo transmisor coloca los datos en la red para que todos los nodos accedan a ellos, verifica el número de identificación único para permitir que el mensaje pase a través del filtro y que el resto sea ignorado. Esto se hace para ahorrar tiempo dedicado a la clasificación. Con el protocolo basado en mensajes, se pueden agregar otros nodos sin reprogramar, ya que las unidades conectadas al bus no tienen información de identificación como el direccionamiento de los nodos. Por tanto, no es necesario cambiar el software y hardware de ninguna de las unidades conectadas al bus.

Diagrama mostrando a comunicação baseada em mensagens em um protocolo CAN usando rede

Fig. 9: Diagrama que muestra la comunicación basada en mensajes en un protocolo CAN utilizando la red

Encuadre de mensajes

Los mensajes en CAN se envían en un formato llamado marcos. Una trama es una estructura definida que transporta una secuencia significativa de bits o bytes de datos dentro de la red. El encuadre de mensajes lo realiza la subcapa MAC de la capa de enlace de datos . Hay dos tipos de marcos estándar o extendidos. Estos marcos se pueden diferenciar en función de los campos de identificación. Una trama CAN con campos identificadores de 11 bits se denomina CAN estándar y con un campo identificador de 29 bits se denomina trama extendida.

Marco estándar

Figura mostrando como a mensagem é enquadrada em um quadro CAN padrão

Fig. 10: Figura que muestra cómo se enmarca el mensaje en un marco CAN estándar

Varios campos en CAN estándar son los siguientes:

{W · SOF: bit de inicio de trama. Indica el inicio del mensaje y se utiliza para sincronizar los nodos de un bus. Un bit dominante en el campo marca el inicio del cuadro.

· IDENTIFICADOR – Tiene una doble finalidad: determinar qué nodo tiene acceso al bus y, segundo, identificar el tipo de mensaje.

· RTR – Solicitud de transmisión remota. Identifica si se trata de una trama de datos o de una trama remota. El RTR es dominante cuando se trata de una trama de datos y recesivo cuando se trata de una trama remota.

{W}{ · IDE: extensión del identificador. Se utiliza para especificar el formato del marco. La punta dominante es para moldeo estándar y la recesiva para moldeo extendido.

{W} · R0 – Bit invertido. Actualmente no se utiliza y se conserva para uso futuro.

{W · DLC: código de longitud de datos. Es un código de longitud de datos de 4 bits que contiene la cantidad de bytes que se transmiten.

{ · DATOS: se utiliza para almacenar hasta 64 bits de datos de la aplicación que se transmitirán.

{W} · CRC – Verificación de Redundancia Cíclica. La verificación de redundancia cíclica (CRC) de 16 bits (15 bits más delimitador) contiene la suma de verificación de los datos de la aplicación anterior para la detección de errores.

{ · RECONOCIMIENTO – Campo de reconocimiento (ACK). Compromete la ranura ACK y el delimitador ACK. Cuando los datos se reciben correctamente, el receptor reemplaza el bit recesivo de la ranura ACK como bit dominante.

{W} · Fin de año – Fin de cuadro (EOF). El campo de 7 bits marca el final de una trama CAN (mensaje) y desactiva

Bit: llenado, que indica error de llenado cuando es dominante.

{W} · IFS: espacio entre tramas que especifica el número mínimo de bits que separan mensajes consecutivos. da el intervalo entre dos tramas y consta de tres bits recesivos conocidos como bits de intervalo. Este tiempo permite que los nodos se procesen internamente antes de que comience el siguiente cuadro.

LATA EXTENDIDA

Peças de rede CAN estendidas e suas funcionalidades

Fig. 11: Partes de la red CAN ampliada y sus funcionalidades

Es igual que el identificador de 11 bits con algunos campos agregados.

{W · SRR- Solicitud de reemplazo inverso. El bit SRR siempre se transmite como un bit recesivo para garantizar que en el caso de arbitraje entre una trama de datos estándar y una trama de datos extendida, la trama de datos estándar siempre tendrá prioridad si ambos mensajes tienen el mismo identificador base (11 bits). .

{ · R1: es otro bit que no se usa actualmente y se guarda para uso futuro.

Tablero de mensajes

Hay cuatro marcos diferentes que se pueden utilizar en el autobús.

Marcos de datos : estos son los marcos más utilizados cuando un nodo transmite información a cualquiera o todos los demás nodos del sistema. Los marcos de datos constan de campos que proporcionan información adicional sobre el mensaje según lo definido por la especificación CAN. Incrustados en los marcos de datos hay campos de arbitraje, campos de control, campos de datos, campos CRC, un campo de reconocimiento de 2 bits y un final de marco.

Quadros de dados usados ​​em uma rede CAN

Fig. 12: Tramas de datos utilizadas en una red CAN

· Tramas remotas : el propósito de la trama remota es buscar permiso para transmitir datos desde otro nodo. Esto es similar a la trama de datos sin campo de datos y el bit RTR es recesivo. Por ejemplo, es posible que el microprocesador que controla el cierre centralizado de su automóvil necesite conocer el estado del selector de marchas de la transmisión desde el controlador del tren motriz.

· Tramas de error : si el nodo transmisor o receptor detecta un error, abortará inmediatamente la transmisión y enviará una trama de error que consta de un indicador de error que consta de seis bits dominantes y un delimitador de indicador de error que consta de ocho bits recesivos. El controlador CAN garantiza que un nodo no pueda bloquear un bus transmitiendo repetidamente una trama de error.

Quadros de erro usados ​​em uma rede CAN

Fig. 13: Marcos de error utilizados en una red CAN

· Marco de sobrecarga : es similar al marco de error, pero se utiliza para proporcionar un retraso adicional entre mensajes. Un nodo genera una trama de sobrecarga cuando está demasiado ocupado y no está listo para recibir.

Quadro de sobrecarga presente em uma rede CAN

Fig. 14: Tabla de sobrecarga presente en una red CAN

Arbitraje

Es un mecanismo que resuelve el conflicto cuando dos o más nodos intentan enviar el mensaje al mismo tiempo . En esta técnica Siempre que el autobús esté libre, cualquier unidad puede transmitir un mensaje. Si dos o más unidades comienzan a transmitir al mismo tiempo, el acceso al bus entra en conflicto, pero este problema se puede resolver mediante arbitraje utilizando un identificador. Durante el arbitraje, cada transmisor compara el valor del bit transmitido con el valor del bit en el bus. Si el valor del bit es el mismo, el nodo continúa enviando bits. Pero en cualquier momento, si el valor del bit transmitido es diferente del valor del bus, el bit dominante sobrescribe los bits recesivos. El campo de arbitraje de mensajes CAN consta de un identificador de 11 o 29 bits y un bit de transmisión remota (RTR). El identificador con el valor numérico más bajo tiene la mayor prioridad. El RTR simplemente distingue entre la trama remota para la cual el RTR es recesivo y la trama de datos para la cual el RTR es dominante. Si la trama de datos y la trama remota con el mismo identificador se inician al mismo tiempo, la trama de datos tiene prioridad sobre la trama remota. Con el concepto de arbitraje no se pierde información ni tiempo.

CAN como protocolo CSMA

CSMA es un protocolo de acceso múltiple con detección de portadora en el que el nodo comprueba la ausencia de tráfico antes de transmitir en un medio compartido, como un bus eléctrico. En CSMA, cada nodo de un bus espera un tiempo específico antes de enviar el mensaje. Una vez finalizado este período de espera, todos los nodos tendrán las mismas oportunidades para enviar el mensaje. Según la prioridad preprogramada de cada mensaje en el campo del identificador, es decir, el identificador con mayor prioridad obtiene acceso al bus. Está implementado en la capa física del modelo OSI. Entendamos CSMA con un ejemplo. En una discusión, todas las personas tienen iguales oportunidades para expresar sus pensamientos, sin embargo, cuando una persona habla, las demás permanecen en silencio y escuchan y esperan la oportunidad de hablar (sentido del portador). Pero si dos o más personas empiezan a hablar al mismo tiempo, detectan el hecho y dejan de hablar (detección de colisión).

control de errores

Comprobación de errores y confinamiento de fallos

Este es uno de los atributos de CAN que lo hace robusto. El protocolo CAN tiene cinco métodos de verificación de errores, de los cuales tres están a nivel de mensaje mientras que los otros dos están a nivel de bits. Cada trama es aceptada o rechazada simultáneamente por todos los nodos de la red. Si un nodo detecta un error, transmite un indicador de error a cada nodo y destruye la trama transmitida y el nodo transmisor reenvía la trama.

Nivel de mensaje

Verificación CRC

En esta etapa, el nodo transmisor calcula un valor de verificación de redundancia cíclica de 15 bits y lo transmite en el campo CRC. Este valor lo reciben todos los nodos. Luego, todos los nodos calculan el valor CRC y comparan los resultados con el valor transmitido. Si los valores difieren, se generará un marco de error. Como uno de los nodos no recibió el mensaje correctamente, se reenvía.

Ranuras ACK

Cuando el nodo emisor envía un mensaje, se envía un bit recesivo en la ranura de confirmación. Después de recibir el mensaje, la ranura de confirmación se reemplaza con el bit dominante que reconocería que al menos un nodo recibió el mensaje correctamente. Si este bit es recesivo, ningún nodo recibió el mensaje correctamente.

error de formulario

Fin de trama, espacio entre tramas, delimitador de reconocimiento son campos que siempre son recesivos, si algún nodo detecta un bit dominante en uno de estos campos el protocolo CAN lo llama violación y se genera una trama de formulario y el mensaje original se reenvía después de ciertos período.

Nivel de bits

Error de material

Relleno de bits: es una técnica muy común utilizada en telecomunicaciones y transmisión de datos para insertar bits no informativos para tener las mismas velocidades de bits o para llenar cuadros. La capa de enlace de datos elimina estos bits adicionales para recuperar el mensaje original. Esta misma técnica se utiliza en errores de bit. El bus CAN nunca está inactivo porque utiliza el método NRZ. Después de cinco bits consecutivos del mismo valor, se inserta en el flujo de bits un bit con el complemento o valor opuesto. Si se detectan seis bits del mismo valor entre el delimitador SOF y CRC, se generará la trama de error. Una vez detectados los errores, se cancela la transmisión y se repite la trama. Si los errores persisten, la estación o nodo puede apagarse para evitar que el autobús se atasque.

error de bit

Un nodo que envía el bit siempre supervisa el bus. Si el bit enviado por el transmisor es diferente del valor del bit en el bus, se generará una trama de error. Pero hay una excepción en el caso del campo de arbitraje o ranura de reconocimiento donde se envía un bit recesivo y se recibe un bit dominante. De este modo no se producen errores de bit cuando se vigila el bit dominante.

Conclusión

El protocolo CAN desarrollado inicialmente para redes automotrices en vehículos, ha ampliado sus aplicaciones en varios otros sectores. La aplicación iniciada para los coches de lujo se utiliza ahora en vehículos pesados ​​como camiones, autobuses, trenes y vehículos ferroviarios. La característica única de CAN que permite que múltiples unidades electrónicas se comuniquen entre sí lo ha hecho importante en el ámbito de la atención médica. Por ejemplo, unidades de cuidados intensivos y quirófanos donde el tiempo y la comunicación son de suma importancia. La industria del entretenimiento también ha utilizado protocolos CAN para mejorar las capacidades de los estudios para controlar luces y sistemas de puertas y para controlar escenarios de teatro, salas de eventos, etc. Las máquinas de juego y los juguetes son otros ejemplos en el campo del entretenimiento. En el campo de la ciencia, los experimentos de alta energía y los telescopios astronómicos utilizan CAN en redes integradas.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.