bus multiplex
This commit is contained in:
parent
74036fd304
commit
b76ff040bc
1 changed files with 151 additions and 0 deletions
151
bus/02_multiplexage.md
Normal file
151
bus/02_multiplexage.md
Normal file
|
@ -0,0 +1,151 @@
|
|||
# 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
|
||||
|
||||
### 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
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue