notes-ing2/bus/02_multiplexage.md

4.8 KiB

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