buscan protocolo sae j1939
TRANSCRIPT
DINÁMICA DE VEHÍCULOS
FERMÍN SONEIRA
BUS CAN Y J1939
Manuel Moreno
“ELECTRÓNICA DEL AUTOMÓVIL”CURSO ACADÉMICO 2010-2011
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
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
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.
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
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.
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.
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
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
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
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.
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.
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
Proceso de Arbitraje en el bus CAN
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
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.
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
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
Ejemplo de Controlador de CAN (Microchip)
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
Ejemplo de Transceiver de CAN (Philips)
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.
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.)
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
Ejemplo de un analizador de tramas de bus CAN
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
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)• …
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
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).
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
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.
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).
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
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).
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
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)
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
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).
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)
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
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
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”).
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.
BUS CAN Y J1939
Manuel Moreno 25/03/11ELECTRÓNICA DEL AUTOMÓVIL
Cortesía de Scania
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