Mõistmine manustatud SPI sideprotokollist

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Suhtlus mängib manustatud süsteemi kujundamisel olulist rolli. Protokollide juurde minemata on perifeerne laiendus väga keeruline ja energiat tarbiv. The sisseehitatud süsteem põhiliselt kasutab välisseadmetega suhtlemiseks jadasidet.
On palju jadapõhiseid sideprotokolle, näiteks UART, CAN, USB, I2C ja SPI. Seriaal sideprotokoll omadused hõlmavad suurt kiirust ja väikest andmekadu. See muudab süsteemitasemel kujundamise lihtsamaks ja tagab usaldusväärse andmeedastuse.

Andmeside jada

Elektriliselt kodeeritud teavet nimetatakse seeriandmeteks, mis edastatakse protokollide komplekti kaudu bitti haaval ühelt seadmelt teisele. Manustatud süsteemis võetakse juhtsensorite ja ajamite andmed vastu või edastatakse kontrollerite seadmetele, näiteks mikrokontrolleritele, et andmeid edasi analüüsida ja töödelda. Kuna mikrokontrollerid töötavad digitaalsete andmetega, saadakse analoogandurid , muundatakse ajamid ja muud lisaseadmed enne mikrokontrollerisse edastamist ühebaidiseks (8-bitiseks) binaarsõnaks.




Andmeside jada

Andmeside jada

Need jadaandmed edastatakse teatud taktsimpulsi suhtes. Andmeedastuskiirust nimetatakse ülekandekiiruseks. Sekundis edastatavate andmebittide arvu nimetatakse ülekandekiiruseks. Oletame, et andmete suurus on 12 baiti, seejärel teisendatakse iga bait 8-bitiseks, nii et andmeedastuse kogumaht on umbes 96 bitti / s andmeid (12 baiti * 8 bitti baiti kohta). Kui andmeid saab edastada üks kord sekundis, on ülekandekiirused umbes 96bit / s või 96 baudi. Ekraan värskendab andmete väärtust üks kord sekundis.



Jaotise perifeerse liidese põhitõed

SPI-kommunikatsioon tähistab jada-perifeerset liidest sideprotokoll , mille Motorola arendas välja 1972. aastal. SPI-liides on saadaval populaarsetes kommunikatsioonikontrollerites nagu PIC, AVR ja ARM-kontroller jne. Sellel on sünkroonne jadaühenduse andmesideühendus, mis töötab täisdupleksis, mis tähendab, et andmesignaalid kannavad samaaegselt mõlemat suunda.

SPI-protokoll koosneb neljast juhtmest, nagu MISO, MOSI, CLK, SS, mida kasutatakse ülema / orja suhtlemiseks. Peremees on mikrokontroller ja orjad on muud lisaseadmed nagu andurid, GSM-modem ja GPS-modem jne. Mitmed orjad on liidetud masteriga SPI jadasiini kaudu. SPI-protokoll ei toeta multi-master-sidet ja seda kasutatakse trükkplaadil lühikese vahemaa tagant.

Jaotise perifeerse liidese põhitõed

Jaotise perifeerse liidese põhitõed

SPI liinid

MISO (meister orjas välja) : MISO-liin on konfigureeritud sisendina põhiseadmesse ja väljundiks alamseadmes.


MOSI (Master välja ori sisse) : MOSI on liin, mis on konfigureeritud väljundina põhiseadmes ja sisendina alamseadmes, kus seda kasutatakse andmete liikumise sünkroonimiseks.

SCK (jadakell) : Seda signaali juhib alati juht sünkroonseks andmeedastuseks ülema ja alluva vahel. Seda kasutatakse andmete liikumise sünkroniseerimiseks nii sisse- kui ka väljapoole MOSI ja MISO liine.

SS (alluvvalik) ja CS (kiibivalik) : Seda signaali juhib juht üksikute orjade / lisaseadmete valimiseks. See on sisendliin, mida kasutatakse alluvate seadmete valimiseks.

Alam-orja suhtlus SPI jadabussiga

Ühe isanda ja ühe orja SPI juurutamine

Siin algatab suhtlemise alati kapten. Esmalt konfigureerib põhiseade taktsageduse, mis on väiksem või võrdne maksimaalse sagedusega, mida orjaseade toetab. Seejärel valib kapten suhtlemiseks soovitud orja, lohistades selle konkreetse alamseadme kiibi valimisjoone (SS), et see muutuks madalaks ja aktiivseks. Ülem genereerib teabe MOSI-liinile, mis kannab andmeid ülemalt orjale.

Orja suhtlus

Orja suhtlus

Ühe isanda ja mitme orja rakendused

See on mitme orja konfiguratsioon, millel on SPI jadasiini kaudu üks põhi- ja mitu alamat. Mitu orja ühendatakse paralleelselt põhiseadmega SPI jadasiiniga. Siin on kõik kellaliinid ja andmeliinid ühendatud, kuid iga orjaseadme kiibi valimisnõel tuleb ühendada maseri seadme eraldi alamvalimisnõelaga.

Üks peremees ja mitu orja

Üks peremees ja mitu orja

Selles protsessis teostab iga alamseadme juhtimist kiibi valimise liin (SS). Kiibi valimise tihvt läheb orjaseadme aktiveerimiseks madalaks ja alamseadme keelamiseks kõrgeks.

Andmeedastus on korraldatud, kasutades nihkeregistreid nii põhi- kui ka alamseadmetes, mille antud sõna suurus on vastavalt umbes 8-bitine ja 16-bitine. Mõlemad seadmed on ühendatud rõngakujulisena, nii et maseri nihkeregistri väärtus edastatakse MOSI liini kaudu ja seejärel nihutab ori andmeid oma nihkeregistris. Andmed nihutatakse tavaliselt esmalt koos MSB-ga ja viiakse uus LSB samasse registrisse.

Andmeedastus ülema ja alluva vahel

Andmeedastus ülema ja alluva vahel

Kella polaarsuse ja faasi tähtsus

Üldiselt teostatakse andmete edastamist ja vastuvõtmist tõukuvate ja langevate servade kellaimpulsside suhtes. Täpsematel mikrokontrolleritel on kaks sagedust: sisemine ja väline sagedus. SPI välisseadmeid sai lisada, jagades MISO, MOSI ja SCLK liine. Välisseadmed on erinevat tüüpi või kiirusega nagu ADC, DAC jne. Seega peame muutma SPCR-i seadeid erinevatele välisseadmetele edastamise vahel.

SPCR register

SPCR register

SPI-buss töötab ühes neljast erinevast edastamisrežiimist, millel on kella polaarsus (CPOL) ja kella faas (CPHA), mis määratleb kasutatava kella vormingu. Kella polaarsus ja faaside taktsagedus sõltuvad sellest, millist välisseadet proovite masteriga suhelda.
CPHA = 0, CPOL = 0: esimene bitt algab madalama signaalina - andmetest võetakse proov tõusvas servas ja andmed muutuvad langeva serva korral.

CPHA = 0, CPOL = 1: esimene bitt algab madalama kellaga - andmetest võetakse proov langevas servas ja andmed muutuvad tõusvas servas.

CPHA = 1, CPOL = 0: esimene bitt algab kõrgema kellaga - andmetest võetakse proov langevas servas ja andmed muutuvad tõusvas servas.

CPHA = 1, CPOL = 1: esimene bitt algab kõrgema kellaga - andmetest võetakse proov tõusvas servas ja andmed muutuvad langeva serva korral.

SPI-bussi ajastus

SPI-bussi ajastus

SPI sideprotokoll

Paljudel mikrokontrolleritel on sisseehitatud SPI-protokollid, mis tegelevad kõigi andmete saatmise ja vastuvõtmisega. Kõiki andmerežiimi toiminguid (R / W) juhivad SPI protokolli juhtimis- ja olekuregistrid. Siin saate jälgida SPEP-protokolli kaudu EEPROM-liidest PIC16f877a mikrokontrolleriga.

Siin on 25LC104 EEROM 131072 baiti mälu, kus mikrokontroller edastab kaks baiti andmeid EEROM mälu SPI jadasiini kaudu. Selle liidese programm on toodud allpool.

Master-Slave suhtlus SPI jadasiini kaudu

Master-Slave suhtlus SPI jadasiini kaudu

# kaasata
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Tühista EEROM () initsialiseerimine
Tühista peamine ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_ aadress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

SPI protokolli eelised

  • See on täielik dupleksne suhtlus.
  • See on kiire andmesiin 10MHzs.
  • Ülekande ajal ei piirdu see 8bitiga
  • Riistvara liidestamine on SPI kaudu lihtne.
  • Ori kasutab peakella ja ei vaja väärtuslikke ostsillaatoreid.

See kõik on seotud SPI-side ja sellega liides mikrokontrolleriga . Hindame teie suurt huvi ja tähelepanu selle artikli vastu ning ennetame seega teie arvamust selle artikli suhtes. Lisaks võite mis tahes liidestava kodeerimise ja abi saamiseks küsida meilt, kommenteerides allpool.

Foto autorid: