Innholdsfortegnelse:

GRUNNLEGG FOR SPI -KOMMUNIKASJONSPROTOKOLLET: 13 trinn
GRUNNLEGG FOR SPI -KOMMUNIKASJONSPROTOKOLLET: 13 trinn

Video: GRUNNLEGG FOR SPI -KOMMUNIKASJONSPROTOKOLLET: 13 trinn

Video: GRUNNLEGG FOR SPI -KOMMUNIKASJONSPROTOKOLLET: 13 trinn
Video: SKR 1.4 - TMC5160 SPI 2024, Juli
Anonim
GRUNNLEGGENDE FOR SPI -KOMMUNIKASJONSPROTOKOLLET
GRUNNLEGGENDE FOR SPI -KOMMUNIKASJONSPROTOKOLLET

Når du kobler en mikrokontroller til en sensor, skjerm eller annen modul, tenker du noen gang på hvordan de to enhetene snakker til hverandre? Hva sier de egentlig? Hvordan klarer de å forstå hverandre?

Kommunikasjon mellom elektroniske enheter er som kommunikasjon mellom mennesker. Begge sider må snakke samme språk. I elektronikk kalles disse språkene kommunikasjonsprotokoller. Heldigvis for oss er det bare noen få kommunikasjonsprotokoller vi trenger å vite når vi bygger de fleste DIY -elektronikkprosjekter. I denne artikkelserien vil vi diskutere det grunnleggende i de tre vanligste protokollene: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) og Universal Asynchronous Receiver/Transmitter (UART) -drevet kommunikasjon. Først begynner vi med noen grunnleggende konsepter om elektronisk kommunikasjon, og forklarer deretter i detalj hvordan SPI fungerer. I den neste artikkelen vil vi diskutere UART -drevet kommunikasjon, og i den tredje artikkelen vil vi dykke ned i I2C. SPI, I2C og UART er ganske tregere enn protokoller som USB, ethernet, Bluetooth og WiFi, men de er mye enklere og bruker mindre maskinvare og systemressurser. SPI, I2C og UART er ideelle for kommunikasjon mellom mikrokontrollere og mellom mikrokontrollere og sensorer der store mengder høyhastighetsdata ikke trenger å overføres.

Trinn 1: SERIAL VS. PARALLELL KOMMUNIKASJON

SERIAL VS. PARALLELL KOMMUNIKASJON
SERIAL VS. PARALLELL KOMMUNIKASJON

Elektroniske enheter snakker med hverandre ved å sende biter av data gjennom ledninger som er fysisk forbundet mellom enheter. En bit er som en bokstav i et ord, bortsett fra i stedet for de 26 bokstavene (i det engelske alfabetet), er en bit binær og kan bare være 1 eller 0. Bit overføres fra en enhet til en annen ved raske endringer i spenning. I et system som opererer ved 5 V, kommuniseres en 0 bit som en kort puls på 0 V, og en 1 bit kommuniseres med en kort puls på 5 V.

Databittene kan overføres enten i parallell eller seriell form. I parallell kommunikasjon sendes dataene alle samtidig, hver gjennom en egen ledning. Følgende diagram viser parallelloverføring av bokstaven "C" i binær (01000011):

Steg 2:

I seriell kommunikasjon sendes bitene en etter en gjennom en enkelt ledning. Følgende diagram viser seriell overføring av bokstaven "C" i binær (01000011):

Trinn 3:

Bilde
Bilde

Trinn 4: INNLEDNING TIL SPI -KOMMUNIKASJON

INNLEDNING TIL SPI -KOMMUNIKASJON
INNLEDNING TIL SPI -KOMMUNIKASJON

SPI er en vanlig kommunikasjonsprotokoll som brukes av mange forskjellige enheter. For eksempel bruker SD -kortmoduler, RFID -kortlesermoduler og 2,4 GHz trådløse sendere/mottakere alle SPI for å kommunisere med mikrokontrollere.

En unik fordel med SPI er det faktum at data kan overføres uten avbrudd. Et hvilket som helst antall biter kan sendes eller mottas i en kontinuerlig strøm. Med I2C og UART sendes data i pakker, begrenset til et bestemt antall biter. Start- og stoppforhold definerer begynnelsen og slutten av hver pakke, slik at dataene blir avbrutt under overføringen. Enheter som kommuniserer via SPI er i et master-slave-forhold. Mesteren er kontrollenheten (vanligvis en mikrokontroller), mens slaven (vanligvis en sensor, skjerm eller minnebrikke) tar instruksjoner fra masteren. Den enkleste konfigurasjonen av SPI er et enkelt master, enkelt slave system, men en master kan kontrollere mer enn en slave (mer om dette nedenfor).

Trinn 5:

Bilde
Bilde

Trinn 6:

MOSI (Master Output/Slave Input) - Linje for master for å sende data til slaven.

MISO (Master Input/Slave Output) - Linje for slaven for å sende data til masteren.

SCLK (Klokke) - Linje for klokkesignalet.

SS/CS (Slave Select/Chip Select) - Linje for master for å velge hvilken slave som skal sendes data til

Trinn 7:

Bilde
Bilde

*I praksis er antallet slaver begrenset av systemets lastkapasitans, noe som reduserer masterens evne til å skifte nøyaktig mellom spenningsnivåer.

Trinn 8: HVORDAN SPI FUNGERER

KLOKKEN

Klokkesignalet synkroniserer utdataene fra databiter fra masteren til samplingen av biter av slaven. En bit data blir overført i hver klokkesyklus, så hastigheten på dataoverføringen bestemmes av frekvensen til klokkesignalet. SPI -kommunikasjon initieres alltid av masteren siden masteren konfigurerer og genererer klokkesignalet.

Enhver kommunikasjonsprotokoll der enheter deler et klokkesignal, kalles synkron. SPI er en synkron kommunikasjonsprotokoll. Det er også asynkrone metoder som ikke bruker et klokkesignal. For eksempel i UART-kommunikasjon er begge sider satt til en forhåndskonfigurert overføringshastighet som dikterer hastigheten og timingen for dataoverføring.

Klokkesignalet i SPI kan endres ved hjelp av egenskapene til klokkepolaritet og klokkefase. Disse to egenskapene fungerer sammen for å definere når bitene sendes ut og når de samples. Klokkepolaritet kan stilles inn av masteren slik at biter kan sendes ut og samples på enten den stigende eller fallende kanten av klokkesyklusen. Klokkefasen kan stilles inn for utgang og sampling på enten den første kanten eller den andre kanten av klokkesyklusen, uavhengig av om den stiger eller faller.

SLAVE SELECT

Mesteren kan velge hvilken slave den vil snakke med ved å sette slavens CS/SS -linje til et lavt spenningsnivå. I inaktiv, ikke-overførende tilstand holdes slavevalglinjen på et høyt spenningsnivå. Flere CS/SS -pinner kan være tilgjengelige på masteren, noe som gjør det mulig å koble flere slaver parallelt. Hvis bare en CS/SS-pin er tilstede, kan flere slaver kobles til masteren ved å kjede dem.

MULTIPLE SLAVES SPI

kan settes opp til å fungere med en enkelt master og en enkelt slave, og den kan konfigureres med flere slaver kontrollert av en enkelt master. Det er to måter å koble flere slaver til mesteren. Hvis masteren har flere slavevalgpinner, kan slavene kobles parallelt slik:

Trinn 9:

Bilde
Bilde

Trinn 10:

MOSI OG MISO

Mesteren sender data til slaven bit for bit, i serie gjennom MOSI -linjen. Slaven mottar dataene som sendes fra masteren ved MOSI -pinnen. Data sendt fra masteren til slaven blir vanligvis sendt med den mest betydningsfulle biten først. Slaven kan også sende data tilbake til masteren gjennom MISO -linjen i serie. Dataene som sendes fra slaven tilbake til masteren sendes vanligvis med den minst signifikante biten først. TRINN AV SPI -DATA -TRANSMISSJON 1. Mesteren sender ut klokkesignalet:

Trinn 11:

Bilde
Bilde

Hvis bare en slave select pin er tilgjengelig, kan slavene være daisy-lenket slik:

Trinn 12:

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

MOSI OG MISO

Mesteren sender data til slaven bit for bit, i serie gjennom MOSI -linjen. Slaven mottar dataene som sendes fra masteren ved MOSI -pinnen. Data sendt fra masteren til slaven blir vanligvis sendt med den mest betydningsfulle biten først.

Slaven kan også sende data tilbake til masteren gjennom MISO -linjen i serie. Dataene som sendes fra slaven tilbake til masteren sendes vanligvis med den minst signifikante biten først.

TRINN AV TRANSMISSJON AV SPI -DATA

*Merk Bilder er listet Oboe du enkelt kan skille mellom

1. Mesteren sender ut klokkesignalet:

2. Master bytter SS/CS -pinnen til en lavspenningstilstand, som aktiverer slaven:

3. Master sender dataene en bit om gangen til slaven langs MOSI -linjen. Slaven leser bitene når de mottas:

4. Hvis det er nødvendig med et svar, returnerer slaven data en bit om gangen til masteren langs MISO -linjen. Mesteren leser bitene når de mottas:

Trinn 13: FORDELER OG FORDELER MED SPI

Det er noen fordeler og ulemper ved å bruke SPI, og hvis du får valget mellom forskjellige kommunikasjonsprotokoller, bør du vite når du skal bruke SPI i henhold til kravene til prosjektet ditt:

FORDELER

Ingen start- og stoppbiter, så dataene kan streames kontinuerlig uten avbrudd Ingen komplisert slave -adresseringssystem som I2C Høyere dataoverføringshastighet enn I2C (nesten dobbelt så raskt) Separate MISO- og MOSI -linjer, slik at data kan sendes og mottas samtidig tid

ULEMPER

Bruker fire ledninger (I2C og UART bruker to) Ingen bekreftelse på at dataene har blitt mottatt (I2C har dette) Ingen form for feilkontroll som paritetsbiten i UART Bare tillater en enkelt master Forhåpentligvis har denne artikkelen gitt deg en bedre forståelse av SPI. Fortsett til del to av denne serien for å lære om UART -drevet kommunikasjon, eller til del tre der vi diskuterer I2C -protokollen.

Hvis du har spørsmål, kan du stille det i kommentarfeltet, vi er her for å hjelpe. Og sørg for å følge med

Hilsen: M. Junaid

Anbefalt: