BusCAN Protocolo SAE J1939

47
DINÁMICA DE VEHÍCULOS FERMÍN SONEIRA BUS CAN Y J1939 Manuel Moreno “ELECTRÓNICA DEL AUTOMÓVIL” CURSO ACADÉMICO 2010-2011

Transcript of BusCAN Protocolo SAE J1939

Page 1: BusCAN Protocolo SAE J1939

DINÁMICA DE VEHÍCULOS

FERMÍN SONEIRA

BUS CAN Y J1939

Manuel Moreno

“ELECTRÓNICA DEL AUTOMÓVIL”CURSO ACADÉMICO 2010-2011

Page 2: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Índice

• Motivación• Definiciones e Historia• Conceptos Básicos• Hardware / Software• Aplicaciones• Otros Buses de Comunicación• Bibliografía• J1939

Page 3: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Motivación

• Demanda creciente de electrónica en el automóvil (exigencias en normativas de contaminación, mayores prestaciones de seguridad, confort, multimedia…)

• Gestión electrónica, ABS, ESP, Airbag, EPB, etc., son típicos ejemplos de unidades electrónicas de control (ECUs) que actualmente se incluye de serie en los vehículos.

• A medida que aumenta el número de prestaciones de un automóvil se plantea la posibilidad de realizar un control distribuido en lugar de un control centralizado.

Page 4: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Page 5: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Motivación

• El bus CAN nace como un mecanismo para compartir información entre las electrónicas (ECUs) del vehículo, lo cual permite:

Reducir el cableado del vehículo. Reducir el número de sensores. Reducir el tiempo en la detección y reparación de

averías. Facilitar la ampliación de la electrónica en nuevas

versiones. En definitiva, reducir el coste total.

Page 6: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

ECU 1

ECU 2

ECU 3

ECU n

Control distribuido

BUS de Comunicaciones

Page 7: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Definiciones e Historia

• CAN (Controller Area Network), bus digital inventado por Robert Bosch en 1982 como bus de campo (i. proceso).

• El Mercedes Clase E fue el primer coche en incorporar el bus CAN, 10 años después (1992).

• Diseñado para permitir la comunicación fiable entre ECUs (“Electronic Control Unit”) y reducir cableado.

• En Europa se ha convertido en un estándar “de facto”, con carácter internacional y documentado por normas ISO (ISO-11898 ).

• Ventajas: reducción de costes, mejora flexibilidad, mantenimiento y verificación de averías.

Page 8: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Conceptos básicos• El bus CAN es un protocolo serie asíncrono del tipo

CSMA/CD (“Carrier Sense Multiple Access with Collision Detection”).

• El bus es un medio compartido (multiplexado).• Se trata de un protocolo “Multicast”, es decir, todo el

mundo puede hablar (de uno en uno) y escuchar.• “CSMA”: cada nodo de la red debe monitorizar el bus y

si detecta que no hay actividad, puede enviar un mensaje.

• “CD”: si 2 nodos de la red comienzan a transmitir un mensaje, ambos detectan la colisión. Un método de arbitración basado en prioridades resuelve el conflicto.

Page 9: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Hardware/Nivel Físico

• Se utiliza un par de cables trenzados (bus diferencial) para ser inmune a las interferencias electromagnéticas (EMIs). En camiones está apantallado, pero en los coches no (Tacaños!).

• Resistencias terminadoras (típicamente de 120Ω) al principio y al final del bus evitan reflexiones y ruido en el bus (antenas).

• Longitud máxima de 1000m (a 40Kbps). • Velocidad máxima de 1Mbps (con una longitud de 40m)

• En los coches se utiliza a 125kbit/s y a 500kbit/s.

Page 10: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Page 11: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Implementación Física

CAN LOW

CAN HIGH

TXTX

RX RX

Nodo 1 (ECU) Nodo 2 (ECU)

0-5V

0-5V

1.5V – 3.5V

Page 12: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Niveles de Tensión

CAN LOW

CAN HIGH

2.5V

3.5V

1.5V

Bit dominante“0” lógico

Bit recesivo“1” lógico t

Vbus

Page 13: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

CAN HIGH

CAN LOW

CAN HIGH – CAN LOW

Formas de onda en un bus CAN real. CAN HIGH, CAN LOW y la diferencia.

Page 14: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Nivel Lógico• La información es transmitida mediante mensajes.• Cada mensaje se empaqueta en una trama o “frame”.• Existen 4 tipos de mensajes distintos, definidos por el

protocolo: DATA FRAME: mensaje de información (datos). REMOTE FRAME (RTR): mensaje de petición de datos. ERROR FRAME: mensaje que indica un error. OVERLOAD FRAME: mensaje de sobrecarga de un

nodo.

Page 15: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Estructura de un FRAME en bus CAN

SOF IDENTIFIER DLC DATA CRC ACK EOF

• SOF (Start of Frame): 1 bit dominante inicia la trama.• IDENTIFIER (Identificador): 11 bits estándar / 29 bits extendido; indica

el tipo de información y la prioridad. Cuanto más pequeño es el identificador, mayor prioridad tiene el mensaje.

• DLC (Data Length Code): número de bytes de datos (0-8).• DATA (Datos): Entre 0 y 8 bytes de datos.• CRC (Cyclic Redundancy Check): 15 bits para detectar errores.• ACK (Acknowledge): 1 bit de reconocimiento de mensaje.• EOF (End of Frame): 1 bit que indica que ha terminado la trama.

Page 16: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Proceso de Arbitraje en el bus CAN

Page 17: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Buses CAN en Automóviles

• Se utilizan diferentes buses CAN en función de las tareas de las centralitas.

Bus CAN Tracción: bus de alta velocidad (500 kbit/s), intercambio de información de centralitas con tareas críticas (Gestión de Motor, Airbag, ABS, ESP).

Bus CAN Confort: bus de baja velocidad (125kbit/s), intercambio de información de centralitas con tareas no críticas (climatizador, control de puertas, asientos, etc.)

Una puerta de enlace o “GateWay” permite el transpaso de información entre los dos buses anteriores.

Page 18: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Page 19: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Hardware en bus CAN

• Básicamente existen 2 opciones: Microcontrolador con Controlador de Bus CAN Interno Microcontrolador + Controlador de Bus CAN Externo• Es preferible la primera versión por tamaño y coste. La

mayoría de microcontroladores de automoción llevan integrado el controlador de bus CAN.

• Actualmente existen circuitos integrados que digitalizan señales analógicas y las envían por el bus CAN.

Page 20: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Hardware en bus CAN

TRANSCEIVERBUS CAN

ControladorBus CAN

Microcontrolador

TX

RX

0-5V(TTL)

CAN_HIGH

CAN_LOW

ECU

1.5V3.5V

Page 21: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplo de Controlador de CAN (Microchip)

Page 22: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplo de Transceiver de CAN (Philips)

Page 23: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Software para bus CAN

• Para la mayoría de microcontroladores con controlador de CAN integrado, existen librerías de software (ensamblador / lenguaje C) para el manejo del bus.

• Rutinas del tipo:CANSendMessage( identifier, message, length, flags);CANReceiveMessage( &identifier, message, &length, &flags).

• Todos los controladores de CAN permiten trabajar por interrupciones, tanto de recepción como de transmisión.

Page 24: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Herramientas para Bus CAN

• Existen en el mercado herramientas hardware y software para el desarrollo, la verificación y el mantenimiento de un bus CAN.

• El software más utilizado en Europa es “CANalyzer”, de Vector Informatik. El hardware más utilizado es fabricado por Kvaser. La configuración típica es una tarjeta (PCMCIA ó USB) que se conecta a un PC.

• Cada fabricante de automóviles tiene su propia base de datos que especifica para cada mensaje CAN del vehículo todos los datos correspondientes (identificador, n. de bytes, codificación, etc.)

Page 25: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Page 26: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplo de un analizador de tramas de bus CAN

Page 27: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Aplicaciones• El bus CAN no sólo se utiliza como sistema de

comunicación entre ECUs.• También se utiliza como medio físico para

comunicarse con el exterior a través de un conector de diagnosis (OBD), típicamente situado debajo del asiento del conductor.

• Desde 2008, todos los vehículos obligatoriamente llevan incorporado el sistema OBD-II/EOBD con comunicación por bus CAN.

• Hoy en día se utilizan complejos sistemas informáticos, que conectados al vehículo, reducen drásticamente el tiempo de reparación de averías.

Page 28: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Page 29: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Otros Buses de Comunicación

• TTCAN (Time Triggered CAN)• Bus LIN (Local Interconnect Network)• Bus MOST (Media-Oriented Systems Transport)• Bluetooth• D2B• MML• ByteFlight• FlexRay (el sustituto del CAN a medio plazo)• …

Page 30: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

• “CAN Specification Version 2.0”, Robert Bosch GmbH, 1991.

• “CAN: Controller Area Network, Introduction and Primer”, Robert Boys, Dearborn Group, Inc., Sept. 2004.

• “854 BUS, CAN Do, Will Do 1: CAN Bus Basics”, Microchip 2004.

• “Atmel Microcontrollers, CAN Tutorial”, Atmel2004.

• “CANbus in transport”, T. Tjiook, 2009.

Bibliografía

Page 31: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Aplicación del bus CAN: Estándar J1939

• Norma SAE (Society of Automotive Engineers) aplicada a vehículos comerciales y pesados (camiones y autobuses). También se utiliza en el mundo agrícola y a nivel industrial (comunicación de autómatas programables, grupos electrógenos, etc.).

• Pensado inicialmente para la comunicación en el compartimento motor y entre la tractora y el trailer (camiones).

Page 32: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Bus CAN en camiones (J1939)

Motor

Truck bus Trailer bus

Transmisión Frenos

Enlace Enlace

Frenos Luces ABS

Page 33: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Características del J1939

• Capa física: CAN 250kbit/s, par trenzado apantallado.• Identificadores de 29 bits.• Comunicación punto a punto (peer to peer) y

comunicación en abierto para todos (broadcast).• Utiliza protocolos de transporte de hasta 1785 bytes

de datos.• Definición de grupos de parámetros estándar.

Page 34: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Grupos de Parámetros

• Grupos de parámetros combinan señales similares o asociadas. Se pueden utilizar grupos de parámetros específicos para cada fabricante.

• Estas agrupaciones de parámetros de hasta 8 bytesse transmiten en un mensaje CAN.

• Si el número de bytes es mayor que 8 es necesario un protocolo de transporte.

• Cada grupo de parámetros es direccionado vía un único número (Parameter Group Number, PGN).

Page 35: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

• El PGN es un valor de 16 bits. En función del valor, podemos hablar de PGN global o de PGN específico.

• PGN Global: (comunicación broadcast). Se utilizan los 16 bits. El MSB (PDU format) debe ser mayor de 239.

• PGN Específico: (comunicación peer to peer), sólo se utilizan los 8 bits más significativos (PDU format). Éste debe ser mayor de 240. El byte menos significativo (PDU specific) es siempre 0.

Grupos de Parámetros

PDU Format PDU Specific

Page 36: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplos de PGNs

• PGN = 0xFE01. Dado que 0xFE >= 0xF0 (240), se trata de un PGN Global. 0x01 es el PDU specific.

• PGN = 0xED00. Dado que 0xED < 0xF0, se trata de un PGN específico. El PDU, en este caso, es 0x00.

• Con esta distribución de PGN (PDU format + PDU specific), podemos distinguir entre 8672 grupos de parámetros distintos (240 + 16 *256) = 8672.

• El PGN es codificado internamente en un identificador de bus CAN extendido (29 bits).

Page 37: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Interpretación de un identificador CAN

• Cada identificador de CAN (29 bits) está compuesto por:

PDU Format PDU Specific Source AddressPriority R. Data Page

3 bits 1 bit 1 bit 8 bits 8 bits 8 bits

TOTAL: 29 bits por identificador, conteniendo el PGN

PGN

Page 38: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplo mensaje en J1939 (I)

• Name: Engine Temperature• Transmission Rate: 1s• Data length: 8 bytes• Data page: 0• PDU format: 254• PDU specific: 238• Default priority: 6• PG Number: 65262 (0xFEEE)

Page 39: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Ejemplo mensaje en J1939 (II)

• Description of Data:• Byte 1: Engine Coolant Temperature• Byte 2: Fuel Temperature• Byte 3, 4: Engine Oil Temperature• Byte 5, 6: Turbo Oil Temperature• Byte 7: Engine Intercooler Temperature• Byte 8: Not defined

Page 40: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Estandarización de magnitudes

• Engine Coolant Temperature• Data Length: 1 byte• Resolution: 1 ºC/bit gain, -40ºC offset• Data Range: -40 to 210ºC• Type: Measured• Reference: Engine Temperature• Obsérvese que se deja un rango de valores

especiales (ej. Los valores 250-255 no están definidos en el rango de medida).

Page 41: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Rangos de señales transmitidas

• En el caso de magnitudes de 1 byte:• Valid Signal: 0-250 (0x00-0xFA)• Parameter Specific indicator: 251 (0xFB)• Reserved range for future indicator bits: 252-253

(0xFC-0xFD)• Error indicator: 254 (0xFE)• Not available or not requested: 255 (0xFF)

Page 42: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Valores transmitidos para parámetros discretos (medidos)

• Disabled (off, passive, etc.) 00• Enabled (on, active, etc.) 01• Error indicator 10• Not available or not installed 11

Page 43: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Valores transmitidos para comandos de control

• Command to disable function (turn-off) 00• Command to enable function (turn-on) 01• Reserved 10• Don’t care/take no action(leave function as is) 11

Page 44: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Control de una red J1939 (I)

• En una red bajo el estándar J1939, cada ECU tiene una dirección única. Cada mensaje que envía cada ECU contiene dicha dirección (source address).

• Existen 255 direcciones posibles:• 0..253 -> direcciones válidas de una ECU• 254 -> Cero• 255 -> Global• Cada ECU tiene una dirección preferida

(“preasignada”).

Page 45: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Control de una red J1939 (II)

• Antes de que una ECU utilice una dirección, la debe registrar sobre el bus (“address claiming”).

• La ECU envía un mensaje CAN, denominado “AddressClaim” parameter group con la dirección (source address) deseada. Este PG (parameter group) contiene un nombre del dispositivo codificado con 64 bits (entre los que se incluye la dirección, función, fabricante, etc.).

• Si la dirección ya está siendo utilizada por otra ECU, se produce un arbitrio de la dirección basado en la prioridad del nombre de la ECU.

Page 46: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Cortesía de Scania

Page 47: BusCAN Protocolo SAE J1939

BUS CAN Y J1939

Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL

Para saber más del J1939• [1] SAE J1939 Recommended Practice for a Serial Control and

Communications Vehicle Network

• [2] SAE J1939-11 Physical Layer—250K Bits/s, Shielded Twisted Pair

• [3] SAE J1939-13 Off-Board Diagnostic Connector• [4] SAE J1939-15 Reduced Physical Layer, 250K Bits/s, Un-Shielded

Twisted Pair (UTP)

• [5] SAE J1939-21 Data Link Layer

• [6] SAE J1939-31 Network Layer• [7] SAE J1939-71 Vehicle Application Layer

• [8] SAE J1939-73 Application Layer - Diagnostics

• [9] SAE J1939-81 Network Management Protocol