- Typy komunikačných protokolov
- Režimy prenosu v sériovej komunikácii
- Synchronizácia hodín
- Ďalšie podmienky súvisiace so sériovou komunikáciou
- Synchrónne sériové protokoly
- Asynchrónne sériové protokoly
- Záver
Predtým, ako začneme s protokolmi sériovej komunikácie, rozdeľme si terminológiu na tri časti. Komunikácia je veľmi dobre známe, terminológiu, ktorá zahŕňa výmenu informácií medzi dvoma alebo viac médií. V zabudovaných systémoch komunikácia znamená výmenu údajov medzi dvoma mikrokontrolérmi vo forme bitov. Táto výmena dátových bitov v mikrokontroléri sa vykonáva pomocou súboru definovaných pravidiel známych ako komunikačné protokoly. Ak sa teraz údaje odosielajú do série, tj. Za sebou, potom sa komunikačný protokol označuje ako sériový komunikačný protokol. Presnejšie, dátové bity sa prenášajú po jednom postupne po dátovej zbernici alebo komunikačnom kanáli v sériovej komunikácii.
Typy komunikačných protokolov
V digitálnej elektronike existujú rôzne typy prenosu údajov, ako napríklad sériová komunikácia a paralelná komunikácia. Podobne sú protokoly rozdelené do dvoch typov, ako sú sériový komunikačný protokol a paralelné komunikačné protokoly. Príklady protokolov paralelnej komunikácie sú ISA, ATA, SCSI, PCI a IEEE-488. Podobne existuje niekoľko príkladov sériových komunikačných protokolov, ako sú CAN, ETHERNET, I2C, SPI, RS232, USB, 1-drôt a SATA atď.
V tomto článku sa budeme zaoberať rôznymi typmi sériových komunikačných protokolov. Sériová komunikácia je najbežnejšie používaným prístupom k prenosu informácií medzi periférnymi zariadeniami na spracovanie údajov. Každé elektronické zariadenie, či už je to osobný počítač (PC) alebo mobilné zariadenie, pracuje na sériovej komunikácii. Protokol je bezpečná a spoľahlivá forma komunikácie, ktorá má súbor pravidiel adresovaných zdrojovým hostiteľom (odosielateľom) a cieľovým hostiteľom (prijímačom) podobne ako paralelná komunikácia.
Režimy prenosu v sériovej komunikácii
Ako už bolo povedané vyššie, v sériovej komunikácii sa dáta odosielajú vo forme bitov, tj. Binárnych impulzov, a je dobre známe, že binárna hodnota predstavuje logiku HIGH a nula predstavuje logiku LOW. Existuje niekoľko typov sériovej komunikácie v závislosti od typu režimu prenosu a prenosu dát. Režimy prenosu sú klasifikované ako Simplex, Half Duplex a Full Duplex.
Simplexná metóda:
Pri simplexnej metóde môže byť aktívne buď médium, tj odosielateľ alebo prijímateľ. Pokiaľ teda odosielateľ prenáša údaje, prijímač ich môže iba prijať a naopak. Takže simplexná metóda je jednosmerná komunikačná technika. Známe príklady simplexnej metódy sú televízia a rozhlas.
Metóda polovičného duplexu:
Pri poloduplexnej metóde môžu byť aktívny odosielateľ aj príjemca, ale nie súčasne. Takže ak odosielateľ vysiela, potom prijímač môže prijať, ale nemôže odosielať a podobne naopak. Známym príkladom poloduplexu je internet, kde používateľ pošle žiadosť o údaje a získa ich zo servera.
Plne duplexná metóda:
Pri plne duplexnej metóde si prijímač aj vysielač môžu navzájom posielať údaje súčasne. Známym príkladom je mobilný telefón.
Okrem toho pre správny prenos dát hrajú hodiny dôležitú úlohu a sú jedným z primárnych zdrojov. Porucha hodín vedie k neočakávanému prenosu údajov, dokonca niekedy k strate údajov. Takže pri použití sériovej komunikácie je synchronizácia hodín veľmi dôležitá.
Synchronizácia hodín
Hodiny sa líšia pre sériové zariadenia a sú rozdelené do dvoch typov, tj. Synchrónne sériové rozhranie a asynchrónne sériové rozhranie.
Synchrónne sériové rozhranie:
Jedná sa o spojenie point-to-point od pána k otrokovi. V tomto type rozhrania používajú všetky zariadenia na zdieľanie údajov a hodín jednu zbernicu CPU. Prenos dát sa zrýchli s rovnakou zbernicou na zdieľanie hodín a údajov. V tomto rozhraní tiež nie je žiadny nesúlad v prenosovej rýchlosti. Na strane vysielača dochádza k posunu dát na sériovú linku, ktorá poskytuje hodiny ako samostatný signál, pretože k dátam nie sú pridané bity štartu, stopu a parity. Na strane prijímača sa dáta extrahujú pomocou hodín poskytovaných vysielačom a prevádzajú sériové dáta späť do paralelného tvaru. Známe príklady sú I2C a SPI.
Asynchrónne sériové rozhranie:
V asynchrónnom sériovom rozhraní chýba externý hodinový signál. Asynchrónne sériové rozhrania sa dajú vidieť väčšinou v aplikáciách na veľké vzdialenosti a dokonale sa hodia na stabilnú komunikáciu. V asynchrónnom sériovom rozhraní absencia externého zdroja hodín spôsobuje, že sa spolieha na niekoľko parametrov, ako napríklad riadenie toku údajov, riadenie chýb, riadenie prenosovej rýchlosti, riadenie prenosu a riadenie príjmu. Na strane vysielača je posunutie paralelných dát na sériovú linku pomocou vlastných hodín. Tiež pridáva bity spustenia, zastavenia a kontroly parity. Na strane prijímača prijímač extrahuje údaje pomocou vlastných hodín a po odstránení štartovacích, zastavovacích a paritných bitov prevedie sériové údaje späť do paralelného tvaru. Známe príklady sú RS-232, RS-422 a RS-485.
Ďalšie podmienky súvisiace so sériovou komunikáciou
Okrem synchronizácie hodín je potrebné pamätať na určité veci pri sériovom prenose údajov, ako je prenosová rýchlosť, výber dátových bitov (rámcovanie), synchronizácia a kontrola chýb. Poďme si tieto pojmy stručne rozobrať.
Prenosová rýchlosť: Prenosová rýchlosť je rýchlosť, pri ktorej sa údaje prenášajú medzi vysielačom a prijímačom vo forme bitov za sekundu (b / s). Najbežnejšie používaná prenosová rýchlosť je 9600. Existuje však aj iný výber prenosovej rýchlosti, napríklad 1200, 2400, 4800, 57600, 115200. Čím vyššia bude prenosová rýchlosť, tým viac sa budú prenášať údaje. Aj pre dátovú komunikáciu musí byť prenosová rýchlosť rovnaká pre vysielač aj prijímač.
Rámcovanie: Rámcovaním sa rozumie počet dátových bitov, ktoré sa majú odoslať z vysielača do prijímača. Počet dátových bitov sa líši v prípade použitia. Väčšina aplikácií používa ako štandardné dátové bity 8 bitov, ale je možné ju zvoliť aj ako 5, 6 alebo 7 bitov.
Synchronizácia: Synchronizácia Bits are important to select a chunk of data. Udáva začiatok a koniec dátových bitov. Vysielač nastaví počiatočné a koncové bity do dátového rámca a prijímač to zodpovedajúcim spôsobom identifikuje a vykoná ďalšie spracovanie.
Kontrola chýb: Kontrola chýb zohráva dôležitú úlohu pri sériovej komunikácii, pretože existuje veľa faktorov, ktoré ovplyvňujú a zvyšujú šum v sériovej komunikácii. Aby sme sa tejto chyby zbavili, používajú sa paritné bity, kde parita skontroluje párnu a nepárnu paritu. Takže ak dátový rámec obsahuje párny počet 1, potom je známy ako párna parita a paritný bit v registri je nastavený na 1. Podobne, ak dátový rámec obsahuje nepárny počet 1, je známy ako nepárny parita a vymaže bit nepárnej parity v registri.
Protokol je ako bežný jazyk, ktorý systém používa na pochopenie údajov. Ako je opísané vyššie, sériový komunikačný protokol je rozdelený na typy, tj synchrónne a asynchrónne. Teraz sa bude o obidvoch podrobne diskutovať.
Synchrónne sériové protokoly
Synchrónne typ sériové protokoly ako SPI, I2C, CAN a LIN sú používané v rôznych projektoch, pretože je to jeden z najlepších zdrojov pre palubné periférií. Toto sú tiež často používané protokoly v hlavných aplikáciách.
SPI protokol
Sériové periférne rozhranie (SPI) je synchrónne rozhranie, ktoré umožňuje vzájomné prepojenie niekoľkých mikrokontrolérov SPI. V SPI sú potrebné samostatné vodiče pre dátovú a hodinovú linku. Hodiny tiež nie sú zahrnuté v dátovom toku a musia byť poskytované ako samostatný signál. SPI môže byť nakonfigurovaný buď ako hlavný alebo ako podriadený. Súčasťou dátovej komunikácie sú štyri základné signály SPI (MISO, MOSI, SCK a SS), Vcc a Ground. Potrebuje teda 6 vodičov na odosielanie a príjem údajov z podriadeného alebo nadradeného zariadenia. Teoreticky môže mať SPI neobmedzený počet otrokov. Dátová komunikácia sa konfiguruje v registroch SPI. SPI môže poskytovať rýchlosť až 10 Mbps a je ideálny pre vysokorýchlostnú dátovú komunikáciu.
Väčšina mikrokontrolérov má zabudovanú podporu pre SPI a môže byť priamo pripojená k zariadeniu s podporou SPI:
- Komunikácia SPI s mikrokontrolérom PIC PIC16F877A
- Ako používať komunikáciu SPI v mikrokontroléri STM32
- Ako používať SPI v Arduine: Komunikácia medzi dvoma doskami Arduino
Sériová komunikácia I2C
Dvojlinková komunikácia medzi integrovanými obvodmi (I2C) medzi rôznymi integrovanými obvodmi alebo modulmi, kde dve linky sú SDA (sériová dátová linka) a SCL (sériová hodinová linka). Obe vedenia musia byť pripojené na kladné napájanie pomocou pull up rezistora. I2C môže poskytovať rýchlosť až 400 kb / s a na zacielenie na konkrétne zariadenie na zbernici i2c používa 10-bitový alebo 7-bitový adresovací systém, takže dokáže pripojiť až 1024 zariadení. Má obmedzenú dĺžku komunikácie a je ideálny pre palubnú komunikáciu. Sieť I2C sa ľahko nastavuje, pretože používa iba dva vodiče a nové zariadenia je možné jednoducho pripojiť k dvom bežným linkám zbernice I2C. Rovnako ako SPI, mikrokontrolér má všeobecne I2C piny na pripojenie ľubovoľného zariadenia I2C:
- Ako používať komunikáciu I2C v mikrokontroléri STM32
- Komunikácia I2C s mikrokontrolérom PIC PIC16F877
- Ako používať I2C v Arduine: Komunikácia medzi dvoma doskami Arduino
USB
USB (Universal Serial Bus) je široko protokol s rôznymi verziami a rýchlosťami. K jednému hostiteľskému radiču USB je možné pripojiť maximálne 127 periférií. USB funguje ako zariadenie typu „plug and play“. USB sa používa takmer v zariadeniach, ako sú klávesnice, tlačiarne, mediálne zariadenia, fotoaparáty, skenery a myši. Je navrhnutý pre ľahkú inštaláciu, rýchlejšie hodnotené dáta, menej kabeláže a výmenu za chodu. Nahradil objemnejšie a pomalšie sériové a paralelné porty. USB používa diferenciálnu signalizáciu na zníženie rušenia a umožnenie vysokorýchlostného prenosu na veľkú vzdialenosť.
Diferenciálna zbernica je zostavená z dvoch vodičov, jeden predstavuje prenášané dáta a druhý jeho doplnok. Myšlienka je taká, že „priemerné“ napätie na vodičoch neprenáša žiadne informácie, čo vedie k menšiemu rušeniu. Na USB môžu zariadenia čerpať určité množstvo energie bez toho, aby sa pýtali hostiteľa. USB používa na prenos dát iba dva vodiče a je rýchlejšie ako sériové a paralelné rozhranie. Verzie USB podporujú rôzne rýchlosti, napríklad 1,5 Mb / s (USB v1.0), 480 Mb / s (USB2.0), 5 Gb / s (USB v3.0). Dĺžka samostatného kábla USB môže dosiahnuť až 5 metrov bez rozbočovača a 40 metrov s rozbočovačom.
MÔCŤ
Controller Area Network (CAN) sa používa napr. V automobilovom priemysle na umožnenie komunikácie medzi ECU (riadiacimi jednotkami motora) a senzormi. Protokol CAN je robustný, lacný a založený na správach a pokrýva mnoho aplikácií - napr. Automobily, nákladné vozidlá, traktory, priemyselné roboty. Systém zbernice CAN umožňuje centrálnu diagnostiku a konfiguráciu chýb vo všetkých ECU. Správy CAN majú prioritu prostredníctvom ID, aby sa neprerušili ID s najvyššou prioritou. Každá ECU obsahuje čip na príjem všetkých prenášaných správ, rozhodovanie o relevantnosti a postupovanie podľa toho - to umožňuje ľahkú modifikáciu a zahrnutie ďalších uzlov (napr. Záznamníkov dát CAN bus). Medzi aplikácie patrí štart / stop vozidiel, systémy na predchádzanie kolíziám. Systémy zbernice CAN môžu poskytovať rýchlosť až 1 Mb / s.
Mikrovlákno
MICROWIRE je sériové 3-vodičové rozhranie s rýchlosťou 3 Mb / s, ktoré je v podstate podmnožinou rozhrania SPI. Microwire je sériový I / O port na mikrokontroléroch, takže zbernicu Microwire nájdete aj na EEPROM a ďalších periférnych čipoch. 3 riadky sú SI (Serial Input), SO (SerialOutput) a SK (Serial Clock). Linka sériového vstupu (SI) do mikrokontroléra, SO je linka sériového výstupu a SK je linka sériového času. Údaje sa posúvajú smerom dole na zostupnej hrane SK a oceňujú sa na stúpajúcej hrane. SI je posunutý na stúpajúcej hrane SK. Ďalšie vylepšenie zbernice MICROWIRE sa nazýva MICROWIRE / Plus. Zdá sa, že hlavným rozdielom medzi týmito dvoma zbernicami je zložitejšia architektúra MICROWIRE / Plus v rámci mikrokontroléra. Podporuje rýchlosť až 3 Mb / s.
Asynchrónne sériové protokoly
Asynchrónny typ sériových protokolov je veľmi dôležitý, pokiaľ ide o spoľahlivý prenos údajov na dlhšie vzdialenosti. Asynchrónna komunikácia nevyžaduje časovacie hodiny spoločné pre obe zariadenia. Každé zariadenie nezávisle počúva a vysiela digitálne impulzy, ktoré predstavujú bitové údaje, dohodnutou rýchlosťou. Asynchrónna sériová komunikácia sa niekedy označuje ako sériová tranzistorová tranzistorová logika (TTL), kde úroveň vysokého napätia je logická hodnota 1 a nízke napätie sa rovná logike 0. Takmer každý mikrokontrolér na dnešnom trhu má aspoň jeden univerzálny asynchrónny prijímač - Vysielač (UART) pre sériovú komunikáciu. Príklady sú RS232, RS422, RS485 atď.
RS232
RS232 (odporúčaná norma 232) je veľmi bežný protokol používaný na pripojenie rôznych periférií, ako sú monitory, CNC atď. RS232 sa dodáva v zástrčkách a zásuvkách. RS232 je topológia point-to-point s pripojeným maximálne jedným zariadením a pokrýva vzdialenosť až 15 metrov pri 9600 bps. Informácie o rozhraní RS-232 sa prenášajú digitálne logickými 0 a 1. Logická hodnota „1“ (MARK) zodpovedá napätiu v rozsahu od -3 do -15 V. Logická hodnota „0“ (SPACE) zodpovedá a napätie v rozmedzí od +3 do +15 V. Dodáva sa v konektore DB9, ktorý má 9 vývodov ako TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 je podobný ako RS232, ktorý umožňuje súčasné odosielanie a prijímanie správ na samostatných linkách, ale používa na to rozdielový signál. V sieti RS-422 môže byť iba jedno vysielacie zariadenie a až 10 prijímacích zariadení. Rýchlosť dátového prenosu v rozhraní RS-422 závisí od vzdialenosti a môže sa pohybovať od 10 kbps (1 200 metrov) do 10 Mbps (10 metrov). Linka RS-422 má 4 vodiče na prenos údajov (2 krútené vodiče na prenos a 2 krútené vodiče na príjem) a jeden spoločný uzemňovací vodič GND. Napätie na dátových linkách môže byť v rozmedzí od -6 V do +6 V. Logický rozdiel medzi A a B je väčší ako +0,2 V. Logická 1 zodpovedá rozdielu medzi A a B menším ako -0,2 V. Štandard RS-422 nedefinuje konkrétny typ konektora, zvyčajne to môže byť svorkovnica alebo konektor DB9.
RS485
Pretože RS485 používa viacbodovú topológiu, je najpoužívanejšia v priemyselných odvetviach a je priemyselne preferovaným protokolom. RS422 môže pripojiť 32 linkových ovládačov a 32 prijímačov v diferenciálnej konfigurácii, ale pomocou ďalších opakovačov a zosilňovačov signálu až 256 zariadení. RS-485 nedefinuje konkrétny typ konektora, často však ide o svorkovnicu alebo konektor DB9. Rýchlosť prevádzky závisí aj od dĺžky vedenia a môže dosiahnuť 10 Mbit / s na 10 metrov. Napätie na linkách je v rozmedzí od -7 V do +12 V. Existujú dva typy RS-485, napríklad polovičný duplexný režim RS-485 s 2 kontaktmi a úplný duplexný režim RS-485 so 4 kontaktmi. Ak sa chcete dozvedieť viac o používaní rozhrania RS485 s inými mikrokontrolérmi, pozrite si odkazy:
- Sériová komunikácia RS-485 MODBUS pomocou Arduino UNO ako Slave
- Sériová komunikácia RS-485 medzi Raspberry Pi a Arduino Uno
- Sériová komunikácia RS485 medzi Arduino Uno a Arduino Nano
- Sériová komunikácia medzi STM32F103C8 a Arduino UNO pomocou RS-485
Záver
Sériová komunikácia je jedným z najbežnejšie používaných systémov komunikačného rozhrania v elektronike a vstavaných systémoch. Dátové rýchlosti sa môžu líšiť pre rôzne aplikácie. Pri riešení tohto druhu aplikácií môžu hrať rozhodujúcu úlohu protokoly sériovej komunikácie. Takže výber správneho sériového protokolu je veľmi dôležitý.