Informació sobre el protocol de comunicació SPI a Embedded

Proveu El Nostre Instrument Per Eliminar Problemes





La comunicació té un paper essencial en el disseny de sistemes incrustats. Sense anar als protocols, l'expansió perifèrica és molt complexa i consumeix molta energia. El sistema incrustat utilitza bàsicament la comunicació en sèrie per comunicar-se amb els perifèrics.
Hi ha molts protocols de comunicació en sèrie, com ara la comunicació UART, CAN, USB, I2C i SPI. El serial protocol de comunicació Les característiques inclouen alta velocitat i baixa pèrdua de dades. Facilita el disseny a nivell de sistema i garanteix una transferència de dades fiable.

Comunicació de dades en sèrie

La informació codificada elèctricament s’anomena dades en sèrie, que es transmeten bit a bit d’un dispositiu a un altre mitjançant un conjunt de protocols. Al sistema incrustat, es reben o es transmeten dades de sensors i actuadors de control als dispositius del controlador, com ara microcontroladors, de manera que les dades siguin analitzades i processades. Com que els microcontroladors funcionen amb les dades digitals, la informació del fitxer sensors analògics , actuadors i altres perifèrics es converteixen en una paraula binària d’un byte (8 bits) abans de ser transmesa al microcontrolador.




Comunicació de dades en sèrie

Comunicació de dades en sèrie

Aquestes dades serials es transmeten respecte a cert pols de rellotge. La velocitat de transmissió de dades es coneix com la velocitat en bauds. El nombre de bits de dades que es poden transmetre per segon s’anomena velocitat en bauds. Suposem que les dades són de 12 bytes i que cada byte es converteix en 8 bits, de manera que la mida total de la transmissió de dades és d’uns 96 bits / seg de les dades (12 bits * 8 bits per byte). Si les dades es poden transmetre un cop per segon, les velocitats en bauds són al voltant de 96 bits / seg o 96 bauds. La pantalla mostra el valor de les dades un cop cada segon.



Fonaments bàsics de la interfície perifèrica en sèrie

La comunicació SPI significa interfície perifèrica en sèrie protocol de comunicació , que va ser desenvolupat per Motorola el 1972. La interfície SPI està disponible en controladors de comunicació populars com PIC, AVR i Controlador ARM , etc. Té un enllaç de dades de comunicació sèrie síncrona que funciona en full duplex, el que significa que els senyals de dades continuen ambdues direccions simultàniament.

El protocol SPI consta de quatre cables, com ara MISO, MOSI, CLK, SS que s’utilitzen per a la comunicació mestre / esclau. El mestre és un microcontrolador i els esclaus són altres perifèrics com els sensors, Mòdem GSM i mòdem GPS, etc. Els múltiples esclaus s’interfacen al mestre mitjançant un bus sèrie SPI. El protocol SPI no admet la comunicació multi-master i s’utilitza per a una distància curta dins d’una placa de circuit.

Fonaments bàsics de la interfície perifèrica en sèrie

Fonaments bàsics de la interfície perifèrica en sèrie

Línies SPI

MISO (Master in Slave out) : La línia MISO es configura com a entrada en un dispositiu mestre i com a sortida en un dispositiu esclau.


MOSI (Master Out Slave in) : El MOSI és una línia configurada com a sortida en un dispositiu mestre i com a entrada en un dispositiu esclau en què s’utilitza per sincronitzar el moviment de dades.

SCK (rellotge de sèrie) : Aquest senyal sempre el condueix el mestre per a la transferència de dades síncrona entre el mestre i l'esclau. S'utilitza per sincronitzar el moviment de dades tant dins com fora a través de les línies MOSI i MISO.

SS (Selecció esclau) i CS (Selecció de xip) : Aquest senyal és conduït pel mestre per seleccionar esclaus / dispositius perifèrics individuals. És una línia d'entrada que s'utilitza per seleccionar els dispositius esclaus.

Comunicació Master Slave amb bus sèrie SPI

Implementació de SPI per a mestre únic i esclau únic

Aquí, la comunicació sempre la inicia el mestre. El dispositiu mestre primer configura la freqüència de rellotge que és inferior o igual a la freqüència màxima que admet el dispositiu esclau. Aleshores, el mestre selecciona l’esclau desitjat per a la comunicació arrossegant la línia de selecció de xip (SS) d’aquest dispositiu esclau concret per passar a estar baix i actiu. El mestre genera la informació a la línia MOSI que transporta les dades de mestre a esclau.

Comunicació Master Slave

Comunicació Master Slave

Implementacions d'un sol mestre i d'esclaus múltiples

Es tracta d’una configuració d’esclaus múltiples amb un mestre i diversos esclaus a través del bus sèrie SPI. Els esclaus múltiples es connecten en paral·lel al dispositiu mestre amb el bus sèrie SPI. Aquí, totes les línies de rellotge i línies de dades estan connectades entre si, però el pin de selecció de xip de cada dispositiu esclau ha d’estar connectat a un pin de selecció esclau separat del dispositiu maser.

Mestre únic i múltiples esclaus

Mestre únic i múltiples esclaus

En aquest procés, el control de cada dispositiu esclau es realitza mitjançant una línia de selecció de xips (SS). El pin de selecció de xip baixa per activar el dispositiu esclau i augmenta per desactivar-lo.

La transferència de dades s’organitza utilitzant els registres de desplaçament tant en dispositius mòbils com en esclaus amb una mida de paraula determinada d’aproximadament 8 bits i 16 bits, respectivament. Tots dos dispositius es connecten en forma d'anell de manera que el valor del registre de desplaçament maser es transmet a través de la línia MOSI i, a continuació, l'esclau desplaça les dades en el seu registre de desplaçament. Les dades solen desplaçar-se amb MSB primer i canviar el nou LSB al mateix registre.

Transferència de dades entre Master i Slave

Transferència de dades entre Master i Slave

Importància de la polaritat i la fase del rellotge

En general, la transmissió i recepció de dades es realitza respecte als polsos de rellotge a les vores ascendents i vores descendents. Els microcontroladors avançats tenen dues freqüències: freqüència interna i freqüència externa. Es podrien afegir perifèrics SPI compartint les línies MISO, MOSI i SCLK. Els perifèrics són de diferents tipus o velocitats com ADC, DAC, etc. Per tant, hem de canviar la configuració de SPCR entre les transferències a diferents perifèrics.

Registre SPCR

Registre SPCR

El bus SPI funciona en un dels 4 modes de transferència diferents amb una polaritat de rellotge (CPOL) i una fase de rellotge (CPHA) que defineix el format de rellotge que s’ha d’utilitzar. La polaritat del rellotge i les taxes de rellotge de fase depenen del dispositiu perifèric que intenteu comunicar amb el mestre.
CPHA = 0, CPOL = 0: el primer bit comença com un senyal inferior: les dades es mostren a la vora ascendent i les dades canvien a la vora descendent.

CPHA = 0, CPOL = 1: el primer bit comença amb un rellotge inferior: les dades es mostren a la vora descendent i les dades canvien a la vora ascendent.

CPHA = 1, CPOL = 0: el primer bit comença amb un rellotge superior: les dades es mostren a la vora descendent i les dades canvien a la vora ascendent.

CPHA = 1, CPOL = 1: el primer bit comença amb un rellotge superior: les dades es mostren a la vora ascendent i les dades canvien a la vora descendent.

Temporitzacions SPI Bus

Temporitzacions SPI Bus

Protocol de comunicació SPI

Molts microcontroladors tenen protocols SPI incorporats que gestionen totes les dades d’enviament i recepció. Qualsevol de les operacions del mode de dades (R / W) està controlada per un control i registres d'estat del protocol SPI. Aquí podeu observar la interfície EEPROM al microcontrolador PIC16f877a mitjançant el protocol SPI.

Aquí, 25LC104 EEROM és una memòria de 131072 bytes en què el microcontrolador transfereix dos bytes de dades al Memòria EEROM mitjançant un bus sèrie SPI. A continuació es mostra el programa per a aquesta interfície.

Comunicació mestre a esclau mitjançant bus sèrie SPI

Comunicació mestre a esclau mitjançant bus sèrie SPI

#incloure
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Inicialitza EEROM () buida
Void main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Avantatges del protocol SPI

  • És una comunicació dúplex completa.
  • Es tracta d’un bus de dades d’alta velocitat de 10 MHz.
  • No es limita a 8 bits durant la transferència
  • La interfície de maquinari és senzilla mitjançant SPI.
  • Slave utilitza un rellotge mestre i no necessita oscil·ladors preciosos.

Això es tracta de les comunicacions SPI i la seva interfície amb un microcontrolador . Agraïm el vostre gran interès i atenció per aquest article i, per tant, anticipem el vostre punt de vista sobre aquest article. A més, per a qualsevol assistència i codificació de la interfície, podeu demanar-nos-ho tot comentant a continuació.

Crèdits fotogràfics:

  • Comunicació de dades en sèrie per glowscotland
  • Fonaments bàsics de la interfície perifèrica en sèrie de ni
  • Mestre únic i diversos esclaus de menjar
  • Transferència de dades entre Master i Slave per enginyersgarage
  • Temps SPI Bus per maximintegrated