Ať už se jedná o počítačové periferie, chytrá zařízení, zařízení internetu věcí (IoT) nebo elektroniku měřicí nástroje, všechny používají sériové komunikační protokoly pro připojení různých elektronických součástek spolu.
Tyto komponenty se obvykle skládají z mikrokontroléru a podřízených modulů, jako je snímač otisků prstů, ESP8266 (modul Wi-Fi), serva a sériové displeje.
Tato zařízení používají různé druhy komunikačních protokolů. Níže se dozvíte o některých nejpopulárnějších protokolech sériové komunikace, jak fungují, jaké jsou jejich výhody a proč se stále používají.
Co je sériová komunikace?
Protokoly sériové komunikace jsou zde již od vynálezu Morseovy abecedy v roce 1838. Dnes moderní sériové komunikační protokoly používají stejné principy. Signály jsou generovány a přenášeny na jednom vodiči opakovaným zkratováním dvou vodičů k sobě. Tento zkrat funguje jako spínač; zapíná se (vysoká) a vypíná (nízká) a poskytuje binární signály. Způsob přenosu a příjmu tohoto signálu bude záviset na typu použitého sériového komunikačního protokolu.
S vynálezem tranzistoru a inovacemi, které následovaly, inženýři a kutilové udělali procesní jednotky a paměť menší, rychlejší a energeticky účinnější. Tyto změny vyžadovaly, aby sběrnicové komunikační protokoly byly technologicky stejně pokročilé jako připojované komponenty. Tedy vynález sériových protokolů jako UART, I2C a SPI. Přestože jsou tyto sériové protokoly staré několik desítek let, stále jsou preferovány pro mikrokontroléry a programování na holé kovy.
UART (Universal Asynchronous Receiver-Transmitter)
Protokol UART je jedním z nejstarších, ale nejspolehlivějších protokolů sériové komunikace, které dodnes používáme. Tento protokol používá ke komunikaci obou komponent dva vodiče známé jako Tx (vysílání) a Rx (příjem).
Pro přenos dat musí vysílač i přijímač souhlasit s pěti společnými konfiguracemi, kterými jsou:
- Přenosová rychlost: Přenosová rychlost udává, jak rychle mají být data přenášena.
- Délka dat: Dohodnutý počet bitů, které si přijímač uloží do svých registrů.
- Start Bit: Nízký signál, který dává přijímači vědět, kdy se mají data přenést.
- Stop Bit: Vysoký signál, který dává přijímači vědět, kdy byl odeslán poslední bit (nejvýznamnější bit).
- Paritní bit: Buď vysoký nebo nízký signál používaný ke kontrole správnosti nebo poškození odeslaných dat.
Protože UART je asynchronní protokol, nemá vlastní hodiny, které regulují rychlost přenosu dat. Alternativně využívá přenosovou rychlost pro časování, když je přenášen bit. Obvyklá přenosová rychlost používaná pro UART je 9600 baudů, což znamená přenosovou rychlost 9600 bitů za sekundu.
Pokud to spočítáme a vydělíme jeden bit rychlostí 9600 baudů, můžeme vypočítat, jak rychle se jeden bit dat přenese do přijímače.
1/9600 =104 mikrosekund
To znamená, že naše zařízení UART začnou počítat 104 mikrosekund, aby věděli, kdy bude vysílat další bit.
Po připojení zařízení UART se výchozí signál vždy zvýší na vysokou hodnotu. Když detekuje nízkofrekvenční signál, přijímač začne počítat 104 mikrosekund plus dalších 52 mikrosekund, než začne ukládat bity do svých registrů (paměti).
Protože již bylo dohodnuto, že osm bitů má být délka dat, jakmile se uloží osm bitů dat, začne kontrolovat paritu, aby se zjistilo, zda jsou data lichá nebo sudá. Po kontrole parity stop bit vyšle vysoký signál, aby zařízení upozornil, že celých osm bitů dat bylo úspěšně přeneseno do přijímače.
Jako nejminimalističtější sériový protokol využívající pouze dva vodiče se UART dnes běžně používá v čipových kartách, SIM kartách a automobilech.
Příbuzný: Co je SIM karta? Věci, které potřebujete vědět
SPI (Serial Peripheral Interface)
SPI je další populární sériový protokol používaný pro rychlejší datové rychlosti asi 20 Mbps. Využívá celkem čtyři vodiče, a to SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) a SS/CS (Chip Select). Na rozdíl od UART používá SPI formát master-to-slave k ovládání více podřízených zařízení pouze jedním masterem.
MISO a MOSI fungují jako Tx a Rx UART používané k vysílání a příjmu dat. Chip Select se používá pro výběr, se kterým slavem chce master komunikovat.
Vzhledem k tomu, že SPI je synchronní protokol, používá vestavěné hodiny z hlavní jednotky, aby bylo zajištěno, že hlavní i podřízená zařízení běží na stejné frekvenci. To znamená, že obě zařízení již nemusí vyjednávat přenosovou rychlost.
Protokol začíná tím, že master vybere podřízené zařízení snížením jeho signálu na konkrétní SS/CK připojené k podřízenému zařízení. Když slave přijme nízký signál, začne poslouchat jak SCK, tak MOSI. Master pak odešle startovací bit před odesláním bitů, které obsahují data.
MOSI i MISO jsou plně duplexní, což znamená, že mohou vysílat a přijímat data současně.
Díky své schopnosti připojit se k více podřízeným zařízením, plně duplexní komunikaci a nižší spotřebě energie než jiné synchronní protokoly jako I2C, SPI se používají v paměťových zařízeních, digitálních paměťových kartách, převodnících ADC na DAC a krystalech paměť zobrazí.
I2C (Inter-Integrated Circuit)
I2C je další synchronní sériový protokol jako SPI, ale oproti němu má několik výhod. Patří mezi ně možnost mít více masterů a slave, jednoduché adresování (není potřeba čip Select), pracující s různými napětími a používající pouze dva vodiče připojené ke dvěma pull-up rezistory.
I2C se často používá v mnoha zařízeních IoT, průmyslovém vybavení a spotřební elektronice.
Dva piny v protokolu I2C jsou SDA (Serial Data Line), který vysílá a přijímá data, a pin SCL (Serial Clock Line), který funguje jako hodiny.
- Protokol začíná tím, že master odešle start bit (nízký) ze svého pinu SDA, následovaný sedmibitovou adresou, která vybírá podřízenou jednotku, a jedním bitem až pro výběr čtení nebo zápisu.
- Po obdržení startovacího bitu a adresy pak slave pošle potvrzovací bit masteru a začne naslouchat SCL a SDA pro příchozí přenosy.
- Jakmile to master obdrží, ví, že spojení bylo vytvořeno se správným slave zařízením. Master nyní vybere, ke kterému konkrétnímu registru (paměti) z podřízeného zařízení chce přistupovat. Činí tak odesláním dalších osmi bitů určujících, který registr se má použít.
- Po obdržení adresy slave nyní připraví výběrový registr před odesláním dalšího potvrzení masteru.
- Po výběru, který konkrétní slave a který z jeho registrů použít, master nakonec odešle datový bit slave.
- Po odeslání dat je do masteru odeslán závěrečný potvrzovací bit, než master skončí stop bitem (vysokým).
Příbuzný: Nejlepší Arduino IoT projekty
Proč tu zůstávají sériové komunikace
Se vzestupem paralelních a mnoha bezdrátových protokolů sériová komunikace nikdy nespadla z popularity. Sériové protokoly, které obecně používají pouze dva až čtyři vodiče pro přenos a příjem dat, jsou základním způsobem komunikace pro elektroniku, která má k dispozici pouze několik portů.
Dalším důvodem je jeho jednoduchost, která se promítá do spolehlivosti. Díky pouze několika kabelům, které posílají data najednou, sériový systém prokázal svou spolehlivost při odesílání úplných paketů dat bez jakékoli ztráty nebo poškození při přenosu. I při vysokých frekvencích a komunikaci na delší vzdálenosti sériové protokoly stále překonávají mnoho moderních paralelních komunikačních protokolů, které jsou dnes k dispozici.
Ačkoli si mnozí mohou myslet, že sériové komunikace jako UART, SPI a I2C mají nevýhodu Vzhledem k tomu, že jsou staré a zastaralé, faktem zůstává, že svou spolehlivost prokázaly již vícekrát dekády. Protokoly, které jsou takto staré bez jakékoli skutečné náhrady, jen naznačují, že jsou ve skutečnosti nepostradatelné a v dohledné budoucnosti budou nadále používány v elektronice.
Jste zmatení mezi SBC jako Raspberry Pi a mikrokontroléry jako Arduino a Raspberry Pi Pico? Zde je to, co potřebujete vědět.
Přečtěte si další
- Technologie vysvětlena
- Využití dat
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem