FlexRay és un protocol de comunicacions de xarxa d'automoció desenvolupat pel Consorci FlexRay per governar la informàtica a bord de l'automòbil. Està dissenyat per ser més ràpid i més fiable que CAN i TTP, però també és més car. El consorci FlexRay es va dissoldre el 2009, però l'estàndard FlexRay és ara un conjunt d'estàndards ISO, ISO 17458-1 a 17458-5.[1]
FlexRay és un bus de comunicació dissenyat per garantir altes taxes de dades, tolerància a errors, operar en un cicle de temps, dividit en segments estàtics i dinàmics per a comunicacions activades per esdeveniments i per temps.
FlexRay admet velocitats de dades de fins a 10 Mbit/s, admet explícitament topologies físiques d'estrella i de bus, i pot tenir dos canals de dades independents per a la tolerància a errors (la comunicació pot continuar amb un ample de banda reduït si un canal no funciona). L'autobús funciona en un cicle de temps, dividit en dues parts: el segment estàtic i el segment dinàmic. El segment estàtic està preassignat en seccions per a tipus de comunicació individuals, proporcionant un determinisme més fort que el seu predecessor CAN. El segment dinàmic funciona més com CAN, amb els nodes que prenen el control del bus segons estigui disponible, permetent un comportament desencadenat per esdeveniments.[2]
El Consorci FlexRay estava format pels membres principals següents:
També hi havia membres associats i associats Premium del consorci FlexRay. Al setembre de 2009, hi havia 28 membres associats premium i més de 60 membres associats. A finals de 2009, el consorci es va dissoldre.
El primer vehicle de producció en sèrie amb FlexRay va ser a finals de 2006 en el BMW X5 (E70),[3] permetent un nou i ràpid sistema d'amortiment adaptatiu. L'ús complet de FlexRay es va introduir el 2008 al nou BMW Sèrie 7 (F01).
El sistema FlexRay consta d'un bus i ECU (Unitat de control electrònica). Cada ECU té un rellotge independent. La deriva del rellotge no ha de ser superior al 0,15% del rellotge de referència, de manera que la diferència entre el rellotge més lent i el més ràpid del sistema no és superior al 0,3%.
Això vol dir que, si ECU-s és un emissor i ECU-r és un receptor, llavors per cada 300 cicles de l'emissor hi haurà entre 299 i 301 cicles del receptor. Els rellotges es resincronitzen amb prou freqüència per assegurar-se que això no causa problemes. El rellotge s'envia al segment estàtic.[4]
En cada moment, només una ECU escriu al bus. Cada bit a enviar es manté al bus durant 8 cicles de rellotge de mostra. El receptor manté un buffer de les 5 últimes mostres i utilitza la majoria de les 5 últimes mostres com a senyal d'entrada.
Els errors de transmissió d'un sol cicle poden afectar els resultats a prop del límit dels bits, però no afectaran els cicles a la meitat de la regió de 8 cicles.
El valor del bit es mostra al mig de la regió de 8 bits. Els errors es traslladen als cicles extrems i el rellotge es sincronitza amb prou freqüència perquè la deriva sigui petita. (La deriva és menor que 1 cicle per 300 cicles i durant la transmissió el rellotge es sincronitza més d'una vegada cada 300 cicles).
Tota la comunicació s'envia en forma de frames. El missatge consta de bytes , empaquetat de la següent manera: