Pour que les automobiles continuent d'améliorer la sécurité, les performances, l'impact sur l'environnement et le confort, la vitesse, la quantité et la fiabilité des données communiquées entre les unités de contrôle électronique (ECU) d'une voiture doivent augmenter. Les systèmes avancés de contrôle et de sécurité, combinant plusieurs capteurs, actionneurs et unités de contrôle électronique, commencent à nécessiter une synchronisation et des performances supérieures à ce que la norme existante, Controller Area Network (CAN), peut fournir. Associés aux exigences croissantes de bande passante avec les véhicules avancés d'aujourd'hui utilisant plus de cinq bus CAN distincts, les ingénieurs automobiles exigent un réseau embarqué de nouvelle génération. Après des années de partenariat avec les équipementiers, les fournisseurs d’outils et les utilisateurs finaux, la norme FlexRay s’est imposée comme le bus de communication embarqué pour relever ces nouveaux défis dans la prochaine génération de véhicules.
L’adoption d’une nouvelle norme de réseau dans les conceptions embarquées complexes comme les automobiles prend du temps. Bien que FlexRay résoudra les défis actuels et futurs du réseau embarqué grand public, il ne remplacera pas les deux autres normes embarquées dominantes, CAN et LIN. Afin d’optimiser les coûts et de réduire les défis de transition, la prochaine génération d’automobiles contiendra FlexRay pour les applications haut de gamme, CAN pour les communications de groupe motopropulseur grand public et LIN pour l’électronique de carrosserie à faible coût.
| Bus | LIN | CAN | FlexRay |
| Rapidité | 40 kbit/s | 1 Mbit/s | 10 Mbit/s |
| Coût | $ | $$ | $$$ |
| Fils de liaison | 1 | 2 | 2 ou 4 |
| Applications typiques | Électronique de carrosserie (miroirs, sièges électriques, accessoires) | Groupe motopropulseur (moteur, transmission, ABS) | Groupe motopropulseur hautes performances, sécurité (commande par fil, suspension active, régulateur de vitesse adaptatif) |
Il est important pour les ingénieurs de comprendre le fonctionnement de FlexRay dans tous les aspects du processus de conception et de production des véhicules. Cet article explique les concepts fondamentaux de FlexRay.
De nombreux aspects de FlexRay sont conçus pour réduire les coûts tout en offrant des performances optimales dans un environnement durci. FlexRay utilise un câblage à paires torsadées non blindé pour connecter les nœuds entre eux. FlexRay prend en charge les configurations monovoie et double voie qui consistent respectivement en une ou deux paires de fils de liaison. La signalisation différentielle sur chaque paire de fils réduit les effets du bruit externe sur le réseau sans blindage coûteux. La plupart des nœuds FlexRay ont généralement aussi des fils d'alimentation et de masse disponibles pour les émetteurs-récepteurs de puissance et les microprocesseurs.
Les configurations à deux voies offrent une tolérance accrue aux pannes et/ou une bande passante accrue. La plupart des réseaux FlexRay de première génération n’utilisent qu’une voie pour réduire les coûts de câblage, mais à mesure que les applications augmentent en complexité et en exigences de sécurité, les futurs réseaux utiliseront les deux voies.
Les bus FlexRay nécessitent une terminaison aux extrémités, sous la forme d'une résistance connectée entre les deux fils de signaux. Seuls les nœuds d'extrémité sur un bus de dépôts multiples doivent être terminés. Trop ou trop peu de terminaisons peuvent briser un réseau FlexRay. Bien que les implémentations réseau spécifiques varient, les réseaux FlexRay typiques ont une impédance de câblage comprise entre 80 et 110 ohms, et les nœuds d'extrémité sont terminés pour correspondre à cette impédance. La terminaison est l’une des causes les plus fréquentes de frustration lors de la connexion d’un nœud FlexRay à une configuration de test. Les interfaces FlexRay modernes sur PC peuvent contenir des résistances de terminaison embarquées pour simplifier le câblage.
Une des choses qui distinguent FlexRay, CAN et LIN des réseaux plus traditionnels tels que Ethernet est sa topologie, ou structure de réseau. FlexRay prend en charge les connexions passives de points de raccordement multiples simples ainsi que les connexions en étoile actives pour les réseaux plus complexes. En fonction de la disposition d'un véhicule et du niveau d'utilisation de FlexRay, le choix de la topologie appropriée aide les concepteurs à optimiser les coûts, les performances et la fiabilité pour une conception donnée.
FlexRay est couramment utilisé dans une topologie de bus de dépôts multiples simple qui comprend un seul câble réseau qui connecte plusieurs ECU entre elles. Cette topologie est la même que celle utilisée par CAN et LIN et est familière aux OEM, ce qui en fait une topologie populaire dans les véhicules FlexRay de première génération. Chaque ECU peut "brancher" jusqu'à une petite distance du "tronc" central du bus. Les extrémités du réseau ont des résistances de terminaison installées qui éliminent les problèmes de réflexion du signal. Étant donné que FlexRay fonctionne à des fréquences élevées, jusqu'à 10 Mbit/s par rapport à 1 Mbit CAN, les concepteurs de FlexRay prennent grand soin de terminer et d'agencer correctement les réseaux pour éviter les problèmes d'intégrité du signal. Le format multi-gouttes s’adapte également parfaitement aux harnais de véhicule qui partagent généralement un type de disposition similaire, simplifiant l’installation et réduisant le câblage dans tout le véhicule.
La norme FlexRay supporte les configurations "Star" qui consistent en des liens individuels connectés à un nœud actif central. Ce nœud est fonctionnellement semblable à un concentrateur trouvé dans les réseaux Ethernet PC. La configuration active en étoile permet d'exécuter des réseaux FlexRay sur de plus longues distances ou de segmenter le réseau de manière à le rendre plus fiable en cas de défaillance d'une partie du réseau. Si une des branches de l'étoile est coupée ou court-circuitée, les autres branches continuent à fonctionner. Étant donné que les longues séries de fils ont tendance à conduire plus de bruit environnemental, comme les émissions électromagnétiques des grands moteurs électriques, l’utilisation de plusieurs branches réduit la quantité de fils exposés pour un segment et peut aider à augmenter l’immunité au bruit.
Les topologies bus et étoile peuvent être combinées pour former une topologie hybride. Les futurs réseaux FlexRay seront probablement constitués de réseaux hybrides afin de tirer parti de la convivialité et des avantages économiques de la topologie du bus tout en appliquant les performances et la fiabilité des réseaux en étoile là où cela est nécessaire dans un véhicule.
Le protocole FlexRay est un protocole à déclenchement temporel unique qui fournit des options de données déterministes qui arrivent dans un laps de temps prévisible (jusqu’à la microseconde) ainsi que des données événementielles dynamiques de type CAN pour gérer une grande variété de trames. FlexRay réalise cet hybride de trames statiques de base et de trames dynamiques avec un cycle de communication prédéfini qui fournit un espace prédéfini pour les données statiques et dynamiques. Cet espace est configuré avec le réseau par le concepteur du réseau. Alors que les nœuds CAN devaient seulement connaître le débit en bauds correct pour communiquer, les nœuds d'un réseau FlexRay doivent savoir comment tous les éléments du réseau sont configurés pour communiquer.
Comme pour tout bus de dépôts multiples, un seul nœud peut écrire électriquement des données sur le bus à la fois. Si deux nœuds écrivent en même temps, vous vous retrouvez avec une dispute sur le bus et les données deviennent corrompues. Il existe une variété de schémas utilisés pour éviter les conflits sur un bus. CAN, par exemple, a utilisé un schéma d'arbitrage dans lequel les nœuds cèdent à d'autres nœuds s'ils voient un message à priorité plus élevée envoyé sur un bus. Bien que flexible et facile à étendre, cette technique ne permet pas des débits de données très élevés et ne peut pas garantir la livraison des données dans les délais impartis. FlexRay gère plusieurs nœuds avec un schéma Time Division Multiple Access ou TDMA. Chaque nœud FlexRay est synchronisé à la même horloge, et chaque nœud attend son tour pour écrire sur le bus. Comme le cadencement est cohérent dans un schéma TDMA, FlexRay est capable de garantir le déterminisme ou la cohérence de la transmission des données aux nœuds du réseau. Cela offre de nombreux avantages pour les systèmes qui dépendent de données à jour entre les nœuds.
Les réseaux embarqués sont différents des réseaux basés sur PC en ce sens qu'ils ont une configuration fermée et ne changent pas une fois qu'ils sont assemblés dans le produit de production. Cela élimine le besoin de mécanismes supplémentaires pour détecter et configurer automatiquement les périphériques à l'exécution, tout comme le fait un PC lorsqu'il rejoint un nouveau réseau filaire ou sans fil. En concevant des configurations réseau à l'avance, les concepteurs de réseaux économisent des coûts importants et augmentent la fiabilité du réseau.
Pour qu'un réseau TDMA tel que FlexRay fonctionne correctement, tous les nœuds doivent être configurés correctement. La norme FlexRay est adaptable à de nombreux types de réseaux différents et permet aux concepteurs de réseaux de faire des compromis entre les vitesses de mise à jour du réseau, le volume de données déterministe et le volume de données dynamique, entre autres paramètres. Chaque réseau FlexRay pouvant être différent, chaque nœud doit être programmé avec des paramètres réseau corrects avant de pouvoir participer sur le bus.
Pour faciliter la maintenance des configurations réseau entre les nœuds, le comité FlexRay a standardisé un format pour le stockage et le transfert de ces paramètres dans le processus d’ingénierie. Field Bus Exchange Format, ou fichier FIBEX est une norme définie par ASAM qui permet aux concepteurs de réseaux, aux prototypeurs, aux valideurs et aux testeurs de partager facilement les paramètres réseau et de configurer rapidement les ECU, les outils de test, les systèmes de simulation hardware-in-the-loop, etc. pour un accès facile au bus.
Le cycle de communication FlexRay est l'élément fondamental du système d'accès aux médias dans FlexRay. La durée d'un cycle est fixe lors de la conception du réseau, mais est généralement d'environ 1-5 ms. Un cycle de communication comporte quatre parties principales :
Figure 1 : Cycle de communication
Figure 2 : Détail de la macrotick FlexRay
La plus petite unité de temps pratique sur un réseau FlexRay est un macrotick. Les contrôleurs FlexRay se synchronisent activement et ajustent leurs horloges locales pour que la macro top se produise au même moment sur chaque nœud du réseau. Bien que configurables pour un réseau particulier, les macrotops durent souvent 1 microseconde. Comme la macrotick est synchronisée, les données qui en dépendent sont également synchronisées.
Figure 3 : Illustration d'un segment statique avec 3 ECU transmettant des données à 4 emplacements réservés.
Le segment statique, représenté comme la partie bleue de l'étape, est l'espace du cycle dédié à la planification d'un nombre d'étapes à déclenchement temporel. Le segment est divisé en emplacements, chaque emplacement contenant une trame de données réservée. Lorsque chaque emplacement se produit dans le temps, l'ECU réservée a la possibilité de transmettre ses données dans cet emplacement. Une fois ce temps écoulé, l'ECU doit attendre le cycle suivant pour transmettre ses données dans cet emplacement. Étant donné que le temps exact est connu dans le cycle, les données sont déterministes et les programmes savent exactement quel âge les données ont. Ceci est extrêmement utile pour calculer des boucles de contrôle qui dépendent de données espacées régulièrement. La figure 3 illustre un réseau simple avec quatre emplacements statiques utilisés par trois ECU. Les réseaux FlexRay réels peuvent contenir jusqu'à plusieurs dizaines d'emplacements statiques.
Figure 4 : Illustration d'un emplacement statique avec ECU #2 manquant.
Si une ECU se met hors ligne ou décide de ne pas transmettre de données, son emplacement reste ouvert et n'est utilisé par aucune autre ECU, comme le montre la figure 4.
Figure 5: Illustration des emplacements dynamiques FlexRay avec une ECU diffusant des données.
La plupart des réseaux embarqués ont un petit nombre de messages haute vitesse et un grand nombre de réseaux moins rapides et moins critiques. Pour accommoder une grande variété de données sans ralentir le cycle FlexRay avec un nombre excessif d'emplacements statiques, le segment dynamique permet de transmettre occasionnellement des données. Comme le segment est de longueur fixe, il y a une limite à la quantité fixe de données pouvant être placées dans le segment dynamique par cycle. Pour hiérarchiser les données, des mini-emplacements sont pré-attribués à chaque trame de données admissible à la transmission dans le segment dynamique. Un miniemplacement est généralement un macrotick (une microseconde) de long. Les données à priorité plus élevée reçoivent un miniemplacement plus proche du début de la trame dynamique.
Lorsqu'un miniemplacement se produit, une ECU a une brève opportunité de diffuser sa trame. S'il ne diffuse pas, il perd sa place dans la trame dynamique et le miniemplacement suivant se produit. Ce processus descend dans les miniemplacements jusqu'à ce qu'une ECU choisisse de diffuser des données. Au fur et à mesure que les données sont diffusées, les futurs mini-emplacements doivent attendre que l'ECU termine sa diffusion de données. Si la fenêtre de trame dynamique se termine, les miniemplacements à priorité inférieure doivent attendre le cycle suivant pour qu'une autre opportunité de diffusion se produise.
Figure 6 : Illustration d'emplacements dynamiques montrant les ECU 2 et 3 émettant dans leurs miniemplacements et ne laissant pas de temps pour les miniemplacements à priorité plus basse.
La figure 5 montre l'ECU n°1 émettant dans son miniemplacement puisque les 7 premiers miniemplacements ont choisi de ne pas émettre. La figure 6 montre les ECU 2 et 3 utilisant les deux premiers miniemplacements, ce qui ne laisse pas le temps à l'ECU 1 de diffuser. ECU #1 doit attendre la diffusion du cycle suivant.
Le résultat final du segment dynamique est un schéma similaire au schéma d'arbitrage utilisé par CAN.
La fenêtre Symbole est principalement utilisée pour la maintenance et l'identification de cycles spéciaux tels que les cycles de démarrage à froid. La plupart des applications de haut niveau n'interagissent pas avec la fenêtre de symboles.
Le temps d'inactivité du réseau est d'une longueur connue prédéfinie par ECU. Les ECU utilisent ce temps d'inactivité pour effectuer des ajustements pour toute dérive qui a pu se produire au cours du cycle précédent.
Le réseau FlexRay offre une tolérance de panne évolutive en permettant une communication monovoie ou bivoie. Pour les applications critiques pour la sécurité, les périphériques connectés au bus peuvent utiliser les deux voies pour transférer des données. Cependant, il est également possible de connecter une seule voie lorsque la redondance n'est pas nécessaire, ou d'augmenter la bande passante en utilisant les deux voies pour transférer des données non redondantes.
Au sein de la couche physique, FlexRay fournit une détection et une signalisation rapides des erreurs, ainsi que le confinement des erreurs via un Bus Guardian indépendant. Bus Guardian est un mécanisme sur la couche physique qui protège un conduit contre les interférences causées par une communication qui n’est pas alignée sur l’horaire de communication du cluster.
Figure 7 : Détail d'une trame FlexRay
Chaque emplacement d'un segment statique ou dynamique contient une trame FlexRay. La trame est divisée en trois segments : En-tête, charge utile et bande-annonce.
Figure 8 : Décomposition en bits d'une trame FlexRay
L'en-tête fait 5 octets (40 bits) et comprend les champs suivants :
L'ID de trame définit l'emplacement dans lequel la trame doit être transmise et est utilisé pour prioriser les trames déclenchées par événement. La longueur de charge contient le nombre de mots transférés dans l'étape. Le CRC d'en-tête est utilisé pour détecter les erreurs pendant le transfert. Le Nombre de cycles contient la valeur d'un compteur qui avance incrémentalement chaque fois qu'un Cycle de communication démarre.
Figure 9 : Charge utile d'une trame FlexRay.
La charge utile contient les données réellement transférées par la trame. La longueur de la charge utile ou de la trame de données FlexRay peut atteindre 127 mots (254 octets), ce qui est plus de 30 fois plus grand que CAN.
Figure 10 : Remorque d'une trame FlexRay.
Le trailer contient trois CRC 8 bits pour détecter les erreurs.
Figure 11 : Conversion de trame en signal
Les données FlexRay sont représentées en octets. La plupart des applications requièrent que les données soient représentées en valeurs décimales réelles avec unités, échelle et limites. Lorsque vous prenez un ou plusieurs bits ou octets d'une trame FlexRay, appliquez une mise à l'échelle et un offset, vous obtenez un signal utile pour communiquer des paramètres réels entre les ECU. La plupart des programmes ECU utilisent les données FlexRay comme signaux et laissent la conversion des signaux en données de trame brutes au driver ou aux protocoles de communication de bas niveau.
Un véhicule typique a des centaines à des milliers de signaux. Lorsque la mise à l'échelle, l'offset, les définitions et l'emplacement de ces signaux peuvent changer, les réseaux FlexRay stockent ces définitions dans la base de données FIBEX qui définit le réseau. Cela facilite l’écriture de programmes pour les réseaux FlexRay car les concepteurs peuvent simplement faire référence au nom du signal dans le code. Le compilateur ou le driver extrait ensuite les informations de mise à l'échelle et d'offset les plus récentes lorsque le programme est mis à jour vers l'ECU ou le système de test.
Figure 12 : Processus de synchronisation simplifié d'un réseau FlexRay
FlexRay a la capacité unique de synchroniser des nœuds sur un réseau sans signal d'horloge de synchronisation externe. Pour ce faire, il utilise 2 types spéciaux de trames : Trames de démarrage et trames de synchronisation. Pour démarrer un cluster FlexRay, il faut au moins 2 nœuds différents pour envoyer des trames de démarrage. L'action de démarrage du bus FlexRay est appelée démarrage à froid et les nœuds qui envoient les trames de démarrage sont généralement appelés nœuds de démarrage à froid. Les trames de démarrage sont analogues à un déclenchement de démarrage, qui indique à tous les nœuds du réseau de démarrer.
Une fois le réseau démarré, tous les nœuds doivent synchroniser leurs oscillateurs internes sur la macro top du réseau. Cela peut se faire en utilisant deux nœuds de synchronisation supplémentaires. Il peut s'agir de deux nœuds distincts sur le réseau qui ont été pré-désignés pour diffuser des trames de synchronisation spéciales à leur première activation. D'autres nœuds du réseau attendent que les trames de synchronisation soient diffusées et mesurent le temps entre deux diffusions successives afin d'étalonner leurs horloges internes au temps FlexRay. Les trames de synchronisation sont désignées dans la configuration FIBEX du réseau.
Une fois le réseau synchronisé et en ligne, le temps d'inactivité du réseau (espace blanc sur le diagramme) est mesuré et utilisé pour ajuster les horloges de cycle en cycle afin de maintenir une synchronisation étroite.
Figure 13 : Le contrôle en cours de cycle relève les 4 positions des roues et met à jour une sortie de contrôle du véhicule en un seul cycle FlexRay.
Une fonctionnalité avancée de FlexRay est la possibilité d’effectuer un contrôle en cours de cycle. La figure 13 illustre un exemple où quatre positions de roue sont diffusées dans les emplacements statiques du cadre. Comme les positions des roues ont lieu avant la commande de mise à jour finale du contrôleur central n°5, le contrôleur a le temps de traiter et d'effectuer une sortie rapide dans le même cycle de communication. Cela permet de réaliser des vitesses de contrôle très élevées sur un réseau FlexRay.
Le format FIELD Bus EXchange (FIBEX), un format de fichier standardisé basé sur XML défini par le consortium ASAM, est utilisé pour décrire les réseaux automobiles. Alors que le format standard pour les réseaux FlexRay, le format de base de données FIBEX est compatible avec de nombreux protocoles automobiles différents, ce qui en fait une norme flexible. Les bases de données FIBEX sont généralement générées par des concepteurs de réseaux de véhicules et partagées avec des ingénieurs travaillant sur un aspect particulier du véhicule. Avec un fichier FIBEX et une interface PC ou ECU qui le supporte, vous pouvez facilement interagir avec un réseau de véhicule sans avoir à configurer manuellement des interfaces et des définitions de signaux.
FIBEX contient de nombreux aspects pour un réseau particulier, y compris les suivants :
Pour en savoir plus sur FIBEX, consultez l'article Introduction à FIBEX.
National Instruments propose des interfaces PCI et PXI FlexRay hautes performances pour connecter des PC aux réseaux FlexRay. Avec une interface basée sur PC, vous pouvez effectuer de nombreuses tâches d’ingénierie sur une ECU compatible FlexRay, notamment :
Pour en savoir plus sur les interfaces NI FlexRay, voir l'introduction à la plate-forme NI-XNET FlexRay.
Le réseau de communication FlexRay répond aux exigences déterministes, tolérantes aux pannes et de performance du système de bus haute vitesse pour la prochaine génération d’automobiles.
Liens associés :