Controller Area Network (CAN) Gerardo Luis Stola FIUBA [email protected] • • • Creado a mediados de 1980, con el objetivo de brindar conexión y disminuir los costos de cableado entre dispositivos dentro de automóviles. Se difundió posteriormente a otras áreas, por ejemplo control de plantas industriales, aplicaciones domésticas, control de ascensores, control de sistemas de navegación, etcétera. Estándar ISO. Amplia disponibilidad de dispositivos comerciales. Más de 800 vendors, según CAN-Cia (http://www.can-cia.org/) • • • Alta difusión en la CEE (Alemania), Japón y EEUU -http://www.can.bosch.com http://www.can-cia.org • • • • • Hasta 1 Mbps. Topología de bus Protocolo multimaestro No direcciona nodos. Identifica mensajes Control de acceso al medio por prioridad de mensajes (CSMA/AMP) Otra denominación (CSMA/CR) Diferencia con Ethernet (CSMA/CD) • • Muy baja probabilidad de no detectar errores. ~ probabilidad(error) x 10 -11 Escalabilidad no limitada por número de nodos. Necesidad de interconexión dentro del automóvil Implementación por CAN. El modelo CAN y el modelo OSI Aplicación Presentación Sesión Transporte CAL CAN Documentos Device •CANopen SDS King de CiA Net •PCAL dom Red Enlace Física Especificación CAN CAN Phy (ISO 11898) ISO 11898 Arbitración “1”= bit recesivo (R) “0”=bit dominante (D) Lógicamente, el bus actúa como una compuerta AND cableada Si al menos un nodo de la red fija un estado D, fuerza a que todo el bus esté en D Todos los nodos en R, implica bus en R Arbitración “1”= bit recesivo (R) “0”=bit dominante (D) Monitoreo permanente del nivel de la red. Arbitración http://www.can-cia.org Tipos de Tramas DATOS: Se utiliza para enviar datos de un nodo a otro(s). Es el tipo de trama que más frecuentemente circula en una red. REMOTA: Se utiliza para solicitar una trama de datos con el ID especificado. Esta trama no contiene datos. ERROR: Si un nodo detecta un error en la red, envía una trama de error e invalida la trama en cuestión en todos los nodos. La trama debería ser retransmitida. SOBRECARGA: La utilizan los nodos para pedir tiempo adicional antes del comienzo de la próxima trama. Un máximo de dos tramas de sobrecarga pueden ser generadas por un nodo. INTERTRAMA: Es el espacio entre una trama de datos o remota y la precedente. Este espacio es provisto para permitir a los nodos realizar procesamientos internos antes del comienzo de la próxima trama. RTR Delimitadores recesivo dominante 1 11/29 1 6 Identifi_ cador de objeto 0 ... 64 15 Campo de datos Segmento Campo de control CRC Campo de Campo de CRC Arbitraje 111 7 Campo de fin de trama 3 Espacio inter-trama Ranura de ACK Inicio de trama Trama de datos Tamaño mínimo de la trama de datos: 44 bits Tamaño máximo de la trama de datos: 111 bits ⇒ Throughput = 58% del bitrate Versiones de CAN Especificaciones CAN 1.2 2048 (211 ) identificadores formato de tramas estándar CAN 2.0 más de 500 millones (229 ) de identificadores formato de tramas extendido Tipos de Errores CRC: No coinciden el código de redundancia cíclica (CRC) calculado por el transmisor y el calculado por el receptor. El nodo receptor descarta la trama y transmite una trama de error. Sólo realizado por nodo receptor. ACK: Error de reconocimiento, detectado por el transmisor. El transmisor no detecta el reconocimiento en el campo ”SLOT ACK”, indicando que ningún nodo recibió la trama correctamente. Se produce un error de reconocimiento (ACK) se retransmite la trama, pero NO se genera una trama de error. FORMA: Se produce si se detecta un bit dominante en los siguientes campos: •Delimitador de CRC. •Delimitador de ACK. •Fin de trama. Se transmite una trama de error. Tipos de Errores BIT: El bit transmitido es diferente del bit monitoreado. No se realiza en los campos de arbitraje si el bit transmitido es recesivo ni tampoco en el slot de reconocimiento. Se transmite una trama de error y se retransmite la trama. Sólo realizado por nodo transmisor. STUFFING: Se detectan 6 bit consecutivos de igual polaridad entre el comienzo de trama y el delimitador de CRC. Se envía una trama de error. => “Globalización del error” Confinamiento de Errores Durante las comunicaciones CAN, los nodos actualizan sus contadores de errores de transmisión y recepción mediante normas complejas establecidas en la norma CAN. Los contadores se incrementan por detección de errores o se decrementan por transmisiones o recepciones exitosas. Confinamiento de Errores ERROR ACTIVO: Es el estado normal de un nodo. El nodo puede recibir y transmitir mensajes incluyendo tramas de error activas (pueden “destruir” mensajes detectados con algún error.) ERROR PASIVO: Alguno de los contadores pasa el valor de 127. Las tramas de error emitidas son pasivas (bits recesivos), no pudiendo destruir mensajes detectados con algún error. BUS APAGADO: El contador de error de transmisión llega a 256, todas las actividades CAN del nodo se detienen y se libera el bus (estado recesivo). La única forma de sacar al nodo de este estado es por reset del controlador CAN. Capa física - ISO 11898-2 A 1Mbit/s Ld<0.3 m • • Condición recesiva : CAN_H < CAN_L + 0.5V Condición dominante: CAN_H >CAN_L + 0.9V Nodo ISO 11898-2 • La tensión diferencial en un nodo está dada por la corriente en la resistencia diferencial Relación Velocidad-longitud bus • Dist máx 1 km • Permite usar bridges o repeaters. • Distancia máxima definida por: demora de los nodos y del bus diferencias entre el bit time quantum debidas a la diferencia entre los osciladores de los nodos Caída de señal por resistencia de cable y nodos Velocidades recomendadas CiA DS -102 • • • Todo módulo debe soportar 20 kbits/s Para más de 200m se recomienda el uso de optoacopladores Para longitud de más de 1 km se requiere bridge o repeater Discusión abierta al auditorio: Comparación con otros protocolos - Modbus? - Requisitos de hardware - Costo por nodo - Campos de uso …. Gracias!