- A kommunikációs protokollok típusai
- Átviteli módok a soros kommunikációban
- Óra szinkronizálása
- A soros kommunikációval kapcsolatos egyéb kifejezések
- Szinkron soros protokollok
- Aszinkron soros protokollok
- Következtetés
Mielőtt a soros kommunikációs protokollokkal kezdene, bontsuk meg a terminológiát három részben. A kommunikáció nagyon jól ismert terminológia, amely magában foglalja az információcserét két vagy több médium között. Beágyazott rendszerekben a kommunikáció két mikrovezérlő közötti adatcserét jelent bit formájában. Ezt az adatbit-cserét a mikrovezérlőben néhány meghatározott szabályhalmaz végzi, amelyeket kommunikációs protokollnak nevezünk. Ha az adatokat sorozatban, azaz egymás után küldik, akkor a kommunikációs protokoll Serial Communication Protocol néven ismert. Pontosabban, az adatbiteket egymás után, egymás után továbbítják az adat buszon vagy a soros kommunikáció kommunikációs csatornáján keresztül.
A kommunikációs protokollok típusai
Különböző típusú adatátvitel érhető el a digitális elektronikában, mint például a soros kommunikáció és a párhuzamos kommunikáció. Hasonlóképpen a protokollok két típusra oszthatók, például soros kommunikációs protokollra és párhuzamos kommunikációs protokollra. Párhuzamos kommunikációs protokollok például az ISA, ATA, SCSI, PCI és az IEEE-488. Hasonlóképpen számos olyan soros kommunikációs protokollra van példa, mint a CAN, ETHERNET, I2C, SPI, RS232, USB, 1-vezetékes és SATA stb.
Ebben a cikkben a soros kommunikációs protokollok különféle típusairól lesz szó. A soros kommunikáció a legelterjedtebb megközelítés az információ továbbításához az adatfeldolgozó perifériák között. Minden elektronikai eszköz, legyen az személyi számítógép (PC) vagy mobil, soros kommunikáción fut. A protokoll a biztonságos és megbízható kommunikációs forma, amelynek a párhuzamos kommunikációhoz hasonló szabályrendszere van, amelyet a forrásgazda (küldő) és a célállomás (vevő) címzett.
Átviteli módok a soros kommunikációban
Mint már fentebb említettük, hogy a soros kommunikációban az adatokat bitek, azaz bináris impulzusok formájában küldik, és köztudott, hogy a bináris a HIGH logikát, a nulla pedig a LOW logikát jelenti. Az átviteli mód és az adatátvitel típusától függően többféle soros kommunikáció létezik. Az átviteli módok a Simplex, a Half Duplex és a Full Duplex kategóriákba vannak besorolva.
Simplex módszer:
A szimplex módszerben a közeg, azaz a feladó vagy a vevő aktív lehet egyszerre. Tehát, ha a küldő továbbítja az adatokat, akkor a vevő csak akkor tud fogadni, és fordítva. A szimplex módszer tehát egyirányú kommunikációs technika. A szimplex módszer jól ismert példái a Televízió és a Rádió.
Fél duplex módszer:
A fél duplex módszerben a feladó és a vevő egyaránt aktív lehet, de nem egyszerre. Tehát, ha a küldő továbbít, akkor a vevő képes fogadni, de nem tud küldeni, és hasonlóképpen fordítva. A fél duplex jól ismert példái az internet, ahol a felhasználó adatokat kér, és a szerverről szerzi be.
Teljes duplex módszer:
Teljes duplex módszer esetén a vevő és az adó is egyszerre küldhet adatokat egymásnak. A jól ismert példa a mobiltelefon.
Ettől eltekintve a megfelelő adatátvitel érdekében az óra fontos szerepet játszik, és ez az egyik elsődleges forrás. Az óra meghibásodása váratlan adatátvitelt eredményez, néha adatvesztést is. Tehát, az óra szinkronizálása nagyon fontossá válik a soros kommunikáció használata során.
Óra szinkronizálása
Az óra különbözik a soros eszközöknél, és két típusba sorolható, azaz. Szinkron soros interfész és aszinkron soros interfész.
Szinkron soros interfész:
Ez egy pont-pont kapcsolat a mester és a szolga között. Ebben a típusú interfészben az összes eszköz egyetlen CPU buszt használ az adatok és az óra megosztására. Az adatátvitel ugyanazzal a busszal gyorsabbá válik az óra és az adatok megosztásához. Ezen a felületen nincs eltérés az adatátviteli sebességnél. Az adó oldalán az adatok eltolódnak a soros vonalon, külön óraként szolgáltatva az órát, mivel nincsenek start, stop és paritásbitek az adatokhoz. A vevő oldalon az adatokat az adó által biztosított óra felhasználásával vonják ki, és a soros adatokat visszaállítják párhuzamos formává. A jól ismert példák az I2C és az SPI.
Aszinkron soros interfész:
Az aszinkron soros interfésznél a külső órajel hiányzik. Az aszinkron soros interfészek többnyire nagy távolságú alkalmazásokban láthatók, és tökéletesen megfelelnek a stabil kommunikációnak. Az aszinkron soros interfészben a külső óraforrás hiánya számos paraméterre támaszkodik, mint például az adatáramlás-szabályozás, a hibajavítás, az adatátviteli sebesség-szabályozás, az átviteli és a vételi vezérlés. Az adó oldalon a párhuzamos adatok áthelyezése a soros vonalra a saját órája segítségével történik. Ezenkívül hozzáadja a kezdő, a stop és a paritásellenőrző biteket. A vevő oldalon a vevő a saját órája segítségével kivonja az adatokat, és a kezdeti, leállítási és paritásbitek levétele után a soros adatokat visszaalakítja párhuzamos formává. A jól ismert példák: RS-232, RS-422 és RS-485.
A soros kommunikációval kapcsolatos egyéb kifejezések
Az Óraszinkronizáláson kívül bizonyos dolgokra emlékezni kell az adatok soros átvitele során, mint például az adatátviteli sebesség, az adatbit kiválasztása (keretezés), a szinkronizálás és a hibakeresés. Beszéljük meg röviden ezeket a feltételeket.
Baud Rate: A Baud rate az a sebesség, amellyel az adat átvitelre kerül az adó és a vevő között bit / másodperc (bps) formájában. A leggyakrabban használt adatátviteli sebesség a 9600. De az adatátviteli sebességnek más lehetőségei is vannak, például 1200, 2400, 4800, 57600, 115200. Minél nagyobb az átviteli sebesség zsír lesz, az adatok egyszerre kerülnek átadásra. Az adatkommunikációhoz az adatátviteli sebességnek azonosnak kell lennie mind az adó, mind a vevő esetében.
Keretezés: A keretezés az adóról a vevőre küldendő adatbitek számára vonatkozik. Az adatbitek száma alkalmazás esetén eltér. Az alkalmazás nagy része 8 bitet használ standard adatbitként, de választható 5, 6 vagy 7 bitként is.
Szinkronizálás: A szinkronizálási bitek fontosak az adatrész kiválasztásához. Megmondja az adatbitek kezdetét és végét. Az adó kezdő és leállító biteket állít be az adatkeretbe, a vevő pedig ennek megfelelően azonosítja és elvégzi a további feldolgozást.
Hibakezelés: A hibakezelés fontos szerepet játszik a soros kommunikáció során, mivel számos tényező befolyásolja és növeli a zajt a soros kommunikációban. Ennek a hibának a megszüntetése érdekében a paritásbiteket használjuk, ahol a paritás ellenőrzi a páros és páratlan paritást. Tehát, ha az adatkeret páros számú 1-et tartalmaz, akkor páros paritásnak nevezik, és a regiszterben a paritásbit 1-re van állítva. Hasonlóképpen, ha az adatkeret páratlan számú 1-et tartalmaz, akkor páratlan paritásnak nevezik, és törli a páratlan paritásbit a nyilvántartásban.
A protokoll olyan, mint egy közös nyelv, amelyet a rendszer használ az adatok megértéséhez. A fent leírtak szerint a soros kommunikációs protokoll típusokra oszlik, azaz szinkron és aszinkron. Most mindkettőt részletesen megvitatjuk.
Szinkron soros protokollok
Az olyan szinkron típusú soros protokollokat, mint az SPI, I2C, CAN és LIN, különböző projektekben használják, mivel ez az egyik legjobb erőforrás a fedélzeti perifériák számára. Ezek a széles körben használt protokollok a főbb alkalmazásokban is.
SPI Protokoll
A soros perifériás interfész (SPI) egy szinkron interfész, amely lehetővé teszi több SPI mikrovezérlő összekapcsolását. Az SPI-ben külön vezetékek szükségesek az adatokhoz és az óra vonalhoz. Az óra nem szerepel az adatfolyamban, és külön jelként kell megadni. Az SPI konfigurálható masterként vagy slave-ként. A négy alapvető SPI jel (MISO, MOSI, SCK és SS), a Vcc és a Ground az adatkommunikáció része. Tehát 6 vezetékre van szüksége az adatok küldéséhez és fogadásához a slave-től vagy a master-től. Elméletileg az SPI korlátlan számú rabszolgával rendelkezhet. Az adatkommunikáció az SPI regiszterekben van konfigurálva. Az SPI akár 10Mbps sebességet képes szállítani, és ideális a nagy sebességű adatkommunikációhoz.
A legtöbb mikrovezérlő beépített támogatást nyújt az SPI-hez, és közvetlenül csatlakoztatható az SPI által támogatott eszközhöz:
- SPI kommunikáció a PIC16F877A PIC mikrovezérlővel
- Az SPI kommunikáció használata az STM32 mikrovezérlőben
- Az SPI használata Arduino-ban: Kommunikáció két Arduino tábla között
I2C soros kommunikáció
Integrált áramkör (I2C) kétsoros kommunikáció különböző IC-k vagy modulok között, ahol két vonal SDA (soros adatvonal) és SCL (soros óra vonal). Mindkét vezetéket fel kell húzni egy pozitív tápfeszültségre egy felhúzható ellenállás segítségével. Az I2C akár 400Kbps sebességet képes szállítani, és 10 vagy 7 bites címzési rendszert használ egy adott eszköz megcélozásához az i2c buszon, így akár 1024 eszközt is képes csatlakoztatni. Korlátozott hosszúságú kommunikációval rendelkezik, és ideális a fedélzeti kommunikációhoz. Az I2C hálózatokat egyszerűen lehet beállítani, mivel csak két vezetéket használ, és új eszközök egyszerűen csatlakoztathatók a két közös I2C busz vonalhoz. Az SPI-hez hasonlóan a mikrokontroller általában rendelkezik I2C-csapokkal bármely I2C-eszköz csatlakoztatásához:
- Az I2C kommunikáció használata az STM32 mikrovezérlőben
- I2C kommunikáció a PIC16F877 PIC mikrovezérlővel
- Az I2C használata Arduinóban: Két Arduino tábla közötti kommunikáció
USB
Az USB (univerzális soros busz) széles körben protokoll, különböző verziókkal és sebességgel. Legfeljebb 127 periféria csatlakoztatható egyetlen USB állomásvezérlőhöz. Az USB "plug and play" eszközként működik. Az USB-t szinte olyan eszközökben használják, mint a billentyűzetek, nyomtatók, médiaeszközök, kamerák, szkennerek és egerek. Könnyű telepítéshez, gyorsabb adatminősítéshez, kevesebb kábelezéshez és gyors cseréhez tervezték. Cserélte a nagyobb és lassabb soros és párhuzamos portokat. Az USB differenciális jelzéssel csökkenti az interferenciát és nagy sebességű átvitelet tesz lehetővé nagy távolságon keresztül.
A differenciál busz két vezetékből épül fel, az egyik az átvitt adatokat, a másik pedig a kiegészítést képviseli. Az elképzelés az, hogy a vezetékek „átlagos” feszültsége nem hordoz semmilyen információt, ami kevesebb interferenciát eredményez. Az USB-n az eszközöknek engedélyezniük kell egy bizonyos energiaellátást anélkül, hogy megkérdeznék a gazdagépet. Az USB csak két vezetéket használ az adatátvitelhez, és gyorsabb, mint a soros és a párhuzamos interfész. Az USB verziók különböző sebességeket támogatnak, például 1,5 Mbps (USB v1.0), 480 Mbps (USB2.0), 5Gbps (USB v3.0). Az egyes USB-kábelek hossza akár 5 méter is lehet hub nélkül és 40 méter hubig.
TUD
A vezérlő területi hálózatát (CAN) például az autóiparban használják az ECU-k (motorvezérlő egységek) és az érzékelők közötti kommunikáció lehetővé tételére. A CAN protokoll robusztus, olcsó és üzenetalapú, és számos alkalmazásra kiterjed - pl. Autók, teherautók, traktorok, ipari robotok. A CAN buszrendszer lehetővé teszi a központi hibadiagnosztikát és konfigurációt az összes ECU-ban. A CAN-üzenetek prioritása az azonosítókon keresztül történik, így a legmagasabb prioritású azonosítók nem szakadnak meg. Minden ECU tartalmaz egy chipet az összes továbbított üzenet fogadására, a relevancia eldöntésére és a megfelelő cselekvésre - ez lehetővé teszi további csomópontok egyszerű módosítását és beépítését (pl. CAN busz adatnaplózók). Az alkalmazások tartalmazzák a járművek indítását / leállítását, ütközéselhárító rendszereket. A CAN buszrendszerek akár 1Mbps sebességet is képesek biztosítani.
Mikrohuzal
A MICROWIRE egy 3Mbps soros, 3 vezetékes interfész, lényegében az SPI interfész egy részhalmaza. A Microwire egy soros I / O port a mikrovezérlőkön, így a Microwire busz megtalálható lesz az EEPROM-okon és más perifériás chipeken is. A 3 vonal SI (soros bemenet), SO (soros kimenet) és SK (soros óra). A mikrovezérlő soros bemeneti (SI) vonala, az SO a soros kimeneti vonal, az SK pedig a soros óra. Az adatokat az SK csökkenő peremén mozgatják, az emelkedő élen értékelik. Az SI az SK emelkedő szélén tolódik be. A MICROWIRE további buszjavítását MICROWIRE / Plus néven hívják. A két busz közötti fő különbség az látszik, hogy a mikrovezérlőn belül a MICROWIRE / Plus architektúra összetettebb. Támogatja a 3Mbps sebességet.
Aszinkron soros protokollok
A soros protokollok aszinkron típusa nagyon fontos, ha nagyobb távolságú, megbízható adatátvitelről van szó. Az aszinkron kommunikációhoz nincs szükség mindkét eszközön közös időzítési órára. Minden eszköz önállóan hallgat és küld digitális impulzusokat, amelyek az adatbiteket ábrázolják egyeztetett sebességgel. Az aszinkron soros kommunikációt néha Transistor-Transistor Logic (TTL) sorosnak nevezik, ahol a magas feszültségszint logika 1, az alacsony feszültség pedig logikai 0-nak felel meg. A piacon manapság szinte minden mikrovezérlő rendelkezik legalább egy univerzális aszinkron vevővel. Adó (UART) soros kommunikációhoz. Példák: RS232, RS422, RS485 stb.
RS232
Az RS232 (ajánlott 232-es szabvány) nagyon gyakori protokoll, amelyet különböző perifériák, például monitorok, CNC-k stb. Csatlakoztatására használnak. Az RS232 férfi és női csatlakozókban található. Az RS232 egy ponttól pontig topológia, maximum egy eszköz csatlakoztatva, és akár 15 méteres távolságot is megtesz 9600 bps sebességgel. Az RS-232 interfész információit digitálisan továbbítja a 0 és az 1 logika. Az "1" (MARK) logikai feszültség megfelel -3 és -15 V közötti tartományban. A logikai "0" (SPACE) megfelel egy feszültség a +3 és +15 V. közötti tartományban van. DB9 csatlakozóban található, amely 9 pólusú, például TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
Az RS422 hasonló az RS232-hez, amely lehetővé teszi az üzenetek egyidejű küldését és fogadását külön vonalakon, de ehhez differenciális jelet használ. Az RS-422 hálózatban csak egy adó- és legfeljebb 10 vevőeszköz lehet. Az RS-422 adatátviteli sebessége a távolságtól függ, és 10 kbps (1200 méter) és 10 Mbps (10 méter) között változhat. Az RS-422 vezeték 4 vezetéket tartalmaz adatátvitelhez (2 sodrott vezeték az átvitelhez és 2 sodrott vezeték a fogadáshoz) és egy közös GND földelő vezetéket. Az adatvonalakon a feszültség a -6 V és +6 V közötti tartományban lehet. Az A és B közötti logikai különbség nagyobb, mint +0,2 V. Az 1. logikai érték az A és B közötti különbségnek kisebb, mint -0,2 V. Az RS-422 szabvány nem határoz meg konkrét csatlakozótípust, általában sorkapocs vagy DB9 csatlakozó lehet.
RS485
Mivel az RS485 többpontos topológiát használ, ezért az iparban használják leginkább, és az ipar által preferált protokoll. Az RS422 32 vonali meghajtót és 32 vevőt tud csatlakoztatni differenciális konfigurációban, de további átjátszók és jelerősítők segítségével akár 256 eszközig. Az RS-485 nem határoz meg bizonyos típusú csatlakozókat, de gyakran egy sorkapocs vagy egy DB9 csatlakozó. A működés sebessége a vonal hosszától is függ, és 10 méteren elérheti a 10 Mbit / s-ot. A vonalak feszültsége -7 V és +12 V között van. Kétféle RS-485 létezik, például fél-duplex RS-485 mód 2 érintkezővel és full duplex üzemmód RS-485 4 érintkezővel. Ha többet szeretne megtudni az RS485 más mikrovezérlőkkel történő használatáról, ellenőrizze a linkeket:
- RS-485 MODBUS soros kommunikáció az Arduino UNO rabszolgaként történő használatával
- RS-485 soros kommunikáció Raspberry Pi és Arduino Uno között
- RS485 Soros kommunikáció az Arduino Uno és az Arduino Nano között
- Soros kommunikáció az STM32F103C8 és az Arduino UNO között az RS-485 segítségével
Következtetés
A soros kommunikáció az elektronika és a beágyazott rendszerek egyik széles körben használt kommunikációs interfész rendszere. Az adatátviteli sebesség különböző alkalmazások esetén eltérő lehet. A soros kommunikációs protokollok meghatározó szerepet játszhatnak az ilyen jellegű alkalmazások kezelésében. Tehát a megfelelő soros protokoll kiválasztása nagyon fontossá válik.