PRINCIPES DE BASE DU PROTOCOLE DE COMMUNICATION SPI
Lorsque vous connectez un microcontrôleur à un capteur, un écran ou un autre module, pensez-vous parfois à la façon dont les deux appareils communiquent entre eux ? Que ce qu'ils se disent exactement ? Comment sont-ils capables de se comprendre ?
La communication entre les appareils électroniques est comme la communication entre les humains. Les deux parties doivent parler la même langue. En électronique, ces langages sont appelés protocoles de communication. Heureusement pour nous, il n’y a que quelques protocoles de communication que nous devons connaître lors de la construction de la plupart des projets électroniques de bricolage ou des makers. Dans cette série d’articles, nous aborderons les bases des trois protocoles les plus courants: l’interface périphérique série (SPI), Le bus IIC (Inter-Integrated Circuit) courament appelée I carré C (I2C) et la communication pilotée par récepteur/émetteur asynchrone universel (UART).
Tout d’abord, nous commencerons par quelques concepts de base sur la communication électronique, puis nous expliquerons en détail le fonctionnement de SPI. Dans le prochain article, nous discuterons de la communication pilotée par l’UART, et dans le troisième article, nous nous pencherons sur l’I2C.
SPI, I2C et UART sont un peu plus lents que les protocoles tels que USB, Ethernet, Bluetooth et WiFi, mais ils sont beaucoup plus simples et utilisent moins de ressources matérielles et memoire système. SPI, I2C et UART sont recommandés pour la communication entre les microcontrôleurs ; entre les microcontrôleurs et les capteurs où de grandes quantités de données à haut débit n’ont pas besoin d’être transférées.
COMMUNICATION SÉRIE OU PARALLÈLE
Les appareils électroniques communiquent entre eux en envoyant des bits de données à travers des fils physiquement connectés entre les composants. Un bit est comme une lettre dans un mot, sauf qu’au lieu des 26 lettres (dans l’alphabet Français), un bit est binaire et ne peut être qu’un 1 ou un 0. Les bits sont transférés d’un IC à l’autre par des changements rapides de tension. Dans un système fonctionnant à 3,3V, un bit 0 est communiqué par une impulsion courte de 0 V, et un bit 1 est communiqué par une impulsion courte de 3,3 V.
Les bits de données peuvent être transmis en parallèle ou en série. Dans la communication parallèle, les bits de données sont envoyés tous en même temps, chacun via un fil séparé. Le schéma suivant montre la transmission parallèle de la lettre « C » en binaire (01000011):
Dans la communication série, les bits sont envoyés un par un via un seul fil. Le schéma suivant montre la transmission en série de la lettre « C » en binaire (01000011):
INTRODUCTION À LA COMMUNICATION SPI
SPI est un protocole de communication commun utilisé par de nombreux appareils différents. Par exemple, les modules de lecteur de carte SD, les modules de lecteur de carte RFID et les émetteurs/récepteurs sans fil 2,4 GHz utilisent tous SPI pour communiquer avec les microcontrôleurs.
L’un des avantages uniques de SPI est le fait que les données peuvent être transférées sans interruption. N’importe quel nombre de bits peut être envoyé ou reçu dans un flux continu. Avec I2C et UART, les données sont envoyées par paquets, limités à un nombre spécifique de bits. Les conditions de démarrage et d’arrêt définissent le début et la fin de chaque paquet, de sorte que les données sont interrompues pendant la transmission.
Les appareils communiquant via SPI sont dans une relation maître-esclave. Le maître est le dispositif de contrôle (généralement un microcontrôleur), tandis que l’esclave (généralement un capteur, un écran ou une puce mémoire) reçoit des instructions du maître. La configuration la plus simple de SPI est un système maître unique, un seul esclave, mais un maître peut contrôler plus d’un esclave (plus d’informations à ce sujet ci-dessous).
MOSI (Master Output/Slave Input) – Ligne permettant au maître d’envoyer des données à l’esclave.
MISO (Master Input/Slave Output) – Ligne permettant à l’esclave d’envoyer des données au maître.
SCLK (Clock) – Ligne pour le signal d’horloge.
SS/CS (Slave Select/Chip Select) – Ligne permettant au maître de sélectionner l’esclave à qui envoyer des données.
*En pratique, le nombre d’esclaves est limité par la capacité de charge du système, ce qui réduit la capacité du maître à basculer avec précision entre les niveaux de tension.
FONCTIONNEMENT DE SPI L’HORLOGE
Le signal d’horloge dans SPI peut être modifié à l’aide des propriétés de polarité et de phase d’horloge. Ces deux propriétés fonctionnent ensemble pour définir quand les bits sont sortis et quand ils sont échantillonnés. La polarité de l’horloge peut être réglée par le maître pour permettre aux bits d’être émis et échantillonnés sur le front montant ou descendant du cycle d’horloge. La phase d’horloge peut être réglée pour que la sortie et l’échantillonnage se produisent sur la première ou la deuxième arrête du cycle d’horloge, qu’elle soit ascendante ou descendante.
SÉLECTION DE L’ESCLAVE
Le maître peut choisir à quel esclave il veut parler en réglant la ligne CS/SS de l’esclave à un niveau de basse tension. À l’état inactif et non émetteur, la ligne de sélection esclave est maintenue à un niveau de tension élevé. Plusieurs broches CS/SS peuvent être disponibles sur le maître, ce qui permet à plusieurs esclaves d’être câblés en parallèle. Si une seule broche CS/SS est présente, plusieurs esclaves peuvent être câblés au maître par connexion en série.
ESCLAVES MULTIPLES
SPI peut être configuré pour fonctionner avec un seul maître et un seul esclave, et il peut aussi être configuré avec plusieurs esclaves contrôlés par un seul maître. Il y a deux façons de connecter plusieurs esclaves au maître. Si le maître a plusieurs broches de sélection d’esclaves, les esclaves peuvent aussi être câblés en parallèle comme ceci
Si une seule broche de sélection d’esclave est disponible, les esclaves peuvent être aussi connectés en série comme ceci:
MOSI ET MISO
1. Le maître émet le signal d’horloge :
2. Le maître commute la broche SS/CS sur un état basse tension, ce qui active l’esclave :
4. Si une réponse est nécessaire, l’esclave renvoie les données, un bit à la fois au maître le long de la ligne MISO. Le maître lit les bits au fur et à mesure qu’ils sont reçus :
AVANTAGES ET INCONVÉNIENTS DU SPI
L’utilisation de SPI présente des avantages et des inconvénients, et si vous avez le choix entre différents protocoles de communication, vous devez savoir quand utiliser SPI en fonction des exigences de votre projet :
AVANTAGES
- Pas de bits de démarrage et d’arrêt, de sorte que les données peuvent être diffusées en continu sans interruption
- Pas de système d’adressage esclave compliqué comme I2C
- Taux de transfert de données plus élevé que l’I2C
- Lignes MISO et MOSI séparées, afin que les données puissent être envoyées et reçues en même temps
INCONVÉNIENTS
- Utilise quatre fils (I2C et UART en utilisent deux)
- Pas d’accusé de réception des données (Comme I2C a ceci)
- Aucune forme de vérification d’erreur comme le bit de parité dans UART
- Ne permet qu’un seul maître
J’espère que cet article vous a permis de mieux comprendre le SPI. Passez à la deuxième partie de cette série pour en savoir plus sur la communication pilotée par l’UART, ou à la troisième partie où nous discutons du protocole I2C.
Si vous avez des questions, n’hésitez pas à les poser dans la section des commentaires, nous sommes là pour vous aider. Et n’oubliez pas de vous abonner, nous envoyons un e-mail à chaque fois que nous publions de nouveaux tutoriels !
Publié par: Eng.OUSMANE Soumaila Yaye
On attends la suite de la deuxième et troisième partie très intéressant
RépondreSupprimer