241 lines
9.1 KiB
Markdown
241 lines
9.1 KiB
Markdown
# multiplexage
|
||
|
||
## pourquoi ?
|
||
|
||
- Pour rendre la quantité de connection linéaire par rapport au nombre de périphérique.
|
||
- Rendre le système extensible.
|
||
- Acheminer l'information le plus rapidement possible.
|
||
|
||
## Principes
|
||
|
||
- intégration : retrouper plusieurs fonctions dans un seul boitier plus intelligent
|
||
- gestion moteur : injection, allumage, dépollution, refroidissement
|
||
|
||
- spécialiser les boitiers
|
||
- passer par un réseau
|
||
- transmettre les données
|
||
- structurer les trames
|
||
- synchronisation
|
||
- arbitrage
|
||
|
||
### Modèle général
|
||
|
||
```
|
||
+-- Boitier intelligent --+
|
||
+----------+ +----------+ | +---------------------+ | +----------+ +-------------+
|
||
| capteurs |-| étage d' |->-| | unité de traitement | |->-| étage de |-| actionneurs |
|
||
+----------+ | entrée | | | microprocesseur | | | sortie | +-------------+
|
||
+----------+ | +---------------------+ | +----------+
|
||
| | |
|
||
| +--------------+ |
|
||
| | interface de | |
|
||
| | multiplexage | |
|
||
| +--------------+ |
|
||
+------------|------------+
|
||
|
|
||
---------------------- bus -----------------------
|
||
```
|
||
|
||
## Tramme
|
||
|
||
```
|
||
+----+---------+
|
||
| id | données |
|
||
+----+---------+
|
||
```
|
||
|
||
## Architecture
|
||
|
||
### Maître-esclave
|
||
|
||
```
|
||
+--------+ +---------+ +---------+ +---------+
|
||
| maitre | | esclave | | esclave | | esclave |
|
||
+--------+ +---------+ +---------+ +---------+
|
||
| | | |
|
||
-----+----------+-----------+-----------+-----
|
||
```
|
||
|
||
### Multi-Maître
|
||
|
||
```
|
||
+----------+ +----------+ +----------+ +----------+
|
||
| services | | services | | services | | services |
|
||
+----------+ +----------+ +----------+ +----------+
|
||
| maitre | | maitre | | maitre | | maitre |
|
||
+----------+ +----------+ +----------+ +----------+
|
||
| | | |
|
||
-----+------------+------------+-------------+-----
|
||
```
|
||
|
||
## Protocole de communication
|
||
|
||
> Note :
|
||
> Dans notre modèle, la seule opération sur le milieu (cable/bus) est l'interruption du signal actuel partagé.
|
||
> i.e. écrire 0 sur un signal qui est par défaut à 1.
|
||
|
||
### Arbitrage
|
||
|
||
L'arbitrage CSMA se fait en organisant des temps pour que les composants puissent déclarer vouloir envoyer un message.
|
||
Ils procèdent en écrivant leur ID sur le bus :
|
||
- Les ID se retrouvent confondus par et logique sur les bits.
|
||
- Un des composants détecte avoir envoyé l'ID le plus faible car l'ID résultant est le sien.
|
||
- Ce composant a la priorité pour écrire le message suivant.
|
||
|
||
|
||
```
|
||
. . .
|
||
Noeud x : #_____##########________
|
||
. . .
|
||
Noeud y : #####___________________
|
||
. . .
|
||
Noeud z : #_____#__________######_
|
||
. . .
|
||
Bus : _####__#########__#####_
|
||
----------------------------------
|
||
^\ ^\ ^\_ bus disponible, début message z, id de moindre priorité
|
||
\ \___________ bus disponible, début de message x, id_x < id_z
|
||
\________________ bus disponible, début de message y, id_y < id_x
|
||
```
|
||
|
||
### Forme d'une trame
|
||
|
||
```
|
||
+-------+--------+-----------+-----+
|
||
| ZEROs | Header | Data | UNs |
|
||
+-------+--------+-----------+-----+
|
||
| | | \_ mot entier de 1
|
||
| | \_____________ donnée spécialisée du message
|
||
| \______________________ entête standard du message
|
||
\______________________________ mot entier de 0
|
||
```
|
||
|
||
> Note :
|
||
> Le format du Header et de la Data doit prendre en compte
|
||
> qu'il ne peut pas contenir un mot entier de 1 ou bien de 0.
|
||
|
||
### Arbitrage des bits
|
||
|
||
Lors d'une mise en commun des bits de messages attendant d'être envoyé se fait par fusion des bits sur le bus :
|
||
```
|
||
Id message A : .....01001.......
|
||
Id message B : .....010001001000
|
||
Id message C : .....0100010011..
|
||
sur le bus : 11111010001001000
|
||
--------------------------------
|
||
^^^^^\^^^^\ ^^\_ padding de ZEROs
|
||
\ \_______ ET logique des IDs
|
||
\___________ mot UNs du dernier message / maintient d'un état IDLE
|
||
```
|
||
|
||
### Synchronisation
|
||
|
||
Le signial de synchronisation peut être porté par le signal de donnée dans le cas de certains codages.
|
||
- ex : NRZ / Manchester
|
||
|
||
### Topologies
|
||
|
||
Les topologies usuelles sont appliquables.
|
||
- étoile
|
||
- anneau
|
||
- maillé
|
||
- bus : idéal
|
||
- moins couteux
|
||
- extensible
|
||
|
||
### Exemple : Trames CAN
|
||
|
||
```
|
||
+---+----+---+---+---+---+------+--------+---+---+---+---+---+---
|
||
champ |SOF| ID |RTR|IDE| r |DLC| DATA |checksum|DEL|ACK|DEL|EOF|ITM| /
|
||
+---+----+---+---+---+---+------+--------+---+---+---+---+---+---
|
||
taile | 1 | 11 | 1 | 1 | 1 | 4 | 0~64 | 15 | 1 | 1 | 1 | 7 | 3 | /
|
||
+---+----+---+---+---+---+------+--------+---+---+---+---+---+---
|
||
nature |arbitration | control | data | check | aquit.| protocole
|
||
```
|
||
|
||
- DLC : Description des données utiles.
|
||
- checksum / CRC : Code de vérification d'un message.
|
||
- ACK : Aquitement d'un message.
|
||
|
||
## Synchronisation STUFF
|
||
|
||
Un bit est envoyé tout les N bits pour éviter des mots interdits (exemple : 11 × 0 / 11 × 1 ).
|
||
Cette responsabilité est celle de l'émetteur et du récepteur.
|
||
|
||
STUFF-ing à 4 bits :
|
||
|
||
```
|
||
donnée actuelle : 0100.0000.0111
|
||
donnée écrite sur le bus : 01001000010001
|
||
donnée dé-stuffé : 0100.0000.0111
|
||
^\___^\____ bits STUFF-é
|
||
```
|
||
|
||
Selon le protocol, il est également possible d'avoir des bits de 'stuffing' alternant.
|
||
|
||
> Note :
|
||
> Le 'stuffing' peut servir de synchronisation d'horloge car il assure une alternance dans le signal.
|
||
|
||
## transmission des messages
|
||
|
||
Il est possible d'interfacer entre plusieurs bus grâce à un controlleur.
|
||
- exemple : VAN 1 -> CAN -> VAN 2
|
||
|
||
Les IDs doivent être traduits d'une manière cohérente aux deux protocoles interfaçés.
|
||
|
||
## Réseaux terrain
|
||
|
||
Les réseaux terrain permettent l'interconnexion entre plusieurs entités d'un même système.
|
||
|
||
Cette communication se déroule sur une zone limitée set sur laquelle on désire une réduction maximale de la longueur des liaisons entre les différents éléments grace à un médium commun den transmission.
|
||
|
||
Cette réduciton est liée à une volonté de sécurité (sur des automates d'usine par exemple).
|
||
|
||
---
|
||
|
||
L'utilisateur ne se soucie pas du chemin suivi par les informations, de la conversion des formats type de l'interlocuteur ou bien du type de constructeur d'un élément.
|
||
Les tecnhiques de réseaux facilitent grandement l'insertion ou la suppression d'élements au sein d'un même système.
|
||
|
||
Un bus de terrein permet de transférer das la plupart des cas les informations de maniere séquentielle, ou bien par paquet de bits.
|
||
Il faut savoir que le bus de terrain permet un échange de données qui serait difficile (voire impossibl) par un autre moyen.
|
||
|
||
Derrière ce concept technologique se cachent de réels protocoles de communications qui n'ont fait qu'évoluer depuis 15 ans.
|
||
|
||
Basés sur l'optimisation de place et de temps, on a vu apparaitre des controles-commandes de plus en plus perfectionnés.
|
||
Ces technologies ne cessent d'etre améliorées et sont de plus en plus utilisés pour des raisons de cout, de confort et de flexibilité.
|
||
|
||
### Le système OSI
|
||
|
||
Le multiplexage se fait selon les principes des couches du modèle OSI.
|
||
|
||
1. la couche physique
|
||
2. la couche de liaison
|
||
|
||
Les autres couches ne sont pas présentes dans une communication BUS.
|
||
|
||
### Temps réel
|
||
|
||
Un système est dit 'temps réel' lorsqu'il a besoin de s'exécuter en un temps maximal pour assurer sa fiabilité / intégrité.
|
||
|
||
Ce qui ressort est la notion de synchronisation entre le traitement de l'information et la génération issue du monde extérieur.
|
||
En effet, ce qui prete souvent à confusion est le temps de réponse de la macjine par rapport au temps effectif qui s'écoule par l'environnement.
|
||
Naturellement, on pense à des ordres de grandeurs infinitésimale, de l'ordre du millième de secondes.
|
||
|
||
Deux types de systèmes :
|
||
|
||
- Transactionnel, ou 'temps réel mou'
|
||
- le système tolère des dépassements et les traitera comme des exception potentiellement récupérables. Cela ne déstabilisera par nécessairement le système.
|
||
|
||
- Commande, ou 'temps réel dur'
|
||
- Les invariances du système dépendent du respect de la temporalité du programme, et un dépassement sera perçu comme une erreur fatale.
|
||
- Nous cherchons à concevoir des systèmes déterministes et prévisible.
|
||
|
||
Différentes urgences vont devoir être gérées et priorisés (maintient de la synchronicité du BUS, attentes I/O, gestion d'erreurs)
|
||
|
||
Synchronisation des orloges :
|
||
|
||
- Différents calculateurs ne produirons pas les données à un débit égal. Mais la vitesse d'une transmission entre deux controleurs doit être unifiée / synchronisée.
|
||
- La vitesse de transfert dépends donc de la distance, mais aussi de la fréquence des horloges des partis.
|
||
- La synchronisation se fait au début du flux, mais elle doit également se faire en cas de resynchronisation en plein transfert de message.
|
||
|