I- PROTOCOLE SPI
1. Introduction :
Les appareils grand
public sont devenus sophistiqués et complexes, ce qui a rendu impossible
d’échanger les informations sur des liaisons parallèles qui sont encombrantes. Alors l’échange de données entre les composants se fait
maintenant avec des bus série. Le bus SPI (Synchronous Peripheral Interface),
a été initialement développé par Motorola. Ensuite d’autres fabricants
(Microchip, Atmel, Texas Instrument...) ont adopté ce type de liaison qui est
devenu un standard.
Le bus SPI est
utilisé pour la communication rapide de données entre périphériques comme les mémoires, les systèmes d'affichage, carte
SD, etc.
1. Les caractéristiques de fonctionnement du bus SPI
L’échange de données se
fait par des octets.
La transmission s’effectue
sur 2 fils monodirectionnels
(nommés MOSI, MISO).L’horloge est indépendante, pilotée par le maître permet de synchroniser les échanges .La fréquence de
l’horloge de transmission est comprise entre 1 Mhz et 20 Mhz .A l’opposé du bus
I2C, il n’y a pas d’adressage des esclaves . L’esclave devient actif au moyen
d’une ligne de sélection de boîtier dédiée (CS).Le bus est constitué de 3 fils
auxquels il faut ajouter les fils de sélection d'esclave.
ü
SCLK (serial clock) :Horloge du bus (générée par le
maître).
ü
MOSI (Master Out Slave In) : Données du maître vers l’esclave actif.
ü
MISO (Master In Slave Out) : Données de l’esclave
actif vers le maître.
ü
SSn (Slave
Select n) : Sélection
de
l'esclave n à destination
de
la transmission.
2. Synoptique d'une liaison SPI Maître-Esclave
On
utilise le principe du registre à décalage. Dans le cas ci-dessus, il
faut 8 périodes d'horloge, pour que l'octet passe du registre du maître à celui de l'esclave et inversement le registre d'esclave est passé dans celui du maître (full-duplex : transfert simultané). On remarque qu’il ne peut pas y avoir de
collisions lors du transfert,
donc il n'y a pas besoin
d'arbitrage.
3. Polarisation de la ligne MISO
Lorsque
le bus est inutilisé, (aucun esclave n’est sélectionné), la ligne MISO est à
l’état haute impédance, donc sans état logique. Ce ci est évité par l’utilisation d’une résistance de
polarisation, de 5 à 50 kOhms,
4. Format de transfert de données
Le
protocole bus SPI détermine le type de
signal d’horloge (SCK) grâce à deux paramètres: le bit de poids fort CPOL
(Clock Polarity) et le bit de poids faible CPHA (Clock Phase). Il en résulte
quatre différents modes de transmission. Ces paramètres de réglage déterminent
le front d’horloge sur lequel les données sont transmises (front montant /front
descendant), et le moment de modification de ces données. Pour une transmission
de données correcte il est important que ces paramètres soient réglés de
manière identique pour tous les appareils reliés au bus.
5. Synoptique d'une liaison SPI Maître-Multi-Esclaves
Le maître sélectionne un seul esclave avec lequel il veut communiquer par la mise à niveau logique zéro de /SS (ou /CS) de l’esclave souhaité, puis, après 8
fronts d'horloge, l'octet de donnée est
transféré. La patte MISO de l'esclave non
sélectionné est à l'état haute impédance. Le nombre d'esclaves est limité par les broches de sélection
du maître.
6. Bus SPI et niveaux électriques
Les signaux échangés sont de types TTL ou CMOS
selon la technologie des différents éléments du circuit. Il faut envisager dans certains cas de placer des résistances de
Pull-up .
Si on utilise des composants de tension
d'alimentation différente (un microcontrôleur
en 5v et un capteur en 3.3v), il faut procéder à une adaptation du niveau de tension
des broches MOSI, SS, SCLK (la MISO n'est pas affectée car compatible avec le microcontrôleur).
Aucun commentaire:
Enregistrer un commentaire