Indholdsfortegnelse:

GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN: 13 trin
GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN: 13 trin

Video: GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN: 13 trin

Video: GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN: 13 trin
Video: ASHLEY LOOK AT ME! - Skibidi Toilet ANIMATION | GH'S ANIMATION 2024, Juli
Anonim
GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN
GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN

Når du slutter en mikrokontroller til en sensor, skærm eller et andet modul, tænker du nogensinde på, hvordan de to enheder taler til hinanden? Hvad siger de egentlig? Hvordan kan de forstå hinanden?

Kommunikation mellem elektroniske enheder er som kommunikation mellem mennesker. Begge sider skal tale det samme sprog. I elektronik kaldes disse sprog kommunikationsprotokoller. Heldigvis for os er der kun få kommunikationsprotokoller, vi skal kende, når vi bygger de fleste DIY -elektronikprojekter. I denne artikelserie vil vi diskutere det grundlæggende i de tre mest almindelige protokoller: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) og Universal Asynchronous Receiver/Transmitter (UART) -drevet kommunikation. Først begynder vi med nogle grundlæggende begreber om elektronisk kommunikation, og forklarer derefter detaljeret, hvordan SPI fungerer. I den næste artikel diskuterer vi UART -drevet kommunikation, og i den tredje artikel dykker vi ned i I2C. SPI, I2C og UART er en del langsommere end protokoller som USB, ethernet, Bluetooth og WiFi, men de er meget mere enkle og bruger mindre hardware og systemressourcer. SPI, I2C og UART er ideelle til kommunikation mellem mikrokontrollere og mellem mikrokontroller og sensorer, hvor store mængder højhastighedsdata ikke skal overføres.

Trin 1: SERIAL VS. PARALLEL KOMMUNIKATION

SERIEL VS. PARALLEL KOMMUNIKATION
SERIEL VS. PARALLEL KOMMUNIKATION

Elektroniske enheder taler til hinanden ved at sende bits af data gennem ledninger, der er fysisk forbundet mellem enheder. En bit er som et bogstav i et ord, undtagen i stedet for de 26 bogstaver (i det engelske alfabet), er en bit binær og kan kun være en 1 eller 0. Bits overføres fra en enhed til en anden ved hurtige ændringer i spændingen. I et system, der arbejder ved 5 V, kommunikeres en 0 bit som en kort puls på 0 V, og en 1 bit kommunikeres med en kort puls på 5 V.

Dataene kan transmitteres enten i parallel eller seriel form. I parallel kommunikation sendes dataene alle på samme tid, hver gennem en separat ledning. Følgende diagram viser parallel transmission af bogstavet "C" i binært (01000011):

Trin 2:

Ved seriel kommunikation sendes bitene en efter en gennem en enkelt ledning. Følgende diagram viser den serielle transmission af bogstavet "C" i binært (01000011):

Trin 3:

Billede
Billede

Trin 4: INTRODUKTION TIL SPI -KOMMUNIKATION

INTRODUKTION TIL SPI -KOMMUNIKATION
INTRODUKTION TIL SPI -KOMMUNIKATION

SPI er en fælles kommunikationsprotokol, der bruges af mange forskellige enheder. F.eks. Bruger SD -kortmoduler, RFID -kortlæser -moduler og 2,4 GHz trådløse sendere/modtagere alle SPI til at kommunikere med mikrokontrollere.

En unik fordel ved SPI er, at data kan overføres uden afbrydelse. Et vilkårligt antal bits kan sendes eller modtages i en kontinuerlig strøm. Med I2C og UART sendes data i pakker, begrænset til et bestemt antal bits. Start- og stopbetingelser definerer begyndelsen og slutningen af hver pakke, så dataene afbrydes under transmissionen. Enheder, der kommunikerer via SPI, er i et master-slave-forhold. Master er styreenheden (normalt en mikrokontroller), mens slaven (normalt en sensor, display eller hukommelseschip) tager instruktion fra masteren. Den enkleste konfiguration af SPI er et enkelt master, enkelt slave system, men en master kan styre mere end en slave (mere om dette nedenfor).

Trin 5:

Billede
Billede

Trin 6:

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

MISO (Master Input/Slave Output) - Linje for slave til at sende data til master.

SCLK (Ur) - Linje til urets signal.

SS/CS (Slave Select/Chip Select) - Linje for masteren til at vælge hvilken slave der skal sendes data til

Trin 7:

Billede
Billede

*I praksis er antallet af slaver begrænset af systemets belastningskapacitans, hvilket reducerer masterens evne til nøjagtigt at skifte mellem spændingsniveauer.

Trin 8: Sådan fungerer SPI

URET

Ursignalet synkroniserer output af databit fra masteren til samplingen af bits af slaven. En bit data overføres i hver urcyklus, så dataoverførselshastigheden bestemmes af frekvensen af uretsignalet. SPI -kommunikation initieres altid af masteren, da masteren konfigurerer og genererer kloksignalet.

Enhver kommunikationsprotokol, hvor enheder deler et kloksignal, kaldes synkron. SPI er en synkron kommunikationsprotokol. Der er også asynkrone metoder, der ikke bruger et ur -signal. For eksempel i UART-kommunikation er begge sider indstillet til en forudkonfigureret baudhastighed, der dikterer hastigheden og timingen for datatransmission.

Ursignalet i SPI kan ændres ved hjælp af egenskaberne af urpolaritet og urfase. Disse to egenskaber fungerer sammen for at definere, hvornår bitene udsendes, og hvornår de samples. Urpolaritet kan indstilles af masteren for at tillade bits at blive udsendt og samplet på enten den stigende eller faldende kant af urcyklussen. Urfasen kan indstilles til, at output og sampling finder sted på enten den første kant eller anden kant af urcyklussen, uanset om den stiger eller falder.

SLAVE SELECT

Mesteren kan vælge, hvilken slave den vil tale med ved at indstille slaveens CS/SS -linje til et lavspændingsniveau. I inaktiv, ikke-transmitterende tilstand holdes slave-valglinjen på et højt spændingsniveau. Flere CS/SS -ben kan være tilgængelige på masteren, hvilket gør det muligt at koble flere slaver parallelt. Hvis der kun findes en CS/SS-pin, kan flere slaves forbindes til masteren ved daisy-chaining.

MULTIPLE SLAVES SPI

kan konfigureres til at fungere med en enkelt master og en enkelt slave, og den kan konfigureres med flere slaver styret af en enkelt master. Der er to måder at forbinde flere slaver til mesteren. Hvis mesteren har flere slave select pins, kan slaverne forbindes parallelt således:

Trin 9:

Billede
Billede

Trin 10:

MOSI OG MISO

Masteren sender data til slaven bit for bit i serie gennem MOSI -linjen. Slaven modtager de data, der er sendt fra masteren ved MOSI -pin. Data, der sendes fra masteren til slaven, sendes normalt med den mest betydende bit først. Slaven kan også sende data tilbage til masteren gennem MISO -linjen i serie. De data, der sendes fra slaven tilbage til masteren, sendes normalt med den mindst betydende bit først. TRIN AF SPI -DATA -TRANSMISSION 1. Master udsender urets signal:

Trin 11:

Billede
Billede

Hvis der kun er en tilgængelig pin til valg af slave, kan slaverne være daisy-lænket således:

Trin 12:

Billede
Billede
Billede
Billede
Billede
Billede
Billede
Billede

MOSI OG MISO

Masteren sender data til slaven bit for bit i serie gennem MOSI -linjen. Slaven modtager de data, der er sendt fra masteren ved MOSI -pin. Data, der sendes fra masteren til slaven, sendes normalt med den mest betydende bit først.

Slaven kan også sende data tilbage til masteren gennem MISO -linjen i serie. De data, der sendes fra slaven tilbage til masteren, sendes normalt med den mindst betydende bit først.

TRIN AF TRANSMISSION AF SPI -DATA

*Bemærk Billeder er listet Oboe, som du let kan skelne mellem

1. Master udsender urets signal:

2. Master skifter SS/CS pin til en lavspændingstilstand, som aktiverer slaven:

3. Master sender dataene en bit ad gangen til slaven langs MOSI -linjen. Slaven læser bitene, når de modtages:

4. Hvis der er behov for et svar, returnerer slaven data en bit ad gangen til masteren langs MISO -linjen. Mesteren læser bitene, når de modtages:

Trin 13: FORDELE OG FORDELE MED SPI

Der er nogle fordele og ulemper ved at bruge SPI, og hvis du får valget mellem forskellige kommunikationsprotokoller, bør du vide, hvornår du skal bruge SPI i henhold til kravene i dit projekt:

FORDELE

Ingen start- og stopbits, så dataene kan streames kontinuerligt uden afbrydelse Intet kompliceret slave -adresseringssystem som I2C Højere dataoverførselshastighed end I2C (næsten dobbelt så hurtigt) Separate MISO- og MOSI -linjer, så data kan sendes og modtages på samme tid tid

ULEMPER

Bruger fire ledninger (I2C og UART'er bruger to) Ingen kvittering for, at dataene er modtaget med succes (I2C har dette) Ingen form for fejlkontrol som paritetsbiten i UART giver kun mulighed for en enkelt master Forhåbentlig har denne artikel givet dig en bedre forståelse af SPI. Fortsæt til del to af denne serie for at lære om UART -drevet kommunikation eller til del tre, hvor vi diskuterer I2C -protokollen.

Hvis du har spørgsmål, er du velkommen til at stille det i kommentarfeltet, vi er her for at hjælpe. Og sørg for at følge med

Hilsen: M. Junaid

Anbefalede: