Está en la página 1de 47

“ELECTRÓNICA DEL AUTOMÓVIL”

CURSO ACADÉMICO 2010-2011

BUS CAN Y J1939


DINÁMICA DE VEHÍCULOS
Manuel Moreno
BUS CAN Y J1939

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

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

Control distribuido

ECU 1 ECU 3

BUS de Comunicaciones

ECU 2 ECU n

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


BUS CAN Y J1939

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.
Manuel Moreno ELECTRÓNICA DEL AUTOMÓVIL 25/03/11
BUS CAN Y J1939

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.
Manuel Moreno ELECTRÓNICA DEL AUTOMÓVIL 25/03/11
BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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


BUS CAN Y J1939

Implementación Física
0-5V
CAN LOW

TX 1.5V – 3.5V TX
0-5V
CAN HIGH

RX RX

Nodo 1 (ECU) Nodo 2 (ECU)

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


BUS CAN Y J1939

Niveles de Tensión
Vbus

CAN HIGH
3.5V

2.5V

1.5V
CAN LOW

Bit dominante Bit recesivo


“0” lógico “1” lógico t

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


BUS CAN Y J1939

CAN HIGH

CAN LOW

CAN HIGH – CAN LOW

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

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

Proceso de Arbitraje en el bus CAN

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

Hardware en bus CAN

Microcontrolador

TX CAN_HIGH
Controlador TRANSCEIVER
Bus CAN BUS CAN
RX CAN_LOW

0-5V 1.5V
(TTL) 3.5V

ECU

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


BUS CAN Y J1939

Ejemplo de Controlador de CAN (Microchip)

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


BUS CAN Y J1939

Ejemplo de Transceiver de CAN (Philips)

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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.)
Manuel Moreno ELECTRÓNICA DEL AUTOMÓVIL 25/03/11
BUS CAN Y J1939

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


BUS CAN Y J1939

Ejemplo de un analizador de tramas de bus CAN

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


BUS CAN Y J1939

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.
Manuel Moreno ELECTRÓNICA DEL AUTOMÓVIL 25/03/11
BUS CAN Y J1939

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


BUS CAN Y J1939

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)
• …

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


BUS CAN Y J1939

Bibliografía
• “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”, Atmel
2004.
• “CANbus in transport”, T. Tjiook, 2009.

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


BUS CAN Y J1939

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).

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


BUS CAN Y J1939

Bus CAN en camiones (J1939)


Enlace Enlace

Truck bus Trailer bus

Motor Transmisión Frenos Frenos Luces ABS

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

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 bytes
se 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).

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


BUS CAN Y J1939

Grupos de Parámetros

• 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.

PDU Format PDU Specific

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


BUS CAN Y J1939

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).

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


BUS CAN Y J1939

Interpretación de un identificador CAN

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


por:
PGN

Priority R. Data Page PDU Format PDU Specific Source Address

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

TOTAL: 29 bits por identificador, conteniendo el PGN

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


BUS CAN Y J1939

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)

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


BUS CAN Y J1939

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

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


BUS CAN Y J1939

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).

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


BUS CAN Y J1939

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)

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


BUS CAN Y J1939

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

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


BUS CAN Y J1939

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

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


BUS CAN Y J1939

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”).

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


BUS CAN Y J1939

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.

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


BUS CAN Y J1939

Cortesía de Scania

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


BUS CAN Y J1939

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

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