Sisukord:

SPI KOMMUNIKATSIOONIProtokolli alused: 13 sammu
SPI KOMMUNIKATSIOONIProtokolli alused: 13 sammu

Video: SPI KOMMUNIKATSIOONIProtokolli alused: 13 sammu

Video: SPI KOMMUNIKATSIOONIProtokolli alused: 13 sammu
Video: Лекция 307. Интерфейс SPI 2024, November
Anonim
SPI KOMMUNIKATSIOONIProtokolli alused
SPI KOMMUNIKATSIOONIProtokolli alused

Kui ühendate mikrokontrolleri anduri, ekraani või muu mooduliga, kas te mõtlete kunagi, kuidas need kaks seadet omavahel räägivad? Mida nad täpselt ütlevad? Kuidas nad suudavad üksteist mõista?

Suhtlus elektrooniliste seadmete vahel on nagu inimestevaheline suhtlus. Mõlemad pooled peavad rääkima sama keelt. Elektroonikas nimetatakse neid keeli suhtlusprotokollideks. Meie õnneks on ainult mõned suhtlusprotokollid, mida peame teadma enamiku isetehtud elektroonikaprojektide ehitamisel. Selles artiklisarjas käsitleme kolme kõige levinuma protokolli põhitõdesid: jada perifeerne liides (SPI), integraallülitus (I2C) ja universaalne asünkroonne vastuvõtja/saatja (UART) juhitud side. Esiteks alustame mõnest elektroonilise suhtluse põhimõistest, seejärel selgitame üksikasjalikult, kuidas SPI töötab. Järgmises artiklis käsitleme UART -põhist suhtlust ja kolmandas artiklis sukeldume I2C -sse. SPI, I2C ja UART on mõnevõrra aeglasemad kui sellised protokollid nagu USB, Ethernet, Bluetooth ja WiFi, kuid need on palju lihtsamad ning kasutavad vähem riistvara ja süsteemiressursse. SPI, I2C ja UART sobivad ideaalselt suhtlemiseks mikrokontrollerite vahel ning mikrokontrollerite ja andurite vahel, kus suurt hulka kiireid andmeid pole vaja üle kanda.

1. samm: SERIAL VS. Paralleelne side

SERIAL VS. Paralleelne side
SERIAL VS. Paralleelne side

Elektroonilised seadmed räägivad omavahel, saates andmebitte seadmete vahel füüsiliselt ühendatud juhtmete kaudu. Bitt on nagu täht sõnas, välja arvatud 26 tähe (inglise tähestikus) asemel on binaarne bitt ja see võib olla ainult 1 või 0. Bittide ülekandmine ühest seadmest teise toimub pinge kiire muutumise teel. Süsteemis, mis töötab 5 V juures, edastatakse 0 bitti 0 V lühikese impulssina ja 1 bit lühikese 5 V impulsi kaudu.

Andmebitte saab edastada kas paralleelselt või järjestikku. Paralleelses suhtluses saadetakse andmebitte kõik korraga, igaüks eraldi traadi kaudu. Järgmine diagramm näitab tähe “C” paralleelset edastamist kahendkoodis (01000011):

2. samm:

Jadaühenduses saadetakse bitid ükshaaval ühe juhtme kaudu. Järgmine diagramm näitab tähe “C” jadaülekannet binaarses (01000011):

3. samm:

Pilt
Pilt

4. samm: SPI KOMMUNIKATSIOONI SISSEJUHATUS

SPI KOMMUNIKATSIOONI SISSEJUHATUS
SPI KOMMUNIKATSIOONI SISSEJUHATUS

SPI on tavaline kommunikatsiooniprotokoll, mida kasutavad paljud erinevad seadmed. Näiteks SD -kaardi moodulid, RFID -kaardilugeja moodulid ja 2,4 GHz traadita saatja/vastuvõtjad kasutavad SPI -d mikrokontrolleritega suhtlemiseks.

Üks SPI ainulaadne eelis on asjaolu, et andmeid saab katkestusteta edastada. Pidevas voos saab saata või vastu võtta suvalist arvu bitte. I2C ja UART puhul saadetakse andmed pakettidena, mis on piiratud kindla arvu bittidega. Alustamis- ja lõpetamistingimused määravad iga paketi alguse ja lõpu, nii et andmed katkestatakse edastamise ajal. Seadmed, mis suhtlevad SPI kaudu, on ülem-orjasuhtes. Juhtimisseade (tavaliselt mikrokontroller) on kapten, samas kui alam (tavaliselt andur, ekraan või mälukiip) võtab kaptenilt juhiseid. SPI lihtsaim konfiguratsioon on üks ülem, üks alam süsteem, kuid üks juht saab juhtida rohkem kui ühte alamat (sellest lähemalt allpool).

5. samm:

Pilt
Pilt

6. samm:

MOSI (Master Output/Slave Input) - rida, et kapten saaks saata orjale andmeid.

MISO (Master Input/Slave Output) - rida, mille abil ori saadab andmeid masterile.

SCLK (Kell) - kella signaali rida.

SS/CS (alamvalik/kiibi valimine) - rida, mille abil kapten saab valida, millisele orjale andmed saata

7. samm:

Pilt
Pilt

*Praktikas piirab orjade arvu süsteemi koormusmahtuvus, mis vähendab kapteni võimet pingetasemete vahel täpselt ümber lülituda.

8. samm: KUIDAS SPI TÖÖTAB

KELL

