CAN (CONTROLLED AREA NETWORK) Introducción Bus d comunicación serie definido según ISO 11898, 11519. Desarrollado a finales d 80 para industria d automóvil para disminuir el volumen del cableado originado por el aumento d prestaciones electrónicas en vehículos. Especificaciones d diseño básicas incluyen: velocidad d transferencia alta (hasta 1Mbps), alta inmunidad a interferencias eléctricas, buena detección de errores. Medio de operación Arquitectura productor/consumidor. Mensajes transmitidos por un nodo no contienen campos d dirección, están marcados por identificador, resto de nodos reciben mensaje y miran el identificador y ven si es de su interés. El identificador sirve para identificar el tipo de trama y para asignarle una prioridad, a menor valor más prioridad. Mensaje d mayor prioridad tiene asegurado el acceso al medio mediante variante de protocolo CSMA/CD. Tipos de controladores CAN Controlador es la interfaz entre el bus CAN y la CPU, como la arquitectura d los controladores no está contemplada hay varias opciones q se diferencian en la forma d gestionar los mensajes: • BasicCAN: arquitectura similar a la d UART, pero entre bit arranque y stop se envía un bloque d datos. Cuando CPU quiere enviar mensaje lo escribe en el buffer d tx. y recibe una interrupción cuando el controlador ha terminado d enviarlo. Cuando recibe mensaje también hay interrupción y la CPU debe vaciar el buffer antes d q llegue otro mensaje. La CPU gestiona emisión y recepción d tramas, almacenamiento d mensajes, hay fuerte acoplamiento entre CPU y controlador. La CPU está más tiempo comprobando mensajes q procesándolos, velocidad limitada a 250Kbps. • FullCAN: incluye filtro d aceptación d mensajes q enmascara mensajes irrelevantes y presenta a la CPU solamente los interesantes. Los mensajes son almacenados en el controlador, q puede tratar un nº limitado d tramas, cuando la CPU quiere enviar copia en el buffer d emisión y pide al controlador q la transmita. El controlador examina tramas recibidas y si encuentra una con el mismo identificador q una enviada se lo comunica a la CPU. Protocolos CAN estándar y CAN extendido Dos versiones del protocolo: 1.0 y 2.0 dividida en A y B. Se definen los protocolos: • CAN estándar: Dispositivos CAN 1.0 y 2.0A, utiliza identificador d 11 bits. • CAN extendido: CAN 2.0B, identificadores d 11 bits o d 29. Los CAN 2.0B pueden trabajar en ambos sistemas pero los estándar sólo en este. Hay algunos similares a los CAN 2.0A q no dan errores con el extendido, pero ignoran las tramas q pertenecen al extendido, son conocidos como CAN 2.0B pasivos. Modelo OSI simplificado CAN define sólo las 2 capas más bajas del modelo OSI, físico y d enlace, el d enlace se divide en: • LLC: (Logical link control), gestiona la tx. y rx. d mensajes d datos hacia o desde otros niveles superiores. • MAC: (Media access control), codificación y decodificación d mensajes q deben ser enviados o recibidos desde el nivel físico, gestiona el acceso al medio, realiza la detección d errores e implementa el método d arbitraje d prioridad. - Nivel físico: Topología d bus, par trenzado o FO. Codificación NRZ, garantiza pequeño nº d transiciones en la señal y alta inmunidad a perturbaciones externas, inconveniente d pérdida d sincronismo, utiliza bits d relleno, cuando detecta 5 bits del mismo nivel introduce 1 bit complementario. V transferencia 250kbps en CAN básico y 1Mbps en completo, máx. longitud 40m a 1Mbps y 1Km a 64Kbps. - Nivel d enlace: Red multimaestro con broadcasting y mensajes d prioridad, protocolo CSMA/CD modificado. Ofrece 2 servicios: • Servicio DATA: enviar trama d datos a 1 o varias estaciones remotas, productor introduce objeto en la red q puede ser consumido por cualquier nº d estaciones remotas. • Servicio REMOTE: Para pedir a estación remota q envíe a la red trama tipo DATA, ambas tramas = identificador. Formato d las tramas: ÆInicio d trama: un único bit dominante. ÆCampo d arbitraje: CAN estándar: identificador y RTR q indica si es petición d datos o envío (REMOTE o DATA), extendido: 11bits identificador, SRS (RTR), IDE (extensión identificador), 18 bits identificador, RTR. ÆCampo d control: 6 bits, 2 1ºs reservados (dominantes) y resto indican la longitud del campo d datos. ÆCampo d datos: datos a enviar entre 0 y 8 bytes, si es REMOTE vacío. ÆSecuencia d detección d errores: CRC d 15 bits y bit recesivo delimitador del CRC. ÆCampo ACK: dos bits, el 1º indica si estación ha recibido mensaje correcto y 2º delimitador d campo ACK. ÆFin d trama: 7 bits recesivos consecutivos. Después d cada trama se envía una especial, interframe spacing, 3 bits recesivos para garantizar el t de proceso d receptor, después línea queda en reposo (nivel 1) Método d arbitraje: Asignación de prioridades a mensajes se realiza asignando un identificador, a menor valor + prioridad. Para garantizar la prioridad utiliza variante del CSMA/CD que incluye sistema d arbitraje q garantiza la no destrucción d la trama d máx. prioridad en caso d colisión, garantizando q se aproveche al máximo la capacidad d tx. del medio, se resuelve el arbitraje sin pérdida d datos ni de tiempo. Cuando el bus está libre 1 unidad puede empezar a tx. un mensaje, si nadie más ha enviado se tx. completo. Si 2 envían a la vez sólo seguirá la q tenga mayor prioridad. Los bits recesivos (1) d 1 identificador son sobrescritos por los dominantes (0) del identificador d otro nodo CAN. Todos tx. monitorizan el bus mientras envían y conmutan a receptor cuando leen un bit dominante si enviaron uno recesivo. Los mensajes anteriores son enviados cuando el árbitro libera el bus. Si se inicia envío d trama REMOTE y DATA d = identificador a la vez prevalece la DATA. Esta funcionalidad está en el controlador CAN y es transparente al usuario, se garantiza alto nivel d seguridad por estar implementado en hard.