Obsah:

ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI: 13 kroků
ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI: 13 kroků

Video: ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI: 13 kroků

Video: ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI: 13 kroků
Video: iOS 06 - Programování HW periferií v iOS, P. Kutálek (mDevCamp 2012) 2024, Červenec
Anonim
ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI
ZÁKLADY KOMUNIKAČNÍHO PROTOKOLU SPI

Když připojíte mikrokontrolér k senzoru, displeji nebo jinému modulu, přemýšlíte někdy o tom, jak spolu obě zařízení mluví? Co přesně říkají? Jak si mohou rozumět?

Komunikace mezi elektronickými zařízeními je jako komunikace mezi lidmi. Obě strany musí mluvit stejným jazykem. V elektronice se tyto jazyky nazývají komunikační protokoly. Naštěstí pro nás existuje jen několik komunikačních protokolů, které potřebujeme znát při stavbě většiny elektronických projektů pro kutily. V této sérii článků budeme diskutovat o základech tří nejběžnějších protokolů: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) a Universal Asynchronous Receiver/Transmitter (UART). Nejprve začneme základními pojmy o elektronické komunikaci a poté podrobně vysvětlíme, jak SPI funguje. V příštím článku budeme diskutovat o komunikaci řízené UART a ve třetím článku se ponoříme do I2C. SPI, I2C a UART jsou o něco pomalejší než protokoly jako USB, ethernet, Bluetooth a WiFi, ale jsou mnohem jednodušší a využívají méně hardwaru a systémových prostředků. SPI, I2C a UART jsou ideální pro komunikaci mezi mikrokontroléry a mezi mikrokontroléry a senzory, kde není třeba přenášet velké množství vysokorychlostních dat.

Krok 1: SÉRIOVÉ VS. PARALELNÍ KOMUNIKACE

SÉRIOVÉ VS. PARALELNÍ KOMUNIKACE
SÉRIOVÉ VS. PARALELNÍ KOMUNIKACE

Elektronická zařízení mezi sebou komunikují odesíláním bitů dat prostřednictvím vodičů fyzicky propojených mezi zařízeními. Bit je jako písmeno ve slově, kromě toho, že místo 26 písmen (v anglické abecedě) je bit binární a může mít pouze 1 nebo 0. Bity jsou přenášeny z jednoho zařízení do druhého rychlými změnami napětí. V systému pracujícím při 5 V je 0 bit sdělován jako krátký impuls 0 V a 1 bit je sdělován krátkým impulzem 5 V.

Bity dat lze přenášet buď paralelně nebo sériově. Při paralelní komunikaci jsou bity dat odesílány všechny současně, každý samostatným vodičem. Následující diagram ukazuje paralelní přenos písmene „C“v binárním formátu (01000011):

Krok 2:

V sériové komunikaci jsou bity odesílány jeden po druhém přes jeden vodič. Následující diagram ukazuje sériový přenos písmene „C“v binárním formátu (01000011):

Krok 3:

obraz
obraz

Krok 4: ÚVOD DO SPI KOMUNIKACE

ÚVOD DO SPI KOMUNIKACE
ÚVOD DO SPI KOMUNIKACE

SPI je běžný komunikační protokol používaný mnoha různými zařízeními. Například moduly karet SD, moduly čteček karet RFID a bezdrátové vysílače/přijímače 2,4 GHz používají ke komunikaci s mikrokontroléry SPI.

Jednou jedinečnou výhodou SPI je skutečnost, že data lze přenášet bez přerušení. V nepřetržitém proudu lze odesílat nebo přijímat libovolný počet bitů. S I2C a UART jsou data odesílána v paketech, omezených na určitý počet bitů. Podmínky spuštění a zastavení definují začátek a konec každého paketu, takže se data během přenosu přeruší. Zařízení komunikující přes SPI jsou ve vztahu master-slave. Master je řídicí zařízení (obvykle mikrokontrolér), zatímco slave (obvykle senzor, displej nebo paměťový čip) přijímá pokyny od masteru. Nejjednodušší konfigurace SPI je jeden hlavní, jeden podřízený systém, ale jeden hlavní může ovládat více než jeden podřízený (více o tom níže).

Krok 5:

obraz
obraz

Krok 6:

MOSI (Master Output/Slave Input) - Linka pro master pro odesílání dat do slave.

MISO (Master Input/Slave Output) - Linka pro slave pro odesílání dat do masteru.

SCLK (hodiny) - řádek pro hodinový signál.

SS/CS (Slave Select/Chip Select) - Linka pro master pro výběr podřízené jednotky, do které se mají odesílat data

Krok 7:

obraz
obraz

*V praxi je počet podřízených zařízení omezen zatěžovací kapacitou systému, což snižuje schopnost nadřízeného přesně přepínat mezi úrovněmi napětí.

Krok 8: JAK SPI FUNGUJE

HODINY

Hodinový signál synchronizuje výstup datových bitů z masteru do vzorkování bitů slave. V každém taktovacím cyklu je přenesen jeden bit dat, takže rychlost přenosu dat je dána frekvencí hodinového signálu. Komunikaci SPI vždy spouští master, protože master konfiguruje a generuje hodinový signál.

Jakýkoli komunikační protokol, kde zařízení sdílejí hodinový signál, se nazývá synchronní. SPI je synchronní komunikační protokol. Existují také asynchronní metody, které nepoužívají hodinový signál. Například v komunikaci UART jsou obě strany nastaveny na předem nakonfigurovanou přenosovou rychlost, která určuje rychlost a načasování přenosu dat.

Hodinový signál v SPI lze upravit pomocí vlastností polarity hodin a hodinové fáze. Tyto dvě vlastnosti společně definují, kdy jsou výstupy bitů a kdy jsou vzorkovány. Polaritu hodin může master nastavit tak, aby umožňovala výstup bitů a jejich vzorkování na stoupající nebo sestupné hraně hodinového cyklu. Fázi hodin lze nastavit tak, aby výstup a vzorkování probíhaly buď na první hraně, nebo na druhé hraně hodinového cyklu, bez ohledu na to, zda stoupá nebo klesá.

SLAVE SELECT

Master si může vybrat, se kterým slave chce mluvit, nastavením linky CS/SS slave na úroveň nízkého napětí. V klidovém, nepřenosovém stavu je podřízená volicí linka udržována na úrovni vysokého napětí. Na masteru může být k dispozici více pinů CS/SS, což umožňuje paralelní zapojení více slave. Pokud je k dispozici pouze jeden pin CS/SS, lze do masteru zapojit více podřízených zařízení řetězovým zapojením.

VÍCE OTROKŮ SPI

lze nastavit tak, aby fungoval s jediným masterem a jedním slave, a lze jej nastavit s více slave ovládanými jedním masterem. Existují dva způsoby připojení více podřízených zařízení k hlavní jednotce. Pokud má master více pinů pro výběr slave, mohou být slave zapojeny paralelně takto:

Krok 9:

obraz
obraz

Krok 10:

MOSI A MISO

Master odesílá data slave bit po bitu, sériově přes linku MOSI. Slave přijímá data odeslaná z masteru na pin MOSI. Data odeslaná z masteru do slave jsou obvykle odesílána s nejvýznamnějším bitem jako první. Slave může také odesílat data zpět do masteru přes linku MISO sériově. Data odeslaná z podřízené jednotky zpět do hlavní jednotky se obvykle odesílají s nejméně významným bitem jako první. KROKY PŘENOSU SPI DAT 1. Master vydává hodinový signál:

Krok 11:

obraz
obraz

Pokud je k dispozici pouze jeden slave select pin, mohou být slave řetězeny takto:

Krok 12:

obraz
obraz
obraz
obraz
obraz
obraz
obraz
obraz

MOSI A MISO

Master odesílá data slave bit po bitu, sériově přes linku MOSI. Slave přijímá data odeslaná z masteru na pin MOSI. Data odeslaná z masteru do slave jsou obvykle odesílána s nejvýznamnějším bitem jako první.

Slave může také sériově odesílat data zpět do masteru přes linku MISO. Data odeslaná z podřízené jednotky zpět do hlavní jednotky jsou obvykle odeslána s nejméně významným bitem jako první.

KROKY SPI PŘENOSU ÚDAJŮ

*Poznámka Obrázky jsou uvedeny v hoboji, které snadno rozeznáte

1. Master vydává hodinový signál:

2. Master přepne pin SS/CS do stavu nízkého napětí, který aktivuje slave:

3. Master odešle data po jednom bitu do slave podél linky MOSI. Otrok čte bity tak, jak jsou přijímány:

4. Je -li nutná odpověď, slave vrací data po jednom po bitu do masteru podél linky MISO. Master čte bity, jak jsou přijímány:

Krok 13: VÝHODY A NEVÝHODY SPI

Používání SPI má několik výhod a nevýhod, a pokud máte na výběr mezi různými komunikačními protokoly, měli byste vědět, kdy použít SPI podle požadavků vašeho projektu:

VÝHODY

Žádné startovací a zastavovací bity, takže data lze streamovat nepřetržitě bez přerušení Žádný složitý systém adresování slave jako I2C Vyšší rychlost přenosu dat než I2C (téměř dvakrát rychlejší) Oddělené linky MISO a MOSI, takže data lze odesílat a přijímat současně čas

NEVÝHODY

Používá čtyři vodiče (I2C a UART používají dva) Žádné potvrzení, že data byla úspěšně přijata (I2C to má) Žádná forma kontroly chyb, jako je paritní bit v UART, umožňuje pouze jeden master Naštěstí vám tento článek lépe porozuměl společnosti SPI. Pokračujte na druhou část této série, kde se dozvíte o komunikaci řízené UART, nebo na třetí část, kde budeme diskutovat o protokolu I2C.

Pokud máte nějaké dotazy, neváhejte se jich zeptat v sekci komentářů, jsme tu, abychom vám pomohli. A určitě sledujte

S pozdravem: M. Junaid

Doporučuje: