Inhoudsopgave:

BASIS VAN HET SPI-COMMUNICATIEPROTOCOL: 13 stappen
BASIS VAN HET SPI-COMMUNICATIEPROTOCOL: 13 stappen

Video: BASIS VAN HET SPI-COMMUNICATIEPROTOCOL: 13 stappen

Video: BASIS VAN HET SPI-COMMUNICATIEPROTOCOL: 13 stappen
Video: OPO meetsystemen: datacommunicatie protocollen (UART, SPI, I2C) 2024, Juli-
Anonim
BASIS VAN HET SPI-COMMUNICATIEPROTOCOL
BASIS VAN HET SPI-COMMUNICATIEPROTOCOL

Wanneer je een microcontroller aansluit op een sensor, display of andere module, denk je er dan ooit over na hoe de twee apparaten met elkaar praten? Wat zeggen ze precies? Hoe kunnen ze elkaar begrijpen?

Communicatie tussen elektronische apparaten is als communicatie tussen mensen. Beide partijen moeten dezelfde taal spreken. In de elektronica worden deze talen communicatieprotocollen genoemd. Gelukkig voor ons zijn er maar een paar communicatieprotocollen die we moeten kennen bij het bouwen van de meeste doe-het-zelf-elektronicaprojecten. In deze serie artikelen bespreken we de basis van de drie meest voorkomende protocollen: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) en Universal Asynchronous Receiver/Transmitter (UART)-gestuurde communicatie. Eerst beginnen we met enkele basisconcepten over elektronische communicatie en leggen we vervolgens in detail uit hoe SPI werkt. In het volgende artikel bespreken we UART-gestuurde communicatie en in het derde artikel duiken we in I2C. SPI, I2C en UART zijn een stuk langzamer dan protocollen zoals USB, ethernet, Bluetooth en WiFi, maar ze zijn een stuk eenvoudiger en gebruiken minder hardware en systeembronnen. SPI, I2C en UART zijn ideaal voor communicatie tussen microcontrollers en tussen microcontrollers en sensoren waar geen grote hoeveelheden gegevens met hoge snelheid hoeven te worden overgedragen.

Stap 1: SERIEEL VS. PARALLEL COMMUNICATIE

SERIEEL VS. PARALLELLE COMMUNICATIE
SERIEEL VS. PARALLELLE COMMUNICATIE

Elektronische apparaten praten met elkaar door gegevens te verzenden via draden die fysiek tussen apparaten zijn aangesloten. Een bit is als een letter in een woord, behalve dat in plaats van de 26 letters (in het Engelse alfabet), een bit binair is en alleen een 1 of 0 kan zijn. Bits worden overgedragen van het ene apparaat naar het andere door snelle veranderingen in spanning. In een systeem dat op 5 V werkt, wordt een 0-bit gecommuniceerd als een korte puls van 0 V en een 1-bit wordt gecommuniceerd door een korte puls van 5 V.

De gegevensbits kunnen in parallelle of seriële vorm worden verzonden. Bij parallelle communicatie worden de gegevensbits allemaal tegelijkertijd verzonden, elk via een aparte draad. Het volgende diagram toont de parallelle verzending van de letter "C" in binair (01000011):

Stap 2:

Bij seriële communicatie worden de bits één voor één verzonden via een enkele draad. Het volgende diagram toont de seriële verzending van de letter "C" in binair (01000011):

Stap 3:

Afbeelding
Afbeelding

Stap 4: INLEIDING TOT SPI COMMUNICATIE

INLEIDING TOT SPI COMMUNICATIE
INLEIDING TOT SPI COMMUNICATIE

SPI is een algemeen communicatieprotocol dat door veel verschillende apparaten wordt gebruikt. SD-kaartmodules, RFID-kaartlezermodules en 2,4 GHz draadloze zender/ontvangers gebruiken bijvoorbeeld allemaal SPI om te communiceren met microcontrollers.

Een uniek voordeel van SPI is het feit dat gegevens zonder onderbreking kunnen worden overgedragen. Elk aantal bits kan in een continue stroom worden verzonden of ontvangen. Met I2C en UART worden gegevens in pakketten verzonden, beperkt tot een bepaald aantal bits. Start- en stopvoorwaarden bepalen het begin en einde van elk pakket, zodat de gegevens tijdens de verzending worden onderbroken. Apparaten die via SPI communiceren, bevinden zich in een master-slave-relatie. De master is het besturingsapparaat (meestal een microcontroller), terwijl de slave (meestal een sensor, display of geheugenchip) instructies van de master overneemt. De eenvoudigste configuratie van SPI is een systeem met één master en één slave, maar één master kan meer dan één slave besturen (meer hierover hieronder).

Stap 5:

Afbeelding
Afbeelding

Stap 6:

MOSI (Master Output/Slave Input) – Lijn voor de master om data naar de slave te sturen.

MISO (Master Input/Slave Output) – Lijn voor de slave om data naar de master te sturen.

SCLK (Clock) – Lijn voor het kloksignaal.

SS/CS (Slave Select/Chip Select) – Regel voor de master om te selecteren naar welke slave de gegevens moeten worden verzonden

Stap 7:

Afbeelding
Afbeelding

*In de praktijk wordt het aantal slaves beperkt door de belastingscapaciteit van het systeem, waardoor de master minder goed kan schakelen tussen spanningsniveaus.

Stap 8: HOE SPI WERKT?

DE KLOK

Het kloksignaal synchroniseert de uitvoer van databits van de master met de bemonstering van bits door de slave. In elke klokcyclus wordt één bit aan gegevens overgedragen, dus de snelheid van gegevensoverdracht wordt bepaald door de frequentie van het kloksignaal. SPI-communicatie wordt altijd geïnitieerd door de master, aangezien de master het kloksignaal configureert en genereert.

Elk communicatieprotocol waarbij apparaten een kloksignaal delen, staat bekend als synchroon. SPI is een synchroon communicatieprotocol. Er zijn ook asynchrone methoden die geen kloksignaal gebruiken. In UART-communicatie zijn beide zijden bijvoorbeeld ingesteld op een vooraf geconfigureerde baudrate die de snelheid en timing van gegevensoverdracht dicteert.

Het kloksignaal in SPI kan worden gewijzigd met behulp van de eigenschappen van klokpolariteit en klokfase. Deze twee eigenschappen werken samen om te bepalen wanneer de bits worden uitgevoerd en wanneer ze worden bemonsterd. De klokpolariteit kan door de master worden ingesteld, zodat bits kunnen worden uitgevoerd en gesampled op de stijgende of dalende flank van de klokcyclus. De klokfase kan worden ingesteld om uitvoer en bemonstering te laten plaatsvinden op de eerste of tweede flank van de klokcyclus, ongeacht of deze stijgt of daalt.

SLAAF KIEZEN

De master kan kiezen met welke slave hij wil praten door de CS/SS-lijn van de slave op een laagspanningsniveau in te stellen. In de inactieve, niet-zendende toestand wordt de slave-selectielijn op een hoog spanningsniveau gehouden. Er kunnen meerdere CS/SS-pinnen beschikbaar zijn op de master, waardoor meerdere slaves parallel kunnen worden aangesloten. Als er slechts één CS/SS-pin aanwezig is, kunnen meerdere slaves door middel van serieschakeling op de master worden aangesloten.

MEERDERE SLAVEN SPI

kan worden ingesteld om te werken met een enkele master en een enkele slave, en het kan worden ingesteld met meerdere slaven die worden bestuurd door een enkele master. Er zijn twee manieren om meerdere slaves op de master aan te sluiten. Als de master meerdere slave-selectiepinnen heeft, kunnen de slaves als volgt parallel worden geschakeld:

Stap 9:

Afbeelding
Afbeelding

Stap 10:

MOSI EN MISO

De master stuurt bit voor bit data naar de slave, in serie via de MOSI-lijn. De slave ontvangt de gegevens die door de master worden verzonden op de MOSI-pin. Gegevens die van de master naar de slave worden verzonden, worden meestal met het meest significante bit eerst verzonden. De slave kan ook serieel data terugsturen naar de master via de MISO-lijn. De gegevens die van de slave naar de master worden verzonden, worden meestal met het minst significante bit eerst verzonden. STAPPEN VAN SPI-GEGEVENSVERZENDING 1. De master voert het kloksignaal uit:

Stap 11:

Afbeelding
Afbeelding

Als er slechts één slave-selectiepin beschikbaar is, kunnen de slaves als volgt in serie worden geschakeld:

Stap 12:

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

MOSI EN MISO

De master stuurt bit voor bit data naar de slave, in serie via de MOSI-lijn. De slave ontvangt de gegevens die door de master worden verzonden op de MOSI-pin. Gegevens die van de master naar de slave worden verzonden, worden meestal met het meest significante bit eerst verzonden.

De slave kan ook serieel data terugsturen naar de master via de MISO-lijn. De gegevens die van de slave naar de master worden verzonden, worden meestal met het minst significante bit eerst verzonden.

STAPPEN VAN SPI-GEGEVENSVERZENDING

*Opmerking Afbeeldingen zijn vermelde hobo die u gemakkelijk kunt onderscheiden

1. De master geeft het kloksignaal af:

2. De master schakelt de SS/CS-pin naar een laagspanningstoestand, waardoor de slave wordt geactiveerd:

3. De master stuurt de gegevens bit voor bit naar de slave langs de MOSI-lijn. De slave leest de bits zoals ze worden ontvangen:

4. Als een reactie nodig is, stuurt de slave de gegevens bit voor bit terug naar de master langs de MISO-lijn. De master leest de bits zoals ze worden ontvangen:

Stap 13: VOOR- EN NADELEN VAN SPI

Er zijn enkele voor- en nadelen aan het gebruik van SPI, en als u de keuze krijgt tussen verschillende communicatieprotocollen, moet u weten wanneer u SPI moet gebruiken volgens de vereisten van uw project:

VOORDELEN

Geen start- en stopbits, dus de gegevens kunnen continu en zonder onderbreking worden gestreamd Geen ingewikkeld slave-adresseringssysteem zoals I2C Hogere gegevensoverdrachtssnelheid dan I2C (bijna twee keer zo snel) Aparte MISO- en MOSI-lijnen, zodat gegevens tegelijkertijd kunnen worden verzonden en ontvangen tijd

NADELEN

Gebruikt vier draden (I2C en UART's gebruiken er twee) Geen bevestiging dat de gegevens met succes zijn ontvangen (I2C heeft dit) Geen enkele vorm van foutcontrole zoals de pariteitsbit in UART Staat alleen een enkele master toe Hopelijk heeft dit artikel u een beter begrip gegeven van SPI. Ga verder naar deel twee van deze serie om meer te weten te komen over UART-gestuurde communicatie, of naar deel drie waar we het I2C-protocol bespreken.

Als je vragen hebt, stel ze dan gerust in het commentaargedeelte, we zijn er om je te helpen. En volg zeker

Groeten: M. Junaid

Aanbevolen: