Puede transportar

Ajustar Compartir Imprimir Citar
Estándar de comunicación entre dispositivos sin ordenador host

Una red de área de controlador (bus CAN) es un estándar de bus de vehículo diseñado para permitir que los microcontroladores y los dispositivos se comuniquen entre sí con las aplicaciones sin una computadora central.. Es un protocolo basado en mensajes, diseñado originalmente para el cableado eléctrico múltiplex dentro de los automóviles para ahorrar cobre, pero también se puede usar en muchos otros contextos. Para cada dispositivo, los datos en una trama se transmiten en serie pero de tal manera que si más de un dispositivo transmite al mismo tiempo, el dispositivo de mayor prioridad puede continuar mientras los demás retroceden. Todos los dispositivos reciben las tramas, incluido el dispositivo transmisor.

Historia

El desarrollo del bus CAN comenzó en 1983 en Robert Bosch GmbH. El protocolo se publicó oficialmente en 1986 en la conferencia de la Sociedad de Ingenieros Automotrices (SAE) en Detroit, Michigan. Los primeros chips controladores CAN fueron presentados por Intel en 1987, y poco después por Philips. Lanzado en 1991, el Mercedes-Benz W140 fue el primer vehículo de producción en presentar un sistema de cableado multiplex basado en CAN.

Bosch publicó varias versiones de la especificación CAN. La última es CAN 2.0, publicada en 1991. Esta especificación consta de dos partes. La parte A es para el formato estándar con un identificador de 11 bits y la parte B es para el formato extendido con un identificador de 29 bits. Un dispositivo CAN que usa identificadores de 11 bits se denomina comúnmente CAN 2.0A, y un dispositivo CAN que usa identificadores de 29 bits se denomina comúnmente CAN 2.0B. Estos estándares están disponibles gratuitamente en Bosch junto con otras especificaciones e informes técnicos.

En 1993, la Organización Internacional de Normalización (ISO) publicó el estándar CAN ISO 11898, que luego se reestructuró en dos partes: ISO 11898-1, que cubre la capa de enlace de datos, e ISO 11898-2, que cubre la capa física de CAN. para CAN de alta velocidad. ISO 11898-3 se publicó más tarde y cubre la capa física de CAN para CAN tolerante a fallas y de baja velocidad. Los estándares de capa física ISO 11898-2 e ISO 11898-3 no forman parte de la especificación CAN 2.0 de Bosch.

En 2012, Bosch lanzó CAN FD 1.0 o CAN con velocidad de datos flexible. Esta especificación utiliza un formato de trama diferente que permite una longitud de datos diferente, así como cambiar opcionalmente a una tasa de bits más rápida después de que se decide el arbitraje. CAN FD es compatible con las redes CAN 2.0 existentes, por lo que los nuevos dispositivos CAN FD pueden coexistir en la misma red con los dispositivos CAN existentes. A partir de 2018, Bosch participó activamente en la ampliación de los estándares CAN.

El bus CAN es uno de los cinco protocolos utilizados en el estándar de diagnóstico de vehículos de diagnóstico a bordo (OBD)-II. El estándar OBD-II es obligatorio para todos los automóviles y camiones ligeros vendidos en los Estados Unidos desde 1996. El estándar EOBD es obligatorio para todos los vehículos de gasolina vendidos en la Unión Europea desde 2001 y todos los vehículos diésel desde 2004.

Aplicaciones

Automoción

El automóvil moderno puede tener hasta 70 unidades de control electrónico (ECU) para varios subsistemas. Tradicionalmente, el procesador más grande es la unidad de control del motor. Otros se utilizan para conducción autónoma, sistema avanzado de asistencia al conductor (ADAS), transmisión, bolsas de aire, frenos antibloqueo/ABS, control de crucero, dirección asistida eléctrica, sistemas de audio, ventanas eléctricas, puertas, ajuste de espejos, batería y sistemas de recarga para híbridos/eléctricos. automóviles, etc. Algunos de estos forman subsistemas independientes, pero la comunicación entre otros es esencial. Un subsistema puede necesitar controlar actuadores o recibir retroalimentación de sensores. El estándar CAN fue ideado para satisfacer esta necesidad. Una ventaja clave es que la interconexión entre diferentes sistemas de vehículos puede permitir que se implemente una amplia gama de características de seguridad, economía y conveniencia usando solo software, funcionalidad que agregaría costos y complejidad si dichas características estuvieran cableadas usando electricidad automotriz tradicional. Ejemplos incluyen:

En los últimos años, se introdujo el estándar de bus LIN (red de interconexión local) para complementar CAN para subsistemas no críticos, como aire acondicionado e información y entretenimiento, donde la velocidad y la confiabilidad de la transmisión de datos son menos críticas.

Otro

Arquitectura

Organización física

CAN es un estándar de bus serie multimaestro para conectar unidades de control electrónico (ECU), también conocidas como nodos (la electrónica automotriz es un dominio de aplicación importante). Se requieren dos o más nodos en la red CAN para comunicarse. Un nodo puede interactuar con dispositivos de lógica digital simple, p. PLD, a través de FPGA hasta una computadora integrada que ejecuta un amplio software. Dicha computadora también puede ser una puerta de enlace que permite que una computadora de uso general (como una computadora portátil) se comunique a través de un puerto USB o Ethernet con los dispositivos en una red CAN.

Todos los nodos están conectados entre sí a través de un bus de dos hilos físicamente convencional. Los cables son un par trenzado con una impedancia característica de 120 Ω (nominal).

Este bus utiliza señales Y cableadas diferenciales. Dos señales, CAN alto (CANH) y CAN bajo (CANL) son dirigidas a un "dominante" estado con CANH > CANL, o no impulsado y tirado por resistencias pasivas a un "recesivo" estado con CANH ≤ CANL. Un bit de datos 0 codifica un estado dominante, mientras que un bit de datos 1 codifica un estado recesivo, lo que admite una convención AND cableada, que otorga prioridad en el bus a los nodos con números de ID más bajos.

Red CAN de alta velocidad. ISO 11898-2.

ISO 11898-2, también llamado CAN de alta velocidad (velocidades de bits de hasta 1 Mbit/s en CAN, 5 Mbit/s en CAN-FD), utiliza un bus lineal terminado en cada terminar con resistencias de 120 Ω.

Señal de alta velocidad CAN. ISO 11898-2.

La señalización CAN de alta velocidad impulsa el cable CANH hacia 3,5 V y el cable CANL hacia 1,5 V cuando cualquier dispositivo transmite un dominante (0), mientras que si ningún dispositivo transmite un dominante, las resistencias de terminación devuelven pasivamente los dos cables. al estado recesivo (1) con un voltaje diferencial nominal de 0 V. (Los receptores consideran que cualquier voltaje diferencial de menos de 0,5 V es recesivo). El voltaje diferencial dominante es de 2 V nominales. El voltaje de modo común dominante (CANH+ CANL)/2 debe estar dentro de 1,5 a 3,5 V del común, mientras que el voltaje de modo común recesivo debe estar dentro de ±12 del común.

Red CAN de baja velocidad. ISO 11898-3.

ISO 11898-3, también llamado CAN tolerante a fallos o de baja velocidad (hasta 125 kbit/s), utiliza un bus lineal, un bus en estrella o múltiples buses en estrella conectados por un bus lineal y termina en cada nodo por una fracción de la resistencia de terminación total. La resistencia de terminación general debe estar cerca de 100 Ω, pero no menos.

Señal de baja velocidad CAN. ISO 11898-3.

La señalización CAN tolerante a fallas de baja velocidad funciona de manera similar a la CAN de alta velocidad, pero con oscilaciones de voltaje más grandes. El estado dominante se transmite dirigiendo CANH hacia el voltaje de la fuente de alimentación del dispositivo (5 V o 3,3 V) y CANL hacia 0 V cuando se transmite un dominante (0), mientras que las resistencias de terminación llevan el bus a un estado recesivo con CANH en 0 V y CANL a 5 V. Esto permite un receptor más simple que solo considera el signo de CANH−CANL. Ambos cables deben poder manejar −27 a +40 V sin daño.

Propiedades eléctricas

Con CAN de alta y baja velocidad, la velocidad de la transición es más rápida cuando se produce una transición de recesivo a dominante, ya que los cables de CAN se activan activamente. La velocidad de la transición de dominante a recesivo depende principalmente de la longitud de la red CAN y la capacitancia del cable utilizado.

La CAN de alta velocidad generalmente se usa en aplicaciones automotrices e industriales donde el bus va de un extremo al otro del entorno. El CAN tolerante a fallas se usa a menudo cuando es necesario conectar grupos de nodos.

Las especificaciones requieren que el bus se mantenga dentro de un voltaje de bus de modo común mínimo y máximo, pero no definen cómo mantener el bus dentro de este rango.

El bus CAN debe estar terminado. Las resistencias de terminación son necesarias para suprimir los reflejos y devolver el bus a su estado recesivo o inactivo.

CAN de alta velocidad utiliza una resistencia de 120 Ω en cada extremo de un bus lineal. CAN de baja velocidad utiliza resistencias en cada nodo. Se pueden utilizar otros tipos de terminaciones, como el circuito de polarización de terminación definido en ISO11783.

Un circuito de polarización de terminación proporciona energía y tierra en además de la señalización CAN sobre un cable de cuatro hilos. Esto proporciona polarización eléctrica automática y terminación en cada extremo de cada segmento de bus. Una red ISO11783 está diseñada para conexión en caliente y eliminación de segmentos de bus y ECU.

Nodos

Nodo de autobús

Cada nodo requiere un

Cada nodo puede enviar y recibir mensajes, pero no simultáneamente. Un mensaje o trama consta principalmente del ID (identificador), que representa la prioridad del mensaje, y hasta ocho bytes de datos. Un CRC, un espacio de reconocimiento [ACK] y otros gastos generales también forman parte del mensaje. El CAN FD mejorado amplía la longitud de la sección de datos hasta 64 bytes por cuadro. El mensaje se transmite en serie al bus utilizando un formato sin retorno a cero (NRZ) y puede ser recibido por todos los nodos.

Los dispositivos que están conectados mediante una red CAN suelen ser sensores, actuadores y otros dispositivos de control. Estos dispositivos están conectados al bus a través de un procesador host, un controlador CAN y un transceptor CAN.

Transmisión de datos

La transmisión de datos CAN utiliza un método de resolución de contiendas de arbitraje bit a bit sin pérdidas. Este método de arbitraje requiere que todos los nodos de la red CAN estén sincronizados para muestrear cada bit de la red CAN al mismo tiempo. Esta es la razón por la cual algunos llaman a CAN síncrono. Desafortunadamente, el término síncrono es impreciso ya que los datos se transmiten en un formato asíncrono, es decir, sin señal de reloj.

Las especificaciones CAN utilizan los términos bits dominantes y bits recesivos, donde dominante es un 0 lógico (accionado de forma activa a un voltaje por el transmisor) y recesivo es un 0 lógico. 1 (devuelto pasivamente a un voltaje por una resistencia). El estado inactivo está representado por el nivel recesivo (Lógico 1). Si un nodo transmite un bit dominante y otro nodo transmite un bit recesivo, entonces hay una colisión y el bit dominante gana. Esto significa que no hay retraso en el mensaje de mayor prioridad, y el nodo que transmite el mensaje de menor prioridad automáticamente intenta retransmitir relojes de seis bits después del final del mensaje dominante. Esto hace que CAN sea muy adecuado como sistema de comunicaciones priorizadas en tiempo real.

Los voltajes exactos para un 0 o 1 lógico dependen de la capa física utilizada, pero el principio básico de CAN requiere que cada nodo escuche los datos en la red CAN, incluidos los propios nodos de transmisión. Si todos los nodos transmisores transmiten un 1 lógico al mismo tiempo, todos los nodos ven un 1 lógico, incluidos los nodos transmisores y los nodos receptores. Si todos los nodos transmisores transmiten un 0 lógico al mismo tiempo, todos los nodos ven un 0 lógico. Si uno o más nodos transmiten un 0 lógico, y uno o más nodos transmiten un 1 lógico, todos los nodos ven un 0 lógico, incluidos los nodos que transmiten el 1 lógico. Cuando un nodo transmite un 1 lógico pero ve un 0 lógico, se da cuenta de que hay una contienda y deja de transmitir. Al usar este proceso, cualquier nodo que transmita un 1 lógico cuando otro nodo transmite un 0 lógico pierde el arbitraje y se retira. Un nodo que pierde el arbitraje vuelve a poner su mensaje en cola para una transmisión posterior y el flujo de bits de la trama CAN continúa sin errores hasta que solo queda un nodo transmitiendo. Esto significa que el nodo que transmite el primer 1 pierde el arbitraje. Dado que el identificador de bit 11 (o 29 para CAN 2.0B) es transmitido por todos los nodos al comienzo de la trama CAN, el nodo con el identificador más bajo transmite más ceros al comienzo de la trama, y ese es el nodo que gana el arbitraje o tiene la más alta prioridad.

Por ejemplo, considere una red CAN de ID de 11 bits, con dos nodos con ID de 15 (representación binaria, 00000001111) y 16 (representación binaria, 00000010000). Si estos dos nodos transmiten al mismo tiempo, cada uno transmitirá primero el bit de inicio y luego transmitirá los primeros seis ceros de su ID sin que se tome una decisión de arbitraje.

Comienzo
bit
bits de identificación El resto del marco
10 9 8 7 6 5 4 3 2 1 0
No 15 000000001111
No. 16 00000001Detenido Transmitiendo
Datos CAN 000000001111

Cuando se transmite el séptimo bit de ID, el nodo con ID de 16 transmite un 1 (recesivo) para su ID, y el nodo con ID de 15 transmite un 0 (dominante) para su ID. Cuando esto sucede, el nodo con ID de 16 sabe que transmitió un 1, pero ve un 0 y se da cuenta de que hay una colisión y perdió el arbitraje. El nodo 16 deja de transmitir, lo que permite que el nodo con ID de 15 continúe su transmisión sin pérdida de datos. El nodo con la ID más baja siempre ganará el arbitraje y, por lo tanto, tiene la prioridad más alta.

Las velocidades de bits de hasta 1 Mbit/s son posibles en longitudes de red inferiores a 40 m. La disminución de la tasa de bits permite distancias de red más largas (por ejemplo, 500 m a 125 kbit/s). El estándar CAN FD mejorado permite aumentar la tasa de bits después del arbitraje y puede aumentar la velocidad de la sección de datos en un factor de hasta diez o más de la tasa de bits de arbitraje.

Asignación de ID

Las ID de mensajes deben ser únicas en un solo bus CAN; de lo contrario, dos nodos continuarían la transmisión más allá del final del campo de arbitraje (ID), lo que provocaría un error.

A principios de la década de 1990, la elección de ID para los mensajes se hacía simplemente sobre la base de identificar el tipo de datos y el nodo de envío; sin embargo, dado que el ID también se utiliza como prioridad del mensaje, el rendimiento en tiempo real era deficiente. En esos escenarios, comúnmente se requería un uso bajo del bus CAN de alrededor del 30% para garantizar que todos los mensajes cumplieran con sus plazos. Sin embargo, si los ID se determinan en cambio en función de la fecha límite del mensaje, cuanto menor sea el ID numérico y, por lo tanto, mayor sea la prioridad del mensaje, normalmente se puede lograr un uso del bus del 70 al 80 % antes de que se pierda cualquier fecha límite del mensaje.

Tiempo de bits

Todos los nodos de la red CAN deben operar a la misma tasa de bits nominal, pero el ruido, los cambios de fase, la tolerancia del oscilador y la deriva del oscilador significan que la tasa de bits real podría no ser la tasa de bits nominal. Dado que no se usa una señal de reloj separada, es necesario un medio para sincronizar los nodos. La sincronización es importante durante el arbitraje, ya que los nodos en el arbitraje deben poder ver tanto sus datos transmitidos como los de otros nodos. datos transmitidos al mismo tiempo. La sincronización también es importante para garantizar que las variaciones en la temporización del oscilador entre nodos no causen errores.

La sincronización comienza con una sincronización dura en la primera transición de recesivo a dominante después de un período de inactividad del bus (el bit de inicio). La resincronización ocurre en cada transición de recesivo a dominante durante el cuadro. El controlador CAN espera que la transición ocurra en un múltiplo del tiempo de bit nominal. Si la transición no ocurre en el momento exacto en que el controlador la espera, el controlador ajusta el tiempo de bit nominal en consecuencia.

