Indholdsfortegnelse:
- Trin 1: SERIAL VS. PARALLEL KOMMUNIKATION
- Trin 2:
- Trin 3:
- Trin 4: INTRODUKTION TIL SPI -KOMMUNIKATION
- Trin 5:
- Trin 6:
- Trin 7:
- Trin 8: Sådan fungerer SPI
- Trin 9:
- Trin 10:
- Trin 11:
- Trin 12:
- Trin 13: FORDELE OG FORDELE MED SPI
Video: GRUNDLÆGGENDE I SPI -KOMMUNIKATIONSPROTOKOLLEN: 13 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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:
Trin 4: 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:
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:
*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:
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:
Hvis der kun er en tilgængelig pin til valg af slave, kan slaverne være daisy-lænket således:
Trin 12:
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:
Lodningstråde til ledninger - Grundlæggende for lodning: 11 trin
Lodningstråde til ledninger | Grundlæggende for lodning: Til denne instruks vil jeg diskutere almindelige måder til lodning af ledninger til andre ledninger. Jeg går ud fra, at du allerede har tjekket de første 2 instruktioner til min Lodning Basics -serie. Hvis du ikke har tjekket min instruks om brug af
Små H-bro-drivere - Grundlæggende: 6 trin (med billeder)
Små H-bro-drivere | Grundlæggende: Hej og velkommen tilbage til en anden instruerbar! I den forrige viste jeg dig, hvordan jeg oprettede spoler i KiCad ved hjælp af et python -script. Derefter oprettede og testede jeg et par variationer af spoler for at se, hvilken der fungerer bedst. Mit mål er at erstatte den enorme
Python Introduktion - Katsuhiko Matsuda & Edwin Cijo - Grundlæggende: 7 trin
Python Introduktion - Katsuhiko Matsuda & Edwin Cijo - Grundlæggende: Hej, vi er 2 studerende i MYP 2. Vi vil lære dig det grundlæggende i, hvordan du koder Python.Det blev oprettet i slutningen af 1980'erne af Guido van Rossum i Holland. Det blev lavet som en efterfølger til ABC -sproget. Dens navn er " Python " fordi hvornår
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Foreløbig* SPI på Pi: Kommunikation med et SPI 3-akset accelerometer ved hjælp af en Raspberry Pi: 10 trin
Preliminær* SPI på Pi: Kommunikation med et SPI 3-akset accelerometer Brug af en Raspberry Pi: Trin for trin guide til, hvordan du konfigurerer Raspbian og kommunikerer med en SPI-enhed ved hjælp af bcm2835 SPI-bibliotek (IKKE lidt banket!) Dette er stadig meget foreløbigt … Jeg er nødt til at tilføje bedre billeder af fysisk tilslutning og arbejde igennem nogle af de akavede koder