Title: Chapitre 5 R
1Chapitre 5Ré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
- 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
- 2006 2007
- Françoise Simonot-Lion (simonot_at_loria.fr)
2Pourquoi 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
3Pourquoi 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
4Pourquoi 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
5Pourquoi des réseaux guidés par le temps - 4
6Systè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
dun ECU, au sein dun ensemble dECU) - 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 darchitectures dapplications
guidées par le temps
7Ré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 lautomobile ? autres
applications (aviation, transport ferroviaire, ) - Des produits TTTech (www.tttech.com/ )
- FlexRay
- Une initiative de lindustrie 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 linstant, le protocole reste à valider
- Produits à venir
8TTP/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/ind
ex.html
9Caracté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)
10Structure dun réseau TTP/C
SRU (Smallest Replaceable Unit)
Capteurs / actionneurs
Partie applicative
CNI
CC
Partie communication
Bus physique redondé
11Principe de fonctionnement - TTP/C
Exemple dapplication
Nœud Producteur 1
Nœud Producteur 2
a
b
Réseau
b
a,b
Nœud Consommateur 1
Nœud Consommateur 2
12Principe de fonctionnement - TTP/C
b2
b1
b5
b6
?
b2
b1
b3
b4
Réseau
Nœud Consommateur 1
Nœud Consommateur 2
13Principe de fonctionnement - TTP/C
CNI
?
?
Nœud Consommateur 1
CNI
?
Nœud Consommateur 2
14Principe de fonctionnement - TTP/C
t
a1
a2
a3
a4
a6
a7
a5
Nœud Producteur 1
CNI
a1
a2
a3
a4
a6
a5
?
b2
b1
b3
b4
Nœud Producteur 2
CNI
b2
b1
b3
b4
?
Réseau
a1
a4
b2
b2
CNI
?
a1
a4
?
b2
b2
Nœud Consommateur 1
CNI
b2
b2
?
Nœud Consommateur 2
15Un nœud TTP
CNI DPRAM (Dual Ported RAM)
Contrôleur Gestion du protocole TTP/C
16Topologies TTP/C
17Cluster 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 lexemple) - Cluster tous les nœuds connectés sur un
réseau particulier
18Fault 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
19Protocoles 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
20TTP/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
21TTP/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
22TTP/C ordonnancement des messages et Tolérance
aux fautes
- FTU
- Un slot par nœud de la FTU dans chaque TDMA
round - La redondance nest 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 lun 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
23TTP/C Message Descriptor List (MEDL)
- Chaque nœud connaît lordonnancement 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 darbitrage pour laccès au bus
- Synchronisation des horloges
- Arbitrage pour le démarrage et lintégration de
nœuds en ligne
24TTP/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
25TTP/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
26Trames 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
27Trames TTP/C - vocabulaire
- Exemple sur une trame avec C-State explicite
28Trames TTP/C Calcul du CRC
- Trame avec C-State explicite
Calcul du CRC
- Trame avec C-State implicite
Calcul du CRC
29Trames TTP/C validité dune trame pour un nœud
récepteur
- Pour quune trame soit acceptée par le nœud qui
la reçoit, il faut - quelle 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é
30Trames TTP/C phases de transmission
PSP (Pre Send Phase) TP (Transmission Phase)
PRP (Post Receive Phase)
31TTP/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 à
lhorloge 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)
32TTP/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 qua le nœud
N de tous - les nœuds du Cluster (vivant /
non reconnu vivant)
33TTP/C Mécanisme dacquittement - 1
- Acquittement non explicite
- Lacquittement 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 dacquittement 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
34TTP/C Mécanisme dacquittement - 2
- Membership envoyé par un nœud A ? A est vivant
- Membership Point dun nœud
- Dans la PRP du noeud
- Membership Recognition Point dun 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
35TTP/C Mécanisme dacquittement 3Processus
dacquittement dun 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
36TTP/C Mécanisme dacquittement 4Processus
dacquittement dun 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 nont 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
37TTP/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 dacquittement
38TTP/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
39TTP/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
Hypothèse IIb A mort, B vivant et C vivant
Acquittement de A
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
40TTP/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
Hypothèse IIb A mort, B vivant et C vivant
Acquittement de A
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
41TTP/C Membership - 4
- Conditions initiales à lintégration du nœud
- Agreed slots counter 2
- Failed slots counter 0
- Lors de la réception dune trame, un nœud
- Calcule la valeur du Slot Status selon les trames
reçues sur les 2 canaux (max de correct gt
tentative gt other error gt incorrect gt null frame
gt invalide) - Slot status correct ? agreed slots counter
- Slot status incorrect ou invalide ? failed
slots counter - Après émission réussie, avant le processus
dacquittement - 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 lt failed slots counter ?
le nœud se déconnecte - agreed slots counter - failed slots counter lt
2 -
? erreur globale du système de
communication
42FlexRay
- Un site
- http//www.flexray-group.com/
43Origine de FlexRay
- 1999 consortium BMW, Daimler Chrysler, Bosch,
Delphi, Motorola, Philips, - Objectif déterminisme flexibilité
- Réutilisation des principes de ByteFlight (BMW)
44FlexRay 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)
45FlexRay Format de la trame
46FlexRay 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
47FlexRay Medium Access Control
MAC F-TDMA
MAC de type TDMA
silence
Trame physique
silence
- Accès au médium statique / dynamique
- 3 modes statique pur dynamique pur mixed
- Cycle de fonctionnement périodique lt 64 ms
48FlexRay partie statique
- Les slots ont tous la même taille (taille max
dune trame) - Au plus 4095 slots
- Un nœud peut avoir plusieurs slots / cycle (lt16)
- Dans le cas dun bus redondant, un nœud peut
émettre des données différentes dans les slots
homologues des deux bus, ou némettre rien sur
lun ou les deux bus - Gardien de bus
- Slots libres pour extensions futures
- Les nœuds sont informés du MEDL au startup
49FlexRay partie dynamique - 1
- Chaque nœud possède un ou des identificateurs
uniques sur lensemble 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 lordre des
identificateurs - Pas de retransmission en cas derreur
50FlexRay partie dynamique - 2
- Si redondance des canaux, les choix de
transmettre ou non peuvent être différents sur
chacun des canaux - Des transmissions successives dune 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)
51FlexRay synchronisation dhorloge
- Maître unique un slot dans le cycle statique
- Multi-maîtres (2 .. 16)
52FlexRay conclusions
- Meilleure utilisation de la bande passante que
TTP/C doù des débits moins élevés et des CPUs
moins coûteux - Réutilisation aisée dapplications
Event-Triggered développées sur CAN - Services spécifiques à lautomobile comme
lendormissement et le réveil des stations - Grande flexibilité !
53FlexRay conclusions
- TTP/C
- Nombreux services pour la SdF (mode de marche,
redondance, membership, clique avoidance,) - Visiblement conçu pour la certification
- - Comportement en dehors des hypothèses de fautes
!? Les hypothèses faites (au plus une faute tous
les 2 rounds) sont-elles les bonnes pour
lautomobile ?? - - Flexibilité / incrémentalité faible
- FlexRay
- Conçu spécifiquement pour lautomobile
(nécessité de CPU moins puissants que TTP/C,
réutilisation des logiciels développés pour CAN,
mode veille,) - Flexibilité
- - Délibérément peu de fonctionnalités liées à
la SdF (redondance, membership) pb
implémentation moins efficace au dessus de la
couche LdD - - Validation du protocole !