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