From 917b2258adfcc9943f53e32ee866515f629b80ac Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Thu, 29 Feb 2024 10:38:14 +0100 Subject: [PATCH] bus stuffing --- bus/01_init.md | 98 ++++++++++++++++++++++++++++++++++++++++++ bus/02_multiplexage.md | 27 ++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 bus/01_init.md diff --git a/bus/01_init.md b/bus/01_init.md new file mode 100644 index 0000000..a68d210 --- /dev/null +++ b/bus/01_init.md @@ -0,0 +1,98 @@ +# Multiplexage + +## Pourquoi ? + +Machines à plusieurs objectifs. + +- sécurisation +- réduction de consomation +- confort de conduite + +Grand nombre de périphériques à connecter. + +### Conventionnalité : une connection par liaison nécessaire : + +``` ++---+ +---+ +| A |---| B | +| |-+ | | ++---+ | +---+ + | | + | +---+ + +-| C | + +---+ +``` + +- Nombre de connections exponentelle. +- Difficile à mettre à jour. + +### Multiplexage : une connection commune en 'réseau'. + +``` ++---+ +---+ +| A |-+-| B | ++---+ | +---+ + | + | +---+ + +-| C | + +---+ +``` + +- Nombre de connections linéaire. +- Disponibilité de l'information. + +## Avantages + +- moins de capteurs et de nombres de liaisons +- le poids et les couts diminuent +- extensibilité avec un cout minimal +- reconnu par une norme iso de fiabilité + +## Principes + +- un capteur par donnée nécessaire +- échange de donnée sur un cannal global. + +### Détail + +- Un réseau unifié + - Structuration des trames + - Synchronisation des horloges + - Arbitrage, priorisation de l'accès au Bus + +## Architecture en couches + +### étage d'entrée + +Interface avec les capteurs + +### étage de calcul + +Le microprocesseur + +- contient possiblement des mémoires + +### étage de sortie + +Interface avec les actionneurs + +## Architecture réseau + +- maitre esclave +- multi-maitre +- mixte + +## Protocole + +- l'acheminement des trames +- synchronisation d'horloges +- deux trames peuvent être émise en même temps + - l'arbitrage détermine celle qui est transmise + - la seconde sera ré-émise ensuite pour ne pas perdre d'information + +### Méthode CSMA + +- chaque message a un ID, un ID faible donne une plus haute priorité +- un temps est réservé pour la lecture des messages à envoyer + - un hashset des IDs supperposés est écrit sur le BUS, + - l'ID le plus faible enverra son message au temps suivant diff --git a/bus/02_multiplexage.md b/bus/02_multiplexage.md index 4ac6396..6777104 100644 --- a/bus/02_multiplexage.md +++ b/bus/02_multiplexage.md @@ -70,6 +70,10 @@ ## 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. @@ -149,3 +153,26 @@ 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.