Supratimas apie SPI komunikacijos protokolą įterptųjų

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Kuriant įdėtąją sistemą komunikacija vaidina esminį vaidmenį. Nesikreipiant į protokolus, periferinė plėtra yra labai sudėtinga ir sunaudoja daug energijos. The integruota sistema iš esmės naudoja nuoseklųjį ryšį, kad galėtų bendrauti su išoriniais įrenginiais.
Yra daug nuosekliojo ryšio protokolų, tokių kaip UART, CAN, USB, I2C ir SPI ryšys. Serialas ryšio protokolo charakteristikos apima didelį greitį ir mažą duomenų praradimą. Tai palengvina sistemos lygio projektavimą ir užtikrina patikimą duomenų perdavimą.

Nuoseklus duomenų perdavimas

Elektriniu būdu užkoduota informacija vadinama nuosekliaisiais duomenimis, kurie perduodami po truputį iš vieno įrenginio į kitą per protokolų rinkinį. Įterptojoje sistemoje valdymo jutiklių ir pavarų duomenys gaunami arba perduodami valdiklio įtaisams, pavyzdžiui, mikrovaldikliams, kad duomenys būtų toliau analizuojami ir apdorojami. Mikrokontroleriams dirbant su skaitmeniniais duomenimis, informacija iš analoginiai jutikliai , pavaros ir kiti išoriniai įrenginiai yra konvertuojami į vieno baito (8 bitų) dvejetainį žodį prieš perduodant į mikrovaldiklį.




Nuoseklus duomenų perdavimas

Nuoseklus duomenų perdavimas

Šie nuoseklūs duomenys perduodami tam tikro laikrodžio impulso atžvilgiu. Duomenų perdavimo greitis vadinamas duomenų perdavimo sparta. Duomenų bitų, kuriuos galima perduoti per sekundę, skaičius vadinamas perdavimo sparta. Tarkime, kad duomenys yra 12 baitų, tada kiekvienas baitas paverčiamas į 8 bitus taip, kad bendras duomenų perdavimo dydis būtų apie 96 bitus / s duomenų (12 baitų * 8 bitai už baitą). Jei duomenis galima perduoti kartą per sekundę, duomenų perdavimo sparta yra maždaug 96 bitai / s arba 96 baudos. Ekrane duomenų vertė atnaujinama kartą per sekundę.



Serijinės periferinės sąsajos pagrindai

SPI ryšys reiškia serijinę periferinę sąsają ryšio protokolas , kurią sukūrė „Motorola“ 1972 m. SPI sąsaja yra prieinama populiariuose ryšio valdikliuose, tokiuose kaip PIC, AVR ir ARM valdiklis ir kt. Jis turi sinchroninį nuosekliojo ryšio duomenų ryšį, veikiantį per visą dupleksą, o tai reiškia, kad duomenų signalai vienu metu vykdo abi puses.

SPI protokolas susideda iš keturių laidų, tokių kaip MISO, MOSI, CLK, SS, naudojami pagrindiniam / pavaldžiam ryšiui. Šeimininkas yra mikrovaldiklis, o vergai yra kiti išoriniai įrenginiai, pvz., Jutikliai, GSM modemas ir GPS modemas ir tt Keli vergai yra susieti su valdikliu per SPI nuosekliąją magistralę. SPI protokolas nepalaiko „Multi-master“ ryšio ir jis naudojamas trumpam atstumui, esantis grandinėje.

Serijinės periferinės sąsajos pagrindai

Serijinės periferinės sąsajos pagrindai

SPI linijos

MISO („Master of Slave out“) : MISO linija sukonfigūruota kaip įvestis pagrindiniame įrenginyje ir kaip išvestis vergo įrenginyje.


MOSI („Master out Slave“) : MOSI yra linija, sukonfigūruota kaip išvestis pagrindiniame įrenginyje ir kaip įvestis vergo įrenginyje, kur ji naudojama duomenų judėjimui sinchronizuoti.

SCK (serijinis laikrodis) : Šį signalą visada valdo pagrindinis sinchroninis duomenų perdavimas tarp pagrindinio ir vergo. Jis naudojamas duomenų judėjimui tiek į vidų, tiek į išorę per MOSI ir MISO linijas sinchronizuoti.

SS („Slave Select“) ir CS („Chip Select“) : Šį signalą valdo pagrindinis asmuo, norėdamas pasirinkti atskirus vergus / periferinius įrenginius. Tai įvesties linija, naudojama vergų įrenginiams pasirinkti.

Pagrindinio vergo ryšys su SPI nuosekliąja magistrale

Vieno pagrindinio ir vieno vergo SPI įgyvendinimas

Čia bendravimą visada inicijuoja meistras. Pagrindinis prietaisas pirmiausia sukonfigūruoja laikrodžio dažnį, kuris yra mažesnis arba lygus didžiausiam vergo įrenginio palaikomam dažniui. Tada meistras parenka norimą vergą ryšiui, vilkdamas to konkretaus vergo įrenginio lusto pasirinkimo liniją (SS), kad ji veiktų žemai būsenai ir būtų aktyvi. Pagrindinis generuoja informaciją į MOSI liniją, kuri perduoda duomenis iš pagrindinio į vergą.

Pagrindinio vergo bendravimas

Pagrindinio vergo bendravimas

Vieno pagrindinio ir kelių vergų įgyvendinimai

Tai yra kelių vergų konfigūracija su vienu pagrindiniu ir keliais vergais per SPI nuosekliąją magistralę. Keli vergai yra lygiagrečiai su pagrindiniu įrenginiu sujungiami su SPI nuosekliąja magistrale. Čia visos laikrodžio linijos ir duomenų linijos yra sujungtos kartu, tačiau lusto pasirinkimo kaištis iš kiekvieno vergo įrenginio turi būti sujungtas su atskiru vergo pasirinkimo kaiščiu, esančiu maserio įrenginyje.

Vienas šeimininkas ir keli vergai

Vienas šeimininkas ir keli vergai

Šiame procese kiekvieno vergo įrenginio valdymas atliekamas lusto pasirinkimo linija (SS). Lusto pasirinkimo kaištis yra žemas, kad būtų įjungtas vergo įrenginys, o aukštas - išjungiant vergo įrenginį.

Duomenų perdavimas organizuojamas naudojant poslinkio registrus tiek pagrindiniuose, tiek pavaldžiuose įrenginiuose, kurių žodžio dydis yra atitinkamai apie 8 ir 16 bitų. Abu prietaisai yra sujungti žiedo forma, kad maserio poslinkio registro reikšmė būtų perduodama per MOSI liniją, o tada vergas perkelia duomenis savo poslinkių registre. Paprastai duomenys pirmiausia perkeliami su MSB ir perkeliant naują LSB į tą patį registrą.

Duomenų perdavimas tarp pagrindinio ir vergo

Duomenų perdavimas tarp pagrindinio ir vergo

Laikrodžio poliškumo ir fazės reikšmė

Paprastai duomenys perduodami ir priimami atsižvelgiant į laikrodžio impulsus kylančiuose ir krentančiuose kraštuose. Pažangieji mikrovaldikliai turi du dažnius: vidinį ir išorinį. SPI periferinius įrenginius būtų galima pridėti dalijantis MISO, MOSI ir SCLK linijomis. Išoriniai įrenginiai yra skirtingų tipų ar greičio, pvz., ADC, DAC ir kt. Taigi, mes turime pakeisti SPCR nustatymus tarp perkėlimų į skirtingus periferinius įrenginius.

SPCR registras

SPCR registras

SPI magistralė veikia vienu iš 4 skirtingų perdavimo režimų, laikrodžio poliškumas (CPOL) ir laikrodžio fazė (CPHA), kuris apibrėžia naudojamo laikrodžio formatą. Laikrodžio poliškumas ir fazinio laikrodžio dažnis priklauso nuo to, kurį periferinį įrenginį bandote užmegzti ryšį su valdytoju.
CPHA = 0, CPOL = 0: Pirmasis bitas prasideda kaip apatinis signalas - duomenys atrenkami kylančiame krašte, o duomenys keičiasi krintant kraštui.

CPHA = 0, CPOL = 1: Pirmasis bitas prasideda žemesniu laikrodžiu - duomenys imami krintant kraštui, o duomenys keičiasi kylant kraštui.

CPHA = 1, CPOL = 0: Pirmasis bitas prasideda didesniu laikrodžiu - duomenys imami krintant kraštui, o duomenys keičiasi kylant kraštui.

CPHA = 1, CPOL = 1: Pirmasis bitas prasideda didesniu laikrodžiu - duomenys imami aukštėjančiame krašte, o duomenys keičiasi krintant kraštui.

SPI magistralės laikas

SPI magistralės laikas

SPI ryšio protokolas

Daugelis mikrovaldiklių turi integruotus SPI protokolus, kurie tvarko visus siunčiančius ir gaunamus duomenis. Bet kurią duomenų režimo operaciją (R / W) valdo SPI protokolo valdymo ir būsenos registrai. Čia galite stebėti EEPROM sąsają su PIC16f877a mikrovaldikliu per SPI protokolą.

Čia 25LC104 EEROM yra 131072 baitų atmintis, kurioje mikrovaldiklis perduoda du baitus duomenų į EEROM atmintis per SPI nuosekliąją magistralę. Šios sąsajos programa pateikiama žemiau.

„Master to Slave“ ryšys per SPI nuosekliąją magistralę

„Master to Slave“ ryšys per SPI nuosekliąją magistralę

# įtraukti
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Negalima inicijuoti EEROM ()
Negaliojantis pagrindinis ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adresas = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

SPI protokolo privalumai

  • Tai visiškai dvipusis ryšys.
  • Tai greitaeigė duomenų magistralė 10MHz.
  • Perkėlimo metu jis neapsiriboja 8 bitais
  • Aparatūros sąsaja yra paprasta naudojant SPI.
  • Vergas naudoja pagrindinį laikrodį ir jam nereikia brangių osciliatorių.

Viskas apie SPI komunikaciją ir jos sąveikaujant su mikrovaldikliu . Dėkojame už didelį jūsų susidomėjimą ir dėmesį šiuo straipsniu, todėl numatome jūsų požiūrį į šį straipsnį. Be to, dėl bet kokio sąsajos kodavimo ir pagalbos galite paprašyti mūsų komentuodami toliau.

Nuotraukų kreditai: