Innehållsförteckning:
- Steg 1: SERIAL VS. PARALLELL KOMMUNIKATION
- Steg 2:
- Steg 3:
- Steg 4: INLEDNING TILL SPI -KOMMUNIKATION
- Steg 5:
- Steg 6:
- Steg 7:
- Steg 8: HUR SPI FUNGERAR
- Steg 9:
- Steg 10:
- Steg 11:
- Steg 12:
- Steg 13: FÖRDELAR OCH Nackdelar med SPI
Video: GRUNDLÄGGANDE AV SPI -KOMMUNIKATIONSPROTOKOLLET: 13 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
När du ansluter en mikrokontroller till en sensor, bildskärm eller annan modul, tänker du på hur de två enheterna pratar med varandra? Vad exakt säger de? Hur kan de förstå varandra?
Kommunikation mellan elektroniska enheter är som kommunikation mellan människor. Båda sidor måste tala samma språk. Inom elektronik kallas dessa språk för kommunikationsprotokoll. Lyckligtvis för oss finns det bara några kommunikationsprotokoll vi behöver veta när vi bygger de flesta DIY -elektronikprojekt. I denna artikelserie kommer vi att diskutera grunderna i de tre vanligaste protokollen: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) och Universal Asynchronous Receiver/Transmitter (UART) driven kommunikation. Först börjar vi med några grundläggande begrepp om elektronisk kommunikation och förklarar i detalj hur SPI fungerar. I nästa artikel kommer vi att diskutera UART -driven kommunikation, och i den tredje artikeln kommer vi att dyka in i I2C. SPI, I2C och UART är ganska långsammare än protokoll som USB, ethernet, Bluetooth och WiFi, men de är mycket enklare och använder mindre hårdvara och systemresurser. SPI, I2C och UART är idealiska för kommunikation mellan mikrokontroller och mellan mikrokontroller och sensorer där stora mängder höghastighetsdata inte behöver överföras.
Steg 1: SERIAL VS. PARALLELL KOMMUNIKATION
Elektroniska enheter pratar med varandra genom att skicka bitar av data genom trådar som är fysiskt anslutna mellan enheter. En bit är som en bokstav i ett ord, förutom att i stället för de 26 bokstäverna (i det engelska alfabetet) är en bit binär och kan bara vara 1 eller 0. Bit överförs från en enhet till en annan genom snabba spänningsändringar. I ett system som arbetar vid 5 V kommuniceras en 0 bit som en kort puls på 0 V och en 1 bit kommuniceras med en kort puls på 5 V.
Databitar kan överföras antingen i parallell eller serieform. I parallellkommunikation skickas databitar alla samtidigt, var och en genom en separat tråd. Följande diagram visar parallellöverföringen av bokstaven "C" i binär (01000011):
Steg 2:
Vid seriell kommunikation skickas bitarna en efter en genom en enda tråd. Följande diagram visar seriell överföring av bokstaven "C" i binär (01000011):
Steg 3:
Steg 4: INLEDNING TILL SPI -KOMMUNIKATION
SPI är ett vanligt kommunikationsprotokoll som används av många olika enheter. Till exempel använder SD -kortmoduler, RFID -kortläsarmoduler och 2,4 GHz trådlösa sändare/mottagare alla SPI för att kommunicera med mikrokontroller.
En unik fördel med SPI är det faktum att data kan överföras utan avbrott. Vilket antal bitar som helst kan sändas eller tas emot i en kontinuerlig ström. Med I2C och UART skickas data i paket, begränsat till ett visst antal bitar. Start- och stoppförhållanden definierar början och slutet av varje paket, så data avbryts under överföringen. Enheter som kommunicerar via SPI har ett master-slave-förhållande. Mastern är styrenheten (vanligtvis en mikrokontroller), medan slaven (vanligtvis en sensor, display eller minneschip) tar instruktioner från mastern. Den enklaste konfigurationen av SPI är ett enda master, enda slavsystem, men en master kan styra mer än en slav (mer om detta nedan).
Steg 5:
Steg 6:
MOSI (Master Output/Slave Input) - Linje för mastern för att skicka data till slaven.
MISO (Master Input/Slave Output) - Linje för slaven att skicka data till mastern.
SCLK (Clock) - Linje för klocksignalen.
SS/CS (Slave Select/Chip Select) - Linje för mastern för att välja vilken slav som ska skickas data till
Steg 7:
*I praktiken begränsas antalet slavar av systemets lastkapacitans, vilket minskar befälhavarens förmåga att exakt växla mellan spänningsnivåer.
Steg 8: HUR SPI FUNGERAR
KLOCKAN
Klocksignalen synkroniserar utmatningen av databitar från mastern till samplingen av bitar av slaven. En bit data överförs i varje klockcykel, så hastigheten för dataöverföring bestäms av klocksignalens frekvens. SPI -kommunikation initieras alltid av mastern eftersom mastern konfigurerar och genererar klocksignalen.
Alla kommunikationsprotokoll där enheter delar en klocksignal kallas synkron. SPI är ett synkront kommunikationsprotokoll. Det finns också asynkrona metoder som inte använder en klocksignal. I UART-kommunikation är till exempel båda sidorna inställda på en förkonfigurerad överföringshastighet som dikterar hastigheten och tidpunkten för dataöverföring.
Klocksignalen i SPI kan modifieras med hjälp av egenskaperna hos klockpolaritet och klockfas. Dessa två egenskaper fungerar tillsammans för att definiera när bitarna matas ut och när de samplas. Klockpolaritet kan ställas in av mastern så att bitar kan matas ut och samplas antingen på den stigande eller fallande kanten av klockcykeln. Klockfasen kan ställas in för att utdata och sampling ska ske på antingen den första kanten eller den andra kanten av klockcykeln, oavsett om den stiger eller faller.
SLAVE SELECT
Mästaren kan välja vilken slav den vill prata med genom att ställa slavens CS/SS -linje till en låg spänningsnivå. I ledigt, icke-sändande tillstånd hålls slavvallinjen på en hög spänningsnivå. Flera CS/SS -stift kan finnas tillgängliga på mastern, vilket gör att flera slavar kan kopplas parallellt. Om det bara finns en CS/SS-pin kan flera slavar kopplas till mastern genom att koppla ihop dem.
MULTIPLE SLAVES SPI
kan ställas in för att fungera med en enda master och en enda slav, och den kan konfigureras med flera slavar som styrs av en enda master. Det finns två sätt att ansluta flera slavar till befälhavaren. Om mastern har flera slavvalstappar kan slavarna kopplas parallellt så här:
Steg 9:
Steg 10:
MOSI OCH MISO
Mastern skickar data till slaven bit för bit i serie via MOSI -linjen. Slaven tar emot data som skickas från mastern vid MOSI -stiftet. Data som skickas från mastern till slaven skickas vanligtvis med den mest betydande biten först. Slaven kan också skicka data tillbaka till mastern via MISO -linjen i serie. Data som skickas från slaven tillbaka till mastern skickas vanligtvis med den minst signifikanta biten först. STEG FÖR SPI -DATAÖVERFÖRING 1. Mastern matar ut klocksignalen:
Steg 11:
Om bara en slavvalp är tillgänglig, kan slavarna kopplas ihop så här:
Steg 12:
MOSI OCH MISO
Mastern skickar data till slaven bit för bit i serie via MOSI -linjen. Slaven tar emot data som skickas från mastern vid MOSI -stiftet. Data som skickas från mastern till slaven skickas vanligtvis med den mest betydande biten först.
Slaven kan också skicka data tillbaka till mastern via MISO -linjen i serie. Data som skickas från slaven tillbaka till mastern skickas vanligtvis med den minst signifikanta biten först.
STEG FÖR ÖVERFÖRING AV SPI -DATA
*Obs Bilderna är listade Oboe du kan enkelt skilja
1. Mastern matar ut klocksignalen:
2. Master växlar SS/CS -stiftet till ett lågspänningstillstånd, vilket aktiverar slaven:
3. Master skickar data en bit i taget till slaven längs MOSI -linjen. Slaven läser bitarna när de tas emot:
4. Om ett svar behövs, returnerar slaven data en bit i taget till mastern längs MISO -linjen. Befälhavaren läser bitarna när de tas emot:
Steg 13: FÖRDELAR OCH Nackdelar med SPI
Det finns några fördelar och nackdelar med att använda SPI, och om du får välja mellan olika kommunikationsprotokoll bör du veta när du ska använda SPI enligt kraven i ditt projekt:
FÖRDELAR
Inga start- och stoppbitar, så data kan strömmas kontinuerligt utan avbrott Inget komplicerat slavadresseringssystem som I2C Högre dataöverföringshastighet än I2C (nästan dubbelt så snabbt) Separata MISO- och MOSI -linjer, så data kan skickas och tas emot samtidigt tid
Nackdelar
Använder fyra ledningar (I2C och UART använder två) Ingen bekräftelse på att data har tagits emot (I2C har detta) Ingen form av felkontroll som paritetsbiten i UART Endast möjliggör en enda master Förhoppningsvis har denna artikel gett dig en bättre förståelse av SPI. Fortsätt till del två av denna serie för att lära dig mer om UART -driven kommunikation, eller till del tre där vi diskuterar I2C -protokollet.
Om du har några frågor är du välkommen att ställa det i kommentarsfältet, vi är här för att hjälpa. Och var noga med att följa
Hälsningar: M. Junaid
Rekommenderad:
LED Snapper: Förmodligen den mest grundläggande delen av testutrustning du kan göra: 3 steg
LED Snapper: Förmodligen den mest grundläggande delen av testutrustning du kan göra: Låt mig presentera LED Snapper för dig. En enkel, men oerhört användbar testutrustning som du kan bygga för att hjälpa dig att felsöka dina elektronikprojekt. LED Snapper är ett kretskort med öppen källkod som låter dig enkelt lägga till
Förvärv, förstärkning och filtreringskretsdesign av ett grundläggande elektrokardiogram: 6 steg
Förvärv, förstärkning och filtreringskretsdesign av ett grundläggande elektrokardiogram: För att slutföra detta instruerbara är det enda som behövs en dator, internetåtkomst och lite simuleringsprogram. För denna design kommer alla kretsar och simuleringar att köras på LTspice XVII. Denna simuleringsprogramvara innehåller
HC-05 (bluetooth) -modul för hemautomation Grundläggande: 3 steg
HC-05 (bluetooth) -modul för hemautomation Grundläggande: I mitt senaste projekt styrde jag LED med en tryckknapp men i det här projektet har jag bytt PUSH-KNAPP med HC-05-modul. Jag rekommenderar starkt att gå igenom dessa projekt innan fortsätter med detta projekt. Du får alla detaljer i
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg
I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar
Preliminär* SPI på Pi: Kommunicera med en SPI 3-axlig accelerometer med hjälp av en hallon Pi: 10 steg
Preliminär* SPI på Pi: Kommunicera med en SPI 3-axlig accelerometer Använda en Raspberry Pi: Steg-för-steg-guide om hur du konfigurerar Raspbian och kommunicerar med en SPI-enhet med bcm2835 SPI-bibliotek (INTE lite bankat!) Detta är fortfarande mycket preliminärt … Jag måste lägga till bättre bilder av fysisk anslutning och arbeta igenom några av de besvärliga koden