El ajuste se logra dividiendo cada bit en una cantidad de intervalos de tiempo llamados cuantos y asignando cierta cantidad de cuantos a cada uno de los cuatro segmentos dentro del bit: sincronización, propagación, segmento de fase 1 y segmento de fase 2.

Un ejemplo CAN poco tiempo con 10 quanta hora por bit

La cantidad de cuantos en los que se divide el bit puede variar según el controlador, y la cantidad de cuantos asignados a cada segmento puede variar según la tasa de bits y las condiciones de la red.

Una transición que ocurre antes o después de lo esperado hace que el controlador calcule la diferencia de tiempo y alargue el segmento de fase 1 o acorte el segmento de fase 2 en este momento. Esto ajusta efectivamente el tiempo del receptor al transmisor para sincronizarlos. Este proceso de resincronización se realiza continuamente en cada transición de recesivo a dominante para garantizar que el transmisor y el receptor permanezcan sincronizados. La resincronización continua reduce los errores inducidos por el ruido y permite que un nodo receptor que se sincronizó con un nodo que perdió el arbitraje se resincronice con el nodo que ganó el arbitraje.

Capas

El protocolo CAN, como muchos protocolos de red, se puede descomponer en las siguientes capas de abstracción:

capa de aplicación
capa de objetos
Capa de transferencia

La mayor parte del estándar CAN se aplica a la capa de transferencia. La capa de transferencia recibe mensajes de la capa física y los transmite a la capa de objetos. La capa de transferencia es responsable de la temporización y sincronización de bits, la trama de mensajes, el arbitraje, el reconocimiento, la detección y señalización de errores y el confinamiento de fallas. Realiza:

Capa física
Topología de la muestra eléctrica CAN bus con resistores de terminación

El bus CAN (ISO 11898-1:2003) originalmente especificaba el protocolo de la capa de enlace con solo requisitos abstractos para la capa física, por ejemplo, afirmando el uso de un medio con acceso múltiple a nivel de bit mediante el uso de dominante y estados recesivos. Los aspectos eléctricos de la capa física (voltaje, corriente, número de conductores) se especificaron en la norma ISO 11898-2:2003, que ahora es ampliamente aceptada. Sin embargo, los aspectos mecánicos de la capa física (tipo y número de conector, colores, etiquetas, pines) aún no se han especificado formalmente. Como resultado, una ECU automotriz generalmente tendrá un conector particular, a menudo personalizado, con varios tipos de cables, de los cuales dos son las líneas de bus CAN. No obstante, han surgido varios estándares de facto para la implementación mecánica, siendo el más común el conector macho tipo D-sub de 9 pines con el siguiente pin-out:

Un conector macho DE-9 (plug)

Este estándar mecánico de facto para CAN podría implementarse con el nodo teniendo conectores D-sub de 9 pines macho y hembra conectados eléctricamente entre sí en paralelo dentro del nodo. La alimentación del bus se alimenta al conector macho de un nodo y el bus extrae energía del conector hembra del nodo. Esto sigue la convención de ingeniería eléctrica de que las fuentes de alimentación terminan en conectores hembra. La adopción de este estándar evita la necesidad de fabricar divisores personalizados para conectar dos juegos de cables de bus a un solo conector D en cada nodo. Dichos arneses de cables (divisores) no estándar (personalizados) que unen conductores fuera del nodo reducen la confiabilidad del bus, eliminan la intercambiabilidad de los cables, reducen la compatibilidad de los arneses de cables y aumentan el costo.

La ausencia de una especificación completa de la capa física (mecánica además de eléctrica) liberó a la especificación del bus CAN de las limitaciones y la complejidad de la implementación física. Sin embargo, dejó las implementaciones de bus CAN abiertas a problemas de interoperabilidad debido a la incompatibilidad mecánica. Para mejorar la interoperabilidad, muchos fabricantes de vehículos han generado especificaciones que describen un conjunto de transceptores CAN permitidos en combinación con requisitos sobre la capacitancia parásita en la línea. La capacitancia parásita permitida incluye tanto capacitores como protección ESD (ESD contra ISO 7637-3). Además de la capacitancia parásita, los sistemas de 12 V y 24 V no tienen los mismos requisitos en términos de voltaje máximo de línea. De hecho, durante los eventos de arranque rápido, las líneas de vehículos ligeros pueden llegar hasta los 24 V, mientras que los sistemas de camiones pueden llegar hasta los 36 V. Están surgiendo nuevas soluciones que permiten utilizar el mismo componente para CAN y CAN FD (ver).

La inmunidad al ruido en ISO 11898-2:2003 se logra manteniendo la impedancia diferencial del bus en un nivel bajo con resistencias de bajo valor (120 ohmios) en cada extremo del bus. Sin embargo, cuando está inactivo, un bus de baja impedancia como CAN consume más corriente (y potencia) que otros buses de señalización basados en voltaje. En los sistemas de bus CAN, la operación de línea balanceada, donde la corriente en una línea de señal está exactamente balanceada por la corriente en la dirección opuesta en la otra señal, proporciona una referencia de 0 V independiente y estable para los receptores. Las mejores prácticas determinan que las señales de par balanceado del bus CAN se transporten en cables de par trenzado en un cable blindado para minimizar la emisión de RF y reducir la susceptibilidad a las interferencias en el ya ruidoso entorno de RF de un automóvil.

