CAN bus (Controller Area Network) es un protocolo de comunicación en serie en tiempo real-muy fiable que se utiliza en vehículos, automatización industrial y otros campos. Permite que múltiples microcontroladores y dispositivos se comuniquen entre sí sin una computadora host.

El bus CAN fue desarrollado originalmente por Bosch en Alemania a principios de los años 1980 para la comunicación dentro de-vehículos. En 1993, ISO publicó el estándar de bus CAN (ISO 11898), que abarca tanto el protocolo de capa de enlace de datos como el protocolo de capa física.
ISO 11898-1: Define el protocolo de la capa de enlace de datos.
ISO 11898-2: define el protocolo de capa física para bus CAN de alta-velocidad, que admite una velocidad de transferencia de datos máxima de 1 Mbps. Recomienda una topología lineal y es adecuado para aplicaciones con altos requisitos en tiempo real.
ISO 11898-3: define el protocolo de capa física para bus CAN de baja-velocidad, con velocidades de transferencia de datos que van desde 40 Kbps a 125 Kbps. También conocido como CAN-tolerante a fallas, permite una comunicación continua incluso cuando falla una línea de señal, lo que lo hace adecuado para aplicaciones con requisitos de tiempo real más bajos.
Características del autobús CAN:
Control maestro múltiple-:El bus CAN admite la coexistencia de varios dispositivos maestros en la red sin una jerarquía maestro-esclavo. Los dispositivos se comunican según la prioridad de los mensajes.
Señalización Diferencial:Utiliza dos cables (CAN_H y CAN_L) para transmitir señales diferenciales, mejorando la resistencia a las interferencias electromagnéticas.
Arbitraje no-destructivo:Durante la transmisión de un mensaje, si se produce una colisión, el mensaje de mayor-prioridad se transmite mientras el mensaje de menor-prioridad espera la retransmisión.
Detección y manejo de errores:Presenta capacidades sólidas de detección y manejo de errores, incluida la verificación de suma de comprobación CRC y verificación de errores de bits.
Topología flexible:Admite múltiples topologías de red, como configuraciones lineales, en estrella, en árbol y en anillo.
En el bus CAN, la importante diferencia de voltaje entre el "0" y el "1" lógico garantiza una comunicación fiable. Con referencia a la descripción anterior, los dos niveles lógicos en el bus CAN son:
Dominante: 0
Recesivo: 1
Los niveles de señal en el bus CAN exhiben línea-y características. Esta línea-y comportamiento forman la base del circuito para el arbitraje del bus CAN: el nivel dominante (0) siempre enmascara el nivel recesivo (1). Si diferentes nodos transmiten simultáneamente niveles dominantes y recesivos, el bus presenta el nivel dominante (0). Sólo cuando todos los nodos transmiten el nivel recesivo (1) el bus exhibe el estado recesivo.
Nivel dominante:Lógica 0. En CAN de alta-velocidad, el pin CAN_H conduce a 5 V, mientras que el pin CAN_L conduce a 0 V.
Nivel sumiso:Lógica 1. Ningún pasador está accionado.

Los buses CAN de alta-velocidad y de baja-velocidad difieren en sus definiciones de nivel de señal de capa física:
CAN de alta-velocidad define un "1" lógico cuando los voltajes CANH y CANL son iguales (CANH=CANL=2.5V) y un "0" lógico cuando la diferencia de voltaje entre CANH y CANL es 2 V (CANH=3.5V, CANL=1.5V).
Dentro del rango de voltaje del modo común-(-12 V a 12 V), el transceptor CAN de alta velocidad interpreta una diferencia de voltaje superior a 0,9 V entre CANH y CANL como el estado dominante, y una diferencia inferior a 0,5 V como el estado recesivo. Un circuito de histéresis interno reduce las interferencias.
CAN de baja-velocidad define un "1" lógico cuando la diferencia de voltaje entre CANH y CANL es de 5 V (CANH=0V, CANL=5V) y un "0" lógico cuando la diferencia de voltaje es de 2,2 V (CANH=3.6V, CANL=1.4V).
Niveles de señal CAN de alta-velocidad (ISO 11898-2)
Niveles de señal CAN de baja-velocidad (ISO 11898-3)
Mecanismos de manejo de errores CAN:
Errores de CRC:Detecta errores calculando y verificando el valor CRC de los datos.
Errores de bits:Detecta errores de bits en tiempo-real durante la transmisión.
Marcos de error:Envía tramas de error para solicitar la retransmisión cuando se detectan errores.
Resumen
El bus CAN ha obtenido una adopción generalizada en múltiples campos debido a su alta confiabilidad, rendimiento en tiempo real-y flexibilidad. A medida que avanza la tecnología, el bus CAN continúa evolucionando-por ejemplo, el estándar CAN FD (Flexible Data-Rate) lanzado por BOSCH mejora aún más las velocidades de transmisión de datos para satisfacer las demandas de aplicaciones que requieren mayor ancho de banda.




