Í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.
-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.
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.
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.
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:
-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:
-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.
Funcionamiento
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.
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.
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.
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
Desviación de 2 ciclos en situaciones libres de errores.
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
Los errores en las cercanías del centro en un ciclo de 8 se cancelan.
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
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
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.
Señal a enviar | 1 | 0 | 1 | 0 | 1 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Señal enviada | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
En el bus | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
Recibido | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
votados | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | X | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
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
-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