Transcription of Bus SPI - projet.eu.org
1 Classe de terminale SI. Bus SPI. Table des mati res 1. Pr Philosophie du bus 2. Sch ma de 3. Propri t s physiques du bus Le support Synoptique d'une liaison SPI Ma Format de transfert de donn Synoptique d'une liaison SPI Ma Bus SPI et niveaux 4. 5. Exemple de mise en uvre d'une 6. Les diff rents autres noms utilis s avec un bus 7. Constitution d'un syst me Le diagramme bloc Le registre SPCR: Serial Peripheral Control Le registre SPSR: Serial Peripheral Status Le registre SPDR: Serial Peripheral Data Le syst me de d tection d'erreur 8. Constitution pour un syst me microcontr leur Le MSSP Control Register 1 (SSPCON1)..14. Le MSSP Status Register (SSPSTAT)..15. Le Serial Receive/Transmit Buffer Register Le MSSP Shift 9. Compl SD Une liaison SPI (Serial Peripheral Interface) est un bus de donn es s rie synchrone baptis ainsi par Motorola, qui op re en mode Full-duplex.
2 Les circuits communiquent selon un sch ma ma tre- esclaves, o le ma tre s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un m me bus, dans ce cas, la s lection du destinataire se fait par une ligne d di e entre le ma tre et l'esclave appel e chip select. 1. Classe de terminale SI. 1. Introduction Origine La sophistication et la complexit des appareils grand public ne permet plus l' change entre composants lectroniques par liaisons parall les, ces liaisons devenaient de plus en plus nombreuses et encombrantes. Dans ces syst mes base de microcontr leurs (t l phones mobiles ..), les changes de donn es entre les composants se font maintenant avec des bus s rie. Dans le but de minimiser ces liaisons, et par cons quent d'en augmenter la fiabilit , a t cr le bus s rie SPI (Serial Peripheral Interface), initialement d velopp par Motorola.
3 D'autres fabricants (Microchip, Atmel, Texas ) ont adopt pour ce type de liaison et de nombreux composants sont apparus (m moires, capteurs, micro contr ). Pr sentation Dans les circuits d'interface le bus SPI n'est pas seul est se trouve talonn depuis de nombreuses ann es par les circuits dot s d'une liaison s rie synchrone de type SPI. Cette appellation rencontre cependant des signaux et des chronogrammes qui sont beaucoup moins bien normalis s que ceux du bus I2C, tout simplement parce que la liaison du bus SPI ne fait l'objet d'aucune norme officielle. Certains circuits indiquent qu'ils sont munis d'une interface SPI, mais vous pourrez aussi trouver comme appellation Microwire (qui est une marque d pos e de National Semiconductor) ou bien encore bus s rie trois fils.
4 Un bus de ce type permet la connexion, sous forme s rie ma tre- esclave, de plusieurs circuits disposant d'interfaces compatibles, avec seulement trois fils de liaisons. Les derni res versions d'Arduino incluent une biblioth que qui permet la communication avec les p riph riques SPI. SPI a des lignes labellis s MOSI : Master Output Slave Input, g n r par le ma tre, des lignes labellis es . MISO : Master Input Slave Output, g n r par l'esclave et une ligne d'horloge (SCK : SPI Serial Clock). Ces trois lignes sont connect es leurs lignes respectives sur un ou plusieurs esclaves. Les esclaves sont identifi es gr ce au signal de leur ligne SS (Slave Select). Autres nommages possibles : SDO (Serial Data Out) et SDI. (Serial Data Input).
5 La figure ci-contre illustre les connexions SPI. Ma tre SPI avec plusieurs esclaves SPI. 2. Classe de terminale SI. Les num ros de broches utiliser pour les broches SPI sont list s dans le tableau ci-dessous. Broches num riques utilis es pour SPI. Signal SPI Carte Arduino Uno Carte Arduino Mega SS (choix de l'esclave) 10 S3. MOSI (entr es de donn es) 11 S1. MISO (sorties de donn es) 12 S0. SCLK (horloge) 13 S2. Philosophie du bus SPI. 2. Sch ma de principe La figure ci-dessous correspond au sch ma de principe simplifi d'une liaison de donn es SPI, avec ses principaux composants. Sch ma de principe simplifi d'une liaison SPI. Deux registres d calages sont g n ralement mis en uvre. Ils peuvent tre de type mat riel ou logiciel, selon les dispositifs employ s.
6 Par exemple, le RasPi impl mente son registre d calage 3. Classe de terminale SI. de fa on logiciel alors que le MCP3008 (ADC) est quip d'un registre d calage mat riel. Quelque soit leur mise en uvre, ces deux registres d calage forment un buffer circulaire interpuce, qui se trouve au c ur de la liaison SPI. Les communications sont initi es par le ma tre, qui commence par s lectionner l'esclave. Au cours de chaque cycle d'horloge, le ma tre envoie un bit l'esclave, qui le lit sur la ligne MOSI. En parall le, l'esclave envoie un bit au ma tre, qui le lit sur la ligne MISO. Ces lectures et critures simultan es entre le ma tre et l'esclave forment une communication Full-Duplex. La fr quence de l'horloge d pend principalement des possibilit s de r ponse de l'esclave.
7 Par exemple, le MCP3008 aliment en 5 V est capable de g rer des fr quences de donn es allant jusqu' 3,6 MHz. 3. Propri t s physiques du bus SPI. Le support physique Les donn es chang es sont des octets. La transmission s'effectue sur 2 fils monodirectionnels (nomm s MOSI, MISO). Une horloge ind pendante fix e par le ma tre synchronise les changes (en g n ral sur front). La fr quence de l'horloge de transmission est comprise entre 1 Mhz et 20 Mhz (selon les performances des circuits reli s au bus). Il n'y a pas d'adressage des esclaves (comme sur un bus i2C par exemple). L'esclave devient actif au moyen d'une ligne de s lection de bo tier d di e (g n ralement active l' tat bas). La ligne est constitu e de 3 fils auxquels il faut ajouter les fils de s lection d'esclave.
8 SCLK (serial clock) : Horloge du bus (produite 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 La fr quence d'horloge de transmission (ma tre) est param trable : Par exemple pour un AT80C5112 en mode ma tre, les 3 bits du registre SPCON (Serial Peripheral CONtrol register) SPR2, SPR1 et SPR0 permettent de choisir parmi 7 fr quences, obtenues par division de la fr quence de l'horloge du microcontr leur. SPR2 SPR1 SPR0 Fr quence de l'horloge SPI. 0 0 0 F c/2. 0 0 1 F c/4. 0 1 0 F c/8. 0 1 1 F c/16. 1 0 0 F c/32. 4. Classe de terminale SI. 1 0 1 F c/64.
9 1 1 0 F c/128. Synoptique d'une liaison SPI Ma tre-Esclave On utilise le principe du registre d calage. Dans le cas ci-dessus, en 8 p riodes d'horloge, l'octet passe du registre du ma tre celui de l'esclave et r ciproquement le contenu du registre d'esclave est pass dans celui du ma tre (full-duplex : simultan it des transferts). Puisqu'il ne peut pas y avoir de collisions lors du transfert, il n'y a pas besoin d'arbitrage. La couche 2 est r alis e par le contr leur SPI int gr dans un microcontr leur. Lorsque le bus est inutilis , ce qui revient dire qu'aucun esclave n'est s lectionn , la ligne MISO est l' tat haute imp dance, ce qui ne permet pas d'en d finir l' tat logique. On vite cela par l'utilisation d'une r sistance de polarisation, de 5.
10 50 kOhms, qui n'a aucune influence sur la vitesse de transmission (contrairement ce qui se passe pour un bus i2C). Dans les caract ristiques du bus SPI du microcontr leur AT80C5112, on peut d terminer, gr ce . deux param tres, les fronts o les donn es sont transmises (acquisitions des valeurs) et les moments o elles peuvent tres modifi es. Ces deux param tres sont les bits CPOL (ClockPolarity) et CPHA (ClockPhase). Il existe donc 4 modes de transmission diff rents (voir tableau ci-dessous). Pour une transmission correcte il faut que ces param tres soient r gl s de la m me mani re pour tous les composants reli s au bus. Mode SPI CPOL CPHA Le CPOL d termine si au repos l'horloge est au 0 0 0 niveau BAS (CPOL=0) ou HAUT (CPOL=1). 1 0 1 Le CPHA d termine quel front de l'horloge 2 1 0.