Vous êtes sur la page 1sur 14

SIN : Maquettage dune solution en rponse un cahier des

charges

Module SIN 1.1 : Concevoir un systme local et permettre le


dialogue entre lhomme et la machine

Ressources sur : Le bus SPI

Le bus SPI

Sommaire

1. Prsentation du bus SPI .................................................................................................................... 3


a) Origine ............................................................................................................................................ 3
b) La philosophie du bus SPI ............................................................................................................... 3
c) Les champs dapplication du bus SPI .............................................................................................. 3
2. Proprits physiques du bus SPI ..................................................................................................... 4
a) Le support physique ........................................................................................................................ 4
b) Synoptique d'une liaison SPI Matre-Esclave................................................................................... 5
c) Format de transfert de donnes ...................................................................................................... 6
d) Synoptique d'une liaison SPI Matre-Multi-Esclaves ........................................................................ 7
e) Bus SPI et niveaux lectriques ........................................................................................................ 8
3. Les diffrents autres noms utiliss avec un bus SPI ...................................................................... 9
a) SCK :............................................................................................................................................... 9
b) SDI, DI, SI, SDO, DO, SO : ............................................................................................................. 9
c) nCS, CS ,nSS, STE : ....................................................................................................................... 9
d) QSPI Queued Serial Peripheral Interface : ...................................................................................... 9
e) Avantages et Inconvnients du bus SPI .......................................................................................... 9
4. Constitution dun systme Motorola .............................................................................................. 10
a) Le diagramme bloc SPI : ............................................................................................................... 10
b) Le registre SPCR: Serial Peripheral Control Register .................................................................... 10
c) Le registre SPSR: Serial Peripheral Status Register ..................................................................... 11
d) Le registre SPDR: Serial Peripheral Data Register ........................................................................ 11
e) Le systme de dtection d'erreur SPI : .......................................................................................... 11
5. Constitution pour un systme microcontrleur PIC (Microchip) ............................................... 12
a) Le MSSP Control Register 1 (SSPCON1) ..................................................................................... 12
b) Le MSSP Status Register (SSPSTAT) .......................................................................................... 13
c) Le Serial Receive/Transmit Buffer Register SSPBUF .................................................................... 13
d) Le MSSP Shift Register ................................................................................................................. 13
6. Complment 'SD Card' .................................................................................................................... 14
7. Bibliographie et sources ................................................................................................................. 14

Page 2/10

Ressources

STI2D- SIN

Le bus SPI

1. Prsentation du bus SPI

a) Origine
La sophistication et la complexit des appareils grand public ne permet plus l'change entre
composants lectroniques par liaisons parallles, ces liaisons devenaient de plus en plus nombreuses et
encombrantes. Dans ces systmes base de microcontrleurs (tlphones mobiles...), les changes de
donnes entre les composants se font maintenant avec des bus srie.
Dans le but de minimiser ces liaisons, et par consquent den augmenter la fiabilit, a t cr le bus
srie SPI (Synchronous Peripheral Interface), initialement dvelopp par Motorola.
Dautres fabricants (Microchip, Atmel, Texas Instrument...) ont adopt pour ce type de liaison et de
nombreux composants sont apparus (mmoires, capteurs, microcontrleurs ...)

b) La philosophie du bus SPI

Bus synchrone srie haut


dbit, multipoint ( 1 matre / 1 ou
plusieurs esclaves)

Initialement dvelopp par


MOTOROLA pour les
microcontrleurs 68xx

Pas de contrle
physique de donnes

Transmission en "FULL
DUPLEX"

Bus SPI

Protocole simple. Pas


dadressage (slection
de lesclave).

Lignes de communication
unidirectionnelles.
Transmission courte distance.

c) Les champs dapplication du bus SPI


Il est utilis pour la communication rapide de donnes entre priphriques d'un appareil comme par
exemple les mmoires, les systmes d'affichage, carte SD,etc.

Champs d'application du bus SPI

Communication entre p
Robotique (drone...)

Produits grands publics :


Tlphonie (afficheurs...)

