Satura rādītājs:

SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI: 13 soļi
SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI: 13 soļi

Video: SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI: 13 soļi

Video: SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI: 13 soļi
Video: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, Jūlijs
Anonim
SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI
SPI KOMUNIKĀCIJAS PROTOKOLA PAMATI

Kad jūs savienojat mikrokontrolleru ar sensoru, displeju vai citu moduli, vai jūs kādreiz domājat par to, kā abas ierīces runā savā starpā? Ko tieši viņi saka? Kā viņi spēj saprast viens otru?

Saziņa starp elektroniskajām ierīcēm ir kā komunikācija starp cilvēkiem. Abām pusēm jārunā vienā valodā. Elektronikā šīs valodas sauc par sakaru protokoliem. Par laimi, mums ir tikai daži saziņas protokoli, kas mums jāzina, veidojot lielāko daļu DIY elektronikas projektu. Šajā rakstu sērijā mēs apspriedīsim trīs visizplatītāko protokolu pamatus: seriālo perifēro saskarni (SPI), integrēto shēmu (I2C) un universālā asinhronā uztvērēja/raidītāja (UART) vadītu komunikāciju. Pirmkārt, mēs sāksim ar dažiem elektroniskās saziņas pamatjēdzieniem, pēc tam detalizēti paskaidrosim, kā darbojas SPI. Nākamajā rakstā mēs apspriedīsim UART virzīto komunikāciju, bet trešajā rakstā mēs ienirsim I2C. SPI, I2C un UART ir diezgan lēnāki nekā tādi protokoli kā USB, Ethernet, Bluetooth un WiFi, taču tie ir daudz vienkāršāki un izmanto mazāk aparatūras un sistēmas resursu. SPI, I2C un UART ir ideāli piemēroti saziņai starp mikrokontrolleriem un starp mikrokontrolleriem un sensoriem, kur nav nepieciešams pārsūtīt lielu daudzumu ātrgaitas datu.

1. darbība: SĒRIJA VS. PARALĒLĀ KOMUNIKĀCIJA

SĒRIJA VS. PARALĒLĀ KOMUNIKĀCIJA
SĒRIJA VS. PARALĒLĀ KOMUNIKĀCIJA

Elektroniskās ierīces runā savā starpā, nosūtot datu bitus, izmantojot vadus, kas fiziski savienoti starp ierīcēm. Bits ir kā burts vārdā, izņemot 26 burtu vietā (angļu alfabētā) bits ir binārs un var būt tikai 1 vai 0. Biti tiek pārsūtīti no vienas ierīces uz otru, ātri mainot spriegumu. Sistēmā, kas darbojas pie 5 V, 0 bitu paziņo kā īsu 0 V impulsu, bet 1 bitu - ar īsu 5 V impulsu.

Datu bitus var pārsūtīt paralēli vai sērijveidā. Paralēlā komunikācijā datu biti tiek nosūtīti vienlaikus, katrs caur atsevišķu vadu. Šajā diagrammā parādīta burta “C” paralēla pārraide binārā (01000011):

2. darbība:

Sērijas sakaros biti tiek nosūtīti pa vienam caur vienu vadu. Šajā diagrammā parādīta burta “C” sērijveida pārraide binārā (01000011):

3. darbība:

Attēls
Attēls

4. solis: IEVADS SPI KOMUNIKĀCIJĀ

IEVADS SPI KOMUNIKĀCIJĀ
IEVADS SPI KOMUNIKĀCIJĀ

SPI ir kopīgs sakaru protokols, ko izmanto daudzas dažādas ierīces. Piemēram, SD karšu moduļi, RFID karšu lasīšanas moduļi un 2,4 GHz bezvadu raidītājs/uztvērēji izmanto SPI, lai sazinātos ar mikrokontrolleri.

Viena unikāla SPI priekšrocība ir fakts, ka datus var pārsūtīt bez pārtraukuma. Nepārtrauktā straumē var nosūtīt vai saņemt jebkuru bitu skaitu. Izmantojot I2C un UART, dati tiek nosūtīti paciņās, ierobežojot noteiktu bitu skaitu. Sākuma un beigu nosacījumi nosaka katras paketes sākumu un beigas, tāpēc dati tiek pārtraukti pārraides laikā. Ierīces, kas sazinās, izmantojot SPI, ir galvenā un verga attiecībās. Meistars ir vadības ierīce (parasti mikrokontrolleris), savukārt vergs (parasti sensors, displejs vai atmiņas mikroshēma) saņem norādījumus no meistara. Vienkāršākā SPI konfigurācija ir viena galvenā, viena verga sistēma, bet viens meistars var kontrolēt vairāk nekā vienu vergu (vairāk par to zemāk).

5. darbība

Attēls
Attēls

6. darbība:

MOSI (Master Output/Slave Input) - līnija, lai kapteinis varētu nosūtīt datus vergam.

MISO (Master Input/Slave Output) - līnija, lai vergs varētu nosūtīt datus kapteinim.

SCLK (Pulkstenis) - līnija pulksteņa signālam.

SS/CS (Slave Select/Chip Select) - līnija, kurā kapteinis var izvēlēties, kuram vergam sūtīt datus

7. darbība:

Attēls
Attēls

*Praksē vergu skaitu ierobežo sistēmas slodzes kapacitāte, kas samazina kapteiņa spēju precīzi pārslēgties starp sprieguma līmeņiem.

8. solis: KĀ SPI STRĀDĀ

PULKSTENIS

Pulksteņa signāls sinhronizē datu bitu izvadi no kapteiņa līdz bitu paraugu ņemšanai, ko veic vergs. Katrā pulksteņa ciklā tiek pārsūtīts viens datu bits, tāpēc datu pārsūtīšanas ātrumu nosaka pulksteņa signāla frekvence. SPI komunikāciju vienmēr sāk kapteinis, jo galvenais konfigurē un ģenerē pulksteņa signālu.

Jebkurš sakaru protokols, kurā ierīcēm ir kopīgs pulksteņa signāls, ir pazīstams kā sinhronais. SPI ir sinhronas saziņas protokols. Ir arī asinhronas metodes, kurās netiek izmantots pulksteņa signāls. Piemēram, UART komunikācijā abām pusēm ir iestatīts iepriekš konfigurēts datu pārraides ātrums, kas nosaka datu pārraides ātrumu un laiku.

Pulksteņa signālu SPI var mainīt, izmantojot pulksteņa polaritātes un pulksteņa fāzes īpašības. Šie divi rekvizīti darbojas kopā, lai noteiktu, kad biti tiek izvadīti un kad tiek ņemti paraugi. Kapteinis var iestatīt pulksteņa polaritāti, lai biti varētu tikt izvadīti un ņemti paraugi pulksteņa cikla augšup vai lejup. Pulksteņa fāzi var iestatīt, lai izvade un paraugu ņemšana notiktu pulksteņa cikla pirmajā malā vai otrajā malā neatkarīgi no tā, vai tas paceļas vai samazinās.

SLAVE SELECT

Kapteinis var izvēlēties, ar kuru vergu vēlas runāt, iestatot verga CS/SS līniju uz zemsprieguma līmeni. Gaidīšanas režīmā, kas nepārraida, vergu atlases līnija tiek turēta augstsprieguma līmenī. Galvenajam var būt pieejamas vairākas CS/SS tapas, kas ļauj paralēli pieslēgt vairākus vergus. Ja ir tikai viens CS/SS kontakts, vairākus vergus var savienot ar galveno, savienojot ķēdi.

Vairāki vergi SPI

var iestatīt darbam ar vienu vadītāju un vienu vergu, un to var iestatīt ar vairākiem vergiem, kurus kontrolē viens meistars. Ir divi veidi, kā savienot vairākus vergus ar galveno. Ja galvenajam ir vairāki vergu atlases tapas, vergus var savienot paralēli šādi:

9. darbība

Attēls
Attēls

10. darbība:

MOSI UN MISO

Kapteinis sūta datus uz vergu pa bitiem, sērijveidā caur MOSI līniju. Vergs saņem datus no kapteiņa, izmantojot MOSI tapu. Dati, kurus no kapteiņa nosūta vergam, parasti vispirms tiek nosūtīti ar visnozīmīgāko bitu. Vergs var arī sērijveidā nosūtīt datus atpakaļ kapteinim, izmantojot MISO līniju. Dati, kas no verga tiek nosūtīti atpakaļ galvenajam, vispirms tiek nosūtīti ar vismazāk nozīmīgo bitu. SPI DATU PĀRRAIDES SOLI 1. Kapteinis izvada pulksteņa signālu:

11. darbība:

Attēls
Attēls

Ja ir pieejama tikai viena vergu atlases tapa, vergus var sasaistīt šādi:

12. solis:

Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls

MOSI UN MISO

Kapteinis sūta datus uz vergu pa bitiem, sērijveidā caur MOSI līniju. Vergs saņem datus no kapteiņa, izmantojot MOSI tapu. Dati, kurus no kapteiņa nosūta vergam, parasti vispirms tiek nosūtīti ar visnozīmīgāko bitu.

Vergs var arī sērijveidā nosūtīt datus atpakaļ kapteinim, izmantojot MISO līniju. Dati, kas no verga tiek nosūtīti atpakaļ galvenajam, vispirms tiek nosūtīti ar vismazāk nozīmīgo bitu.

SPI DATU PĀRRAIDES SOLI

*Piezīme. Attēli ir sarakstā Oboe, kurus varat viegli atšķirt

1. Kapteinis izvada pulksteņa signālu:

2. Meistars pārslēdz SS/CS tapu zemsprieguma stāvoklī, kas aktivizē vergu:

3. Kapteinis nosūta datus vienu bitu pa kalpi pa MOSI līniju. Vergs lasa bitus, kad tie tiek saņemti:

4. Ja ir nepieciešama atbilde, vergs pa vienam bitam vienlaikus atdod datus kapteinim pa MISO līniju. Meistars lasa bitus, kad tie tiek saņemti:

13. solis: SPI priekšrocības un trūkumi

SPI izmantošanai ir dažas priekšrocības un trūkumi, un, ja tiek dota izvēle starp dažādiem saziņas protokoliem, jums jāzina, kad lietot SPI atbilstoši jūsu projekta prasībām:

Priekšrocības

Nav sākuma un beigu bitu, tāpēc datus var nepārtraukti straumēt bez pārtraukumiem Nav sarežģītas vergu adresēšanas sistēmas, piemēram, I2C Augstāks datu pārraides ātrums nekā I2C (gandrīz divreiz ātrāk) Atsevišķas MISO un MOSI līnijas, lai datus varētu nosūtīt un saņemt vienlaicīgi laiks

TRŪKUMI

Izmanto četrus vadus (I2C un UART izmanto divus) Nav apstiprinājuma, ka dati ir veiksmīgi saņemti (I2C ir šis). Nav kļūdu pārbaudes veida, piemēram, UART paritātes bits. Tikai viens meistars. no SPI. Turpiniet šīs sērijas otro daļu, lai uzzinātu par UART virzīto komunikāciju, vai trešo daļu, kur mēs apspriežam I2C protokolu.

Ja jums ir kādi jautājumi, lūdzu, uzdodiet tos komentāru sadaļā, mēs esam šeit, lai palīdzētu. Un noteikti sekojiet

Ar cieņu: M. Junaid

Ieteicams: