- Druhy komunikačních protokolů
- Režimy přenosu v sériové komunikaci
- Synchronizace hodin
- Další podmínky týkající se sériové komunikace
- Synchronní sériové protokoly
- Asynchronní sériové protokoly
- Závěr
Než začneme s protokoly sériové komunikace, rozdělíme terminologii na tři části. Komunikace je velmi dobře známo, terminologii, která zahrnuje výměnu informací mezi dvěma nebo více médií. Ve vestavěných systémech znamená komunikace výměnu dat mezi dvěma mikrokontroléry ve formě bitů. Tato výměna datových bitů v mikrokontroléru se provádí pomocí některé sady definovaných pravidel známých jako komunikační protokoly. Pokud jsou nyní data odesílána v sérii, tj. Jedna po druhé, pak je komunikační protokol známý jako Serial Communication Protocol. Přesněji řečeno, datové bity se přenášejí po jednom sekvenčním způsobem po datové sběrnici nebo komunikačním kanálu v sériové komunikaci.
Druhy komunikačních protokolů
V digitální elektronice jsou k dispozici různé typy přenosu dat, jako je sériová komunikace a paralelní komunikace. Podobně jsou protokoly rozděleny do dvou typů, jako je sériový komunikační protokol a paralelní komunikační protokoly. Příklady protokolů paralelní komunikace jsou ISA, ATA, SCSI, PCI a IEEE-488. Podobně existuje několik příkladů sériových komunikačních protokolů, jako jsou CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire a SATA atd.
V tomto článku budou probrány různé typy protokolů sériové komunikace. Sériová komunikace je nejpoužívanějším přístupem k přenosu informací mezi periferními zařízeními pro zpracování dat. Každé elektronické zařízení, ať už jde o osobní počítač (PC) nebo mobilní zařízení, pracuje na sériové komunikaci. 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řijímačem) podobným paralelní komunikaci.
Režimy přenosu v sériové komunikaci
Jak již bylo řečeno výše, v sériové komunikaci jsou data odesílána ve formě bitů, tj. Binárních pulzů, a je dobře známo, že binární hodnota představuje logiku HIGH a nula představuje logiku LOW. Existuje několik typů sériové komunikace v závislosti na typu režimu přenosu a přenosu dat. Režimy přenosu jsou klasifikovány jako Simplex, Half Duplex a Full Duplex.
Simplexní metoda:
V simplexní metodě může být aktivní buď médium, tj. Odesílatel nebo příjemce. Pokud tedy odesílatel přenáší data, může přijímač pouze přijímat a naopak. Simplex metoda je tedy jednosměrná komunikační technika. Známými příklady simplexní metody jsou televize a rádio.
Poloduplexní metoda:
U metody polovičního duplexu mohou být aktivní odesílatel i přijímač, ale ne současně. Pokud tedy odesílatel vysílá, pak přijímač může přijímat, ale nemůže odesílat a podobně naopak. Známým příkladem poloduplexu je internet, kde uživatel odešle požadavek na data a získá je ze serveru.
Plně duplexní metoda:
Při plně duplexní metodě si přijímač i vysílač mohou navzájem posílat data současně. Známým příkladem je mobilní telefon.
Kromě toho, pro vhodný přenos dat, hrají hodiny důležitou roli a jsou jedním z primárních zdrojů. Porucha hodin vede k neočekávanému přenosu dat, někdy dokonce ke ztrátě dat. Při použití sériové komunikace se tedy synchronizace hodin stává velmi důležitou.
Synchronizace hodin
Hodiny se liší pro sériová zařízení a jsou rozděleny do dvou typů, viz. Synchronní sériové rozhraní a asynchronní sériové rozhraní.
Synchronní sériové rozhraní:
Jedná se o spojení point-to-point od master k slave. V tomto typu rozhraní používají všechna zařízení ke sdílení dat a hodin jednu sběrnici CPU. Přenos dat se zrychlí se stejnou sběrnicí pro sdílení hodin a dat. V tomto rozhraní také neexistuje nesoulad v přenosové rychlosti. Na straně vysílače dochází k posunu dat na sériovou linku, která poskytuje hodiny jako samostatný signál, protože není k datům přidán start, stop a paritní bity. Na straně přijímače jsou data extrahována pomocí hodin poskytovaných vysílačem a převádí sériová data zpět do paralelní formy. Známými příklady jsou I2C a SPI.
Asynchronní sériové rozhraní:
V asynchronním sériovém rozhraní chybí externí hodinový signál. Asynchronní sériová rozhraní lze vidět většinou v aplikacích na velké vzdálenosti a perfektně se hodí pro stabilní komunikaci. V asynchronním sériovém rozhraní je absence externího zdroje hodin závislá na několika parametrech, jako je řízení toku dat, řízení chyb, řízení přenosové rychlosti, řízení přenosu a řízení příjmu. Na straně vysílače dochází k posunu paralelních dat na sériovou linku pomocí vlastních hodin. Také přidává bity pro spuštění, zastavení a kontrolu parity. Na straně přijímače přijímač extrahuje data pomocí vlastních hodin a po odstranění startovacích, stopových a paritních bitů převede sériová data zpět do paralelního tvaru. Známými příklady jsou RS-232, RS-422 a RS-485.
Další podmínky týkající se sériové komunikace
Kromě synchronizace hodin je třeba si pamatovat určité věci při sériovém přenosu dat, jako je přenosová rychlost, výběr datových bitů (rámování), synchronizace a kontrola chyb. Pojďme si tyto pojmy krátce promluvit.
Přenosová rychlost: Přenosová rychlost je rychlost, při které jsou data přenášena mezi vysílačem a přijímačem ve formě bitů za sekundu (b / s). Nejčastěji používaná přenosová rychlost je 9600. Existují však i jiné možnosti přenosové rychlosti, například 1200, 2400, 4800, 57600, 115200. Čím více bude přenosová rychlost přenosová, bude se data přenášet najednou. Také pro datovou komunikaci musí být přenosová rychlost stejná pro vysílač i přijímač.
Framing: Framing se označuje počtem datových bitů, které mají být odeslány z vysílače do přijímače. Počet datových bitů se v případě aplikace liší. Většina aplikací používá 8 bitů jako standardní datové bity, ale lze ji vybrat také jako 5, 6 nebo 7 bitů.
Synchronizace: Synchronizační bity jsou důležité pro výběr datového bloku. Říká začátek a konec datových bitů. Vysílač nastaví počáteční a koncové bity do datového rámce a přijímač jej odpovídajícím způsobem identifikuje a provede další zpracování.
Kontrola chyb: Kontrola chyb hraje důležitou roli při sériové komunikaci, protože existuje mnoho faktorů, které ovlivňují a přidávají šum v sériové komunikaci. Abychom se této chyby zbavili, používají se paritní bity, kde parita zkontroluje sudou a lichou paritu. Takže pokud datový rámec obsahuje sudý počet 1, pak je známý jako sudá parita a paritní bit v registru je nastaven na 1. Podobně pokud datový rámec obsahuje lichý počet 1, pak je znám jako lichá parita a vymaže bit liché parity v registru.
Protokol je jako běžný jazyk, který systém používá k pochopení dat. Jak je popsáno výše, sériový komunikační protokol je rozdělen na typy, tj. Synchronní a Asynchronní. Nyní budou oba podrobně diskutovány.
Synchronní sériové protokoly
Synchronní typ sériové protokoly jako SPI, I2C, CAN a LIN jsou používány v různých projektech, protože je to jeden z nejlepších zdrojů pro palubní periferií. Toto jsou také široce používané protokoly v hlavních aplikacích.
SPI protokol
Serial Peripheral Interface (SPI) je synchronní rozhraní, které umožňuje propojení několika mikroprocesorů SPI. V SPI jsou vyžadovány samostatné vodiče pro datovou a hodinovou linku. Hodiny také nejsou zahrnuty v datovém proudu a musí být poskytnuty jako samostatný signál. SPI může být konfigurován buď jako hlavní nebo jako podřízený. Součástí datové komunikace jsou čtyři základní signály SPI (MISO, MOSI, SCK a SS), Vcc a Ground. K odesílání a přijímání dat z podřízeného nebo nadřazeného zařízení tedy potřebuje 6 vodičů. Teoreticky může mít SPI neomezený počet otroků. Datová komunikace je konfigurována v registrech SPI. SPI může poskytovat rychlost až 10 Mb / s a je ideální pro vysokorychlostní datovou komunikaci.
Většina mikrokontrolérů má zabudovanou podporu pro SPI a může být přímo připojena k zařízení podporujícímu SPI:
- Komunikace SPI s mikrokontrolérem PIC PIC16F877A
- Jak používat komunikaci SPI v mikrokontroléru STM32
- Jak používat SPI v Arduinu: Komunikace mezi dvěma deskami Arduino
Sériová komunikace I2C
Dvoulinková komunikace mezi integrovanými obvody (I2C) mezi různými integrovanými obvody nebo moduly, kde dvě linky jsou SDA (Serial Data Line) a SCL (Serial Clock Line). Obě vedení musí být připojena ke kladnému napájení pomocí pull up rezistoru. I2C může poskytovat rychlost až 400 kb / s a používá 10bitový nebo 7bitový adresovací systém k cílení na konkrétní zařízení na sběrnici i2c, takže může připojit až 1024 zařízení. Má omezenou délku komunikace a je ideální pro palubní komunikaci. Sítě I2C se snadno nastavují, protože používají pouze dva vodiče a nová zařízení lze jednoduše připojit ke dvěma běžným linkám sběrnice I2C. Stejně jako SPI má mikrokontrolér obecně piny I2C pro připojení libovolného zařízení I2C:
- Jak používat komunikaci I2C v mikrokontroléru STM32
- Komunikace I2C s mikrokontrolérem PIC PIC16F877
- Jak používat I2C v Arduinu: Komunikace mezi dvěma deskami Arduino
USB
USB (Universal Serial Bus) je široce protokol s různými verzemi a rychlostmi. K jednomu hostitelskému řadiči USB lze připojit maximálně 127 periferií. USB funguje jako zařízení typu „plug and play“. USB se používají téměř v zařízeních, jako jsou klávesnice, tiskárny, mediální zařízení, fotoaparáty, skenery a myši. Je navržen pro snadnou instalaci, rychlejší hodnocení dat, méně kabeláže a výměnu za provozu. Nahradil objemnější a pomalejší sériové a paralelní porty. USB používá diferenciální signalizaci ke snížení interference a umožnění vysokorychlostního přenosu na velkou vzdálenost.
Diferenční sběrnice je postavena se dvěma vodiči, jeden z nich představuje přenášená data a druhý jeho doplněk. Myšlenka je, že „průměrné“ napětí na vodičích nenese žádné informace, což vede k menšímu rušení. Na USB mohou zařízení odebírat určité množství energie, aniž by se ptali hostitele. USB používá pro přenos dat pouze dva vodiče a je rychlejší než sériové a paralelní rozhraní. Verze USB podporují různé rychlosti, například 1,5 Mb / s (USB v1.0), 480 Mb / s (USB2.0), 5 Gb / s (USB v3.0). Délka samostatného kabelu USB může dosáhnout až 5 metrů bez rozbočovače a 40 metrů s rozbočovačem.
UMĚT
Controller Area Network (CAN) se používá např. V automobilovém průmyslu k umožnění komunikace mezi ECU (Engine Control Units) a senzory. Protokol CAN je robustní, levný a založený na zprávách a pokrývá mnoho aplikací - např. Automobily, nákladní automobily, traktory, průmyslové roboty. Systém sběrnice CAN umožňuje centrální diagnostiku a konfiguraci chyb ve všech ECU. Zprávy CAN jsou upřednostňovány pomocí ID, takže ID s nejvyšší prioritou nebudou přerušena. Každá ECU obsahuje čip pro příjem všech přenášených zpráv, rozhodování o relevanci a postupování podle toho - to umožňuje snadnou modifikaci a zahrnutí dalších uzlů (např. Záznamníky dat sběrnice CAN). Mezi aplikace patří start / stop vozidel, systémy pro předcházení kolizím. Systémy sběrnice CAN mohou poskytovat rychlost až 1 Mb / s.
Microwire
MICROWIRE je 3Mbps sériové 3vodičové rozhraní v podstatě podmnožinou rozhraní SPI. Microwire je sériový I / O port na mikrokontrolérech, takže sběrnici Microwire najdete také na EEPROM a dalších periferních čipech. Tři řádky jsou SI (Serial Input), SO (SerialOutput) a SK (Serial Clock). Linka sériového vstupu (SI) do mikrokontroléru, SO je linka sériového výstupu a SK je linka sériového času. Data jsou posunuta na sestupné hraně SK a jsou oceňována na sestupné hraně. SI je posunut na náběžné hraně SK. Další vylepšení sběrnice MICROWIRE se nazývá MICROWIRE / Plus. Hlavní rozdíl mezi těmito dvěma sběrnicemi se zdá být v tom, že architektura MICROWIRE / Plus v mikrokontroléru je složitější. Podporuje rychlost až 3 Mb / s.
Asynchronní sériové protokoly
Asynchronní typ sériových protokolů je velmi důležitý, pokud jde o spolehlivý přenos dat na delší vzdálenosti. Asynchronní komunikace nevyžaduje časovací hodiny, které jsou společné pro obě zařízení. Každé zařízení samostatně poslouchá a odesílá digitální pulsy, které představují bitové údaje, dohodnutou rychlostí. Asynchronní sériová komunikace se někdy označuje jako Transistor-Transistor Logic (TTL) serial, kde úroveň vysokého napětí je logická 1 a nízké napětí odpovídá logice 0. Téměř každý mikrokontrolér na trhu má dnes alespoň jeden univerzální asynchronní přijímač Vysílač (UART) pro sériovou komunikaci. Příklady jsou RS232, RS422, RS485 atd.
RS232
RS232 (doporučená norma 232) je velmi běžný protokol používaný k připojení různých periferií, jako jsou monitory, CNC atd. RS232 se dodává v zástrčce a zástrčce. RS232 je topologie point-to-point s maximálně jedním připojeným zařízením a pokrývá vzdálenost až 15 metrů při 9600 bps. Informace o rozhraní RS-232 jsou přenášeny digitálně logickými 0 a 1. Logická „1“ (MARK) odpovídá napětí v rozsahu od -3 do -15 V. Logická „0“ (SPACE) odpovídá a napětí v rozsahu od +3 do +15 V. Dodává se v konektoru DB9, který má 9 vývodů, jako jsou TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 je podobný RS232, který umožňuje současně odesílat a přijímat zprávy na samostatných linkách, ale používá k tomu rozdílový signál. V síti RS-422 může být pouze jedno vysílací zařízení a až 10 přijímacích zařízení. Rychlost přenosu dat v RS-422 závisí na vzdálenosti a může se pohybovat od 10 kbps (1200 metrů) do 10 Mbps (10 metrů). Linka RS-422 má 4 vodiče pro přenos dat (2 kroucené vodiče pro přenos a 2 kroucené vodiče pro příjem) a jeden společný zemnicí vodič GND. Napětí na datových linkách může být v rozsahu od -6 V do +6 V. Logický rozdíl mezi A a B je větší než +0,2 V. Logická 1 odpovídá rozdílu mezi A a B méně než -0,2 V. Standard RS-422 nedefinuje konkrétní typ konektoru, obvykle to může být svorkovnice nebo konektor DB9.
RS485
Protože RS485 používá vícebodovou topologii, je nejpoužívanější v průmyslových odvětvích a je průmyslově preferovaným protokolem. RS422 může připojit 32 linkových ovladačů a 32 přijímačů v diferenciální konfiguraci, ale pomocí dalších opakovačů a zesilovačů signálu až 256 zařízení. RS-485 nedefinuje konkrétní typ konektoru, ale často se jedná o svorkovnici nebo konektor DB9. Rychlost provozu také závisí na délce linky a může dosáhnout 10 Mbit / s na 10 metrů. Napětí na linkách je v rozmezí od -7 V do +12 V. Existují dva typy RS-485, jako je napůl duplexní režim RS-485 se 2 kontakty a plně duplexní režim RS-485 se 4 kontakty. Chcete-li se dozvědět více o používání rozhraní RS485 s jinými mikrokontroléry, podívejte se na odkazy:
- Sériová komunikace RS-485 MODBUS pomocí Arduino UNO jako Slave
- Sériová komunikace RS-485 mezi Raspberry Pi a Arduino Uno
- Sériová komunikace RS485 mezi Arduino Uno a Arduino Nano
- Sériová komunikace mezi STM32F103C8 a Arduino UNO pomocí RS-485
Závěr
Sériová komunikace je jedním z široce používaných systémů komunikačních rozhraní v elektronice a vestavěných systémech. Datové rychlosti se mohou u různých aplikací lišit. Při obchodování s tímto druhem aplikací mohou hrát rozhodující roli protokoly sériové komunikace. Výběr správného sériového protokolu je tedy velmi důležitý.