Page 3/14

Ressources

STI2D- SIN

Le bus SPI

2. Proprits physiques du bus SPI


a) Le support physique

Supports physiques du SPI

Fils de cuivre

Piste imprimes

Les caractristiques de fonctionnement du bus SPI


Les donnes changes sont des octets. La transmission seffectue sur 2 fils monodirectionnels
(nomms MOSI, MISO).
Une horloge indpendante fixe par le matre synchronise les changes (en gnral sur front).
La frquence de lhorloge de transmission est comprise entre 1 Mhz et 20 Mhz (selon les performances
des circuits relis au bus).
Il ny a pas dadressage des esclaves (comme sur un bus i2C par exemple). Lesclave devient actif au
moyen dune ligne de slection de botier ddie (gnralement active l'tat bas).
La ligne est constitue de 3 fils auxquels il faut ajouter les fils de slection d'esclave.
SCLK (serial clock) :
Horloge du bus (produite par le matre)
SCLK

MOSI (Master Out Slave In) :


Donnes du matre vers lesclave actif

MOSI

MISO (Master In Slave Out) :


Donnes de lesclave actif vers le matre

MISO
SSn

SSn (Slave Select n) :


Slection de l'esclave n destination de la
transmission

La frquence d'horloge de transmission (matre) est paramtrable :


Par exemple pour un AT80C5112 en mode matre, les 3 bits du registre SPCON (Serial Peripheral
CONtrol register) SPR2, SPR1 et SPR0 permettent de choisir parmi 7 frquences, obtenues par division
de la frquence de lhorloge du microcontrleur.
SPR2
0
0
0
0
1
1
1

Page 4/14

SPR1
0
0
1
1
0
0
1

SPR0
0
1
0
1
0
1
0

Ressources

Frquence de lhorloge SPI


Fc/2
Fc/4
Fc/8
Fc/16
Fc/32
Fc/64
Fc/128

STI2D- SIN

Le bus SPI

b) Synoptique d'une liaison SPI Matre-Esclave

On utilise le principe du registre dcalage. Dans le cas ci-dessus, en 8 priodes d'horloge, l'octet
passe du registre du matre celui de l'esclave et rciproquement le contenu du registre d'esclave est
pass dans celui du matre (full-duplex : simultanit des transferts). Puisquil ne peut pas y avoir de
collisions lors du transfert, il n'y a pas besoin d'arbitrage.
Lien avec le modle OSI
La couche 2 est ralise par le contrleur SPI intgr dans un microcontrleur.
Polarisation de la ligne MISO
Lorsque le bus est inutilis, ce qui revient dire quaucun esclave
nest slectionn, la ligne MISO est ltat haute impdance, ce qui
ne permet pas den dfinir ltat logique.
On vite cela par lutilisation dune rsistance de polarisation, de 5
50 kOhms, qui na aucune influence sur la vitesse de transmission
(contrairement ce qui se passe pour un bus i2C).

+5V
RP
MISO

Rle des bits CPOL et CPHA (pour un AT80C5112) dans le mode de service du bus SPI
Dans les caractristiques du bus SPI du microcontrleur AT80C5112, on peut dterminer, grce deux
paramtres, les fronts o les donnes sont transmises (acquisitions des valeurs) et les moments o elles
peuvent tres modifies.
Ces deux paramtres sont les bits CPOL (ClockPolarity) et CPHA (ClockPhase).
Il existe donc 4 modes de transmission diffrents (voir tableau ci-dessous). Pour une transmission
correcte il faut que ces paramtres soient rgls de la mme manire pour tous les composants relis
au bus.
Mode SPI
0
1
2
3

Page 5/14

CPOL
0
0
1
1

CPHA
0
1
0
1

Le CPOL dtermine si au repos lhorloge est au niveau BAS


(CPOL=0) ou HAUT (CPOL=1).
Le CPHA dtermine quel front de lhorloge les donnes sont
transmises. CPHA=0 les donnes sont valides au premier
front dhorloge, CPHA=1 elles sont valides au deuxime front.

Ressources

