590 likes | 960 Views
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.
E N D
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
FlexRay • Un site • http://www.flexray-group.com/ CSSEA SI342b
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
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
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
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
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
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
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
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