Kella signaal sünkroniseerib andmebittide väljundi masterilt alampoolse bittide proovivõtule. Igas taktsüklis edastatakse üks andmebitt, seega määratakse andmeedastuskiirus kella signaali sagedusega. SPI -side algatab alati kapten, kuna kapten konfigureerib ja genereerib kella signaali.

Mis tahes suhtlusprotokolli, kus seadmed jagavad kellasignaali, nimetatakse sünkroonseks. SPI on sünkroonne suhtlusprotokoll. On ka asünkroonseid meetodeid, mis ei kasuta kella signaali. Näiteks UART-side puhul on mõlemad pooled seadistatud eelseadistatud andmeedastuskiirusele, mis määrab andmeedastuse kiiruse ja ajastuse.

SPI kella signaali saab muuta, kasutades kella polaarsuse ja kellafaasi omadusi. Need kaks atribuuti töötavad koos, et määratleda, millal bitte väljastatakse ja millal neist proovid võetakse. Kella polaarsuse saab kapten seadistada nii, et bitti väljastatakse ja proovid võetakse kellatsükli tõusvas või langevas servas. Kellafaasi saab seadistada nii, et väljund ja proovivõtmine toimuksid kellatsükli esimesel või teisel serval, olenemata sellest, kas see tõuseb või langeb.

SLAVE SELECT

Juht saab valida, millise orjaga ta rääkida soovib, seades orja CS/SS liini madalale pingetasemele. Ooterežiimis, mitteedastavas olekus hoitakse alamvaliku liini kõrge pinge tasemel. Juhtseadmes võib olla saadaval mitu CS/SS tihvti, mis võimaldab paralleelselt juhtmeid ühendada mitme alamga. Kui on olemas ainult üks CS/SS-tihvt, saab mitu alamseadet ühendada juhtmehhanismiga aheldamise teel.

MITU ORJAT SPI

saab seadistada töötama ühe isanda ja ühe orjaga ning selle saab seadistada mitme orjaga, mida juhib üks juht. Mitme orja ühendamiseks peremehega on kaks võimalust. Kui isandal on mitu alamvaliku tihvti, saab orjad ühendada paralleelselt järgmiselt:

9. samm:

Pilt
Pilt

10. samm:

MOSI JA MISO

Meister saadab orjale bitti haaval, järjestikku MOSI liini kaudu. Alam võtab masterilt saadetud andmed vastu MOSI tihvti kaudu. Andmed, mis saadetakse kaptenilt orjale, saadetakse tavaliselt kõigepealt kõige olulisema bitiga. Alam võib ka MISO liini kaudu jadale andmeid masterile tagasi saata. Alamilt tagasi kaptenile saadetud andmed saadetakse tavaliselt kõigepealt kõige vähem olulise bitiga. SPI -ANDMETE EDASTAMISE ETAPID 1. Kapten väljastab kella signaali:

11. samm:

Pilt
Pilt

Kui saadaval on ainult üks alamvaliku tihvt, saab orjad siduda järgmiselt:

12. samm:

Pilt
Pilt
Pilt
Pilt
Pilt
Pilt
Pilt
Pilt

MOSI JA MISO

Juht saadab orjale bitti haaval, järjestikku MOSI liini kaudu. Alam võtab masterilt saadetud andmed vastu MOSI tihvti kaudu. Andmed, mis saadetakse kaptenilt orjale, saadetakse tavaliselt kõigepealt kõige olulisema bitiga.

Alam võib ka MISO liini kaudu jada kaudu andmeid kaptenile tagasi saata. Alamilt tagasi kaptenile saadetud andmed saadetakse tavaliselt kõigepealt kõige vähem olulise bitiga.

SPI ANDMETE EDASTAMISE SAMMUD

*Märkus. Pildid on loetletud Oboe, mida saate hõlpsasti eristada

1. Meister väljastab kella signaali:

2. Juht lülitab SS/CS tihvti madalpingeolekusse, mis aktiveerib alamseadme:

3. Ülem saadab andmed ükshaaval orjale mööda MOSI liini. Ori loeb bitid nende vastuvõtmisel:

4. Kui on vaja vastust, tagastab alammasin andmed bitti korraga kaptenile mööda MISO joont. Kapten loeb bitid nende vastuvõtmisel:

13. samm: SPI eelised ja puudused

SPI kasutamisel on mõningaid eeliseid ja puudusi ning kui valida erinevate sideprotokollide vahel, peaksite teadma, millal SPI -d kasutada vastavalt oma projekti nõuetele:

EELISED

Ilma algus- ja lõpetamisbittideta, nii et andmeid saab pidevalt voogesitada ilma katkestusteta. Pole keerulist alam -aadressisüsteemi, nagu I2C, suurem andmeedastuskiirus kui I2C (peaaegu kaks korda kiirem) Eraldi MISO- ja MOSI -liinid, nii et andmeid saab saata ja vastu võtta samal ajal aega

Miinused

Kasutab nelja juhtmest (I2C ja UART -id kasutavad kahte) Ei kinnitata, et andmed on edukalt vastu võetud (I2C -l on see olemas) Ei ole ühtegi veakontrolli vormi, nagu UART -i pariteedibitt Võimaldab ainult ühte meistrit Loodetavasti on see artikkel teile parema arusaamise andnud SPI -st. Jätkake selle sarja teise osaga, et õppida tundma UART -põhist suhtlust, või kolmandat osa, kus arutame I2C -protokolli.

Kui teil on küsimusi, küsige seda kommentaaride jaotises, oleme siin, et aidata. Ja järgige kindlasti

Lugupidamisega: M. Junaid

Soovitan: