# 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 ```