Serial-oheisliitäntä

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10.11.2020 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

SPI ( englanninkielinen  Serial Peripheral Interface, SPI-väylä  - serial peripheral interface, SPI-väylä) on sarjamuotoinen synkroninen tiedonsiirtostandardi full duplex -tilassa , joka on suunniteltu tarjoamaan yksinkertainen ja edullinen nopea liitäntä mikro-ohjaimille ja oheislaitteille. SPI :tä kutsutaan joskus myös nelijohtimisliitännäksi  .

Toisin kuin tavallinen  sarjaportti , SPI on synkroninen liitäntä, jossa kaikki lähetykset synkronoidaan isännän (prosessorin) generoiman yhteisen kellosignaalin kanssa. Vastaanottava (orja) oheislaite synkronoi bittisekvenssin vastaanoton kellosignaalin kanssa. Useita IC:itä voidaan liittää yhteen isäntäpiirin oheisliitäntään. Isäntä valitsee orjan lähetystä varten aktivoimalla sirun valintasignaalin orjasirulla .  Oheislaitteet, joita prosessori ei ole valinnut, eivät osallistu SPI-siirtoon.

Käyttöliittymä

SPI käyttää neljää digitaalista signaalia:

SPI-liitäntäporttien nimet voivat vaihdella laitevalmistajan mukaan, mutta seuraavat vaihtoehdot ovat mahdollisia:

Synkronointi SPI:ssä

Datalinjojen bittivälit määräytyvät isäntälaitteen generoiman SCK-kellosignaalin perusteella, orjalaitteet määrittävät kellosignaalin avulla, milloin datalinjan bitit vaihtuvat, kun taas orjalaitteet eivät voi vaikuttaa bittiväleihin millään tavalla. Sekä isännällä että orjalla on kellopulssien (bittien) laskuri. Orjalaitteen laskurin avulla jälkimmäinen voi määrittää, milloin paketin lähetys on päättynyt. Laskuri nollataan, kun SPI-alijärjestelmä sammutetaan, mikä on aina käytettävissä isäntäkoneessa. Orjassa laskuri nollataan yleensä deaktivoimalla SS - rajapinnan signaali .

Koska isäntä- ja orjatoiminnot kellotetaan samalla signaalilla, tämän signaalin stabiiliudelle ei ole vaatimuksia, paitsi puolijaksojen keston rajoitus, joka määräytyy hitaamman laitteen maksimikäyttötaajuuden mukaan. . Tämä mahdollistaa SPI:n käytön järjestelmissä, joissa on alhainen vakaa kellotaajuus, ja helpottaa myös masterin ohjelmistoemulointia.

Tietojen vastaanotto ja lähettäminen SPI:ssä

Lähetys tapahtuu erissä. Paketin pituus on tyypillisesti 1 tavu (8 bittiä), kun taas SPI-toteutukset tunnetaan muilla paketin pituuksilla, kuten 4 bitillä. Isäntälaite käynnistää tiedonsiirtojakson vetämällä alhaalta sen laitteen orjavalintanastasta ( SS ), johon yhdistetään. Kun SS - signaali on alhainen :

Siirrettävät isäntä- ja orjatiedot sijoitetaan siirtorekistereihin. Tämän jälkeen isäntälaite alkaa generoida kellopulsseja SCLK-linjalla, mikä johtaa keskinäiseen tiedonvaihtoon. Data lähetetään bitti kerrallaan isännältä MOSI-linjalla ja orjalaitteelta MISO-linjalla. Lähetys suoritetaan pääsääntöisesti alkaen merkittävimmistä biteistä, mutta jotkut valmistajat sallivat bittien lähetysjärjestyksen muuttamisen ohjelmistomenetelmin. Kunkin datapaketin lähettämisen jälkeen isäntälaite voi asettaa SS-linjan korkeaan tilaan orjalaitteen synkronoimiseksi.

SPI-liitäntätilat

Neljä synkronointitilaa on mahdollista. Tila määräytyy CPHA- ja CPOL-bittien yhdistelmällä:

Seuraava käytäntö on otettu käyttöön SPI-liitännän toimintatilojen määrittelemiseksi:

SPI-pohjaisten viestintäjärjestelmien topologia

Yksinkertaisimmassa tapauksessa yksi orjalaite on kytketty isäntälaitteeseen ja tarvitaan kaksisuuntaista tiedonsiirtoa. Tässä tapauksessa käytetään kolmijohtimista kytkentäkaaviota. SPI-rajapinnan avulla voidaan liittää useita orjalaitteita yhteen isäntälaitteeseen, ja yhteys voidaan tehdä monella tavalla.

Ensimmäisen menetelmän avulla voit toteuttaa radiaalisen viestintärakenteen (tähtitopologia), sitä pidetään pääasiallisena tapana yhdistää useita orjalaitteita. Tässä tapauksessa kommunikoidakseen useamman kuin yhden orjan kanssa isäntälaitteen on generoitava sopiva määrä orjavalintasignaaleja ( SS ). Kun kommunikoidaan orjan kanssa, vastaava SS -signaali asetetaan aktiiviseen (matala) tilaan, kun taas kaikki muut SS -signaalit ovat ei-aktiivisessa (korkeassa) tilassa. Slavelaitteiden MISO-datanastat kytketään rinnakkain niiden ollessa inaktiivisessa tilassa ja ennen vaihdon alkamista yksi lähdöistä (valitun orjalaitteen) menee aktiiviseen tilaan.

Toisen menetelmän avulla voit toteuttaa "rengas"-tyyppisen yhteysrakenteen. Tässä tapauksessa yhtä SS -signaalia käytetään useiden orjalaitteiden aktivoimiseen samanaikaisesti ja kaikkien laitteiden datalähdöt on kytketty sarjaan ja muodostavat suljetun piirin. Kun paketti lähetetään isännältä, ensimmäinen orja vastaanottaa tämän paketin, joka puolestaan ​​lähettää pakettinsa seuraavalle orjalle ja niin edelleen. Jotta isännältä tuleva paketti saavuttaisi tietyn orjan, isäntälaitteen on lähetettävä muutama paketti lisää.

SPI-liitännän edut ja haitat

Edut

Haitat

Esimerkki ohjelmiston toteutuksesta

Alla on esimerkki SPI-masterin ohjelmistototeutuksesta C -kielellä . CS ( chip select, chip select) -linja on aktivoitava (useimmissa tapauksissa vedetty alas) ennen tiedonvaihdon alkamista ja deaktivoitava vaihdon päätyttyä. Useimmat laitteet vaativat useita lähetysistuntoja aktiivisella CS -linjalla . Tätä toimintoa voidaan kutsua useita kertoja linjan ollessa aktiivinen.

allekirjoittamaton merkki SPIBitBang8BitsMode0 ( allekirjoittamaton merkkitavu ) _ { unsigned char bit ; for ( bitti = 0 ; bitti < 8 ; bitti ++ ) { /* kirjoittaa MOSI edellisen kellon laskevalle reunalle */ jos ( tavu & 0x80 ) SETMOSI (); muu CLRMOSI (); tavu <<= 1 ; /* odota puoli kellojaksoa ennen kuin luot nousevan reunan */ SPIDELAY ( SPISPEED / 2 ); SETCLK (); /* odota puoli kellojaksoa ennen kuin luot putoamisen */ SPIDELAY ( SPISPEED / 2 ); /* lue MISO hylätty */ tavu |= READMISO (); CLRCLK (); } paluutavu ; _ }

Katso myös

Kirjallisuus

  • Ball Stewart R. Mikro-ohjainten analogiset rajapinnat. — M. : Dodeka-XXI, 2007. — 360 s. — (Ohjelmoitavat järjestelmät). - 2000 kappaletta.  — ISBN 978-5-94120-142-6 .
  • Lapin A.A. käyttöliittymät. Valinta ja toteutus. - M . : Technosfera, 2005. - 168 s. — (Elektroniikan maailma). -5000 kappaletta.  — ISBN 5-94836-058-X .

Linkit