ISO 11898-2 brinda cierta inmunidad al voltaje de modo común entre el transmisor y el receptor al tener un riel de 0 V a lo largo del bus para mantener un alto grado de asociación de voltaje entre los nodos. Además, en la configuración mecánica de facto mencionada anteriormente, se incluye un riel de suministro para distribuir energía a cada uno de los nodos transceptores. El diseño proporciona un suministro común para todos los transceptores. El voltaje real que debe aplicar el bus y los nodos que se le aplican son específicos de la aplicación y no se especifican formalmente. El diseño de nodos de práctica común proporciona a cada nodo transceptores que están ópticamente aislados de su host de nodo y derivan un voltaje de suministro regulado linealmente de 5 V para los transceptores del riel de suministro universal proporcionado por el bus. Esto generalmente permite un margen operativo en el riel de suministro suficiente para permitir la interoperabilidad entre muchos tipos de nodos. Los valores típicos de voltaje de suministro en tales redes son de 7 a 30 V. Sin embargo, la falta de un estándar formal significa que los diseñadores del sistema son responsables de la compatibilidad del riel de suministro.

ISO 11898-2 describe la implementación eléctrica formada a partir de una configuración de línea balanceada de un solo extremo y múltiples derivaciones con terminación de resistencia en cada extremo del bus. En esta configuración, uno o más transmisores afirman un estado dominante que cambia el CAN− para suministrar 0 V y (simultáneamente) cambia el CAN+ al voltaje del bus de +5 V, formando así una ruta de corriente a través de las resistencias que terminan el bus. Como tal, las resistencias de terminación forman un componente esencial del sistema de señalización y se incluyen, no solo para limitar la reflexión de ondas a alta frecuencia.

Durante un estado recesivo, las líneas de señal y la(s) resistencia(s) permanecen en un estado de alta impedancia con respecto a ambos rieles. Los voltajes tanto en CAN+ como en CAN− tienden (débilmente) hacia un voltaje a mitad de camino entre los rieles. Un estado recesivo está presente en el bus solo cuando ninguno de los transmisores en el bus afirma un estado dominante.

Durante un estado dominante, las líneas de señal y la(s) resistencia(s) se mueven a un estado de baja impedancia con respecto a los rieles para que la corriente fluya a través de la resistencia. El voltaje CAN+ tiende a +5 V y CAN− tiende a 0 V.

Independientemente del estado de la señal, las líneas de señal siempre se encuentran en un estado de baja impedancia entre sí debido a las resistencias de terminación al final del bus.

Esta estrategia de señalización difiere significativamente de otras tecnologías de transmisión de línea balanceada como RS-422/3, RS-485, etc. que emplean controladores/receptores de línea diferencial y usan un sistema de señalización basado en el voltaje de modo diferencial de la línea balanceada. cruzando un 0 V teórico. El acceso múltiple en dichos sistemas normalmente se basa en los medios que admiten tres estados (activo alto, activo bajo e inactivo tri-estado) y se trata en el dominio del tiempo. El acceso múltiple en el bus CAN se logra mediante la lógica eléctrica del sistema que admite solo dos estados que son conceptualmente análogos a una red "Y cableada".

Marcos

Se puede configurar una red CAN para que funcione con dos formatos de mensaje (o marco) diferentes: el formato de marco estándar o base (descrito en CAN 2.0 A y CAN 2.0 B) y el formato de marco extendido formato (descrito solo por CAN 2.0 B). La única diferencia entre los dos formatos es que el marco base CAN admite una longitud de 11 bits para el identificador, y el marco extendido CAN admite una longitud de 29 bits para el identificador, compuesto por el identificador de 11 bits (identificador base) y una extensión de 18 bits (extensión de identificador). La distinción entre el formato de trama base CAN y el formato de trama extendida CAN se realiza utilizando el bit IDE, que se transmite como dominante en el caso de una trama de 11 bits y como recesivo en el caso de una trama de 29 bits. Los controladores CAN que admiten mensajes de formato de marco extendido también pueden enviar y recibir mensajes en formato de marco base CAN. Todos los cuadros comienzan con un bit de inicio de cuadro (SOF) que indica el inicio de la transmisión del cuadro.

CAN tiene cuatro tipos de marcos:

Marco de datos

El marco de datos es el único marco para la transmisión de datos real. Hay dos formatos de mensaje:

El estándar CAN requiere que la implementación acepte el formato de marco base y puede aceptar el formato de marco extendido, pero debe tolerar el formato de marco extendido.

Formato de cuadro base

Un marco completo de autobús CAN, incluyendo bits de cosas, un CRC correcto, y espaciamiento entre marcos

El formato de la trama es el siguiente: Los valores de bits se describen para la señal CAN-LO.

Nombre del campoLongitud (bits)Propósito
Inicio del marco1Denota el inicio de la transmisión del marco
Identificador (verde)11Un identificador (unique) que también representa la prioridad del mensaje
Algo así.1Un poco de la polaridad opuesta para mantener la sincronización; ver relleno Bit, abajo
Solicitud de transmisión remota (RTR) (azul)1Debe ser dominante (0) para marcos de datos y recesivo (1) para marcos de solicitud remotos (ver Marco remoto, abajo)
bit de extensión de identificación (IDE)1Debe ser dominante (0) para el formato de marco base con identificadores de 11 bits
bit reservado (r0)1Un poco reservado. Debe ser dominante (0), pero aceptada como dominante o recesiva.
Código de longitud de datos (DLC) (amarillo)4Número de bytes de datos (0-8 bytes)
Campo de datos (rojo)0–64 (0-8 bytes)Datos a transmitir (duración de bytes dictada por el campo DLC)
CRC15Control de redundancia cíclica
CRC delimiter1Debe ser recesivo (1)
ACK ranura1Transmisor envía recesivo (1) y cualquier receptor puede afirmar un dominante (0)
ACK delimiter1Debe ser recesivo (1)
Fin del marco (EOF)7Debe ser recesivo (1)
Espaciamiento entre marcos (IFS)3Debe ser recesivo (1)
  1. ^ Es físicamente posible que un valor entre 9 y 15 se transmita en el DLC de 4 bits, aunque los datos se limitan a ocho bytes. Ciertos controladores permiten la transmisión o recepción de un DLC superior a ocho, pero la duración real de los datos se limita siempre a ocho bytes.

Formato de cuadro extendido

El formato del cuadro es el siguiente a partir de aquí en la siguiente tabla:

Nombre del campoLongitud (bits)Propósito
Inicio del marco1Denota el inicio de la transmisión del marco
Identificador A (verde)11Primera parte del identificador (unique) que también representa la prioridad del mensaje
Solicitud remota sustituta (SRR)1Debe ser recesivo (1)
bit de extensión de identificación (IDE)1Debe ser recesivo (1) para el formato de marco extendido con identificadores de 29 bits
Identificador B (verde)18Segunda parte del identificador (unique) que también representa la prioridad del mensaje
Solicitud de transmisión remota (RTR) (azul)1Debe ser dominante (0) para marcos de datos y recesivo (1) para marcos de solicitud remotos (ver Marco remoto, abajo)
bits reservados (r1, r0)2Piezas reservadas que deben ser establecidas dominantes (0), pero aceptadas como dominantes o recesivas
Código de longitud de datos (DLC) (amarillo)4Número de bytes de datos (0-8 bytes)
Campo de datos (rojo)0–64 (0-8 bytes)Datos a transmitir (duración dictada por el campo DLC)
CRC15Control de redundancia cíclica
CRC delimiter1Debe ser recesivo (1)
ACK ranura1Transmisor envía recesivo (1) y cualquier receptor puede afirmar un dominante (0)
ACK delimiter1Debe ser recesivo (1)
Fin del marco (EOF)7Debe ser recesivo (1)
  1. ^ Es físicamente posible que un valor entre 9 y 15 se transmita en el DLC de 4 bits, aunque los datos se limitan a ocho bytes. Ciertos controladores permiten la transmisión o recepción de un DLC superior a ocho, pero la duración real de los datos se limita siempre a ocho bytes.

Los dos campos de identificador (A y B) se combinan para formar un identificador de 29 bits.

Marco remoto

RTR = 0; DOMINANTE en el marco de datos
RTR = 1; RECESIVA en marco remoto

En el caso de que se transmita al mismo tiempo un marco de datos y un marco remoto con el mismo identificador, el marco de datos gana el arbitraje debido a que el bit RTR dominante sigue al identificador.

Error de cuadro

El marco de error consta de dos campos diferentes:

Hay dos tipos de indicadores de error:

Bandera de error activa
seis bits dominantes – Transmitido por un nodo detectando un error en la red que está en estado de error error activo.
Bandera de error pasiva
seis bits recesivos – Transmitido por un nodo detectando un marco de error activo en la red que está en estado de error error pasivo.

Hay dos contadores de errores en CAN:

  1. Transmitir error counter (TEC)
  2. Recibir contador de error (REC)

Sobrecargar cuadro

La trama de sobrecarga contiene dos campos de bits: indicador de sobrecarga y delimitador de sobrecarga. Hay dos tipos de condiciones de sobrecarga que pueden conducir a la transmisión de un indicador de sobrecarga:

  1. Las condiciones internas de un receptor, que requiere un retraso del siguiente marco de datos o marco remoto.
  2. Detección de un bit dominante durante la intermisión.

El inicio de una trama de sobrecarga debido al caso 1 solo se permite iniciar en el tiempo del primer bit de un intervalo esperado, mientras que las tramas de sobrecarga debido al caso 2 comienzan un bit después de detectar el bit dominante. El indicador de sobrecarga consta de seis bits dominantes. La forma general corresponde a la del indicador de error activo. La forma de la bandera de sobrecarga destruye la forma fija del campo intermedio. Como consecuencia, todas las demás estaciones también detectan una condición de sobrecarga y, por su parte, inician la transmisión de una bandera de sobrecarga. El delimitador de sobrecarga consta de ocho bits recesivos. El delimitador de sobrecarga tiene la misma forma que el delimitador de error.

Ranura ACK

La ranura de reconocimiento se utiliza para acusar recibo de una trama CAN válida. Cada nodo que recibe la trama, sin encontrar un error, transmite un nivel dominante en la ranura ACK y así anula el nivel recesivo del transmisor. Si un transmisor detecta un nivel recesivo en la ranura ACK, sabe que ningún receptor encontró una trama válida. Un nodo receptor puede transmitir un recesivo para indicar que no recibió una trama válida, pero otro nodo que sí recibió una trama válida puede anular esto con una dominante. El nodo transmisor no puede saber que el mensaje ha sido recibido por todos los nodos de la red CAN.

A menudo, el modo de funcionamiento del dispositivo es retransmitir tramas no reconocidas una y otra vez. Esto puede llevar eventualmente a entrar en el estado error pasivo.

Espaciado entre fotogramas

Los marcos de datos y los marcos remotos están separados de los marcos anteriores por un campo de bits llamado espacio entre marcos. El espacio entre tramas consta de al menos tres (1) bits recesivos consecutivos. Después de eso, si se detecta un bit dominante, se considerará como el bit Inicio del cuadro del siguiente cuadro. Las tramas de sobrecarga y las tramas de error no están precedidas por un espacio entre tramas y las múltiples tramas de sobrecarga no están separadas por un espacio entre tramas. El espacio entre tramas contiene los campos de bits de intermisión y bus inactivo, y suspende la transmisión por error de las estaciones pasivas, que han sido transmisoras del mensaje anterior.

Relleno de bits

CAN enmarcar antes y después de la adición de bits de material (en púrpura). Un CRC incorrecto se utiliza para fines de ilustración de relleno de bits.

Para garantizar suficientes transiciones para mantener la sincronización, se inserta un bit de polaridad opuesta después de cinco bits consecutivos de la misma polaridad. Esta práctica se denomina relleno de bits y es necesaria debido a la codificación sin retorno a cero (NRZ) utilizada con CAN. Las tramas de datos rellenas son eliminadas por el receptor.

Todos los campos del marco se rellenan con la excepción del delimitador CRC, el campo ACK y el final del marco, que tienen un tamaño fijo y no se rellenan. En los campos donde se utiliza relleno de bits, seis bits consecutivos de la misma polaridad (111111 o 000000) se consideran un error. Un nodo puede transmitir un indicador de error activo cuando se ha detectado un error. El indicador de error activo consta de seis bits dominantes consecutivos y viola la regla de relleno de bits.

El relleno de bits significa que los marcos de datos pueden ser más grandes de lo que cabría esperar simplemente enumerando los bits que se muestran en las tablas anteriores. El aumento máximo de tamaño de una trama CAN (formato base) después del relleno de bits es en el caso

11111000011110000...

que se rellena como (pedacitos de relleno en negrita):

111110000011111000001...

El bit de relleno en sí mismo puede ser el primero de los cinco bits idénticos consecutivos, por lo que en el peor de los casos hay un bit de relleno por cada cuatro bits originales.

El tamaño de un marco base está limitado por

8n+44+⌊34+8n− − 14⌋{displaystyle 8n+44+leftlfloor {frac {34+8n-1}{4}rightrfloor }

donde n es el número de bytes de datos, un máximo de 8.

Desde 8n+44{displaystyle 8n+44} es el tamaño del marco antes de rellenar, en el peor de los casos se añadirá un poco cada cuatro bits originales después del primero (de ahí el −1 en el numerador) y, debido a la disposición de los bits del encabezado, sólo 34 de 44 de ellos pueden estar sujetos a relleno de bits.

tipo de marcoantes de rellenardespués de rellenorelleno de bitslongitud total del marco
Marco base8n+44{displaystyle 8n+44}8n+44+⌊34+8n− − 14⌋{displaystyle 8n+44+leftlfloor {frac {34+8n-1}{4}rightrfloor }≤ ≤ 24{displaystyle leq 24}≤ ≤ 132{displaystyle leq 132}
marco ampliado8n+64{displaystyle 8n+64}8n+64+⌊54+8n− − 14⌋{displaystyle 8n+64+leftlfloor {frac {54+8n-1}{4}rightrfloor }≤ ≤ 29{displaystyle leq 29}≤ ≤ 157{displaystyle leq 157}

Un efecto secundario no deseado del esquema de relleno de bits es que una pequeña cantidad de errores de bit en un mensaje recibido puede dañar el proceso de eliminación de relleno, lo que hace que se propague una mayor cantidad de errores a través del mensaje eliminado. Esto reduce el nivel de protección que de otro modo ofrecería el CRC contra los errores originales. Esta deficiencia del protocolo se solucionó en las tramas CAN FD mediante el uso de una combinación de bits de relleno fijos y un contador que registra la cantidad de bits de relleno insertados.

Estándares de capa inferior CAN

La serie ISO 11898 especifica la capa de enlace de datos y física (niveles 1 y 2 del modelo ISO/OSI) de la categoría de comunicación en serie llamada Red de área del controlador que admite multiplexación y control distribuido en tiempo real para su uso dentro de los vehículos de carretera.

Hay varias capas físicas CAN y otros estándares:

ISO 11898-1:2015 especifica la capa de enlace de datos (DLL) y la señalización física de la red de área del controlador (CAN). Este documento describe la arquitectura general de CAN en términos de capas jerárquicas según el modelo de referencia ISO para interconexión de sistemas abiertos (OSI) establecido en ISO/IEC 7498-1 y proporciona las características para establecer un intercambio de información digital entre módulos que implementan el CAN DLL con especificación detallada de la subcapa de control de enlace lógico (LLC) y la subcapa de control de acceso al medio (MAC).

ISO 11898-2:2016 especifica la unidad de acceso medio (MAU) de alta velocidad (tasas de transmisión de hasta 1 Mbit/s) y algunas funciones de interfaz dependiente del medio (MDI) (según ISO 8802-3), que constituyen la capa física de la red de área del controlador. ISO 11898-2 utiliza un esquema de señalización balanceado de dos hilos. Es la capa física más utilizada en aplicaciones de tren motriz de vehículos y redes de control industrial.

ISO 11898-3:2006 especifica una interfaz de baja velocidad, tolerante a fallos y dependiente del medio para configurar un intercambio de información digital entre unidades de control electrónico de vehículos de carretera equipados con CAN en la transmisión velocidades por encima de 40 kbit/s hasta 125 kbit/s.

ISO 11898-4:2004 especifica la comunicación activada por tiempo en el CAN (TTCAN). Es aplicable a la configuración de un intercambio de información digital activado por tiempo entre unidades de control electrónico (ECU) de vehículos de carretera equipados con CAN, y especifica la entidad de sincronización de cuadros que coordina el funcionamiento de los controles de acceso a medios y enlace lógico de acuerdo con ISO 11898-1, para proporcionar el programa de comunicación activado por tiempo.

ISO 11898-5:2007 especifica la capa física CAN para velocidades de transmisión de hasta 1 Mbit/s para uso en vehículos de carretera. Describe las funciones de la unidad de acceso al medio, así como algunas características de interfaz dependientes del medio según ISO 8802-2. Esto representa una extensión de ISO 11898-2, que se ocupa de la nueva funcionalidad para los sistemas que requieren funciones de bajo consumo de energía mientras no hay una comunicación de bus activa.

ISO 11898-6:2013 especifica la capa física CAN para velocidades de transmisión de hasta 1 Mbit/s para uso en vehículos de carretera. Describe las funciones de la unidad de acceso al medio, así como algunas características de interfaz dependientes del medio según ISO 8802-2. Esto representa una extensión de ISO 11898-2 e ISO 11898-5, que especifica un mecanismo de activación selectivo que utiliza tramas CAN configurables.

ISO 16845-1:2016 proporciona la metodología y el conjunto de pruebas abstractas necesarias para comprobar la conformidad de cualquier implementación CAN de la CAN especificada en ISO 11898-1.

ISO 16845-2:2018 establece casos de prueba y requisitos de prueba para realizar un plan de prueba que verifique si el transceptor CAN con funciones de activación selectiva implementadas cumple con las funcionalidades especificadas. El tipo de prueba definido en ISO 16845-2:2018 se denomina prueba de conformidad.

Protocolos de capa superior basados en CAN

Como el estándar CAN no incluye funciones de comunicación comunes, como control de flujo, direccionamiento de dispositivos y transporte de bloques de datos de más de un mensaje y, sobre todo, datos de aplicaciones, se crearon muchas implementaciones de protocolos de capa superior. Varios están estandarizados para un área de negocio, aunque todos pueden ser ampliados por cada fabricante. Para turismos, cada fabricante tiene su propio estándar.

CAN in Automation (CiA) es la organización internacional de usuarios' y fabricantes' organización que desarrolla y apoya protocolos de capa superior basados en CAN y su estandarización internacional. Entre estas especificaciones se encuentran:

Enfoques estandarizados

Otros enfoques

Ascensor CANopen

El grupo de interés especial (SIG) de CANopen "Lift Control", fundado en 2001, desarrolla el perfil de aplicación CANopen CiA 417 para sistemas de control de ascensores. Trabaja en la ampliación de las funciones, mejora el contenido técnico y asegura que se cumplan los estándares legales actuales para los sistemas de control de ascensores. La primera versión de CiA 417 se publicó (disponible para miembros de CiA) en el verano de 2003, la versión 2.0 en febrero de 2010, la versión 2.1.0 en julio de 2012, la versión 2.2.0 en diciembre de 2015 y la versión 2.3.1 en febrero de 2020.

Jörg Hellmich (ELFIN GmbH) es el presidente de este SIG y gestiona una wiki de la comunidad de ascensores CANopen con contenido sobre ascensores CANopen.

Seguridad

CAN es un protocolo de bajo nivel y no admite funciones de seguridad intrínsecamente. Tampoco hay encriptación en las implementaciones estándar de CAN, lo que deja estas redes abiertas a la intercepción de tramas man-in-the-middle. En la mayoría de las implementaciones, se espera que las aplicaciones desplieguen sus propios mecanismos de seguridad; por ejemplo, para autenticar comandos entrantes o la presencia de ciertos dispositivos en la red. La falta de implementación de medidas de seguridad adecuadas puede resultar en varios tipos de ataques si el oponente logra insertar mensajes en el autobús. Si bien existen contraseñas para algunas funciones críticas para la seguridad, como la modificación del firmware, la programación de claves o el control de actuadores de frenos antibloqueo, estos sistemas no se implementan universalmente y tienen un número limitado de pares de semillas/claves.

Herramientas de desarrollo

Al desarrollar o solucionar problemas del bus CAN, el examen de las señales de hardware puede ser muy importante. Los analizadores lógicos y los analizadores de bus son herramientas que recopilan, analizan, decodifican y almacenan señales para que las personas puedan ver las formas de onda de alta velocidad cuando lo deseen. También hay herramientas especializadas, así como monitores de bus CAN.

Un monitor de bus CAN es una herramienta de análisis, a menudo una combinación de hardware y software, utilizada durante el desarrollo de hardware que utiliza el bus CAN.

Normalmente, el monitor de bus CAN escuchará el tráfico en el bus CAN para mostrarlo en una interfaz de usuario. A menudo, el monitor de bus CAN ofrece la posibilidad de simular la actividad del bus CAN enviando tramas CAN al bus. Por lo tanto, el monitor de bus CAN se puede utilizar para validar el tráfico CAN esperado de un dispositivo determinado o para simular el tráfico CAN a fin de validar la reacción de un dispositivo determinado conectado al bus CAN.

Licencias

Bosch posee patentes sobre la tecnología, aunque las relacionadas con el protocolo original ya han expirado. Los fabricantes de microprocesadores compatibles con CAN pagan derechos de licencia a Bosch por el uso de la marca comercial CAN y cualquiera de las patentes más recientes relacionadas con CAN FD, y estos normalmente se transfieren al cliente en el precio del chip. Los fabricantes de productos con ASIC personalizados o FPGA que contienen módulos compatibles con CAN deben pagar una tarifa por la licencia del protocolo CAN si desean utilizar la marca comercial CAN o las capacidades CAN FD.