stringtranslate.com

Bus CAN

Una red de área de controlador ( CAN ) es un estándar de bus de vehículos diseñado para permitir una comunicación eficiente principalmente entre unidades de control electrónico (ECU). Originalmente desarrollado para reducir la complejidad y el costo del cableado eléctrico en automóviles a través de la multiplexación , el protocolo de bus CAN se ha adoptado desde entonces en varios otros contextos. Este protocolo basado en transmisión y orientado a mensajes garantiza la integridad y priorización de los datos a través de un proceso llamado arbitraje , que permite que el dispositivo de mayor prioridad continúe transmitiendo si varios dispositivos intentan enviar datos simultáneamente, mientras que otros se retiran. Su confiabilidad se mejora mediante señalización diferencial , que mitiga el ruido eléctrico. Las versiones comunes del protocolo CAN incluyen CAN 2.0, CAN FD y CAN XL, que varían en sus capacidades de velocidad de datos y tamaños máximos de carga útil de datos.

Historia

El desarrollo del bus CAN comenzó en 1983 en Robert Bosch GmbH . [1] El protocolo se lanzó 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 . [1] Lanzado en 1991, el Mercedes-Benz W140 fue el primer vehículo de producción en contar con un sistema de cableado multiplex basado en CAN. [2] [3]

Bosch publicó varias versiones de la especificación CAN. La última es CAN 2.0, publicada en 1991. Esta especificación tiene 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 utiliza identificadores de 11 bits se denomina comúnmente CAN 2.0A, y un dispositivo CAN que utiliza identificadores de 29 bits se denomina comúnmente CAN 2.0B. Estas normas están disponibles gratuitamente en Bosch junto con otras especificaciones y documentos técnicos . [4]

En 1993, la Organización Internacional de Normalización (ISO) publicó la norma CAN ISO 11898, que más tarde 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 CAN para CAN de alta velocidad. Más tarde, se publicó la norma ISO 11898-3, que cubre la capa física CAN para CAN de baja velocidad y tolerante a fallos. Las normas 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 la posibilidad de cambiar opcionalmente a una velocidad de bits más rápida después de que se decida 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, utilizando los mismos parámetros de comunicación CAN 2.0. 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 OBD-II ( on-board diagnostics ). El estándar OBD-II ha sido obligatorio para todos los automóviles y camionetas ligeras vendidos en los Estados Unidos desde el año modelo 1996. El estándar EOBD ha sido obligatorio para todos los vehículos de gasolina vendidos en la Unión Europea desde 2001 y para todos los vehículos diésel desde 2004. [5]

Aplicaciones

Automotor

El automóvil moderno puede tener hasta 70 unidades de control electrónico (ECU) para varios subsistemas. [6] Por lo general, 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 , airbags , 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 autos híbridos/eléctricos, etc. Algunos de estos forman subsistemas independientes, pero la comunicación entre ellos 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 del vehículo puede permitir que se implementen una amplia gama de características de seguridad, economía y conveniencia utilizando solo software, funcionalidad que agregaría costo y complejidad si dichas características estuvieran cableadas utilizando la electricidad automotriz tradicional. Algunos ejemplos incluyen:

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

Otro

Versiones

CAN 2.0 (CAN clásico)

Debido a su legado, CAN 2.0 es el protocolo más utilizado, con un tamaño máximo de carga útil de ocho bytes y una velocidad en baudios típica de 500 kbit/s. El CAN clásico, que incluye CAN 2.0A (CAN estándar) y CAN 2.0B (CAN extendido), se diferencia principalmente en las longitudes de los campos de identificador: CAN 2.0A utiliza un identificador de 11 bits, mientras que CAN 2.0B emplea un identificador de 29 bits. El identificador más largo en CAN 2.0B permite una mayor cantidad de identificadores de mensajes únicos, lo que es beneficioso en sistemas complejos con muchos nodos y tipos de datos. Sin embargo, este aumento en los identificadores de mensajes únicos también aumenta la longitud de la trama, lo que a su vez reduce la velocidad máxima de datos. Además, el identificador extendido proporciona un control más preciso sobre la priorización de los mensajes debido a que hay más valores de identificador disponibles. Sin embargo, esto puede introducir problemas de compatibilidad; los dispositivos CAN 2.0B generalmente pueden comunicarse con dispositivos CAN 2.0A, pero no al revés, debido a posibles errores en el manejo de identificadores más largos. El CAN 2.0 de alta velocidad admite velocidades de bits de 40 kbit/s a 1 Mbit/s y es la base de los protocolos de capa superior. Por el contrario, el CAN 2.0 de baja velocidad admite velocidades de bits de 40 kbit/s a 125 kbit/s y ofrece tolerancia a fallos al permitir que la comunicación continúe a pesar de un fallo en uno de los dos cables, y cada nodo mantiene su propia terminación. [4] [9] [10] [11]

¿PUEDE FD?

CAN FD (Flexible Data-Rate), estandarizado como ISO 11898-1, fue desarrollado por Bosch y lanzado en 2012 para satisfacer la necesidad de una mayor transferencia de datos en los vehículos modernos de alto rendimiento. Ofrece velocidades de datos variables durante la transmisión de un solo cuadro, lo que permite que la fase de arbitraje se produzca a una velocidad de datos más baja para una comunicación sólida, mientras que la carga útil de datos se transmite a una velocidad de datos más alta para mejorar el rendimiento, lo que es particularmente útil en entornos con ruido eléctrico para una mejor inmunidad al ruido. CAN FD también presenta un tamaño de campo de datos flexible, aumentando el tamaño máximo de 8 bytes a 64 bytes. Esta flexibilidad permite una transmisión de datos más eficiente al reducir la cantidad de cuadros necesarios para transferencias de datos grandes, lo que es beneficioso para aplicaciones como datos de sensores de alta resolución o actualizaciones de software.

CAN FD mantiene la compatibilidad con versiones anteriores de los dispositivos CAN 2.0 al utilizar el mismo formato de trama que CAN 2.0B, con la adición de un nuevo campo de control para indicar si la trama es una trama CAN FD o una trama CAN 2.0 estándar. Esto permite que los dispositivos CAN FD coexistan con dispositivos CAN 2.0 en el mismo bus, mientras que las velocidades de datos más altas y las cargas útiles de datos más grandes solo están disponibles cuando se comunica con otros dispositivos CAN FD. [11] [10] [12]

¿Puede XL?

CAN XL, especificado por CiA 610-1 y estandarizado como parte de ISO11898-1, admite cargas útiles de hasta 2048 bytes y velocidades de datos de hasta 20 Mbit/s. Cubre la brecha entre CAN FD y Ethernet (100BASE-T1) al tiempo que mantiene los beneficios de resolución de colisiones de CAN. Los controladores CAN XL también pueden manejar la comunicación CAN clásica y CAN FD, lo que garantiza la compatibilidad en redes mixtas. Sus grandes campos de datos permiten protocolos de capa superior como IP (Protocolo de Internet) y la tunelización de tramas Ethernet . [4] [13] [14]

Arquitectura

Organización física

CAN es un estándar de bus serial 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 el bus CAN para comunicarse. Un nodo puede interactuar con dispositivos que van desde una lógica digital simple, por ejemplo, PLD , a través de FPGA hasta una computadora integrada que ejecuta un software extenso. 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 un bus CAN.

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

Este bus utiliza señales AND cableadas diferenciales . Dos señales, CAN alta (CANH) y CAN baja (CANL), se activan hasta un estado "dominante" con CANH > CANL, o no se activan y se activan mediante resistencias pasivas hasta un estado "recesivo" 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 respalda una convención AND cableada, que otorga prioridad en el bus a los nodos con números de identificación más bajos.

Bus CAN de alta velocidad. ISO 11898-2.

ISO 11898-2 , también llamada 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 extremo con una resistencia de 120 Ω.

Señalización CAN de alta velocidad. 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 está transmitiendo un dominante (0), mientras que si ningún dispositivo está transmitiendo 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 entre 1,5 y 3,5  V del común, mientras que el voltaje de modo común recesivo debe estar entre ±12  del común.

Bus CAN tolerante a fallos de baja velocidad. ISO 11898-3.

La norma ISO 11898-3 , también denominada CAN de baja velocidad o tolerante a fallos (hasta 125 kbit/s), utiliza un bus lineal, un bus en estrella o varios buses en estrella conectados por un bus lineal y termina en cada nodo con una fracción de la resistencia de terminación general. La resistencia de terminación general debe ser cercana a 100 Ω  , pero no inferior a esta . 

Señalización CAN de baja velocidad. ISO 11898-3.

La señalización CAN de baja velocidad y tolerante a fallos funciona de manera similar a la CAN de alta velocidad, pero con oscilaciones de voltaje más grandes. El estado dominante se transmite impulsando 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 a 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 de −27 a +40  V sin sufrir daños.

Propiedades eléctricas

Tanto en el caso de CAN de alta velocidad como en el de 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 CAN se activan de forma activa. La velocidad de la transición de dominante a recesivo depende principalmente de la longitud de la red CAN y de la capacitancia del cable utilizado.

El CAN de alta velocidad se utiliza generalmente en aplicaciones industriales y automotrices donde el bus va de un extremo del entorno al otro. El CAN tolerante a fallas se utiliza a menudo donde es necesario conectar grupos de nodos entre sí.

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 tener una terminación. Las resistencias de terminación son necesarias para suprimir las reflexiones y devolver el bus a su estado recesivo o inactivo.

El CAN de alta velocidad utiliza una resistencia de 120 Ω en cada extremo de un bus lineal. El 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 . [9]

AEl circuito de polarización de terminación proporciona energía y tierra además de la señalización CAN en 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 la conexión y extracción en caliente de segmentos de bus y ECU.

Nodos

Nodo de bus CAN

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, una ranura de reconocimiento [ACK] y otros datos generales también forman parte del mensaje. El CAN FD mejorado extiende la longitud de la sección de datos hasta 64 bytes por trama. El mensaje se transmite en serie en el bus utilizando un formato sin retorno a cero (NRZ) y puede ser recibido por todos los nodos.

Los dispositivos que se conectan mediante una red CAN suelen ser sensores , actuadores y otros dispositivos de control. Estos dispositivos se conectan 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 arbitraje bit a bit sin pérdidas para la resolución de conflictos. 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. Por eso algunos llaman a la transmisión CAN sincrónica. Lamentablemente, el término sincrónico es impreciso, ya que los datos se transmiten en un formato asincrónico, es decir, sin una señal de reloj.

Las especificaciones CAN utilizan los términos bits dominantes y bits recesivos , donde dominante es un 0 lógico (activado por el transmisor a un voltaje) y recesivo es un 1 lógico (pasivamente devuelto a un voltaje por una resistencia). El estado inactivo está representado por el nivel recesivo (1 lógico). 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 demora en el mensaje de mayor prioridad, y el nodo que transmite el mensaje de menor prioridad intenta automáticamente retransmitir relojes de seis bits después del final del mensaje dominante. Esto hace que CAN sea muy adecuado como un 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, incluido el nodo o los nodos transmisores. 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 contención y deja de transmitir. Al utilizar este proceso, cualquier nodo que transmita un 1 lógico, cuando otro nodo transmite un 0 lógico, pierde el arbitraje y abandona la trama. Un nodo que pierde el arbitraje vuelve a poner en cola su mensaje 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 11 bits (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 prioridad más alta.

Por ejemplo, considere una red CAN con un 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 los primeros seis ceros de su ID sin que se tome ninguna decisión de arbitraje.

Cuando se transmite el bit de ID 4, el nodo con el ID 16 transmite un 1 (recesivo) para su ID, y el nodo con el ID 15 transmite un 0 (dominante) para su ID. Cuando esto sucede, el nodo con el ID 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 el ID 15 continúe su transmisión sin ninguna pérdida de datos. El nodo con el ID más bajo siempre ganará el arbitraje y, por lo tanto, tiene la prioridad más alta.

En longitudes de red inferiores a 40 m,  se pueden alcanzar velocidades de bits de hasta 1 Mbit/s. Si se reduce la velocidad de bits, se pueden alcanzar distancias de red mayores (por ejemplo, 500 m a 125 kbit/s). El estándar CAN FD mejorado permite aumentar la velocidad 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 velocidad de bits de arbitraje.   

Asignación de identificación

Los ID de mensajes deben ser únicos [10] 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 los años 1990, la elección de los identificadores de los mensajes se hacía simplemente en función de la identificación del tipo de datos y del nodo emisor; sin embargo, como el identificador también se utiliza como prioridad del mensaje, esto conducía a un rendimiento deficiente en tiempo real. En esos escenarios, se requería habitualmente un uso bajo del bus CAN de alrededor del 30% para garantizar que todos los mensajes cumplieran con sus plazos. Sin embargo, si los identificadores se determinan en función de la fecha límite del mensaje, cuanto menor sea el identificador 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 incumpla la fecha límite de algún mensaje. [15]

Sincronización de bits

Todos los nodos de la red CAN deben funcionar 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. [16] Dado que no se utiliza una señal de reloj independiente, es necesario un medio para sincronizar los nodos. La sincronización es importante durante el arbitraje, ya que los nodos en arbitraje deben poder ver tanto sus datos transmitidos como los datos transmitidos de los otros nodos al mismo tiempo. La sincronización también es importante para garantizar que las variaciones en la sincronización del oscilador entre nodos no provoquen 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 se produce en cada transición de recesivo a dominante durante la trama. El controlador CAN espera que la transición se produzca en un múltiplo del tiempo de bit nominal. Si la transición no se produce 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 serie de porciones de tiempo llamadas cuantos, y asignando una 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 de temporización de bits CAN con 10 cuantos de tiempo por bit

La cantidad de cuantos en 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 ese momento. Esto ajusta efectivamente la sincronización del receptor con el transmisor para sincronizarlos. Este proceso de resincronización se realiza de manera continua 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 estaba sincronizado 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 objeto
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 sincronización y temporización de bits, la estructuración de mensajes, el arbitraje, el reconocimiento, la detección y señalización de errores y el confinamiento de fallas. Realiza:

Capa física
Ejemplo de topología eléctrica de bus CAN con resistencias de terminación

El bus CAN ( ISO 11898-1 :2003) especificó originalmente 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 estados dominantes y 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 conectores, colores, etiquetas, distribución de pines) aún deben especificarse 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 del 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 la siguiente distribución de pines:

Un conector macho DE-9 (enchufe)

Este estándar mecánico de facto para CAN podría implementarse con el nodo que tiene conectores D-sub de 9 pines, tanto macho como hembra, conectados eléctricamente entre sí en paralelo dentro del nodo. La energía del bus se alimenta al conector macho de un nodo y el bus obtiene energía del conector hembra del nodo. Esto sigue la convención de ingeniería eléctrica de que las fuentes de energía terminan en conectores hembra. La adopción de este estándar evita la necesidad de fabricar divisores personalizados para conectar dos conjuntos de cables de bus a un solo conector D en cada nodo. Estos arneses de cables (divisores) no estándar (personalizados) que unen conductores fuera del nodo reducen la confiabilidad del bus, eliminan la intercambiabilidad de cables, reducen la compatibilidad de los arneses de cableado 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 del 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 los condensadores como la protección ESD (ESD [17] 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, las líneas de vehículos livianos pueden llegar hasta 24 V, mientras que los sistemas de camiones pueden llegar hasta 36 V. Están surgiendo nuevas soluciones, que permiten que se use el mismo componente para CAN y CAN FD (consulte [18] ).

La inmunidad al ruido según la norma ISO 11898-2 :2003 se logra manteniendo la impedancia diferencial del bus a 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, el funcionamiento en línea balanceada , donde la corriente en una línea de señal se equilibra exactamente con la corriente en la dirección opuesta en la otra señal, proporciona una referencia de 0 V independiente y estable  para los receptores. La mejor práctica determina que las señales de par balanceado del bus CAN se transmitan en cables de par trenzado en un cable blindado para minimizar la emisión de RF y reducir la susceptibilidad a la interferencia en el entorno de RF ya ruidoso de un automóvil.

La norma ISO 11898-2 proporciona cierta inmunidad al voltaje de modo común entre el transmisor y el receptor al tener un  riel de 0 V que corre 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 qué nodos lo 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 aislados ópticamente de su host de nodo y derivan un  voltaje de suministro regulado linealmente de 5 V para los transceptores del riel de suministro universal provisto 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 de sistemas son responsables de la compatibilidad del riel de suministro.

La norma ISO 11898-2 describe la implementación eléctrica formada a partir de una configuración de línea balanceada de un solo extremo con múltiples derivaciones y terminación de resistencia en cada extremo del bus. En esta configuración, se afirma un estado dominante mediante uno o más transmisores que conmutan el CAN− para suministrar 0  V y (simultáneamente) conmutan 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 las resistencias permanecen en un estado de alta impedancia con respecto a ambos rieles. Los voltajes en CAN+ y CAN− tienden (débilmente) hacia un voltaje intermedio entre los rieles. Un estado recesivo está presente en el bus solo cuando ninguno de los transmisores en el bus está afirmando un estado dominante.

Durante un estado dominante, las líneas de señal y las resistencias pasan a un estado de baja impedancia con respecto a los rieles, de modo que la corriente fluye a través de la resistencia. El voltaje CAN+ tiende a +5  V y el CAN− tiende a 0  V.

Independientemente del estado de la señal, las líneas de señal están siempre en un estado de baja impedancia entre sí en virtud de 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 utilizan un sistema de señalización basado en el voltaje de modo diferencial de la línea balanceada que cruza un 0  V nocional. El acceso múltiple en dichos sistemas normalmente se basa en que los medios admitan tres estados (activo alto, activo bajo y triestado inactivo) y se maneja 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 "AND cableada".

Marcos

Una red CAN puede configurarse para trabajar con dos formatos de mensaje (o trama ) diferentes: el formato de trama estándar o base (descrito en CAN 2.0 A y CAN 2.0 B) y el formato de trama extendida (descrito solo por CAN 2.0 B). La única diferencia entre los dos formatos es que la trama base CAN admite una longitud de 11 bits para el identificador, y la trama extendida CAN admite una longitud de 29 bits para el identificador, compuesta por el identificador de 11 bits (identificador base) y una extensión de 18 bits (extensión del 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 se transmite como recesivo en el caso de una trama de 29 bits. Los controladores CAN que admiten mensajes en formato de trama extendida también pueden enviar y recibir mensajes en formato de trama base CAN. Todas las tramas comienzan con un bit de inicio de trama (SOF) que indica el inicio de la transmisión de la trama.

CAN tiene cuatro tipos de marcos:

Marco de datos

La trama de datos es la única trama para la transmisión de datos propiamente dicha. Existen dos formatos de mensajes:

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

Formato del marco base

Un marco de bus CAN completo, que incluye piezas de repuesto, un CRC correcto y espaciado entre marcos

El formato del marco es el siguiente: Los valores de bit se describen para la señal CAN-LO.

  1. ^ Es físicamente posible transmitir un valor entre 9 y 15 en el DLC de 4 bits, aunque los datos siguen estando limitados a ocho bytes. Algunos controladores permiten la transmisión o recepción de un DLC mayor de ocho, pero la longitud real de los datos siempre está limitada a ocho bytes.
Una trama de bus CAN transmitida con una tasa de bits de 1 Mbit/s abarca47 μseg entre los bits SOF y ACK, según lo capturado por un osciloscopio digital con una funcionalidad de decodificación serial CAN.

Formato de marco extendido

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

  1. ^ Es físicamente posible transmitir un valor entre 9 y 15 en el DLC de 4 bits, aunque los datos siguen estando limitados a ocho bytes. Algunos controladores permiten la transmisión o recepción de un DLC mayor de ocho, pero la longitud real de los datos siempre está limitada a ocho bytes.

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

Marco remoto

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

En el caso de que se transmitan al mismo tiempo una trama de datos y una trama remota con el mismo identificador, la trama de datos gana el arbitraje debido al bit RTR dominante que sigue al identificador.

Marco de error

El marco de error consta de dos campos diferentes:

Hay dos tipos de indicadores de error:

Indicador de error activo
seis bits dominantes: transmitidos por un nodo que detecta un error en la red que está en estado de error error activo .
Indicador de error pasivo
seis bits recesivos: transmitidos por un nodo que detecta una trama de error activa en la red que está en estado de error error pasivo .

Hay dos contadores de errores en CAN:

  1. Contador de errores de transmisión (TEC)
  2. Contador de errores de recepción (REC)

Marco de sobrecarga

La trama de sobrecarga contiene dos campos de bits: Indicador de sobrecarga y Delimitador de sobrecarga. Existen dos tipos de condiciones de sobrecarga que pueden provocar la transmisión de un indicador de sobrecarga:

  1. Las condiciones internas de un receptor, que requieren un retraso en la siguiente trama de datos o trama remota.
  2. Detección de un bit dominante durante el intermedio.

El inicio de una trama de sobrecarga debido al caso 1 solo se puede iniciar en el primer bit de tiempo de una interrupción esperada, 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 del indicador de sobrecarga destruye la forma fija del campo de interrupción. Como consecuencia, todas las demás estaciones también detectan una condición de sobrecarga y, por su parte, inician la transmisión de un indicador 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 confirmar la recepción 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, por lo tanto, 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 nivel recesivo para indicar que no recibió una trama válida, pero otro nodo que sí recibió una trama válida puede anularlo con un nivel 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 consiste en retransmitir tramas no reconocidas una y otra vez, lo que puede provocar que, con el tiempo, se entre en un estado pasivo de error .

Espaciado entre cuadros

Las tramas de datos y las tramas remotas están separadas de las tramas anteriores por un campo de bits llamado espacio entre tramas. El espacio entre tramas consta de al menos tres bits recesivos (1) consecutivos. A continuación, si se detecta un bit dominante, se considerará como el bit de inicio de trama de la siguiente trama. Las tramas de sobrecarga y las tramas de error no están precedidas por un espacio entre tramas y las tramas de sobrecarga múltiples no están separadas por un espacio entre tramas. El espacio entre tramas contiene los campos de bits de intermedio y de inactividad de bus, y de suspensión de transmisión para estaciones pasivas de error, que han sido transmisoras del mensaje anterior. [19]

Relleno de bits

Marco CAN antes y después de la adición de bits de relleno (en violeta). Se utiliza un CRC incorrecto para ilustrar el relleno de bits.

Para garantizar que haya 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) que se utiliza con CAN. El receptor desrellena las tramas de datos rellenas.

Todos los campos de la trama se rellenan con la excepción del delimitador CRC, el campo ACK y el final de la trama, que tienen un tamaño fijo y no se rellenan. En los campos en los que se utiliza el 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 del relleno de bits.

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

11111000011110000...

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

11111 0 0000 1 1111 0 0000 1 ...

El bit de relleno en sí 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

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

Dado que es el tamaño del marco antes del relleno, en el peor de los casos se agregará un bit 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, solo 34 de 44 de ellos pueden estar sujetos al relleno de bits.

Un efecto secundario indeseable del esquema de relleno de bits es que una pequeña cantidad de errores de bits en un mensaje recibido puede corromper el proceso de desrelleno, lo que hace que se propague una mayor cantidad de errores a través del mensaje desrellenado. Esto reduce el nivel de protección que de otro modo ofrecería el CRC contra los errores originales. Esta deficiencia del protocolo se ha solucionado en los marcos 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.

Normas de capa inferior de CAN

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

Existen varios estándares de capa física CAN y otros:

La norma 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). [13] Este documento describe la arquitectura general de CAN en términos de capas jerárquicas de acuerdo con el modelo de referencia ISO para la interconexión de sistemas abiertos (OSI) establecido en ISO/IEC 7498-1 y proporciona las características para configurar un intercambio de información digital entre módulos que implementan la DLL CAN con una especificación detallada de la subcapa de control de enlace lógico (LLC) y la subcapa de control de acceso al medio (MAC) .

La norma ISO 11898-2:2016 especifica la unidad de acceso al medio (MAU) de alta velocidad (velocidades de transmisión de hasta 1  Mbit/s) y algunas características de la interfaz dependiente del medio (MDI) (según la norma ISO 8802-3), que comprenden la capa física de la red de área del controlador. La norma ISO 11898-2 utiliza un esquema de señalización balanceada de dos cables . Es la capa física más utilizada en aplicaciones de sistemas de propulsión de vehículos y redes de control industrial.

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

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

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

La norma ISO 11898-6:2013 especifica la capa física CAN para velocidades de transmisión de hasta 1  Mbit/s para su uso en vehículos de carretera. Describe las funciones de la unidad de acceso al medio, así como algunas características de la interfaz dependientes del medio, de acuerdo con la norma ISO 8802-2. Representa una extensión de la norma ISO 11898-2 y la ISO 11898-5, que especifica un mecanismo de activación selectiva mediante tramas CAN configurables.

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

La norma ISO 16845-2:2018 establece casos de prueba y requisitos de prueba para implementar 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 la norma ISO 16845-2:2018 se denomina prueba de conformidad.

DBC

Los archivos CAN DBC son archivos ASCII estandarizados que se utilizan para definir los mensajes que se envían a través de un bus CAN. Definen el formato y el propósito de cada tipo de mensaje, incluidos los identificadores de mensajes, los nombres de las señales, la escala, las compensaciones y los tipos de datos, y proporcionan una ayuda interoperable para el desarrollo de aplicaciones de bus CAN.

Protocolos de capa superior basados ​​en CAN

Como el estándar CAN no incluye características comunes de comunicación, como control de flujo , direccionamiento de dispositivos y transporte de bloques de datos mayores que un mensaje, y sobre todo, datos de aplicación, 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 los turismos, cada fabricante tiene su propio estándar.

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

Enfoques estandarizados

Otros enfoques

Elevador CANopen

El grupo de interés especial (SIG) CANopen "Lift Control", fundado en 2001, desarrolla el perfil de aplicación CANopen CiA 417 para sistemas de control de ascensores . Trabaja para ampliar las funciones, mejorar el contenido técnico y garantizar que se cumplan los estándares legales actuales para sistemas de control de ascensores. La primera versión de CiA 417 se publicó (disponible para los 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 administra una wiki de la comunidad de ascensores CANopen con contenido sobre ascensores CANopen.

Seguridad

CAN es un protocolo de bajo nivel y no admite ninguna característica de seguridad intrínsecamente. Tampoco hay cifrado en las implementaciones CAN estándar, lo que deja a estas redes abiertas a la interceptación de tramas por parte de intermediarios. En la mayoría de las implementaciones, se espera que las aplicaciones implementen sus propios mecanismos de seguridad; por ejemplo, para autenticar los comandos entrantes o la presencia de ciertos dispositivos en la red. La falta de implementación de medidas de seguridad adecuadas puede dar lugar a varios tipos de ataques si el oponente logra insertar mensajes en el bus. [21] Si bien existen contraseñas para algunas funciones críticas para la seguridad, como modificar el firmware, programar claves o controlar los actuadores de frenos antibloqueo, estos sistemas no se implementan de manera universal y tienen un número limitado de pares de claves/semillas.

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 quieran. También existen herramientas especializadas, así como monitores de bus CAN.

AEl 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 del bus CAN escucha el tráfico en el bus CAN para mostrarlo en una interfaz de usuario. A menudo, el monitor del bus CAN ofrece la posibilidad de simular la actividad del bus CAN enviando tramas CAN al bus. Por lo tanto, el monitor del bus CAN se puede utilizar para validar el tráfico CAN esperado de un dispositivo determinado o para simular el tráfico CAN con el 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 tasas de licencia a Bosch por el uso de la marca registrada CAN y de cualquiera de las patentes más recientes relacionadas con CAN FD, y estas 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 tasa por la Licencia del Protocolo CAN si desean utilizar la marca registrada CAN o las capacidades de CAN FD. [22]

Véase también

Referencias

  1. ^ ab "Historia de CAN". CAN en automatización.
  2. ^ "Mercedes-Benz Clase S W 140". mercedes-benz.com . 23 de febrero de 2016. Archivado desde el original el 10 de junio de 2019 . Consultado el 27 de octubre de 2017 .
  3. ^ "CAN en automatización - Mercedes W140: primer automóvil con CAN". can-newsletter.org . Consultado el 27 de octubre de 2017 .
  4. ^ abc "Literatura CAN de Bosch Semiconductor". Archivado desde el original el 23 de mayo de 2017. Consultado el 31 de mayo de 2017 .
  5. ^ Adaptador de construcción para diagnóstico a bordo del vehículo Archivado el 14 de mayo de 2018 en Wayback Machine , obddiag.net, consultado el 9 de septiembre de 2009
  6. ^ Comparación de los conceptos de activación por eventos y activación por tiempo en relación con los sistemas de control distribuido A. Albert, Robert Bosch GmbH Embedded World, 2004, Núremberg
  7. ^ "NISMO aumenta la funcionalidad del registrador de datos GPS y el recuento de pistas del GT6". www.gtplanet.net . 25 de octubre de 2014.
  8. ^ "¿Qué es DiveCAN y por qué debería importarme?". 22 de marzo de 2016.
  9. ^ ab "ISO11783: Interfaz tractor-implemento estandarizada" (PDF) .
  10. ^ abc ISO 11898-1:2015 – Vehículos de carretera — Red de área del controlador (CAN) — Parte 1: Capa de enlace de datos y señalización física.
  11. ^ ab Nasser, Ahmad MK (2023). Manual de ingeniería de ciberseguridad automotriz: la hoja de ruta del ingeniero automotriz hacia vehículos ciberresilientes (1.ª ed.). Birmingham Mumbai: Packt. ISBN 978-1-80107-653-1.
  12. ^ ab CiA: Normalización internacional.
  13. ^ ab "ISO 11898-1:2003 - Vehículos de carretera - Red de área del controlador (CAN) - Parte 1: Capa de enlace de datos y señalización física". ISO.
  14. ^ "CAN_XL, CAN XL, CAN, Bosch_CAN, módulos IP". Semiconductores Bosch para automoción . Consultado el 15 de mayo de 2024 .
  15. ^ Daigmorte, Hugo; Boyer, Marc (2017), "Evaluación de la carga admisible del bus CAN con un mecanismo de sincronización débil", Actas de la 24.ª Conferencia Internacional sobre Redes y Sistemas en Tiempo Real (RTNS 2017) , Grenoble, Francia: ACM
  16. ^ "Comprensión de la sincronización de bits del módulo CAN de Microchip" (PDF) .
  17. ^ "Protección de diodos ISO7637-3 para bus CAN".
  18. ^ "Protección ESD del bus CAN".
  19. ^ "MARCOS DE MENSAJES DEL BUS CAN – Marco de sobrecarga, espacio entre marcos". 18 de noviembre de 2009.
  20. ^ "Controller Area Network (CAN)". Grupo Vector. Archivado desde el original el 25 de abril de 2016. Consultado el 25 de septiembre de 2013 .
  21. ^ "Conducíamos un coche mientras lo pirateaban". www.vice.com . 29 de mayo de 2014. Archivado desde el original el 8 de noviembre de 2019.
  22. ^ "Condiciones de licencia del protocolo CAN y del protocolo CAN FD" (PDF) . Archivado desde el original (PDF) el 2016-03-16 . Consultado el 2016-03-15 .

Enlaces externos

Presupuesto
  • Norma ISO 11898-1 (2015): incluye especificaciones CAN y CAN-FD
  • Especificación CAN de Bosch versión 2.0 (1991, 1997): también conocida como CAN clásica y CAN-Classic
  • Especificación CAN-FD de Bosch versión 1.0 (2012): aumenta la velocidad de datos hasta 8  Mbit/s
  • Bosch CAN-FD-Light (futuro): subconjunto de CAN-FD con optimización de costes
  • Bosch CAN-XL (futuro): aumenta la velocidad de datos hasta 20  Mbit/s
Otro