1 / 53

Chapitre 5 Réseaux embarqués de type « TDMA » Time Division Multiple Access

Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b. Chapitre 5 Réseaux embarqués de type « TDMA » Time Division Multiple Access. 2006 – 2007 Françoise Simonot-Lion (simonot@loria.fr). TTP/C Flexray.

avery
Télécharger la présentation

Chapitre 5 Réseaux embarqués de type « TDMA » Time Division Multiple Access

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b Chapitre 5Réseaux embarqués de type « TDMA »Time Division Multiple Access 2006 – 2007 Françoise Simonot-Lion (simonot@loria.fr) • TTP/C • Flexray Certains transparents de ce cours proviennent • du cours de Nicolas Navet (ENSEM – EMN / 2003-2004) • du cours de Philip Koopman (Carnegie Mellon / 2004) • des transparents disponibles sur le site de TTTech • du document TTP/C, High Level SpecificationDocument Protocol v1.1

  2. Pourquoi des réseaux guidés par le temps - 1 • Futures applications embarquées « X-by-Wire » • Domaine « chassis » et « contrôle moteur » • Connexion mécanique entre les constituants du système remplacée par une connexion numérique • Avantages • bruit, vibrations, poids, encombrement, … • coût de maintenance, … • évolutivité du système • confort de conduite, assistance à la conduite, … • … • Problèmes • Vérifier, prouver la sûreté de fonctionnement du système CSSEA SI342b

  3. conducteur processus à contrôler c a Système de contrôle Capteurs de consigne conducteur réseau Pourquoi des réseaux guidés par le temps - 2 • Plusieurs cas de figures • Cas 1 : seule la consigne conducteur est transmise via un réseau CSSEA SI342b

  4. c a Capteurs de consigne conducteur capteurs actionneurs réseau calculateurs Système de contrôle Pourquoi des réseaux guidés par le temps - 3 • Plusieurs cas de figures • Cas 2 : capteurs de consigne / capteurs processus / actionneurs / calculateurs partagent le même réseau conducteur + processus à contrôler CSSEA SI342b

  5. Capteurs environnement (caméra) Capteur angle volant Retour de force Volant Assistance à la conduite Actionneurs de direction Réseau Capteur angle roue Pourquoi des réseaux guidés par le temps - 4 • Exemple : « steer-by-Wire » CSSEA SI342b

  6. Systèmes X-by-Wire et architecture de communication • Besoins en termes de systèmes de communication • Déterminisme, robustesse, tolérance aux fautes (détection, surveillance, tolérance) • Composabilité (intégration de fonctions au sein d’un ECU, au sein d’un ensemble d’ECU) • Des réseaux TDMA (« Time Division Multiple Access ») – Pourquoi ? • Déterminisme assuré par une pré-affectation des intervalles de temps (« slots ») aux messages et aux stations • Preuve « facile » à obtenir (temps de réponse borné, …) • Composabilité assurée par un placement dans les « slots » des divers acteurs communicants • Conception d’architectures d’applications « guidées par le temps » CSSEA SI342b

  7. Réseaux de communication embarqués de type TDMA • TTP/C • Première publication en 1994 • Hermann Kopetz – Université de Vienne, Autriche (brevet en 1997) • Abondamment étudié, prouvé, testé • Systèmes embarqués dans l’automobile  autres applications (aviation, transport ferroviaire, …) • Des produits : TTTech (www.tttech.com/) • FlexRay • Une initiative de l’industrie automobile (1999) – intégration de Byteflight (BMW) • Plus de flexibilité (ne remet pas en cause les applications déployées au-dessus de CAN) • Pour l’instant, le protocole reste à valider • Produits à venir CSSEA SI342b

  8. TTP/C - « Time Triggered Protocol »pour les applications de classe C (temps réel « dur ») • Quelques sites • http://www.vmars.tuwien.ac.at/frame-home.html • http://tttech.com/technology/articles.htm Projets connexes • https://www.decos.at/index.php • http://www.vmars.tuwien.ac.at/projects/xbywire/index.html CSSEA SI342b

  9. Caractéristiques générales • Ordonnancement cyclique des messages • Accès au médium sur une base de temps stable (pas de collision) • Tolérance aux fautes intégrée dans le protocole (support physique redondant) • Débits 500kbits/s – 1Mbits/s – 2Mbits/s – 5 Mbits/s – 25 Mbits/s • Topologie : bus ou étoile conforme aux applications relevant de la classe C (D) CSSEA SI342b

  10. CNI (échange de données) Application Locale 1 micro-contrôleur Application Locale 1 micro-contrôleur Application Locale 1 micro-contrôleur Communication Network Interface Communication Network Interface Communication Network Interface Contrôleur de Communication Contrôleur de Communication Contrôleur de Communication SRU (Smallest Replaceable Unit) Structure d’un réseau TTP/C Capteurs / actionneurs Partie applicative CNI … CC Partie communication Bus physique redondé CSSEA SI342b

  11. Principe de fonctionnement - TTP/C Exemple d’application Nœud Producteur 1 Nœud Producteur 2 b a Réseau a,b b Nœud Consommateur 1 Nœud Consommateur 2 CSSEA SI342b

  12. t a1 a2 a3 a4 a5 a6 a7 Nœud Producteur 1 CNI ? a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 Nœud Producteur 2 CNI a1 b2 a4 b2 Principe de fonctionnement - TTP/C ? b1 b1 b2 b2 b3 b5 b4 b6 Réseau Nœud Consommateur 1 Nœud Consommateur 2 CSSEA SI342b

  13. t a1 a2 a3 a4 a5 a6 a7 Nœud Producteur 1 CNI ? a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 Nœud Producteur 2 CNI ? b1 b2 b3 b4 Réseau a1 b2 a4 b2 a1 a4 b2 b2 b2 b2 Principe de fonctionnement - TTP/C CNI ? ? Nœud Consommateur 1 CNI ? Nœud Consommateur 2 CSSEA SI342b

  14. Principe de fonctionnement - TTP/C t a1 a2 a3 a4 a5 a6 a7 Nœud Producteur 1 CNI ? a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 Nœud Producteur 2 CNI ? b1 b2 b3 b4 Réseau a1 b2 a4 b2 CNI ? a1 a4 ? b2 b2 Nœud Consommateur 1 CNI b2 b2 ? Nœud Consommateur 2 CSSEA SI342b

  15. Interface d’entrées/sorties avec l’environnement Micro-contrôleur (CPU, RAM, ROM) supportant les tâches applicatives locales MEDL Données de contrôle TTP/C (ROM) • Chien de garde matériel pour garantir un comportement « fail silent » • Garde contre le • « babbling idiot » Gardien de bus Gardien de bus « Message Descriptor List » Un nœud TTP CNIDPRAM (Dual Ported RAM) Contrôleur Gestion du protocole TTP/C CSSEA SI342b

  16. Noeud Noeud Noeud Noeud Bus Noeud Noeud SC Etoile SC Noeud Noeud Noeud Noeud Noeud Noeud Noeud SC Noeud Multi-Etoiles SC SC SC Noeud Noeud SC Combinaison Bus/Etoile Noeud Noeud SC Topologies TTP/C CSSEA SI342b

  17. Noeud Noeud Noeud Noeud Noeud Noeud Cluster et « Fault Tolerant Unit » (FTU) FTU Bus • FTU : ensemble des nœuds réalisant les mêmes calculs (redondance de nœuds) • Réplication des informations transmises : chaque nœud émet la même information (3 réplicas / 1 information dans l’exemple) • Cluster : tous les nœuds connectés sur un réseau particulier CSSEA SI342b

  18. Noeud Fault Tolerance - Shadow SRU Nœud fantôme Noeud Bus • Le nœud fantôme : • émet uniquement si le nœud principal est défaillant, • et, dans ce cas, émet dans le « slot » du nœud principal CSSEA SI342b

  19. Sync Nœud Maître Nœud A Nœud B Nœud C 1 2 3 4 Bus 1 2 3 4 1 2 3 4 t slot round Protocoles de type TDMA – Principes • Un « slot » est un intervalle de temps durant lequel une station émet un message • Un « round » TDMA est une séquence de slots telle que chaque station parle exactement 1 fois CSSEA SI342b

  20. TTP/C – TDMA • Un nœud (une FTU) peut vouloir transmettre plusieurs messages • Mais 1 slot / nœud dans chaque « round » •  dans un round TDMA, • chaque nœud (de chaque FTU) transmet un message (un « réplica » du message) dans son slot (sur chaque bus) • le round se termine quand tous les nœuds (de tous les FTU) ont envoyé un message • Plusieurs « round » TDMA différents par les messages peuvent être définis (ordre et taille des slots identiques pour tous les rounds) • Le « Cluster Cycle » est la suite de tous les « rounds TDMA » • Un « Cluster Cycle » est exécuté en boucle • Une spécification de « Cluster Cycle » est définie pour chaque mode de marche CSSEA SI342b

  21. A A A M M M 2 1 1 B B B M M M 1 1 2 C C C M M M D D D M M M 2 1 1 2 1 1 TTP/C – ordonnancement des messages A B C D A B C D A B C D Noeud Message Canal 1 t Canal 2 1 TDMA round 1 TDMA round 1 Cluster Cycle CSSEA SI342b

  22. TTP/C – ordonnancement des messages et Tolérance aux fautes • FTU • Un slot par nœud de la FTU dans chaque « TDMA round » • La redondance n’est pas traitée au niveau du protocole mais au niveau supérieur (par exemple, dans OSEK-FTCom) • 2 nœuds par FTU ? Assure la transmission en cas de défaillance unique de l’un des nœuds – « protection dans le domaine temporel » – pas de conclusion possible en cas de valeurs transmises divergentes • 3 nœuds par FTU ? Conclusion possible en cas de valeurs divergentes (moyenne, par exemple) – « protection dans le domaine des valeurs » • « Shadow Node » • Un seul slot pour le nœud et son nœud fantôme dans chaque « TDMA round » CSSEA SI342b

  23. TTP/C – Message Descriptor List (MEDL) • Chaque nœud connaît l’ordonnancement statique de tous les messages du « Cluster Cycle » pour chaque mode de marche • Dans un mode de marche donné, à un instant t donné, dans un « Cluster Cycle » correspond : • un et un seul nœud • un et un seul message • Pas d’arbitrage pour l’accès au bus • Synchronisation des horloges • Arbitrage pour le démarrage et l’intégration de nœuds en ligne CSSEA SI342b

  24. TTP/C – Gardien de bus (« Bus Guardian ») -1 • Garantit que le processeur de protocole n’émet des données sur le bus que dans le slot prévu • Protection contre les stations qui sont désynchronisées • Protection contre les stations bavardes (« babbling idiot ») • Le gardien de bus devrait : • avoir sa propre horloge • ne pas être trop proche physiquement du processeur de protocole (éviter les modes de défaillance communs) • avoir sa propre alimentation électrique CSSEA SI342b

  25. A A A M M M 1 1 2 A B C D A B C D A B C D Noeud Canal 1 B B B M M M t Canal 2 2 1 1 C C C M M M D D D M M M 2 1 1 2 1 1 Slot B Slot B Slot B Round-Slot B TTP/C – Gardien de bus (« Bus Guardian ») -2 • Sur un nœud N, ouverture de la ligne uniquement aux instants spécifiés dans la MEDL • exemple, sur le nœud B CSSEA SI342b

  26. Trames TTP/C • Trame de démarrage (« cold start frame ») Type Date globale Slot de l’émetteur CRC • Trame avec « C-State » explicite Type Changement de mode C-State émetteur « Application Data » CRC 16 octets maximum • Trame avec « C-State » implicite Type Changement de mode « Application Data » CRC 4 bits 16 bits CSSEA SI342b

  27. Application Message 1 Message 2 Message 3 Hors Protocole Message 1 Message 2 Message 3 Message 1 Message 2 Message 3 CNI « Application Data » Protocole Type Changement de mode C-State émetteur CRC Protocole Trame Trames TTP/C - vocabulaire • Exemple sur une trame avec « C-State » explicite CSSEA SI342b

  28. Type Changement de mode C-State émetteur « Application Data » CRC Type Changement de mode « Application Data » CRC C-State émetteur Trames TTP/C – Calcul du CRC • Trame avec « C-State » explicite Calcul du CRC • Trame avec « C-State » implicite Calcul du CRC CSSEA SI342b

  29. Trames TTP/C – validité d’une trame pour un nœud récepteur • Pour qu’une trame soit acceptée par le nœud qui la reçoit, il faut : • qu’elle soit « valide » (conforme à la spécification indiquée dans la MEDL du nœud récepteur) • et « correcte » : • pour une trame à « C-State » explicite, • CRC reçu = CRC calculé • et C-State dans la trame = C-State de la station réceptrice • pour une trame à « C-State » implicite, • CRC reçu = CRC calculé CSSEA SI342b

  30. Durée du slot pour le nœud i Durée du slot pour le nœud i+1 PRP idle PSP TP PRP idle PSP TP PRP idle PSP slot i dans le « TDMA round » slot i+1 dans le « TDMA round » AT Action Time IFG Inter Frame Gap Trames TTP/C – phases de transmission PSP (Pre Send Phase) – TP (Transmission Phase) – PRP (Post Receive Phase) CSSEA SI342b

  31. TTP/C – Synchronisation des horloges • Pas de trafic supplémentaire pour synchroniser les horloges • 4 nœuds au minimum doivent être « Master Clocks » • Dérive maximale de leurs horloges de 10-4 s/s • Chaque nœud récepteur compare son horloge à l’horloge de l’émetteur (si celui-ci est « Master Clock ») • Si la différence absolue est supérieure à p/2 (p est la précision demandée), le nœud récepteur se considère incorrect (déconnexion) • Sinon, le nœud remet à jour son horloge (et les données impliquées) CSSEA SI342b

  32. TTP/C – C-State • Chaque nœud N émetteur construit et éventuellement transmet dans son « slot » une structure de donnée C-State, qui comprend : • horloge de transmission du nœud N (Master Clock) • numéro du slot attribué au nœud N dans ce « TDMA round » • … • demande de changement de mode au prochain « Cluster Cycle » • vecteur local de « Membership » vecteur de la vision qu’a le nœud N de tous les nœuds du « Cluster » (vivant / non reconnu vivant) CSSEA SI342b

  33. TTP/C – Mécanisme d’acquittement - 1 • Acquittement non explicite • L’acquittement est déterminé par le nœud N, émetteur dans le slot i, après un traitement des trames en provenance de ses deux successeurs (au plus) dans le TDMA round • relation « successeur » de nœud (relation dynamique) • Le processus d’acquittement repose sur la comparaison du vecteur de Membership local au nœud N avec les vecteurs de Membership transmis dans les trames • Seules les trames valides (émises dans leur slot, longueur correcte) sont analysées • Trames à C-State explicite / Trames à C-State implicite CSSEA SI342b

  34. TTP/C – Mécanisme d’acquittement - 2 • Membership envoyé par un nœud A  A est vivant • Membership Point d’un nœud • Dans la PRP du noeud • Membership Recognition Point d’un nœud • Instant où la décision est définitive pour ce nœud (trame acquittée / non acquittée) • A l’émission, A a une vision des stations vivantes conforme à celle des stations vivantes Membership Recognition Point de A Membership Point de A Membership Point de B Membership Point de C … TP A IFG A TP B IFG B TP C IFG C … CSSEA SI342b

  35. IFG A A transmet (C-State : VM(A) vivant) A reçoit une trame de B Transmission du nœud B true CRC reçu = CRC calculé false true CRC reçu = CRC calculé IFG B false TTP/C – Mécanisme d’acquittement – 3Processus d’acquittement d’un nœud A Hypothèse Ia : A suppose que B voit A et B vivants Hypothèse Ib : A suppose que B voit A non vivant et B vivant Acquittement de A Erreur de transmission de B ou B a une vision des autres stations différente de celle de A B défaillant – prendre un nouveau premier successeur – recommencer avec hypothèse Ia A ou B est défaillant – continuer avec le deuxième successeur CSSEA SI342b

  36. A reçoit une trame de C Transmission du nœud C true CRC reçu = CRC calculé false true CRC reçu = CRC calculé IFG C false TTP/C – Mécanisme d’acquittement – 4Processus d’acquittement d’un nœud A Hypothèse IIa : A suppose que C voit A vivant, B non vivant et C vivant Hypothèse IIb : A suppose que C voit A non vivant, B vivant et C vivant Acquittement de A B et C n’ont pas bien reçu la trame Non Acquittement de A Erreur de transmission de C ou C a une vision des autres stations différente de celle de A C défaillant – prendre un nouveau deuxième successeur – recommencer avec hypothèse IIa CSSEA SI342b

  37. TTP/C – Service de Membership • Assure que tout nœud vivant sur le réseau a la même vue de l’état des autres nœuds • Service réalisé par le mécanisme d’acquittement CSSEA SI342b

  38. A, B restent dans le Membership • Agreed counter++ • Acknowledgement failure counter = 0 B quitte le Membership • Failed slots counter++ si transmission sur les 2 canaux TTP/C – Membership - 1 IFG A A transmet (C-State : VM(A) vivant) A reçoit une trame de B Transmission du nœud B Hypothèse Ia : A et B vivants true CRC reçu = CRC calculé false Acquittement de A Hypothèse Ib : A mort et B vivant true CRC reçu = CRC calculé IFG B false A ou B est défaillant – continuer avec le deuxième successeur B défaillant – prendre un nouveau premier successeur – recommencer avec hypothèse Ia CSSEA SI342b

  39. A, C restent dans le Membership B quitte le Membership • Agreed slots counter++ • Failed slots counter++ • Acknowledgement failure counter = 0 C quitte le Membership • Failed slots counter++ si transmission sur les 2 canaux TTP/C – Membership - 2 A reçoit une trame de C Transmission du nœud C Hypothèse IIa : A vivant, B mort et C vivant true CRC reçu = CRC calculé false Acquittement de A Hypothèse IIb : A mort, B vivant et C vivant true CRC reçu = CRC calculé IFG C false Non Acquittement de A C défaillant – prendre un nouveau deuxième successeur – recommencer avec hypothèse IIa CSSEA SI342b

  40. A n’est pas dans le Membership B, C restent dans le Membership Si >= une valeur max, le noeud se déconnecte C quitte le Membership • Agreed slots counter++ • Failed slots counter++ • Acknowledgement failure counter ++ • Failed slots counter++ si transmission sur les 2 canaux TTP/C – Membership - 3 A reçoit une trame de C Transmission du nœud C Hypothèse IIa : A vivant, B mort et C vivant true CRC reçu = CRC calculé false Acquittement de A Hypothèse IIb : A mort, B vivant et C vivant true CRC reçu = CRC calculé IFG C false Non Acquittement de A C défaillant – prendre un nouveau deuxième successeur – recommencer avec hypothèse IIa CSSEA SI342b

  41. TTP/C – Membership - 4 • Conditions initiales : à l’intégration du nœud • Agreed slots counter = 2 • Failed slots counter = 0 • Lors de la réception d’une trame, un nœud : • Calcule la valeur du Slot Status selon les trames reçues sur les 2 canaux (max de {correct > tentative > other error > incorrect > null frame > invalide}) • Slot status = correct  agreed slots counter ++ • Slot status = incorrect ou invalide  failed slots counter ++ • Après émission réussie, avant le processus d’acquittement • Agreed slots counter = 1 • Détection de « clique » • Une fois / round, dans le PSP précédant le slot du nœud A : agreed slots counter < failed slots counter  le nœud se déconnecte agreed slots counter - failed slots counter < 2  erreur globale du système de communication CSSEA SI342b

  42. FlexRay • Un site • http://www.flexray-group.com/ CSSEA SI342b

  43. Origine de FlexRay • 1999 – consortium BMW, Daimler Chrysler, Bosch, Delphi, Motorola, Philips, … • Objectif : déterminisme + flexibilité • Réutilisation des principes de ByteFlight (BMW) CSSEA SI342b

  44. FlexRay – Topologie, couche physique • Bus simple ou redondant • Couche physique optique ou électrique • Débit : 500 kBits/s  10 Mbits/s • Nœud connecté sur un ou les 2 bus (si redondance) • Bus ou étoile • Réutilisation des principes de ByteFlight (BMW) CSSEA SI342b

  45. 5 + (0..246) + 3 octets R E S 1 R E S 2 Frame ID Length S Y N C Header CRC D U B Message ID ou données Données CRC 1 1 12 7 1 9 1 16 0..244 octets 24 Data Update Bit (rafraîchissement de la donnée depuis la dernière transmission) FlexRay – Format de la trame CSSEA SI342b

  46. FlexRay – Codage des trames • Code NRZ 8N1 : 1 bit start, 1 bit stop, pour chaque octet de données • FSS (Frame Start Sequence) : 8 bits 0 • SOC (Start Of Cycle) : 10 bits 1 – 30 bits 0 CSSEA SI342b

  47. FlexRay – Medium Access Control MAC de type TDMA MAC F-TDMA • Accès au médium : statique / dynamique • 3 modes : statique pur – dynamique pur – mixed • Cycle de fonctionnement périodique < 64 ms silence Trame physique silence CSSEA SI342b

  48. FlexRay – partie statique • Les slots ont tous la même taille (taille max d’une trame) • Au plus 4095 slots • Un nœud peut avoir plusieurs slots / cycle (<=16) • Dans le cas d’un bus redondant, un nœud peut émettre des données différentes dans les slots homologues des deux bus, ou n’émettre rien sur l’un ou les deux bus • Gardien de bus • Slots libres pour extensions futures • Les nœuds sont informés du «MEDL» au startup CSSEA SI342b

  49. FlexRay – partie dynamique - 1 • Chaque nœud possède un ou des identificateurs uniques sur l’ensemble du système (=CAN) • A chaque identificateur est assigné un intervalle de temps (mini-slot) dans lequel la transmission de la trame correspondante peut commencer • Les intervalles sont alloués dans l’ordre des identificateurs • Pas de retransmission en cas d’erreur CSSEA SI342b

  50. FlexRay – partie dynamique - 2 • Si redondance des canaux, les choix de transmettre ou non peuvent être différents sur chacun des canaux • Des transmissions successives d’une trame de même identificateur peuvent être de tailles différentes • Le segment dynamique se termine après une durée prédéterminée même si toutes les trames ne sont pas transmises • Pas de gardien de bus dans le segment dynamique Sous certaines hypothèses sur le trafic, il est possible de calculer des pires temps de réponse (= CAN) CSSEA SI342b

More Related