STI2D- SIN

Le bus SPI

c) Format de transfert de donnes


Lorsque CPHA = 0, les donnes sont valides au premier front du signal dhorloge. La polarit CPOL
dtermine sil sagit dun front montant ou descendant.
En effet, pour CPOL=0, au repos, lhorloge est au niveau BAS; le premier front est donc un front
montant.
Pour CPOL=1, au repos, lhorloge est sur le niveau HAUT; le premier front est donc un front descendant.
La polarit de lhorloge nayant pas dinfluence sur le moment o le premier bit de donnes est valide
elle na pas deffet sur le format du transfert de donnes (voir figure ci-dessous).

Lorsque CPHA = 1, les donnes sont rceptionnes avec le deuxime front du signal dhorloge.
Pour CPOL=0, au repos, lhorloge est au niveau BAS et monte au niveau HAUT aprs le premier front,
le deuxime front est donc un front descendant.
Pour CPOL=1, au repos, lhorloge est au niveau HAUT et descend au niveau BAS aprs le premier
front; le deuxime front est donc un front montant.

Page 6/14

Ressources

STI2D- SIN

Le bus SPI

d) Synoptique d'une liaison SPI Matre-Multi-Esclaves

Le matre slectionne un seul et


unique esclave avec lequel il veut rentrer
en communication par la mise niveau
logique zro de /SS 1 2 3, puis, aprs 8
fronts d'horloge, l'octet de donne est
transfr.
La patte MISO de l'esclave non
slectionn est l'tat haute impdance.

La seule limite au nombres d'esclaves est en fait la possibilit de broches SS du matre.

Cas de la daisy chain (esclave en guirlande, en cascade...)

Le matre slectionne tous les esclaves


par la mise niveau logique zro de /SS ,
puis aprs 3*8 fronts d'horloge, les 3
octets de donnes sont transfrs (dans le
cas dun octet par esclave).

Cette disposition permet de rduire le nombre de lignes /SS, mais en contre partie il faudra un
"buffer" plus grand dans le matre (ou une gestion du soft plus labore).

Page 7/14

Ressources

STI2D- SIN

Le bus SPI

e) Bus SPI et niveaux lectriques


Les signaux changs sont de types TTL ou CMOS. Il pourra-t-tre envisag dans certains cas de
placer des rsistances de Pull-up de 47k (voir figure1: utilisation d'un multiplexeur MAXIM MAX350).

Si on utilise des composants de tension


d'alimentation diffrente par exemple un p en
5v et un capteur en 3.3v, il convient de procder
une adaptation du niveau de tension des
broches MOSI, SS, SCLK (la MISO n'est pas
affecte car compatible avec le p) par diviseur
de tension base de rsistance 1/4 de watt.

Oscillogrammes des signaux lectriques SPI

Page 8/14

Ressources

STI2D- SIN

Le bus SPI

3. Les diffrents autres noms utiliss avec un bus SPI


a) SCK :
Il s'agit de l'horloge de synchronisation des changes, elle est gnre par le matre et est commune
tous les lments du bus. Cela a pour avantage dviter que chaque composant possde son propre
quartz avec les problmes de prcision que cela impose.
b) SDI, DI, SI, SDO, DO, SO :
Il s'agit de la patte de Serial Data In; dans ce cas de convention d'criture il convient de relier la SDI
du matre la SDO du ou des esclaves.
Il s'agit de la patte de Serial Data Out; dans ce cas de convention d'criture il convient de relier la
SDO du matre la SDI du ou des esclaves.
c) nCS, CS ,nSS, STE :
Il s'agit de la patte /SS Slave Select gnre par le matre.
d) QSPI Queued Serial Peripheral Interface :
C'est un type de contrleur ddi et spcifique qui permet certains transferts de donnes sans
l'utilisation du processeur, mais en faisant appel des pointeurs programmables, pointant une file
d'attente de donnes.
Ce n'est pas un autre type de bus srie.

e) Avantages et Inconvnients du bus SPI

Avantages

Inconvnients

Communication en Full Duplex

Pas d'adressage possible

"Indpendant" du nombre de bits transmettre

Utilisation sur trs courte distance (mme carte)

Pas de collision possible

Ncessite plus de fils que IC

Les esclaves utilisent l'horloge du matre pas de


problme de prcision de quartz

Pas d'acquittement (le matre ne sait pas sil est


cout)

Beaucoup plus rapide que IC en mode standard


Possibilit de configuration plusieurs matres

Page 9/14

Ressources

STI2D- SIN

Le bus SPI

4. Constitution dun systme Motorola


Registre dcalage et buffer

a) Le diagramme bloc SPI :

Broches du bus SPI


(port D 1008h)
Ne pas oublier de
configurer le DDR du port D
en 1009h

Registre programmer

Le mode SPI peut-tre configur pour fonctionner soit en Matre soit en Esclave, la vitesse de
transmission varie de 1,5 MHz 3 MHz. On remarque la bidirectionnalit du registre dcalage.
b) Le registre SPCR: Serial Peripheral Control Register

SPIE
SPE
DOWM
MSTR
CPOL
CPHA
SPR1 & 0

Page 10/14

Validation de l'interruption en fin de transfert


= 1 interruption valide (si le SPIF du SPSR passe 1 on a une interruption)
= 0 interruption inhibe (si le SPIF du SPSR passe 1 on n'a pas interruption, il faut le scruter)
Validation SPI
= 1 le port D est en SPI
= 0 le port D est en I/O normal
Port D Wire or Mode Option :
=1 les sorties du port D sont en type collecteur ouvert
= 0 elles sont de types CMOS
Master Mode Select:
= 1 le 68HC est en Master (SS 1)
= 0 le 68HC est en Slave (SS 0)
Clock POLarity
= 1 le SCK est 1 au repos
= 0 le SCK est 0 au repos
Clock PHAse
= 1 le SCK est valide sur front montant
= 0 le SCK est valide sur front descendant
= 00 l'horloge interne est divise par 2
= 01 l'horloge interne est divise par 4
= 10 l'horloge interne est divise par 8
= 11 l'horloge interne est divise par 16
Pas d'effet en mode slave

Ressources

STI2D- SIN

Le bus SPI

c) Le registre SPSR: Serial Peripheral Status Register

SPIF
WCOL

MODF

Drapeau de fin de transfert SPI / Flag SPI (si SPIE=1)


= 1 le transfert est termin
= 0 le transfert n'est pas termin
Write COLlision
= 1 collision en criture dtecte
= 0 pas de collision
Mode Fault: drapeau qui indique un dfaut de mode
= 1 (le 68HC est en master avec un SS=0)
=0

d) Le registre SPDR: Serial Peripheral Data Register

C'est le registre o s'effectue le transfert des donnes.

e) Le systme de dtection d'erreur SPI :


Seules 2 types d'erreurs sont dtects:
Erreur de mode: dtection d'un niveau bas sur SS alors que le 68HC est dclar en Matre, il ne peut
y avoir 2 matres sur le mme bus SPI
Erreur de collision: dtection d'une criture dans le SPDR alors que le transfert n'est pas termin.

Page 11/14

Ressources

STI2D- SIN

Le bus SPI

5. Constitution pour un systme microcontrleur PIC (Microchip)


a) Le MSSP Control Register 1 (SSPCON1)

.
bit 7 WCOL

: Write Collision Detect bit (Transmit mode only)


1 = Le registre SSPBUF register est crit pendant que l'octet prvu est transmis
(Doit tre effac par le programme)
0 = Pas de dtection

bit 6 SSPOV

: Receive Overflow Indicator bit(1)


SPI mode esclave:
1 = un nouvel octect est reu pendant que le registre SSPBUF est encore en possession de
l'ancien. En cas d'"overflow"(dbordement) la donne du SSPSR est perdue. Le dbordement
n'intervient que dans le mode Esclave. L'utilisateur doit lire le SSPBUF, seulement en cas de
transmission de donne, pour viter le maintien de l'owerflow il doit tre effacer dans le soft.
0 =Pas de dbotrdement

bit 5 SSPEN

: Master Synchronous Serial Port Enable bit


1 = validation de la configuration SCK, SDO, SDI and SS comme port srie(2)
0 = pas de validation du mode SPI, les broches sont en E/S normales(2)

bit 4 CKP

: Clock Polarity Select bit


1 = horloge au niveau haut logique au repos
0 = horloge au niveau bas logique au repos

bit 3-0
SSPM3:SSPM0

: Master Synchronous Serial Port Mode Select bits


0101 = SPI mode Esclave, clock = SCK, SS non valide, SS peut tre utilise en E/S(3)
0100 = SPI mode Esclave, clock = SCK , SS (select slave) valide(3)
0011 = SPI mode Matre, clock = TMR2 output/2(3)
0010 = SPI mode Matre , clock = FOSC/64(3)
0001 = SPI mode Matre , clock = FOSC/16(3)
0000 = SPI mode Matre , clock = FOSC/4(3)

Note 1: Dans le mode Matre , le bit de dpassement n'est pas mis 1 chaque transmission ou nouvelle
rception mais est initialis par une criture dans le registre SSPBUF.
2: Si valid, cette broche doit tre configur comme une entre ou une sortie.

Page 12/14

Ressources

STI2D- SIN

Le bus SPI

b) Le MSSP Status Register (SSPSTAT)

bit 7 SMP

bit 6 CKE

bit 0 BF

: Sample bit
Dans le mode Matre
1 = Echantillonnage de la donne entrante la fin du temps de sortie de la donnes
sortante
0 = Echantillonnage de la donne entrante au millieu du temps de sortie de la
donnes sortante
Dans le mode Esclave mis 0
: SPI Clock Select bit
1 = Transmission sur front de l'tat actif vers tat repos de l'horloge
0 = Transmission sur front de l'tat repos vers tat actif de l'horloge
Dans le mode Esclave mis 0
: Buffer Full Status bit (Receive mode only)
1 = Rception complte, SSPBUF plein
0 = Rception incomplte , SSPBUF vide

Les bits 1, 2, 3, 4 et 5 ne sont pas utiliss en mode SPI.

c) Le Serial Receive/Transmit Buffer Register SSPBUF


Ce registre est utilis pour lire ou crire les
donnes de / vers l'extrieur du PIC.

d) Le MSSP Shift Register


Ce registre n'est pas accessible en direct

Ce registre est utilis pour recevoir /


envoyer les donnes de / vers l'extrieur du
PIC.
Pendant les oprations de transmission,
les 2 registres SSPSR et SSPBUF crent
un double tampon receveur, lorsque le
SSPSR reu un octet, il le transfre au
SSPBUF en provoquant la mise 1 de
SSPIF.

Page 13/14

Ressources

Broches du bus SPI

STI2D- SIN

Le bus SPI

6. Complment 'SD Card'


Les cartes SD possdent plusieurs interfaages possibles dont un bus SPI. Le schma ci-dessous
prsente la connectique des cartes SD, on y retrouve les broches spcifiques du bus SPI.
Avec un microcontrleur incluant une interface SPI spcifique et une programmation pour les routines
supplmentaires d'accs la mmoire de la carte, on peut dvelopper des applications sur ce type de carte (voir
les liens proposs). Cependant, le protocole utilis est complexe et, si lon souhaite avoir une structure de fichier
utilisable sur un ordinateur, on est confront au problme de la FAT

1. System Summary 4.1: A short version of the MMCA System Specification 4.1.
http://www.mmca.org/compliance/buy_spec/MMCA_System_SummaryV41.pdf
2. SD Card Physical Layer Specification: Simplified version V1.01. http://www.sdcard.org/sdio/Simplified Physical
Layer Specification.PDF

7. Bibliographie et sources
Internet : documents constructeurs motorola, microchips, Maxim.
Cours et diaporama sur les liaisons sries de T.Berenguer, P Monassier, B Nourry.

Page 14/14

Ressources

STI2D- SIN