stringtranslate.com

Puede transportar

Una red de área de controlador ( bus CAN ) es un estándar de bus de vehículo diseñado para permitir que microcontroladores y dispositivos se comuniquen entre sí. Es un protocolo basado en mensajes , diseñado originalmente para cableado eléctrico multiplex dentro de automóviles para ahorrar cobre, pero también se puede utilizar 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. Las tramas son recibidas por todos los dispositivos, incluido el dispositivo transmisor.

Historia

El desarrollo del bus CAN comenzó en 1983 en Robert Bosch GmbH . [1] 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 . [1] 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. [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. Estos estándares 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ó 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 CAN para alta velocidad CAN. ISO 11898-3 se publicó más tarde y cubre la capa física CAN para CAN de baja velocidad y tolerante a fallas. 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 cuadro diferente que permite una longitud de datos diferente y, opcionalmente, cambiar a una velocidad 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 ha sido obligatorio para todos los automóviles y camionetas vendidos en los Estados Unidos desde 1996. El estándar EOBD ha sido 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. [5]

Aplicaciones

Automotor

El automóvil moderno puede tener hasta 70 unidades de control electrónico (ECU) para varios subsistemas. [6] 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 , airbags , frenos antibloqueo/ABS , control de crucero , dirección asistida eléctrica , sistemas de audio, elevalunas eléctricos , puertas, ajuste de espejos, baterías 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. Es posible que un subsistema necesite 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 implementar una amplia gama de características de seguridad, economía y conveniencia usando solo software, funcionalidad que agregaría costo y complejidad si dichas características estuvieran cableadas utilizando sistemas eléctricos automotrices tradicionales. Ejemplos incluyen:

En los últimos años, se ha introducido el estándar de bus LIN (Red de interconexión local) para complementar CAN para subsistemas no críticos como el aire acondicionado y el infoentretenimiento, donde la velocidad de transmisión de datos y la confiabilidad 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 desde lógica digital simple, por ejemplo, PLD , a través de FPGA hasta una computadora integrada que ejecuta un software extenso. Una computadora de este tipo también puede ser una puerta de enlace que permita a una computadora de uso general (como una computadora portátil) comunicarse 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 alta (CANH) y CAN baja (CANL), son conducidas a un estado "dominante" con CANH > CANL, o no conducidas y arrastradas por resistencias pasivas a 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 admite una convención AND cableada, que otorga prioridad a los nodos con números de identificación más bajos en el bus.

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 extremo con resistencias de 120 Ω.

Señalización CAN de alta velocidad. ISO 11898-2.

La señalización CAN de alta velocidad dirige 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 terminales devuelven pasivamente los dos cables al recesivo. (1) estado con un voltaje diferencial nominal de 0 V. (Los receptores consideran recesivo cualquier voltaje diferencial inferior a 0,5 V). El voltaje diferencial dominante es un nominal de 2 V. 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 del modo común recesivo debe estar dentro de ±12 del común.

Red CAN de baja velocidad y tolerante a fallos. Norma ISO 11898-3.

ISO 11898-3 , también llamado CAN de baja velocidad o tolerante a fallas (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 general de terminación. La resistencia general de la terminación debe ser cercana a 100 Ω, pero no inferior.

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

La señalización CAN de baja velocidad tolerante a fallas funciona de manera similar a la CAN de alta velocidad, pero con mayores oscilaciones de voltaje. El estado dominante se transmite impulsando CANH hacia el voltaje 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 soportar −27 a +40 V sin sufrir daños.

Propiedades electricas

Tanto con CAN de alta velocidad como con CAN de baja velocidad, la velocidad de la transición es más rápida cuando se produce una transición recesiva a dominante, ya que los cables CAN están siendo activados activamente. La velocidad de la transición de dominante a recesiva depende principalmente de la longitud de la red CAN y de la capacitancia del cable utilizado.

La CAN de alta velocidad se utiliza generalmente en aplicaciones automotrices e industriales donde el autobús va de un extremo al otro del entorno. La CAN tolerante a fallos se utiliza a menudo cuando 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 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 . [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 autobús 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 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 trama. 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 conflictos 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. Es por eso que algunos llaman CAN sincrónico. Desafortunadamente, el término síncrono es impreciso, ya que los datos se transmiten en 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 (activamente impulsado a un voltaje por el transmisor) y recesivo es un 1 lógico (pasivamente devuelto 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, se produce una colisión y gana el bit dominante. Esto significa que no hay retraso 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 sistema de comunicaciones priorizado 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 nodos transmisores. Si todos los nodos transmisores transmiten un 1 lógico al mismo tiempo, todos los nodos ven un 1 lógico, incluidos tanto los nodos transmisores como 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. Un nodo que pierde el arbitraje vuelve a poner en cola su mensaje para su posterior transmisión 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 todos los nodos transmiten el identificador de 11 bits (o 29 para CAN 2.0B) al inicio de la trama CAN, el nodo con el identificador más bajo transmite más ceros al inicio de la trama, y ​​ese es el nodo que gana el arbitraje o tiene la máxima 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 ninguna decisión de arbitraje.

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

En longitudes de red inferiores a 40 m son posibles velocidades de bits de hasta 1 Mbit/s. La disminución de la velocidad 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 identificación

Los ID de los mensajes deben ser únicos [10] en un único 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 los ID de los mensajes se hacía simplemente sobre la base de identificar el tipo de datos y el nodo emisor; sin embargo, como el ID también se utiliza como prioridad del mensaje, esto provocó un rendimiento deficiente en tiempo real. En esos escenarios, normalmente 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 las ID se determinan en función de la fecha límite del mensaje, cuanto menor sea la ID numérica y, por lo tanto, mayor la prioridad del mensaje, entonces normalmente se puede lograr un uso del autobús del 70 al 80 % antes de que se incumpla cualquier fecha límite del mensaje. [11]

Sincronización de bits

Todos los nodos de la red CAN deben operar a la misma velocidad de bits nominal, pero el ruido, los cambios de fase, la tolerancia del oscilador y la deriva del oscilador significan que la velocidad de bits real podría no ser la velocidad de bits nominal. [12] Dado que no se utiliza 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 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 causen errores.

La sincronización comienza con una sincronización dura en la primera transición recesiva 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 recesiva a dominante durante el cuadro. El controlador CAN espera que la transición se produzca en un múltiplo del tiempo de bit nominal. Si la transición no ocurre en el momento exacto que el controlador 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 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

El número de cuantos en los que se divide el bit puede variar según el controlador, y el número de cuantos asignados a cada segmento puede variar según la velocidad 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 tiempo. Esto ajusta efectivamente la sincronización del receptor al transmisor para sincronizarlos. Este proceso de resincronización se realiza continuamente en cada transición recesiva 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 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 temporización y sincronización de bits, la elaboración de mensajes, el arbitraje, el reconocimiento, la detección y señalización de errores y el confinamiento de fallas. Realiza:

Capa fisica
Topología de muestra eléctrica del bus CAN con resistencias terminadoras

El bus CAN ( ISO 11898 -1:2003) especificaba originalmente el protocolo de 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 bits mediante el uso de estados dominantes y recesivos. Los aspectos eléctricos de la capa física (tensión, 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, distribución de pines) aún no se han especificado formalmente. Como resultado, una ECU de automóvil normalmente tendrá un conector particular (a menudo personalizado) con varios tipos de cables, de los cuales dos son 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 la siguiente distribución de pines:

Un conector DE-9 macho (enchufe)

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 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 juegos de cables de bus a un único conector D en cada nodo. Estos mazos 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 mazos 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 del bus CAN expuestas a problemas de interoperabilidad debido a 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 capacidad parásita permitida incluye tanto condensadores como protección ESD (ESD [13] según 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 alcanzar hasta 24 V, mientras que los sistemas de camiones pueden llegar hasta 36 V. Están surgiendo nuevas soluciones que permiten utilizar el mismo componente tanto para CAN como para CAN FD (ver [14] ).

La inmunidad al ruido según 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, el funcionamiento de línea equilibrada , donde la corriente en una línea de señal está exactamente equilibrada con la corriente en la dirección opuesta en la otra señal, proporciona una referencia independiente y estable de 0 V 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 proporciona 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 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 nodo host y obtienen un voltaje de suministro regulado linealmente de 5 V para los transceptores desde el 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 dichas 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 terminales con terminación de resistencia en cada extremo del bus. En esta configuración, uno o más transmisores afirman un estado dominante cambiando el CAN- para suministrar 0 V y (simultáneamente) cambiando 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 tales, las resistencias terminales forman un componente esencial del sistema de señalización y se incluyen no sólo para limitar la reflexión de las 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 tanto en CAN+ como en CAN− tienden (débilmente) hacia un voltaje a medio camino entre los rieles. Un estado recesivo está presente en el bus sólo cuando ninguno de los transmisores del bus afirma un estado dominante.

Durante un estado dominante, las líneas de señal y las resistencias se mueven a un estado de baja impedancia con respecto a los rieles para que la corriente fluya a través de la resistencia. La tensión 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 terminales 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 una línea nocional. 0 V. El acceso múltiple en tales sistemas normalmente depende de que los medios soporten 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 "Y cableada".

Marcos

Una red CAN se puede configurar para funcionar 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 extendido (descrito únicamente 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 de identificador). La distinción entre el formato de trama base CAN y el formato de trama CAN extendido se realiza mediante el uso del 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 en formato de marco extendido también pueden enviar y recibir mensajes en formato de marco 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 cuadros:

Marco de datos

La trama de datos es la única trama para la transmisión de datos real. Hay dos formatos de mensajes:

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

Formato de marco base

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

El formato de la trama es el siguiente: Los valores de bits 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 todavía están limitados a ocho bytes. Ciertos controladores permiten la transmisión o recepción de un DLC superior a ocho, pero la longitud real de los datos siempre está limitada a ocho bytes.

Formato de marco extendido

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

  1. ^ Es físicamente posible transmitir un valor entre 9 y 15 en el DLC de 4 bits, aunque los datos todavía están limitados a ocho bytes. Ciertos controladores permiten la transmisión o recepción de un DLC superior a ocho, pero la longitud real de los datos siempre está limitada 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; 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 se encuentra en estado de error activo .
Indicador de error pasivo
Seis bits recesivos: transmitidos por un nodo que detecta una trama de error activa en la red que se encuentra en estado de error pasivo .

Hay dos contadores de errores en CAN:

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

Marco de sobrecarga

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 provocar la transmisión de un indicador de sobrecarga:

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

El inicio de una trama de sobrecarga debida al caso 1 sólo se permite iniciar en el primer bit de un intermedio esperado, mientras que las tramas de sobrecarga debidas 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 intermedio. Como consecuencia, todas las demás estaciones detectan también una condición de sobrecarga y por su parte inician la transmisión de un aviso 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 de confirmación

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 el slot 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 una trama recesiva 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 pasivo de error .

Espaciado entre cuadros

Las tramas de datos y las tramas remotas están separadas de las tramas precedentes 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 del cuadro siguiente. 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 interrupción y bus inactivo, y suspende la transmisión por error de las estaciones pasivas, que han sido transmisoras del mensaje anterior. [15]

relleno de bits

PUEDE enmarcar antes y después de agregar bits de material (en violeta). Se utiliza un CRC incorrecto con fines ilustrativos del relleno de bits.

Para asegurar 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 llama relleno de bits y es necesaria debido a la codificación sin retorno a cero (NRZ) que se utiliza con CAN. El receptor descomprime los marcos de datos rellenos.

Todos los campos del marco están rellenos, a excepción del delimitador CRC, el campo ACK y el final del marco, que tienen un tamaño fijo y no están rellenos. 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 del relleno de bits.

El relleno de bits significa que las tramas 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 se da en el caso

11111000011110000...

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

11111 0 0000 1 1111 0 0000 1 ...

El propio bit de relleno puede ser el primero de los cinco bits idénticos consecutivos, de modo 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 de la trama 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 a 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 relleno, provocando que una mayor cantidad de errores se propaguen a través del mensaje de relleno. 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 las tramas CAN FD mediante el uso de una combinación de bits de relleno fijos y un contador que registra el número de bits de relleno insertados.

Estándares CAN de capa inferior

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 llamada red de área del controlador que admite control distribuido en tiempo real y multiplexación para uso dentro de vehículos de carretera. [dieciséis]

Existen 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). [17] 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 configurar un intercambio de información digital entre Módulos que implementan CAN DLL con especificaciones detalladas 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 al medio (MAU) de alta velocidad (velocidades de transmisión de hasta 1 Mbit/s) y algunas características de interfaz dependiente del medio (MDI) (según ISO 8802-3), que comprenden la capa física de la red de área del controlador. ISO 11898-2 utiliza un esquema de señalización balanceada de dos hilos . Es la capa física más utilizada en aplicaciones de sistemas de propulsión 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 a velocidades de transmisión superiores a 40 kbit/s hasta 125 kbit. /s.

ISO 11898-4:2004 especifica la comunicación activada por tiempo en 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 trama que coordina la operación tanto del enlace lógico como de los controles de acceso a los medios de acuerdo con la norma ISO. 11898-1, para proporcionar el cronograma 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 la interfaz dependiente del medio según ISO 8802-2. Esto representa una extensión de ISO 11898-2, que aborda nuevas funciones para sistemas que requieren características de bajo consumo de energía mientras no hay 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 la interfaz dependiente 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 selectiva que utiliza marcos CAN configurables.

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 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 se ajusta a las funcionalidades especificadas. El tipo de prueba definido en ISO 16845-2:2018 se denomina prueba de conformidad.

DBC

Los archivos CAN DBC son archivos ASCII estandarizados que se utilizan para definir mensajes enviados a través de un bus CAN. Definen el formato y el propósito de cada tipo de mensaje, incluidos los ID de los mensajes, los nombres de las señales, la escala, las compensaciones y los tipos de datos, y brindan 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 de comunicación comunes, como control de flujo , direccionamiento de dispositivos y transporte de bloques de datos mayores a 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 los turismos, cada fabricante tiene su propia norma.

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. [18] Entre estas especificaciones se encuentran:

Enfoques estandarizados

Otros enfoques

Elevador CANopen

El CANopen Special Interest Group (SIG) "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 las normas legales vigentes para los 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 gestiona una wiki de la comunidad CANopen lift con contenido sobre CANopen lift.

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 estas redes abiertas a la interceptación de tramas por parte de un intermediario. En la mayoría de las implementaciones, se espera que las aplicaciones implementen sus propios mecanismos de seguridad; por ejemplo, para autenticar comandos entrantes o la presencia de ciertos dispositivos en la red. No implementar las medidas de seguridad adecuadas puede resultar en varios tipos de ataques si el oponente logra insertar mensajes en el autobús. [19] Si bien existen contraseñas para algunas funciones críticas para la seguridad, como modificar firmware, programar claves o controlar 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 del hardware puede ser muy importante. Los analizadores lógicos y 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 en su tiempo libre. También hay herramientas especializadas y monitores de bus CAN.

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

Normalmente, el monitor del bus CAN escuchará 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 de bus CAN se puede utilizar para validar el tráfico CAN esperado desde un dispositivo determinado o para simular el tráfico CAN para validar la reacción de un dispositivo determinado conectado al bus CAN.

Licencia

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 tarifas de licencia a Bosch por el uso de la marca CAN y cualquiera de las patentes más nuevas relacionadas con CAN FD, y éstas normalmente se trasladan al cliente en el precio del chip. Los fabricantes de productos con ASIC o FPGA personalizados que contienen módulos compatibles con CAN deben pagar una tarifa por la licencia de protocolo CAN si desean utilizar la marca registrada CAN o las capacidades CAN FD. [20]

Ver 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 coche con CAN". can-newsletter.org . Consultado el 27 de octubre de 2017 .
  4. ^ "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 de vehículos Archivado el 14 de mayo de 2018 en Wayback Machine , obddiag.net, consultado el 9 de septiembre de 2009
  6. ^ Comparación de conceptos activados por evento y activados por tiempo con respecto a sistemas de control distribuido A. Albert, Robert Bosch GmbH Embedded World, 2004, Núremberg
  7. ^ "NISMO aumenta la funcionalidad del registrador de datos GPS GT6 y el recuento de pistas". www.gtplanet.net . 25 de octubre de 2014.
  8. ^ "¿Qué es DiveCAN y por qué debería importarme?". 22 de marzo de 2016.
  9. ^ "ISO11783, una interfaz estandarizada entre tractor y apero" (PDF) .
  10. ^ ISO 11898-1:2015 - Vehículos de carretera - Red de área de controlador (CAN) - Parte 1: Capa de enlace de datos y señalización física.
  11. ^ Daigmorte, Hugo; Boyer, Marc (2017), "Evaluación de la carga admisible del bus CAN con mecanismo de sincronización débil", Proc. del 24 Int. Conf. sobre redes y sistemas en tiempo real (RTNS 2017) , Grenoble, Francia: ACM
  12. ^ "Comprensión de la sincronización de bits del módulo CAN de Microchip" (PDF) .
  13. ^ "Protección de diodos ISO7637-3 para bus CAN".
  14. ^ "Protección ESD del bus CAN".
  15. ^ "MARCOS DE MENSAJES DE CAN BUS: marco de sobrecarga, espacio entre cuadros". 18 de noviembre de 2009.
  16. ^ "Red de área del controlador (CAN)". Grupo de vectores. Archivado desde el original el 25 de abril de 2016 . Consultado el 25 de septiembre de 2013 .
  17. ^ "ISO 11898-1:2003 - Vehículos de carretera - Red de área de controlador (CAN) - Parte 1: Capa de enlace de datos y señalización física". YO ASI.
  18. ^ CiA: Normalización internacional.
  19. ^ "Condujimos un coche mientras lo pirateaban". www.vice.com . 29 de mayo de 2014. Archivado desde el original el 8 de noviembre de 2019.
  20. ^ "Condiciones de licencia Protocolo CAN y Protocolo CAN FD" (PDF) . Archivado desde el original (PDF) el 16 de marzo de 2016 . Consultado el 15 de marzo de 2016 .

enlaces externos

Especificaciones
  • Estándar 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 las velocidades de datos hasta 8 Mbit/s
  • Bosch CAN-FD-Light (futuro): subconjunto rentable de CAN-FD
  • Bosch CAN-XL (futuro): aumenta la velocidad de datos hasta 20 Mbit/s
Otro