Système à base des microcontrôleurs
Ce document présente une synthèse des principaux bus de communication utilisés dans les systèmes à base de microcontrôleurs. Il s’adresse aux étudiants en informatique et électronique souhaitant comprendre les protocoles de communication série et leurs caractéristiques techniques.
D'après le document Système à base des microcontrôleurs
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, Communication Protocols · PDF · 18 pages · 2014
Afficher l'aperçu du document
Ce document présente une synthèse des principaux bus de communication utilisés dans les systèmes à base de microcontrôleurs. Il s’adresse aux étudiants en informatique et électronique souhaitant comprendre les protocoles de communication série et leurs caractéristiques techniques.
Classification des bus de communication
Les bus de communication se divisent en deux types de transmission :
- Synchrone : l’émetteur et le récepteur partagent la même fréquence d’horloge, soit intégrée au bus, soit aux données. Les horloges d’émission et de réception doivent fournir le même signal pour assurer la synchronisation.
- Asynchrone : l’émetteur et le récepteur ne partagent pas de signal d’horloge commun.
Protocole UART
UART signifie Universal Asynchronous Receiver Transmitter, c’est un émetteur-récepteur asynchrone universel. Il sert à la liaison entre un microcontrôleur et un port série, permettant de transmettre des données sur un seul fil en série.
Constitution d’une trame UART
- Un bit de start (toujours à 0) servant à la synchronisation du récepteur.
- Les données, dont la taille peut varier généralement entre 5 et 9 bits.
- Un bit de parité optionnel (paire ou impaire).
- Un bit de stop (toujours à 1), dont la durée peut être de 1, 1,5 ou 2 temps bit.
Le niveau logique de repos est le 1.
Variante synchrone : USART
Pour les communications synchrones, le protocole est nommé USART (Universal Synchronous & Asynchronous Receiver Transmitter).
Norme RS-232
Le RS-232 définit les niveaux logiques électriques :
- Un niveau logique "0" est représenté par une tension comprise entre +3 V et +25 V (typiquement +12 V).
- Un niveau logique "1" est représenté par une tension comprise entre -3 V et -25 V (typiquement -12 V).
La norme V.28 précise qu’un "1" est reconnu si la tension est inférieure à -3 V, et un "0" si elle est supérieure à +3 V. Le codage utilisé est NRZ (Non Return to Zero).
Norme RS-485
La norme EIA-485, souvent appelée RS-485, définit les caractéristiques électriques d’une interface série utilisant une transmission différentielle sur une paire torsadée. Cette technique améliore la robustesse aux perturbations électromagnétiques.
Bus I²C
Le bus I²C utilise deux lignes principales : SDA (données) et SCL (horloge). Ces lignes sont reliées à des résistances de rappel (pull-up) vers le potentiel VCC, ce qui permet de maintenir les lignes à l’état haut lorsque aucun circuit ne les tire vers le bas.
Fonctionnement des résistances de rappel
- Les sorties sont à collecteur ouvert, ce qui signifie qu’elles ne peuvent tirer la ligne qu’à l’état bas.
- Si toutes les sorties sont à l’état haut, les lignes SDA et SCL sont maintenues à 1 grâce aux résistances pull-up.
- Si une sortie tire la ligne à 0, la ligne correspondante passe à l’état bas.
- Les signaux SDA et SCL peuvent être lus en permanence sans risque d’interférer sur la ligne.
Prise de contrôle du bus
Avant de transmettre, un circuit doit vérifier que SDA et SCL sont au repos (niveau haut). Pour prendre le contrôle :
- Le circuit met la ligne SDA à 0, indiquant qu’il devient maître du bus.
- Les autres circuits reconnaissent que le bus est occupé et ne doivent pas tenter de le contrôler.
- Le maître génère le signal d’horloge, quelle que soit la direction du transfert.
Transmission d’un octet
Après la transmission des 8 bits, le récepteur doit envoyer un bit d’acquittement (ACK) :
- Lorsque SCL est bas, le maître place sa sortie à 1, tandis que l’esclave place sa sortie à 0.
- La ligne SDA reste donc à 0 grâce à l’esclave.
- Le maître relève ensuite la ligne SCL à 1 et lit la valeur du bit ACK.
- Si le bit ACK est 0, l’octet a été correctement reçu. Sinon, une erreur est détectée et le maître génère une condition d’arrêt.
Transmission d’une adresse
Le maître doit adresser l’esclave destinataire avant d’envoyer des données. Le premier octet transmis est donc une adresse, dont le bit D0 indique si la communication est une lecture (1) ou une écriture (0) vers l’esclave.
Bus SPI
Le SPI (Serial Peripheral Interface) est un bus série synchrone en mode full-duplex, basé sur une architecture maître-esclave. Le maître contrôle totalement la communication.
Signaux du bus SPI
- SCLK : horloge générée par le maître.
- MOSI (Master Output, Slave Input) : données envoyées par le maître.
- MISO (Master Input, Slave Output) : données envoyées par l’esclave.
- SS (Slave Select) : ligne de sélection de l’esclave, active à l’état bas.
D’autres noms sont parfois utilisés : SCK pour l’horloge, SDI/DI/SI pour données entrantes, SDO/DO/SO pour données sortantes, et nCS/nSS/STE pour la sélection d’esclave.
Fonctionnement typique
- Le maître génère l’horloge et sélectionne l’esclave avec lequel il communique via la ligne SS.
- À chaque impulsion d’horloge, un bit est échangé simultanément entre maître et esclave.
- Après 8 impulsions, un octet est transmis dans chaque sens.
- La vitesse d’horloge est adaptée aux caractéristiques des périphériques.
Avantages du SPI
- Communication full duplex.
- Débit supérieur à celui de l’I²C.
- Flexibilité dans le nombre de bits transmis.
- Interface matérielle simple.
- Aucune collision possible, donc pas besoin d’arbitre.
- Les esclaves utilisent l’horloge du maître, pas besoin d’oscillateur précis.
- Pas de couche physique supplémentaire nécessaire.
- Partage d’un bus commun pour l’horloge, MISO et MOSI entre plusieurs périphériques.
Inconvénients du SPI
- Utilise plus de broches qu’une UART ou un I²C (qui n’en utilisent que deux).
- Pas d’adressage : chaque esclave nécessite une ligne de sélection dédiée.
- Pas de mécanisme d’acquittement, le maître peut transmettre sans savoir si l’esclave a reçu.
- Un seul maître possible sur le bus.
- Utilisation limitée à de courtes distances, contrairement aux RS-232, RS-485 ou CAN.
Bus CAN
Le bus CAN (Controller Area Network) a été développé pour la communication série dans les véhicules automobiles. Il offre :
- Une hiérarchisation des messages.
- La réception de multiples sources synchronisées temporellement.
- Un fonctionnement multimaître.
- La détection et la signalisation d’erreurs.
- La retransmission automatique des messages altérés.
- La déconnexion automatique des nœuds défectueux.
Autres bus de communication
Il existe de nombreux autres bus sur le marché, parmi lesquels :
- USB
- Ethernet
- OneWire
- Weigand
- I2S
- Et d’autres encore
Exemple d’activité pratique
Une application typique est la communication entre un microcontrôleur STM32 et un accéléromètre LIS302DL via SPI. Cette activité peut inclure :
- Modification du code pour alléger le traitement dans l’interruption.
- Ajout d’une interruption pour détecter une accélération dépassant un seuil.
Glossaire des termes clés
- UART : Universal Asynchronous Receiver Transmitter, protocole de communication série asynchrone.
- USART : Universal Synchronous & Asynchronous Receiver Transmitter, variante synchrone de l’UART.
- RS-232 : Norme définissant les niveaux électriques pour la communication série.
- RS-485 : Norme pour une communication série différentielle sur paire torsadée.
- I²C : Bus série synchrone utilisant deux lignes (SDA et SCL) avec des résistances pull-up et une architecture maître-esclave.
- SPI : Serial Peripheral Interface, bus série synchrone full-duplex maître-esclave avec quatre signaux principaux.
- CAN : Controller Area Network, bus série multimaître utilisé dans l’automobile avec gestion avancée des erreurs.
- Bit d’acquittement (ACK) : Signal envoyé par le récepteur pour confirmer la bonne réception d’un octet.
- Collecteur ouvert : Type de sortie électronique qui ne peut tirer la ligne qu’à l’état bas, nécessitant une résistance de rappel pour le niveau haut.
- Full duplex : Mode de communication où les données peuvent être transmises simultanément dans les deux sens.
Points clés à retenir
- Les bus de communication peuvent être synchrones ou asynchrones selon la présence d’un signal d’horloge partagé.
- L’UART est un protocole asynchrone simple, tandis que l’USART ajoute la synchronisation.
- Le RS-232 utilise des niveaux de tension spécifiques pour représenter les bits logiques.
- Le bus I²C utilise des lignes à collecteur ouvert avec résistances pull-up et un protocole maître-esclave avec acquittement.
- Le SPI offre une communication full duplex rapide mais nécessite plus de broches et une sélection d’esclave dédiée.
- Le bus CAN est adapté aux environnements complexes avec plusieurs maîtres et une gestion avancée des erreurs.
- Chaque bus a ses avantages et inconvénients selon les besoins en débit, distance, nombre de périphériques et complexité.
Commentaires
Aucun commentaire pour le moment. Posez la première question.