martes, 27 de octubre de 2015

Flex Ray

Índice de Temas
-Introducción
- Generalidades
- Características destacables
- Arquitectura
-Topologías
-Topologías básicas
  * Linear passive bus
  * Topologías con Active Stars
  * Topologías híbridas
- Funcionamiento
  * Reloj
  * Bits en el bus
  * Muestreo de bits
  * Estructura
  * Sincronización del reloj
- Referencias

Introducción
Un protocolo de comunicaciones es un sistema de reglas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellas para transmitir información por medio de cualquier tipo de variación de una magnitud física.
FlexRay es un nuevo protocolo de comunicaciones para buses de datos en el automóvil desarrollado por el consorcio FlexRay entre 2000 y 2009 que acelera la transmisión de datos entre los componentes del vehículo. Se considera más avanzado que el CAN y el MOST en lo relativo al precio y a las prestaciones. Permite a diferentes sistemas ser segura y precisamente enlazados permitiendo un manejo más confortable.




Generalidades
La complejidad de los sistemas de asistencia al conductor está creciendo continuamente. Los nuevos sistemas de control de chasis y transmisión demandan velocidades de transferencia de datos extremadamente altas para funcionar efectivamente.
Para satisfacer esta creciente demanda, el consorcio FlexRay (conformado actualmente por Volkswagen, BMW, Daimler AG, General Motors, Robert Bosch GmbH, NXP Semiconductors y Freescale) desarrolló un nuevo sistema de bus que provee la seguridad, velocidad y calidad robusta demandada en aplicaciones automotrices.
Una ventaja clave de FlexRay es su alto rango de transferencia de datos de hasta 10 MBit por segundo, lo que es veinte veces más rápido que el sistema convencional de CAN Bus. Un segundo canal de comunicación de FlexRay actúa como respaldo, proporcionando redundancia para asegurar una excelente seguridad en todo momento. Si un canal falla en su correcto funcionamiento, el segundo permanece disponible. Para sistemas que no son críticos para la seguridad, un rango rápido de transferencia de datos puede lograrse por medio del uso de un solo canal.
Estas ventajas significan un mayor confort y mayor seguridad, permitiendo a los sistemas abordo comunicarse más rápida y seguramente.

BMW X5, primer vehículo comercial con tecnología FlexRay

Características destacables

  • Alta transmisión de datos (10 Mbits por segundo)
  • Comportamiento estimulado por factores temporales
  • Redundancia, seguridad y tolerancia de errores


Arquitectura
Un nodo Flexray está formado esencialmente por un microcontrolador, un periférico llamado Communication Controller, 2 transceivers y una fuente de alimentación. El microcontrolador es el propio de la ECU, el cual seguramente realiza otras funciones externas propias de la ECU y que cada cierto tiempo envía y recibe una trama de información al bus Flexray. Para ello se comunica con el Communication Controller (CC), que no es más que un periférico hardware que gestiona en todo momento el protocolo. Es decir, el microcontrolador no se encarga de la pila del protocolo, si no que lo gestiona todo el CC. Así pues, el CC se comunica a su vez con los transceivers que se encargan de transformar los datos lógicos a niveles eléctricos de Bus. Flexray dispone de 2 canales de comunicación, lo que requiere un transceiver para cada canal. Entre los diferentes bloques mencionados existen líneas optativas de señalización para determinadas situaciones.



Topologías
FlexRay permite un amplio abanico de topologías de red. El hecho de tener 2 canales independientes aporta además otro grado de libertad, pudiendo hacer para cada canal una configuración de nodos diferente.
Interconexión básica en FlexRay

En el caso que conectemos más nodos podemos hacerlo de manera pasiva o de manera activa. Otro elemento de red importante en FlexRay es el Active Star.


Interconexión básica usando Active Stars

Como se puede observar, es posible asociar el concepto de Active Star (AS) al de un hub repetidor de bus.
Así pues combinando estos elementos entre sí y para cada canal obtenemos una flexibilidad substancial de crear diferentes topologías de red, ya sean básicas o híbridas. Para cada una de ellas existen algunas limitaciones que hay que cumplir para el correcto funcionamiento del bus tales como longitud máxima del bus, número máximo de stubs, número máximo de Active Stars, etc. Estos parámetros son típicos de todos los buses y tienen como causa principal los retardos que se producen en el bus.

Topologías básicas
-Linear passive bus
Es la topología más básica y una de las más usadas. Se puede apreciar como es posible que un nodo se conecte a los dos canales (por ejemplo en el caso que este nodo representara una función crítica del sistema) mientras que otros nodos se conectan a uno de los dos canales.
Sus limitaciones son:

  • Longitud de bus de 24m
  • Número máximo de nodos conectados al bus mediante stubs: 22
  • Mínima distancia entre stubs: 15cm
Topología Linear passive bus

Cabe recalcar que existe una variante del Passive Bus que es la Passive Star la cual tiene las mismas limitaciones que el anterior. Eso sí se limita el uso de la Passive Star a un máximo de 1 ‘splice’ (empalme). La idea de la Passive Star es que todos los nodos se unen en un solo punto.

Topología Passive Star


-Topologías con Active Stars
Estas topologías hacen uso del elemento repetidor Active Star. Este elemento de bus es capaz de desacoplar eléctricamente las diferentes ramas a las cual está conectado, además de regenerar la señal aunque por otro lado introduce retardos. Se les puede dotar de cierta inteligencia consiguiendo un ruteado del mensaje, todo y que esto acumularía aún más retardo. También pueden desconectar una rama de la red si detectan un mal funcionamiento. Las limitaciones en este caso son:

  • Distancia máxima de un nodo al Active Star de 24m
  • Longitud máxima entre dos AS de 24m
  • Número máximo de AS en cascada: 2
Topología clásica con Active Stars

Topología custom con Active Stars


-Topologías híbridas
Es posible crear una red a base de la unión de topologías básicas, todo y que no es muy recomendable ya que son topologías no estándar y poco probadas. En estos casos, las limitaciones son una mezcla de las topologías básicas que entrañe. La gran ventaja de estas topologías es su versatilidad.
Topología híbrida


Funcionamiento
Reloj
Como se mencionó anteriormente, el sistema FlexRay consiste de un bus y procesadores, que son los "cerebros" de las centralitas electrónicas. Cada centralita tiene un reloj independiente. La desviación del reloj no puede ser más de 0,15% del reloj de referencia, de forma que la diferencia de tics entre el reloj más lento y el más rápido no puede ser más de 0,3%. En otras palabras, 300 ciclos de una centralita emisora pueden ser 299 ó 301 de una centralita receptora. Los relojes se reajustan frecuentemente (cada 300 ciclos) para evitar problemas de desfase. Sus unidades de tiempo son:


  • Microtick: Unidad de tiempo básica dependiente el oscilador local de cada nodo. 
  • Macrotick: Unidad de tiempo básica de la red. Todos los nodos tienen el mismo valor de Macrotick. Así pues si dos nodos tienen un oscilador local diferente tendrán diferente número de microticks por macrotick, pero al final el valor de macrotick será el mismo para todos.
  • Cycle (ciclo): Es una unidad de tiempo propia de la red y es el tiempo del ciclo de comunicación medido en macroticks.


Bits en el Bus
En cada momento solo una centralita emite en el bus. Cada bit se mantiene en el bus durante 8 ciclos de reloj. Cada receptor contiene un búfer de los 5 últimos ciclos. Errores de transmisión en un único ciclo pueden afectar los resultados de los bits fronterizos, pero no en el centro de un ciclo de 8 bits.

Muestreo de bits
El valor del bit se muestrea en el centro de una región de 8 bits. Los errores se desplazan a los ciclos extremos, y el reloj se sincroniza frecuentemente para evitar desfases.


000000111111110000
000000001111111100
Desviación de 2 ciclos en situaciones libres de errores.
000000111101110000
000000001111111100
Los errores en las cercanías del centro en un ciclo de 8 se cancelan.
00010111111110000
00000011111111100
Los errores junto a los bordes de un ciclo de 8 pueden afectar al bit fronterizo.


Estructura
Toda la comunicación se envía en estructuras soporte (o frames). Un mensaje consiste en bytes empaquetados de la siguiente forma:

  • Señal de inicio de transmisión (Transmission Start Signal, TSS) - bit 0 
  • Señal de inicio de la estructura (Frame Start Signal, FSS) - bit 1 
  • "m" veces: 
    • Señal de inicio de byte 0 (BSS0) - bit 1 
    • Señal de inicio de byte 1 (BSS1) - bit 0 
    • 0-ésimo bit del i- byte 
    • 1. bit del i-ésimo byte 
    • 2. bit del i-ésimo byte 
    • ... 
    • 7. bit del i-ésimo byte 
  • Señal de fin de la estructura (FES) - bit 0 
  • Señal de fin de la transmisión (TES) - bit 1 
Si no hay ningún mensaje en el bus, el valor es igual a 1 (voltaje alto), de forma que cada receptor sabe que la comunicación comienza cuando el voltaje cambia a 0. El receptor sabe si el mensaje es completo comprobando que o BSS0 (1) o FES (0) han sido recibidos. Hay que destacar que un ciclo de 8 por bit no tiene nada que ver con bytes. Se necesitan 80 ciclos para transmitir un solo byte, 16 para BSS0 y BSS1 así como 64 para sus bits. Igualmente, BSS0 siempre tiene el valor 0 y BSS1 el valor 1.




Sincronización del reloj
Los relojes se vuelven a sincronizar cuando la señal votada cambia de 1 a 0, si el receptor estaba en el estado de espera o aguardando BSS1. De esta forma el reloj se sincroniza cuando la transmisión comienza y entre un BSS0 y un BSS1. Como la sincronización se hace con la señal deseada, puede que pequeños errores de transmisión que afecten a los bits fronterizos distorsionen la sincronización, pero no más de un ciclo. Ya que hay, como mucho, 88 ciclos entre sincronizaciones (BSS1, 8 bits del último byte, FES y TES - 11 bits de 8 ciclos cada uno), y el desfase del reloj no es más de 1 en 300 ciclos, el desfase puede distorsionar el reloj como mucho un ciclo. Pequeños errores de transmisión durante la recepción solo pueden afectar a los bits fronterizos. De forma que, en el peor de los casos, los dos bits centrales son correctos y con ello el valor muestreado es correcto. Aquí se muestra un ejemplo de un caso especialmente desfavorable - un error durante sincronización, un ciclo perdido debido a un desfase y un error de transmisión. Errores que se producen en el ejemplo:

  • Debido a un error de un solo bit durante la sincronización, la sincronización se demoró un ciclo. 
  • El reloj receptor fue más lento que el reloj emisor, de forma que el receptor no recibió un ciclo (marcado como X). Esto no pasará de nuevo hasta la próxima sincronización gracias a los límites máximos permitidos para la demora de un reloj. 
  • Debido a un error de un solo bit durante la transmisión, un bit se votó mal junto al resultado. 
Aun así, a pesar de todos estos errores, la comunicación se recibió correctamente. Las células verdes son puntos de muestreo. Todos, a excepción del primero, son sincronizados por el borde 1->0 mostrada en el fragmento de transmisión.


Señal a enviar10101
Señal enviada1111111100000000111111110000000011
En el bus1111111101000000111111110000001011
Recibido1111111101000000111111X10000001011
votados11111111100000001111X11100000001


Referencias
-https://es.wikipedia.org/wiki/Protocolo_de_comunicaciones
-https://es.wikipedia.org/wiki/FlexRay
-http://www.bmw.com/com/en/insights/technology/technology_guide/articles/flex_ray.html
-http://www.tomshardware.com/news/flexray-2007-bmw-x5,3263.html
http://upcommons.upc.edu/bitstream/handle/2099.1/6115/2.%20El%20protocolo%20Flexray.pdf?sequence=4&isAllowed=y
-https://www.youtube.com/watch?v=IRl3vzLyGP8

No hay comentarios:

Publicar un comentario