Obsah:
- Krok 1: SÉRIOVÉ VS. ROVNOVÁHOVÁ KOMUNIKÁCIA
- Krok 2:
- Krok 3:
- Krok 4: ÚVOD DO SPI KOMUNIKÁCIE
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8: AKO SPI FUNGUJE
- Krok 9:
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13: VÝHODY A NEVÝHODY SPI
Video: ZÁKLADY KOMUNIKAČNÉHO PROTOKOLU SPI: 13 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Keď pripájate mikrokontrolér k senzoru, displeji alebo inému modulu, premýšľate niekedy o tom, ako tieto dve zariadenia medzi sebou hovoria? Čo presne hovoria? Ako si môžu navzájom rozumieť?
Komunikácia medzi elektronickými zariadeniami je ako komunikácia medzi ľuďmi. Obe strany musia hovoriť rovnakým jazykom. V elektronike sa tieto jazyky nazývajú komunikačné protokoly. Našťastie pre nás existuje len niekoľko komunikačných protokolov, ktoré potrebujeme vedieť pri stavbe väčšiny projektov elektroniky pre domácich majstrov. V tejto sérii článkov sa budeme zaoberať základmi troch najbežnejších protokolov: sériovým periférnym rozhraním (SPI), integrovaným obvodom (I2C) a komunikáciou riadenou univerzálnym asynchrónnym prijímačom/vysielačom (UART). Najprv začneme niekoľkými základnými pojmami o elektronickej komunikácii a potom podrobne vysvetlíme, ako SPI funguje. V nasledujúcom článku budeme diskutovať o komunikácii riadenej UART a v treťom článku sa ponoríme do I2C. SPI, I2C a UART sú o niečo pomalšie ako protokoly ako USB, ethernet, Bluetooth a WiFi, ale sú oveľa jednoduchšie a používajú menej hardvéru a systémových zdrojov. SPI, I2C a UART sú ideálne pre komunikáciu medzi mikrokontrolérmi a medzi mikrokontrolérmi a snímačmi, kde nie je potrebné prenášať veľké množstvo vysokorýchlostných dát.
Krok 1: SÉRIOVÉ VS. ROVNOVÁHOVÁ KOMUNIKÁCIA
Elektronické zariadenia medzi sebou komunikujú odosielaním bitov dát prostredníctvom káblov fyzicky prepojených medzi zariadeniami. Bit je ako písmeno v slove, ibaže namiesto 26 písmen (v anglickej abecede) je bit binárny a môže mať iba 1 alebo 0. Bity sa prenášajú z jedného zariadenia do druhého rýchlymi zmenami napätia. V systéme pracujúcom pri 5 V je 0 bit prenášaný ako krátky impulz 0 V a 1 bit je prenášaný krátkym impulzom 5 V.
Bity údajov je možné prenášať buď paralelne alebo sériovo. Pri paralelnej komunikácii sa bity údajov odosielajú všetky súčasne, každý cez samostatný vodič. Nasledujúci diagram zobrazuje paralelný prenos písmena „C“v binárnom formáte (01000011):
Krok 2:
Pri sériovej komunikácii sú bity odosielané jeden po druhom pomocou jedného vodiča. Nasledujúci diagram zobrazuje sériový prenos písmena „C“v binárnom formáte (01000011):
Krok 3:
Krok 4: ÚVOD DO SPI KOMUNIKÁCIE
SPI je bežný komunikačný protokol, ktorý používa mnoho rôznych zariadení. Napríklad moduly karty SD, moduly čítačky kariet RFID a bezdrôtové vysielače/prijímače 2,4 GHz používajú na komunikáciu s mikrokontrolérmi SPI.
Jednou z jedinečných výhod SPI je skutočnosť, že údaje je možné prenášať bez prerušenia. V súvislom toku je možné odosielať alebo prijímať ľubovoľný počet bitov. Pri I2C a UART sa údaje odosielajú v paketoch obmedzených na určitý počet bitov. Podmienky štartu a zastavenia definujú začiatok a koniec každého paketu, takže údaje sa počas prenosu prerušia. Zariadenia komunikujúce prostredníctvom SPI sú vo vzťahu master-slave. Master je riadiace zariadenie (zvyčajne mikrokontrolér), zatiaľ čo slave (zvyčajne senzor, displej alebo pamäťový čip) prijíma pokyny od mastera. Najjednoduchšia konfigurácia SPI je jeden hlavný, jeden podradený systém, ale jeden hlavný môže ovládať viac ako jedného podriadeného (viac o tom nižšie).
Krok 5:
Krok 6:
MOSI (Master Output/Slave Input) - Linka pre master na odosielanie údajov do zariadenia slave.
MISO (hlavný vstup/podriadený výstup) - linka pre podriadené zariadenie na odosielanie údajov do hlavného zariadenia.
SCLK (Hodiny) - Riadok pre hodinový signál.
SS/CS (Slave Select/Chip Select) - Riadok pre master, aby si vybral, do ktorého slave sa majú odosielať údaje
Krok 7:
*V praxi je počet podradených zariadení obmedzený zaťažovacou kapacitou systému, čo znižuje schopnosť majstra presne prepínať medzi úrovňami napätia.
Krok 8: AKO SPI FUNGUJE
HODINY
Hodinový signál synchronizuje výstup dátových bitov z masteru na vzorkovanie bitov slave. V každom hodinovom cykle sa prenáša jeden bit dát, takže rýchlosť prenosu dát je daná frekvenciou hodinového signálu. Komunikácia SPI je vždy iniciovaná masterom, pretože master konfiguruje a generuje hodinový signál.
Akýkoľvek komunikačný protokol, v ktorom zariadenia zdieľajú hodinový signál, sa nazýva synchrónny. SPI je synchrónny komunikačný protokol. Existujú aj asynchrónne metódy, ktoré nepoužívajú hodinový signál. Napríklad pri komunikácii UART sú obe strany nastavené na vopred nakonfigurovanú prenosovú rýchlosť, ktorá určuje rýchlosť a načasovanie prenosu údajov.
Hodinový signál v SPI je možné modifikovať pomocou vlastností polarity hodín a hodinovej fázy. Tieto dve vlastnosti spoločne určujú, kedy sú bity na výstupe a kedy sú vzorkované. Polaritu hodín môže master nastaviť tak, aby umožňoval výstup bitov a ich vzorkovanie na stúpajúcej alebo klesajúcej hrane hodinového cyklu. Hodinovú fázu je možné nastaviť tak, aby výstup a vzorkovanie prebiehali buď na prvom okraji alebo na druhom okraji hodinového cyklu, bez ohľadu na to, či stúpa alebo klesá.
SLAVE SELECT
Master si môže vybrať, s ktorým slave chce hovoriť, nastavením linky CS/SS otroka na úroveň nízkeho napätia. V nečinnom, nevysielacom stave je podriadená voliaca linka udržiavaná na úrovni vysokého napätia. Na masteri môže byť k dispozícii viac pinov CS/SS, čo umožňuje paralelné zapojenie viacerých otrokov. Ak je prítomný iba jeden pin CS/SS, je možné k masteru pripojiť niekoľko podradených zariadení podradeným reťazením.
VÍCE OTROKOV SPI
môže byť nastavený tak, aby fungoval s jediným masterom a jedným podradeným zariadením, a môže byť nastavený s viacerými podradenými zariadeniami ovládanými jedným masterom. Existujú dva spôsoby pripojenia viacerých otrokov k masteru. Ak má master viac kolíkov na výber slave, môžu byť podradené zariadenia zapojené paralelne takto:
Krok 9:
Krok 10:
MOSI A MISO
Master odosiela údaje do zariadenia slave bit po bite, sériovo cez linku MOSI. Otrok prijíma údaje odoslané z mastera na pin MOSI. Údaje odoslané z nadriadeného do podriadeného zariadenia sa spravidla odosielajú s najdôležitejším bitom ako prvé. Slave môže tiež posielať dáta späť do mastera sériovo cez linku MISO. Údaje odoslané z podriadeného zariadenia späť do nadriadeného zariadenia sa spravidla odosielajú s najmenej významným bitom ako prvé. KROKY SPI PRENOSU ÚDAJOV 1. Master vysiela hodinový signál:
Krok 11:
Ak je k dispozícii iba jeden kolík na výber podradeného zariadenia, podradené zariadenia je možné reťaziť takto:
Krok 12:
MOSI A MISO
Master odosiela údaje do zariadenia slave bit po bite, sériovo cez linku MOSI. Otrok prijíma údaje odoslané z mastera na pin MOSI. Údaje odoslané z nadriadeného do podriadeného zariadenia sa spravidla odosielajú s najdôležitejším bitom ako prvé.
Slave môže tiež posielať dáta späť do mastera sériovo cez linku MISO. Údaje odoslané z podriadeného zariadenia späť do nadriadeného zariadenia sa spravidla odosielajú s najmenej významným bitom ako prvé.
KROKY SPI PRENOSU ÚDAJOV
*Poznámka Obrázky sú uvedené ako hoboj, ktoré môžete ľahko rozlíšiť
1. Master vysiela hodinový signál:
2. Master prepne pin SS/CS do stavu nízkeho napätia, ktorý aktivuje slave:
3. Master odosiela údaje po jednom bite do zariadenia slave pozdĺž linky MOSI. Otrok číta bity po prijatí:
4. Ak je potrebná odpoveď, zariadenie slave vráti údaje po jednom bite nadriadenému zariadeniu pozdĺž linky MISO. Majster číta bity pri ich príjme:
Krok 13: VÝHODY A NEVÝHODY SPI
Používanie SPI má niekoľko výhod a nevýhod, a ak máte na výber medzi rôznymi komunikačnými protokolmi, mali by ste vedieť, kedy používať SPI podľa požiadaviek vášho projektu:
VÝHODY
Žiadne štart a stop bity, takže dáta je možné streamovať nepretržite bez prerušenia Žiadny komplikovaný systém adresovania slave ako I2C Vyššia rýchlosť prenosu dát ako I2C (takmer dvakrát rýchlejšie) Oddelené linky MISO a MOSI, takže dáta je možné odosielať a prijímať súčasne čas
NEVÝHODY
Používa štyri vodiče (I2C a UART používajú dva) Žiadne potvrdenie, že údaje boli úspešne prijaté (I2C to má) Žiadna forma kontroly chýb, ako je paritný bit v UART, umožňuje iba jeden master Našťastie vám tento článok lepšie porozumel spoločnosti SPI. Pokračujte v druhej časti tejto série, aby ste sa dozvedeli o komunikácii riadenej UART, alebo v tretej časti, kde diskutujeme o protokole I2C.
Ak máte akékoľvek otázky, neváhajte sa ich opýtať v sekcii komentárov, radi vám pomôžeme. A určite nasledujte
S pozdravom: M. Junaid
Odporúča:
Dekodér protokolu diaľkového ovládača RC5 bez knižnice: 4 kroky
Dekodér protokolu diaľkového ovládania RC5 bez knižnice: Pred dekódovaním rc5 si najskôr rozoberieme, čo je príkaz rc5 a aká je jeho štruktúra. Takže v zásade príkaz rc5 používaný v diaľkových ovládačoch, ktoré sa používajú v televízoroch, prehrávačoch diskov CD, d2h, systémoch domáceho kina atď., Má 13 alebo 14 bitov usporiadaných v
LCD displej I2C / IIC - Použite SPI LCD na I2C LCD displej pomocou modulu SPI až IIC s Arduino: 5 krokov
LCD displej I2C / IIC | Použite SPI LCD na I2C LCD displej pomocou modulu SPI až IIC s Arduino: Ahoj, pretože normálny SPI LCD 1602 má príliš veľa káblov na pripojenie, takže je veľmi ťažké prepojiť ho s arduino, ale na trhu je k dispozícii jeden modul, ktorý môže preveďte displej SPI na displej IIC, takže potom potrebujete pripojiť iba 4 vodiče
Pochopenie protokolu IR diaľkových ovládačov klimatizácie: 9 krokov (s obrázkami)
Pochopenie IR protokolu diaľkových ovládačov Air Conditoner: O IR protokoloch sa učím už nejaký čas. Ako odosielať a prijímať IR signály. V tomto mieste zostáva už len IR protokol diaľkových ovládačov AC. Na rozdiel od tradičných diaľkových ovládačov takmer všetkých elektronických zariadení (povedzme televízora), kde
Doska kodéra a dekodéra infračerveného protokolu NEC: 5 krokov
Doska kodéra a dekodéra infračerveného protokolu NEC: Prijíma surový modulovaný alebo demodulovaný infračervený signál NEC a prevádza ho na bajty, ktoré sú odoslané zo sériového portu. Sériovú prenosovú rýchlosť je možné vybrať z dvoch predvolených rýchlostí. Predvolený režim použitia prenáša sekvenciu príkazov s rámcovým bajtom
Predbežné* SPI na Pi: Komunikácia s 3-osovým akcelerometrom SPI pomocou Raspberry Pi: 10 krokov
Predbežné* SPI na Pi: Komunikácia s SPI 3-osovým akcelerometrom pomocou Raspberry Pi: Podrobný návod, ako nastaviť Raspbian a komunikovať so zariadením SPI pomocou knižnice bcm2835 SPI (NIE bit banged!) To je stále veľmi predbežné … Musím pridať lepšie obrázky fyzického prepojenia a spracovať nejaký nepríjemný kód