Sériová komunikace

20.02.2022 Embedded systémy #komunikace #serial #embedded

Základní pojmy a vysvětlení sériové komunikace.


Sériová komunikace je nejrozšířenějším přístupem k přenosu informací mezi zařízením pro zpracování dat a periferními zařízeními. Komunikace obecně znamená výměnu informací mezi jednotlivci prostřednictvím písemných dokumentů, verbálních slov, audio a video lekcí.

Každé zařízení jako je osobní počítač nebo mobil běží na sériovém protokolu. Protokol je bezpečná a spolehlivá forma komunikace, která má sadu pravidel adresovaných zdrojovým hostitelem (odesílatelem) a cílovým hostitelem (příjemcem). Ve vestavěném systému je sériová komunikace způsobem výměny dat pomocí různých metod ve formě sériového digitálního binárního kódu. Některá ze známých rozhraní používaných pro výměnu dat jsou RS-232, RS-485, I2C, SPI atd.

Co je sériová komunikace?

V sériové komunikaci jsou data reprezentována ve formě binárních impulsů. Jinými slovy, můžeme říci, že binární jednička představuje logickou úroveň HIGH nebo také 5 voltů a nula představuje logickou úroveň LOW což znamená 0 voltů. Sériová komunikace může mít mnoho podob v závislosti na typu režimu přenosu a přenosu dat. Přenosové režimy jsou klasifikovány jako Simplex, Half Duplex a Full Duplex. Pro každý režim přenosu bude existovat zdroj (také známý jako odesílatel) a cíl (také nazývaný přijímač).

transmission-modes-serial-communication 
Přenosové režimy – sériová komunikace

Simplexová metoda je jednosměrná komunikační technika. V daný okamžik je aktivní pouze jeden klient (v jednu chvíli je aktivní buď odesílatel nebo příjemce). Pokud odesílatel vysílá, příjemce může pouze přijmout. Rozhlasový a televizní přenos jsou příklady simplexního režimu.

poloduplexním režimu jsou odesílatel i přijímač aktivní, ale ne současně, tj. pokud odesílatel vysílá, příjemce může přijímat, ale nemůže odesílat a naopak. Dobrým příkladem je internet. Pokud klient (notebook) odešle požadavek na webovou stránku, webový server zpracuje aplikaci a odešle informace zpět.

Režim Full Duplex je ve světě široce používanou komunikací. Zde mohou odesílatel i příjemce vysílat a přijímat současně. Příkladem je smartphone.

Kromě přenosových režimů musíme vzít v úvahu endianitu a návrh protokolu hostitelského počítače (odesílatele nebo přijímače). Endianita je způsob ukládání dat na konkrétní adresu paměti. V závislosti na zarovnání dat je endian klasifikován jako

  • Malý Endian.
  • Velký Endian.

Předpokládejme, že máme 32bitová hexadecimální data ABCD87E2. Jak se tato data ukládají do paměti? Obrázek ukazuje rozdíl mezi malým a velkým endianem.

little-endian-vs-big-endian
Malý Endian vs Velký Endian 

Přenos dat může probíhat dvěma způsoby - sériově a paralelně. Sériová komunikace je technika používaná k odesílání dat bit po bitu pomocí dvou vodičů, tj. vysílače (vysílače) a přijímače. Například pokud se mají poslat 8bitová binární data 11001110 z vysílače do přijímače, tak jaký kousek se přenese jako první? Most Significant Bit – MSB (7. bit) nebo Low Significant Bit - LSB (0. bit). V níže uvedeném obrázku se uvažuje, že se LSB přesune jako první (pro malého Endiana).

serial-communication
Sériová komunikace 

Z výše uvedeného diagramu pro každý hodinový impuls, vysílač posílá jeden bit dat do přijímače.

Paralelní komunikace přenáší 8, 16 nebo 32 bitů dat najednou. Tiskárny a stroje Xerox využívají paralelní komunikaci pro rychlejší přenos dat.

rs232-parallel-communication
Paralelní komunikace 

Rozdíl mezi sériovou a paralelní komunikací

Sériová komunikace odesílá vždy pouze jeden bit, takže vyžaduje méně I/O (vstup-výstup) linek. Zabírá tedy méně místa a je odolnější vůči přeslechům. Hlavní výhodou sériové komunikace je zlevnění celého vestavěného systému a přenos informací na velkou vzdálenost. Sériový přenos se používá v zařízeních DCE (Data communication Equipment), jako je modem.

Při paralelní komunikaci je najednou odeslán blok dat (8, 16 nebo 32 bitů). Každý bit dat tedy vyžaduje samostatnou fyzickou I/O linku. Výhodou paralelní komunikace je její rychlost, ale její nevýhodou je použití většího počtu I/O (input-output) linek. Paralelní přenos se používá v PC (osobní počítač) pro propojení CPU (centrální procesorová jednotka), RAM (paměť s náhodným přístupem), modemů, audio, video a síťového hardwaru.

Poznámka: Pokud integrovaný obvod nebo procesor podporuje menší počet vstupních/výstupních pinů, je lepší zvolit sériovou komunikaci

Sériová komunikace Paralelní komunikace
Odesílá data bit po bitu jedním hodinovým impulsem Přenáší velké množství dat najednou
Vyžaduje jeden vodič pro přenos dat Vyžaduje 'n' počet řádků pro přenos 'n' bitů
Rychlost komunikace je pomalá Rychlost komunikace je vysoká
Náklady na instalaci jsou nízké Náklady na instalaci jsou vysoké
Preferováno pro komunikaci na dálku Používá se pro komunikaci na krátkou vzdálenost
Příklad: Počítač k počítači Počítač na multifunkční tiskárnu

Synchronizace hodin

Pro efektivní práci sériových zařízení jsou primárním zdrojem hodiny. Nesprávná funkce hodin může vést k neočekávaným výsledkům. Hodinový signál se pro každé sériové zařízení liší a dělí se na synchronní protokol a asynchronní protokol.

Synchronní sériové rozhraní

Všechna zařízení na synchronním sériovém rozhraní používají jedinou sběrnici CPU ke sdílení hodin i dat. Díky této skutečnosti je přenos dat rychlejší. Výhodou je, že nedojde k nesouladu v přenosové rychlosti. Kromě toho je pro rozhraní komponent potřeba méně I/O (vstupně-výstupních) linek. Příklady jsou I2C, SPI atd.

Asynchronní sériové rozhraní

Asynchronní rozhraní nemá externí hodinový signál a spoléhá se na čtyři parametry

  1. Ovládání přenosové rychlosti
  2. Řízení toku dat
  3. Řízení vysílání a příjmu
  4. Kontrola chyb.

Pro stabilní komunikaci jsou vhodné asynchronní protokoly. Používají se pro aplikace na dlouhé vzdálenosti. Příklady asynchronních protokolů jsou RS-232, RS-422 a RS-485.

# 1 Co je přenosová rychlost?

Přenosová rychlost je rychlost přenosu dat z vysílače do přijímače ve formě bitů za sekundu. Některé ze standardních přenosových rychlostí jsou 1200, 2400, 4800, 9600, 57600.

Musí se nastavit stejná přenosová rychlost na obou stranách (mobil i notebook).

Poznámka: Čím vyšší je přenosová rychlost, tím více dat lze přenést za kratší dobu.

Doporučuje se však použít až 115200 jako bezpečný limit kvůli nesouladu vzorkovací frekvence na konci přijímače.

# 2 Datový rámec

Datový rámec ukazuje, kolik datových bitů chceme odeslat z hostitelského zařízení (notebooku) do mobilního zařízení (přijímače). Je to 5, 6, 7 nebo 8 bitů? Většinou mnoho zařízení, preferuje 8 bitů. Po výběru 8 bitového datového bloku musí být endianita odsouhlasena odesílatelem a příjemcem.

# 3 Synchronizace

Vysílač připojí synchronizační bity (Start bit a 1 nebo 2 Stop bit) k původnímu datovému rámci. Synchronizační bity pomáhají přijímači identifikovat začátek a konec přenosu dat. Tento proces je známý jako asynchronní přenos dat .

# 4 Kontrola chyb

Může dojít k poškození dat v důsledku vnějšího šumu na straně přijímače. Jediným řešením, jak získat stabilní výstup, je zkontrolovat paritu.

Pokud binární data obsahují sudé číslo 1, nazývá se sudá parita a bit parity je nastaven na 1. Pokud binární data obsahují liché číslo 1, nazývá se to lichá parita a paritní bit nastaven na 0.

Asynchronní sériové protokoly

Nejčastější otázkou, která nás napadne, když začneme pracovat s vestavěnými systémy, je proč používat asynchronní protokoly?

  • Přenos informacích na delší vzdálenost.
  • Spolehlivější přenos dat.

Některé z asynchronních komunikačních protokolů jsou:

protokol RS-232

  • RS232 je první sériový protokol používaný pro připojení modemů pro telefonii. RS znamená Doporučený standard a nyní se změnil na EIA (Electronic Industries Alliance) / TIA (Telecommunication Industry Association).
  • Používá se také v modemech, myších a CNC strojích (computed numerical computing). K jednomu přijímači lze připojit pouze jeden vysílač.
  • Podporuje plně duplexní komunikaci a umožňuje přenosovou rychlost až 1 Mbps.
  • Délka kabelu je omezena na 50 stop.

Data uložená v paměti jsou ve formě bajtů. Jak se bajtová data převádějí na binární bity? Odpověď je sériový port.

Sériový port má interní čip s názvem UART. UART je zkratka pro Universal Asynchronous Receiver Transmitter, který převádí paralelní data (byte) do bitové sériové podoby.

rs232-serial-uartSériový port RS232

 

Připojení kabeláže RS-232

Sériový port RS232 má devět kolíků, modely typu samec nebo samice. Sériové komunikační rozhraní RS 232C je novější verzí RS232.

Všechny funkce přítomné v RS232 jsou přítomny v modelu RS232C kromě toho, že má 25 pinů. Z 25 nebo 9 pinů používáme pro připojení koncových zařízení pouze tři piny.

rs232-wiring-connection
Připojení kabeláže RS232 

Rozhraní RS422

Pomocí RS232 lze přenášet data pouze do limitu 1Mpbs. K překonání tohoto problému přichází na řadu RS422. RS422 je vícebodové sériové rozhraní. Umožňuje připojit deset vysílačů k 10 přijímačům najednou pomocí jediné sběrnice. Odesílá data pomocí dvou kroucených párových kabelů (rozdílová konfigurace). Délka kabelu je 4000 stop s přenosovou rychlostí 10 Mbps.

Rozhraní RS485

RS485 je průmyslově preferovaný protokol. Na rozdíl od RS422 lze připojit 32 linkových ovladačů a 32 přijímačů v diferenciální konfiguraci. Vysílač se také nazývá Line driver. V jednu chvíli je však aktivní pouze jeden vysílač.

Synchronní sériové protokoly

Synchronní komunikační protokoly jsou nejlepšími prostředky pro periferní zařízení na desce. Výhodou je, že lze propojit více zařízení na stejné sběrnici. Některé ze synchronních protokolů jsou I2CSPICAN a LIN.

Protokol I2C

I2C (Inter-integrated circuit) je dvoudrátový obousměrný protokol používaný pro výměnu dat mezi různými zařízeními na stejné sběrnici. I2C používá 7-bitovou nebo 10-bitovou adresu umožňující připojit až 1024 zařízení. Vyžaduje však hodinový signál pro generování podmínek spuštění a zastavení. Výhodou je, že poskytuje přenos dat rychlostí 400 kbps.

Protokol SPI

Protokol SPI (Serial periferní rozhraní) odesílá a přijímá data v nepřetržitém proudu bez jakéhokoli přerušení. Tento protokol se doporučuje pro vysokorychlostní datovou komunikaci. Maximální rychlost, kterou může poskytnout, je 10 Mbps.

Na rozdíl od I2C má SPI 4 vodiče. Jsou to MOSI (Master out slave in), MISO (Master in slave out), Clock a Slave select signál. Teoreticky lze připojit neomezený počet slave a prakticky záleží na zatěžovací kapacitě sběrnice.

Protokol CAN

Tento protokol je určen pro systémy dopravních prostředků. Jedná se o protokol orientovaný na zprávy používaný pro multiplexní elektrické vedení za účelem úspory mědi. Jedná se o multi-master multi sériovou sběrnici používanou v aplikacích, jako je automatické spouštění/zastavování vozidel, systémy předcházení kolizím atd.

USB

USB rozhraní je nejlepší alternativou k sériovým nebo paralelním portům. Přenos dat spojený s USB porty je poměrně rychlejší než sériové a paralelní rozhraní. USB podporuje rychlosti od 1,5 Mbps (USB 1.0) do 4,8 Gbps (USB 3.0). Dnes většina vestavěných zařízení používá techniku ​​USB OTG (On the Go programming) pro ukládání hex souboru do mikrokontroléru.

Mikrowire

Microwire je třívodičový sériový komunikační protokol. Má sériový I/O port na mikrokontroléru pro rozhraní s periferními čipy. Podporuje rychlost až 3 Mbps. Je rychlejší než i2c a podmnožina protokolu SPI.

Závěr

Sériová komunikace je důležitou součástí v oblasti elektroniky a vestavěných systémů. Rychlost přenosu dat je kritická, pokud si dvě zařízení chtějí vyměňovat informace na stejné sběrnici. Pro jakoukoli aplikaci je tedy nutné zvolit platný sériový protokol.

Literatura

[1] What is Serial Communication and How it works?. Codrey electronics [online]. Codrey Electronics, 218n. l. [cit. 2022-02-21]. Dostupné z: https://www.codrey.com/embedded-systems/serial-communication-basics/