Port de communication série synchrone SPI

Transcription

Port de communication série synchrone SPI
GEI 437 Laboratoire d’interfaces et microprocesseurs
Port de communication série synchrone
SPI
Un exemple de bus spécialisé pour
des circuits périphériques
Philippe Mabilleau Ing.
mardi 9 janvier 2001
1
GEI 437 Laboratoire d’interfaces et microprocesseurs
Sous-système de communication série
QSM
Philippe Mabilleau Ing.
2
GEI 437 Laboratoire d’interfaces et microprocesseurs
Port série synchrone
SPI
u
u
u
u
Port de communication série synchrone
u signaux de données et d’horloge
u entrée et sortie simultanées (duplex intégral)
u format de l’horloge programmable
Concept de bus maître-esclave
Transferts programmables contrôlés par le QSPI
Utilisé pour communiquer avec des circuits d’interface
Philippe Mabilleau Ing.
3
GEI 437 Laboratoire d’interfaces et microprocesseurs
Communication série synchrone
u
u
u
u
Un signal d’horloge synchronise la communication
États de repos et phase de l’horloge programmables
Rythme de transmission programmable (de 33 Khz à
4.19 Mhz)
Longueur des échanges programmable de 8 à 16 bits
Philippe Mabilleau Ing.
4
GEI 437 Laboratoire d’interfaces et microprocesseurs
Broches utilisées par le SPI
Philippe Mabilleau Ing.
5
GEI 437 Laboratoire d’interfaces et microprocesseurs
Bus Maître-esclave
u
C’est le maître qui initie et synchronise les échanges
Maître
Philippe Mabilleau Ing.
SCK
SCK
MOSI
MOSI
MISO
MISO
Esclave
6
GEI 437 Laboratoire d’interfaces et microprocesseurs
Bus à esclaves multiples
u
Il est possible d’adresser plusieurs esclaves depuis un
même SPI maître
Maître
Esclave
1
Esclave
2
Esclave
3
SCK
MOSI
MISO
PCS0-PCS3
Philippe Mabilleau Ing.
7
GEI 437 Laboratoire d’interfaces et microprocesseurs
Signaux de sélection
u
u
u
u
Les signaux PCS0-PCS3 issus du SPI maître sont
utilisés pour sélectionner un SPI esclave à chaque
échange
Le signal PCS0/SS peut être utilisé pour sélectionner un
SPI esclave
Chaque signal peut être utilisé directement pour
sélectionner un SPI esclave parmi 4
Un circuit de décodage peut être utilisé pour
sélectionner un SPI esclave parmi 15
Philippe Mabilleau Ing.
8
GEI 437 Laboratoire d’interfaces et microprocesseurs
Maîtres multiples sur un bus
u
u
u
Le même SPI peut être maître ou esclave selon les
échanges
Il est possible de configurer les broches de sortie du SPI
en drain ouvert pour supporter des maîtres multiples sur
le bus; une erreur peut également être rapportée si on
sélectionne un SPI maître via la broche PCS0/SS
Aucun mécanisme matériel n’existe pour assurer le
passage de la maîtrise du bus; un mécanisme logiciel
de haut niveau doit être utilisé
Philippe Mabilleau Ing.
9
GEI 437 Laboratoire d’interfaces et microprocesseurs
Exemple de structures maître-esclave
u
u
u
Le SPI du 68331 peut être maître ou esclave
Il va généralement être utilisé en maître pour adresser
un ou plusieurs circuits périphériques esclaves comme
des convertisseurs ADC et DAC ou des systèmes
d'affichage
Le SPI du 68331 peut également communiquer avec
des SPI de 68HC11, 68HC12, 68HC16 ou d'autres
microcontrôleurs de la famille 683xx pour constituer des
systèmes multiprocesseurs
Philippe Mabilleau Ing.
10
GEI 437 Laboratoire d’interfaces et microprocesseurs
Format de l’horloge
u
u
u
u
u
La polarité et la phase de l’horloge sont programmables
à l’aide des drapeaux CPOL et CPHA du SPCR0
CPOL = 0 l’horloge est basse au repos
CPOL = 1 l’horloge est haute au repos
CPHA = 0 les données sont saisies sur le front montant
de l’horloge et changent sur le front descendant
CPHA = 1 les données sont saisies sur le front
descendant de l’horloge et changent sur le front
montant
Philippe Mabilleau Ing.
11
GEI 437 Laboratoire d’interfaces et microprocesseurs
Exemple:
CPOL = 1 et CPHA = 0
Chargement Passage du bit i Chargement
du bit i
au bit i+1
du bit i+1
Philippe Mabilleau Ing.
12
GEI 437 Laboratoire d’interfaces et microprocesseurs
Rythme des échanges
u
u
C’est l’horloge issue du maître qui détermine le rythme
des échanges
Des délais peuvent être ajoutés au début et à la fin des
échanges
u au début pour permettre au circuit esclave
sélectionné d’être prêt à transférer des données
u à la fin pour permettre au circuit esclave de
« digérer » les données
Philippe Mabilleau Ing.
13
GEI 437 Laboratoire d’interfaces et microprocesseurs
Délai de sélection
u
u
Un délai précédent chaque échange permet de retarder
la transmission après la sélection de l'esclave via les
signaux PCS0-PCS3
La longueur de ce délai est déterminé par les 7 bits
DSCKL et est contrôlé par le bit DSCK de chaque
commande d'échange
Philippe Mabilleau Ing.
14
GEI 437 Laboratoire d’interfaces et microprocesseurs
Délai de traitement
u
u
Un délai peut être ajouté après chaque échange pour
permettre au circuit esclave d'assimiler les données
reçues
La longueur de ce délai est déterminé par les 8 bits DTL
et est contrôlé par le bit DT de chaque commande
d'échange
Philippe Mabilleau Ing.
15
GEI 437 Laboratoire d’interfaces et microprocesseurs
Mécanisme des échanges
u
u
En mode esclave les échanges sont contrôlés de
l'extérieur par le système maître
En mode maître les échanges sont contrôlés par une
série de commandes placées dans une région
particulière de la mémoire vive (Command RAM)
Philippe Mabilleau Ing.
16
GEI 437 Laboratoire d’interfaces et microprocesseurs
Mémoire de commande
u
u
u
Cette mémoire de commande peut contenir 16
commandes d'un octet chacune; les commandes y sont
organisées selon une queue circulaire
Les commandes placées dans la mémoire de
commande vont être exécutées par le QSPI sans
intervention du CPU
Deux pointeurs dans SPCR2, NEWQP et ENDQP,
permettent de déterminer les positions des commandes
de départ et finale dans la queue
Philippe Mabilleau Ing.
17
GEI 437 Laboratoire d’interfaces et microprocesseurs
Mémoire vive du QSPI
u
En plus de la mémoire de commande le QSPI comporte
deux zones de mémoire vive qui sont utilisées pour
placer les données échangées en entrée et en sortie
Philippe Mabilleau Ing.
18
GEI 437 Laboratoire d’interfaces et microprocesseurs
Exécution des commandes
u
u
u
Les commandes sont exécutées à partir de la position
NEWQP dès que le QSPI est activé (bit SPE)
Le pointeur CPTQP dans le registre d'état SPSR
indique toujours la dernière commande exécutée
La dernière commande exécutée par le QSPI est celle
pointée par ENDQP sauf si celui-ci a été placé dans le
mode de bouclage (Wraparound) (bit WREN dans le
registre de contrôle SPCR2); en mode bouclage
l'exécution des commandes continue à l'adresse $0 ou
NEWQP (selon bit WRTO de SPCR2)
Philippe Mabilleau Ing.
19
GEI 437 Laboratoire d’interfaces et microprocesseurs
Format des commandes
u
Pour chaque commande on peut spécifier les signaux
de sélection utilisés, les délais à utiliser ainsi que la
taille de l'échange
Philippe Mabilleau Ing.
20
GEI 437 Laboratoire d’interfaces et microprocesseurs
Interruptions
u
u
u
Des interruptions peuvent être générées par le QSPI
lorsque celui a terminé tous les échanges c'est à dire
lorsque le pointeur CPTQP a atteint ENDQP; ceci est
vrai aussi bien en mode maître qu'en mode esclave
Lorsque le mode bouclage est utilisé une interruption
est générée à chaque boucle donc à chaque passage
de CPTQP à ENDQP
Un drapeau SPIF est associé à la fin des échanges et
peut être scruté si les interruptions ne sont pas utilisées
Philippe Mabilleau Ing.
21
GEI 437 Laboratoire d’interfaces et microprocesseurs
Contrôle du QSPI
u
u
Le QSPI doit être activé à l ’aide du bit SPE dans
SPCR1
Il est possible d'arrêter les échanges en tout temps à
l'aide du drapeau HALT dans SPCR3
Philippe Mabilleau Ing.
22
GEI 437 Laboratoire d’interfaces et microprocesseurs
Architecture interne et carte mémoire du
QSPI
Philippe Mabilleau Ing.
23