Descripción general del bus de comunicación automotriz FlexRay

Información general

El bus de comunicaciones FlexRay es un sistema de bus determinista, tolerante a fallos y de alta velocidad desarrollado en conjunto con fabricantes de automóviles y proveedores líderes. FlexRay ofrece los requisitos de tolerancia a errores y rendimiento de tiempo-determinismo para aplicaciones x-by-wire (es decir, drive-by-wire, steer-by-wire, brake-by-wire, etc.). Este artículo cubre los conceptos básicos FlexRay.

Contenido

Demandas crecientes de comunicaciones

Para que los automóviles sigan mejorando la seguridad, aumentando el rendimiento, reduciendo el impacto medioambiental y mejorando el confort, deben aumentar la velocidad, la cantidad y la fiabilidad de los datos comunicados entre las unidades de control electrónico (ECU) de un automóvil.  Los sistemas avanzados de control y seguridad, que combinan múltiples sensores, actuadores y unidades de control electrónico, están comenzando a requerir sincronización y rendimiento más allá de lo que el estándar existente, Controller Area Network (CAN), puede proporcionar.  Junto con los crecientes requisitos de ancho de banda con los vehículos avanzados de hoy en día utilizan más de cinco buses CAN separados, los ingenieros automotrices exigen una red integrada de próxima generación.  Después de años de asociación con OEM, proveedores de herramientas y usuarios finales, el estándar FlexRay ha surgido como el bus de comunicaciones dentro del vehículo para enfrentar estos nuevos desafíos en la próxima generación de vehículos.

La adopción de un nuevo estándar de redes en diseños complejos incrustados como automóviles lleva tiempo.  Aunque FlexRay resolverá los desafíos actuales de gama alta y futuros de la red integrada en los vehículos, no desplazará a los otros dos estándares dominantes en los vehículos, CAN y LIN.  Con el fin de optimizar los costes y reducir los desafíos de transición, la próxima generación de automóviles contendrá FlexRay para aplicaciones de gama alta, CAN para comunicaciones de tren motriz convencionales y LIN para electrónica de carrocería de bajo coste. 

BusLINCANFlexRay
Velocidad40 kbit/s1 Mbit/s10 Mbit/s
Costo$$$$$$
Cables122 o 4
Aplicaciones típicasElectrónica corporal (Espejos, asientos eléctricos, accesorios)Tren motriz (motor, transmisión, ABS)Tren motriz de alto rendimiento, seguridad (conducción por cable, suspensión activa, control de crucero adaptativo)

Comprender cómo funciona FlexRay es importante para los ingenieros en todos los aspectos del diseño y proceso de producción del vehículo.  Este artículo explicará los conceptos básicos de FlexRay.

Fundamentos de FlexRay

Muchos aspectos de FlexRay están diseñados para mantener bajos los costos y ofrecer el mejor rendimiento en un entorno resistente.  FlexRay utiliza cableado de pares trenzados sin blindaje para conectar los nodos entre sí.  FlexRay admite configuraciones de canal único y doble que consisten en uno o dos pares de cables, respectivamente.  La señalización diferencial en cada par de cables reduce los efectos del ruido externo en la red sin un blindaje costoso.  La mayoría de los nodos FlexRay también tienen cables de alimentación y tierra disponibles para alimentar transceptores y microprocesadores.

Las configuraciones de doble canal ofrecen tolerancia a fallos mejorada y/o mayor ancho de banda.  La mayoría de las redes FlexRay de primera generación solo utilizan un canal para mantener bajos los costos de cableado, pero a medida que las aplicaciones aumenten en complejidad y requisitos de seguridad, las redes futuras utilizarán ambos canales. 

Los buses FlexRay requieren terminación en los extremos, en forma de una resistencia conectada entre el par de cables de señal.  Solo los nodos finales en un bus multi-drop necesitan terminación. Demasiada o muy poca terminación puede romper una red FlexRay.  Mientras que las implementaciones de red específicas varían, las redes FlexRay típicas tienen una impedancia de cableado entre 80 y 110 ohmios, y los nodos finales se terminan para coincidir con esta impedancia. La terminación es una de las causas más frecuentes de frustración al conectar un nodo FlexRay a una configuración de prueba. Las modernas interfaces FlexRay basadas en PC pueden contener resistencias de terminación integradas para simplificar el cableado.  

Topología y diseño de FlexRay

Una de las cosas que distingue FlexRay, CAN y LIN de las redes más tradicionales como ethernet es su topología, o disposición de red. FlexRay admite conexiones pasivas simples de múltiples caídas, así como conexiones en estrella activas para redes más complejas. Dependiendo de la disposición del vehículo y del nivel de uso de FlexRay, seleccionar la topología correcta ayuda a los diseñadores a optimizar el costo, el rendimiento y la confiabilidad para un diseño determinado. 

Autobús de varias caídas

FlexRay se utiliza comúnmente en una topología de buses de múltiples caídas simple que cuenta con un solo recorrido de cable de red que conecta varias ECU entre sí.  Esta es la misma topología utilizada por CAN y LIN y es familiar para los OEM, por lo que es una topología popular en vehículos FlexRay de primera generación.  Cada ECU puede "ramificarse" hasta una pequeña distancia del núcleo "troncal" del autobús. Los extremos de la red tienen instaladas resistencias de terminación que eliminan problemas con las reflexiones de señales.  Debido a que FlexRay opera a altas frecuencias, hasta 10 Mbit/s en comparación con 1 Mbit de CAN, los diseñadores de FlexRay se preocupan mucho de terminar y presentar correctamente las redes para evitar problemas de integridad de la señal.  El formato de múltiples gotas también encaja perfectamente con los arneses del vehículo que comúnmente comparten un tipo de disposición similar, simplificando la instalación y reduciendo el cableado en todo el vehículo. 

Star Network

El estándar FlexRay admite configuraciones "Star" que consisten en enlaces individuales que se conectan a un nodo activo central.  Este nodo es funcionalmente similar a un concentrador que se encuentra en redes ethernet de PC.  La configuración en estrella activa permite ejecutar redes FlexRay a distancias más largas o segmentar la red de tal manera que sea más confiable en caso de que una parte de la red falle. Si una de las ramas de la estrella se corta o se cortocircuita, las otras patas continúan funcionando.  Dado que los largos recorridos de cables tienden a conducir más ruido ambiental, como las emisiones electromagnéticas de los grandes motores eléctricos, el uso de múltiples patas reduce la cantidad de cable expuesto para un segmento y puede ayudar a aumentar la inmunidad al ruido.  

Red híbrida

Las topologías de bus y estrella se pueden combinar para formar una topología híbrida. Las futuras redes FlexRay probablemente consistirán en redes híbridas para aprovechar la facilidad de uso y las ventajas de costo de la topología de autobús, al tiempo que se aplica el rendimiento y la confiabilidad de las redes en estrella cuando sea necesario en un vehículo. 

 

 

Protocolo FlexRay

El protocolo FlexRay es un protocolo único activado en el tiempo que proporciona opciones para datos deterministas que llegan en un marco de tiempo predecible (hasta el microsegundo), así como datos dinámicos dirigidos por eventos similares a CAN para manejar una gran variedad de marcos. FlexRay logra este híbrido de tramas estáticas centrales y tramas dinámicas con un ciclo de comunicación preestablecido que proporciona un espacio predefinido para datos estáticos y dinámicos. Este espacio está configurado con la red por el diseñador de la red.   Mientras que los nodos CAN solo necesitaban saber la velocidad de transmisión correcta para comunicarse, los nodos en una red FlexRay deben saber cómo están configurados todos los elementos de la red para comunicarse.   

Al igual que con cualquier bus multi-drop, solo un nodo puede escribir datos eléctricamente en el bus a la vez.  Si dos nodos escribieran al mismo tiempo, terminaría contendiendo en el bus y los datos se corromperían.  Hay una variedad de esquemas utilizados para evitar la contienda en un autobús. CAN, por ejemplo, utilizó un esquema de arbitraje donde los nodos cederán a otros nodos si ven un mensaje con mayor prioridad siendo enviado en un bus.  Si bien es flexible y fácil de ampliar, esta técnica no permite velocidades de datos muy altas y no puede garantizar la entrega oportuna de datos.   FlexRay administra múltiples nodos con un esquema de acceso múltiple por división de tiempo o TDMA. Cada nodo FlexRay está sincronizado con el mismo reloj, y cada nodo espera su turno para escribir en el bus.  Debido a que el tiempo es consistente en un esquema TDMA, FlexRay es capaz de garantizar el determinismo o la consistencia de la entrega de datos a los nodos en la red. Esto proporciona muchas ventajas para los sistemas que dependen de datos actualizados entre nodos. 

Las redes integradas son diferentes de las redes basadas en PC en que tienen una configuración cerrada y no cambian una vez que se ensamblan en el producto de producción.  Esto elimina la necesidad de mecanismos adicionales para descubrir y configurar automáticamente dispositivos en tiempo de ejecución, al igual que un PC cuando se une a una nueva red cableada o inalámbrica.  Al diseñar configuraciones de red con anticipación, los diseñadores de red ahorran costos significativos y aumentan la confiabilidad de la red.  

Para que una red TDMA como FlexRay funcione correctamente, todos los nodos deben configurarse correctamente.  El estándar FlexRay es adaptable a muchos tipos diferentes de redes y permite a los diseñadores de redes hacer concesiones entre las velocidades de actualización de la red, el volumen de datos determinista y el volumen de datos dinámico, entre otros parámetros.  Cada red FlexRay puede ser diferente, por lo que cada nodo debe programarse con parámetros de red correctos antes de que pueda participar en el bus.   

Para facilitar el mantenimiento de configuraciones de red entre nodos, el comité FlexRay estandarizó un formato para el almacenamiento y transferencia de estos parámetros en el proceso de ingeniería.  El Field Bus Exchange Format o archivo FIBEX es un estándar definido por ASAM que permite a los diseñadores de redes, prototipos, validadores y probadores compartir fácilmente los parámetros de red y configurar rápidamente ECU, herramientas de prueba, sistemas de simulación de hardware en bucle, etc. para facilitar el acceso al bus. 

El ciclo de comunicación

El ciclo de comunicación FlexRay es el elemento fundamental del esquema de acceso a los medios dentro de FlexRay. La duración de un ciclo se fija cuando se diseña la red, pero normalmente es de alrededor de 1-5 ms.  Hay cuatro partes principales en un ciclo de comunicación: 

 
Figura 1: Ciclo de comunicación

  1. Segmento estático
    Ranuras reservadas para datos deterministas que llegan a un período fijo. 
  2. Segmento dinámico
    El segmento dinámico se comporta de manera similar a CAN y se utiliza para una variedad más amplia de datos basados en eventos que no requieren determinismo. 
  3. Ventana de símbolo
    Normalmente se utiliza para el mantenimiento de la red y la señalización para iniciar la red. 
  4. Tiempo inactivo de red
    Tiempo "tranquilo" conocido utilizado para mantener la sincronización entre los relojes de nodo.

 

Figura 2: Detalle del macrotick FlexRay

La unidad de tiempo práctica más pequeña en una red FlexRay es un macrotick. Los controladores FlexRay se sincronizan activamente y ajustan sus relojes locales para que el macrotick se produzca en el mismo momento en todos los nodos de la red. Aunque configurables para una red en particular, los macroticks suelen durar 1 microsegundo.  Debido a que el macrotick está sincronizado, los datos que dependen de él también están sincronizados. 

1. Segmento estático

Figura 3: Ilustración de un segmento estático con 3 ECU que transmite datos a 4 intervalos reservados.

El segmento estático, representado como la porción azul de la trama, es el espacio en el ciclo dedicado a programar una serie de tramas activadas en el tiempo.  El segmento se divide en ranuras, cada ranura contiene una trama reservada de datos.  Cuando cada intervalo se produce en el tiempo, la ECU reservada tiene la oportunidad de transmitir sus datos a ese intervalo. Una vez transcurrido ese tiempo, el ecu debe esperar hasta el siguiente ciclo para transmitir sus datos en esa franja.  Debido a que el punto exacto en el tiempo se conoce en el ciclo, los datos son deterministas y los programas saben exactamente la antigüedad de los datos. Esto es extremadamente útil cuando se calculan bucles de control que dependen de datos espaciados consistentemente.  La figura 3 ilustra una red simple con cuatro ranuras estáticas utilizadas por tres ECU. Las redes FlexRay reales pueden contener hasta varias docenas de ranuras estáticas.  

 

Figura 4: Ilustración de una ranura estática con ECU #2 ausente.

Si una ECU se desconecta o decide no transmitir datos, su intervalo permanece abierto y no es utilizado por ninguna otra ECU, como se muestra en la figura 4. 

2. Segmento dinámico

Figura 5: Ilustración de las ranuras dinámicas FlexRay con una ECU difundiendo datos.

La mayoría de las redes integradas tienen un pequeño número de mensajes de alta velocidad y un gran número de redes de menor velocidad y menos críticas.  Para acomodar una amplia variedad de datos sin ralentizar el ciclo FlexRay con un número excesivo de ranuras estáticas, el segmento dinámico permite ocasionalmente transmitir datos.  El segmento tiene una longitud fija, por lo que hay un límite de la cantidad fija de datos que se pueden colocar en el segmento dinámico por ciclo. Para priorizar los datos, se preasignan miniintervalos a cada trama de datos que puede transmitirse en el segmento dinámico.  Una miniranura es típicamente una macrotick (un microsegundo) de largo.   Los datos de prioridad más alta reciben una miniranura más cerca del comienzo de la trama dinámica.  

Una vez que se produce una miniranura, una ECU tiene una breve oportunidad de transmitir su trama.  Si no emite, pierde su lugar en el cuadro dinámico y se produce la siguiente miniranura.  Este proceso se mueve hacia abajo en las miniranuras hasta que una ECU elige emitir datos.  A medida que se difunden los datos, las futuras miniranuras deben esperar hasta que el ecu complete su difusión de datos. Si la ventana de cuadro dinámico termina, entonces las miniranuras de menor prioridad deben esperar hasta el siguiente ciclo para otra oportunidad de transmitir. 

Figura 6: Ilustración de ranuras dinámicas que muestra las emisiones de 2 y 3 ecus en sus miniranuras y no deja tiempo para las miniranuras de menor prioridad.

La figura 5 muestra la emisión de ECU #1 en su minislot ya que los primeros 7 minislots optaron por no emitir.  La figura 6 muestra las ECU #2 y #3 utilizando las dos primeras miniranuras, sin dejar tiempo para que la ECU #1 transmita.  ECU #1 debe esperar al próximo ciclo para emitir. 

El resultado final del segmento dinámico es un esquema similar al esquema de arbitraje utilizado por CAN.

3. Ventana de símbolo

La ventana Símbolo se utiliza principalmente para el mantenimiento y la identificación de ciclos especiales como los ciclos de arranque en frío.  La mayoría de las aplicaciones de alto nivel no interactúan con la ventana de símbolos. 

4. Tiempo inactivo de red

El tiempo de inactividad de la red es de una longitud predefinida y conocida por ECUS.  Los ecus aprovechan este tiempo de inactividad para hacer ajustes en función de cualquier deriva que se haya producido durante el ciclo anterior.  

Seguridad de datos y gestión de errores

La red FlexRay proporciona tolerancia a fallos escalable al permitir la comunicación de canal único o dual. Para aplicaciones críticas de seguridad, los dispositivos conectados al bus pueden utilizar ambos canales para transferir datos. Sin embargo, también es posible conectar solo un canal cuando no se necesita redundancia, o aumentar el ancho de banda utilizando ambos canales para transferir datos no redundantes.

Dentro de la capa física, FlexRay proporciona detección y señalización de errores rápida, así como contención de errores a través de un Guardián de Bus independiente. El Guardián de bus es un mecanismo en la capa física que protege un canal de interferencias causadas por comunicaciones que no están alineadas con el horario de comunicación del clúster.

Formato de marco

Figura 7 Detalle de un marco FlexRay
Cada ranura de un segmento estático o dinámico contiene un FlexRay Frame. El marco se divide en tres segmentos: Cabecera, carga útil y remolque.

Encabezado

Figura 8: Desglose a nivel de bits de una trama FlexRay

La cabecera tiene una longitud de 5 bytes (40 bits) e incluye los siguientes campos: 

  1. Bits de estado - 5 bits
  2. ID de trama - 11 bits
  3. Longitud de carga útil - 7 bits
  4. Cabecera CRC - 11 bits
  5. Cuenta de ciclos - 6 bits

El ID de trama define el intervalo en el que se debe transmitir la trama y se utiliza para priorizar tramas activadas por eventos. La longitud de la carga útil contiene el número de palabras que se transfieren en el marco. El Header CRC se utiliza para detectar errores durante la transferencia. El recuento de ciclos contiene el valor de un contador que avanza incrementalmente cada vez que se inicia un ciclo de comunicación.

Carga útil

Figura 9 Carga útil de un marco FlexRay.

La carga útil contiene los datos reales transferidos por la trama. La longitud de la carga útil o trama de datos FlexRay es de hasta 127 palabras (254 bytes), lo que es más de 30 veces mayor en comparación con CAN.

Trailer

Figura 10: Trailer de un FlexRay Frame.

El remolque contiene tres CRC de 8 bits para detectar errores.

Señales

Figura 11: Conversión de trama a señal

Los datos FlexRay se representan en bytes.  La mayoría de las aplicaciones requieren que los datos se representen en valores decimales reales con unidades, escala y límites.  Cuando toma uno o más bits o bytes de una trama FlexRay, aplica un escalado y un desplazamiento, obtiene una señal que es útil para comunicar parámetros reales entre ECU.  La mayoría de los programas de ECU trabajan con datos FlexRay como señales y dejan la conversión de señales a datos de trama sin procesar al controlador o protocolos de comunicación de nivel inferior. 

Un vehículo típico tiene cientos a miles de señales.  Como el escalado, el desplazamiento, las definiciones y las ubicaciones de estas señales pueden cambiar, las redes FlexRay almacenan estas definiciones en la base de datos FIBEX que define la red. Esto facilita la escritura de programas para redes FlexRay, ya que los diseñadores simplemente pueden referirse al nombre de la señal en el código. El compilador o controlador extrae la información de escala y compensación más reciente cuando el programa se actualiza a la ECU o al sistema de prueba. 

Sincronización del reloj y arranque en frío

Figura 12 Proceso de sincronización simplificado de una red FlexRay

FlexRay tiene la capacidad única de sincronizar nodos en una red sin una señal de reloj de sincronización externa.  Para ello, utiliza 2 tipos especiales de marcos: Marcos de inicio y marcos de sincronización.  Para iniciar un clúster FlexRay, se requieren al menos 2 nodos diferentes para enviar marcos de inicio.  La acción de iniciar el bus FlexRay se conoce como inicio en frío y los nodos que envían las tramas de inicio se conocen generalmente como nodos de inicio en frío.  Las tramas de inicio son análogas a un activador de inicio, que indica a todos los nodos de la red que se inicien.  

Una vez iniciada la red, todos los nodos deben sincronizar sus osciladores internos con el macrotick de la red.  Esto se puede hacer usando dos nodos de sincronización más.  Estos pueden ser dos nodos independientes en la red que se predesignaron para emitir tramas de sincronización especiales cuando se encienden por primera vez.  Otros nodos de la red esperan a que se emitan las tramas de sincronización y miden el tiempo entre emisiones sucesivas para calibrar sus relojes internos a la hora FlexRay. Las tramas de sincronización se designan en la configuración FIBEX para la red. 

Una vez que la red está sincronizada y en línea, se mide el tiempo de inactividad de la red (espacio en blanco en el diagrama) y se utiliza para ajustar los relojes de ciclo en ciclo para mantener una sincronización estrecha.  

Control en ciclo

Figura 13: Control en ciclo que lee 4 posiciones de rueda y actualiza la salida del control del vehículo en un solo ciclo FlexRay.

Una característica avanzada de FlexRay es la capacidad de hacer control en el ciclo.  La figura 13 ilustra un ejemplo en el que se emiten cuatro posiciones de rueda en las ranuras estáticas del cuadro. Debido a que las posiciones de las ruedas ocurren antes del comando de actualización final del controlador central #5, el controlador tiene tiempo para procesar y hacer una salida rápida dentro del mismo ciclo de comunicación.  Esto permite obtener velocidades de control muy altas en una red FlexRay. 

FIBEX - La base de datos de red FlexRay

El formato FIeld Bus EXchange (FIBEX), un formato de archivo estandarizado basado en XML definido por el consorcio ASAM, se utiliza para describir redes automotrices. Si bien es el formato estándar para redes FlexRay, el formato de base de datos FIBEX es compatible con muchos protocolos automotrices diferentes, lo que lo convierte en un estándar flexible. Las bases de datos FIBEX son generadas normalmente por diseñadores de redes de vehículos y compartidas con ingenieros que trabajan en un aspecto particular del vehículo. Con un archivo FIBEX y una interfaz de PC o ECU que lo admite, puede interactuar fácilmente con una red de vehículos sin tener que configurar manualmente interfaces y definiciones de señal. 

FIBEX contiene muchos aspectos para una red en particular, incluyendo los siguientes: 

  • Transmitir y recibir horarios
  • Definiciones de marco
  • Definiciones de señal
  • Codificación de señales a nivel de bits
  • Topología de la red
  • Información en ecus
  • Configuraciones de red, incluyendo velocidades de baudios y tiempos

Para obtener más información sobre FIBEX, consulte el artículo Introducción a FIBEX.

Interfaces PCI y PXI FlexRay

National Instruments ofrece interfaces PCI y PXI FlexRay de alto rendimiento para conectar PC a redes FlexRay.  Con una interfaz basada en PC, puede realizar muchas tareas de ingeniería en una ECU habilitada para FlexRay, incluyendo: 

  • Rápida generación de prototipos
  • Simulación de hardware en bucle
  • Registro y depuración de buses
  • Adquisición de datos de señal
  • Diagnostico del sistema
  • Aplicaciones personalizadas

Para obtener más información sobre las interfaces NI-XNET FlexRay, consulte la Introducción a la plataforma NI-XNET FlexRay.

 

 Conclusión

La red de comunicaciones FlexRay ofrece los requisitos deterministas, tolerantes a fallos y de rendimiento del sistema de autobuses de alta velocidad para la próxima generación de automóviles.

Enlaces relacionados: