Arduino kommunikációs protokoll

Arduino Kommunikacios Protokoll



A kommunikációs protokollok olyan szabályok összessége, amelyek lehetővé teszik az eszközök kommunikációját és adatcseréjét. Ezek a protokollok nagyon fontosak az Arduino kommunikációban, mivel az Arduino folyamatosan küld és fogad adatokat. Ezeknek a protokolloknak a használata segít az Arduino-nak a hibaészlelés és a lehetséges hibahelyreállítási módszerek lefedésében. Ezek a protokollok az analóg és a digitális eszközöket egyesítik, és lehetővé teszik több projekt tervezését.

Arduino kommunikációs protokollok

A kommunikációs protokollok használatával bármilyen érzékelő adatát küldhetjük és fogadhatjuk Arduino-ban.

Egyes egyszerű érzékelők, például az infravörös (IR) közvetlenül tudnak kommunikálni az Arduinóval, de néhány összetett érzékelő, például a Wi-Fi modul, az SD-kártya modul és a giroszkóp nem tud közvetlenül kommunikálni az Arduinóval kommunikációs protokollok nélkül. Ezért ezek a protokollok az Arduino kommunikáció szerves részét képezik.







Az Arduino több perifériával rendelkezik; ezek között három kommunikációs perifériát használnak az Arduino táblákban.



Arduino kommunikációs protokollok

A különböző elektronikus eszközök, például az Arduino közötti kommunikáció e három protokoll között szabványosított; lehetővé teszi a tervezők számára, hogy kompatibilitási problémák nélkül könnyen kommunikáljanak a különböző eszközök között. Ennek a három protokollnak a működése megegyezik, mivel ugyanazt a kommunikációs célt szolgálják, de az áramkörön belüli megvalósításuk különbözik. E protokollok további leírását az alábbiakban tárgyaljuk.







UART

Az UART néven ismert Univerzális aszinkron vevő adó. Az UART egy soros kommunikációs protokoll, amely azt jelenti, hogy az adatbitek szekvenciális formában, egymás után kerülnek átvitelre. Az UART kommunikáció beállításához két vonalra van szükségünk. Az egyik az Arduino kártya Tx (D1) tűje, a második pedig az Arduino kártya Rx (D0) tűje. A Tx pin az adatok továbbítására szolgál, az Rx pin pedig az adatok fogadására szolgál. A különböző Arduino kártyáknak több UART érintkezője van.

Arduino digitális tű UART Pin
D1 Tx
D0 Rx

Az UART porton keresztüli soros kommunikáció létrehozásához két eszközt kell csatlakoztatnunk az alábbi konfigurációban:



Az Arduino Uno-n egy soros port szolgál a kommunikációhoz, amelyet általában USB-portnak neveznek. Ahogy a neve is sugallja, Universal Serial Bus, tehát ez egy soros port. Az USB-port használatával az Arduino kommunikációt létesíthet számítógépekkel. Az USB-port az Arduino beépített Tx és Rx érintkezőihez csatlakozik. Ezekkel a tűkkel bármilyen külső hardvert csatlakoztathatunk a számítógépen kívül USB-n keresztül. Az Arduino IDE SoftwareSerial könyvtárat biztosít (SoftwareSerial.h) amely lehetővé teszi a felhasználók számára a GPIO érintkezők Serial Tx és Rx lábként történő használatát.

  • Az UART egyszerűen kezelhető Arduino-val
  • Az UART-nak nincs szüksége órajelre
  • Az adatvesztés elkerülése érdekében az adatátviteli sebességet a kommunikáló eszközök 10%-os határán belül kell beállítani
  • A Master Slave konfigurációban lévő Arduino-val több eszköz nem lehetséges az UART segítségével
  • Az UART félduplex, ami azt jelenti, hogy az eszközök nem tudnak egyszerre adatokat küldeni és fogadni
  • Egyszerre csak két eszköz tud kommunikálni az UART protokollal

Soros periféria interfész (SPI)

SPI a soros periféria interfész mozaikszó, amelyet kifejezetten a mikrokontrollerek számára terveztek, hogy kommunikáljanak velük. Az SPI full-duplex módban működik, ami azt jelenti, hogy az SPI egyszerre tud adatokat küldeni és fogadni. Az UART-hoz és az I2C-hez képest ez a leggyorsabb kommunikációs periféria az Arduino kártyákban. Általában ott használják, ahol nagy adatátviteli sebességre van szükség, mint például az LCD kijelző és a Micro SD kártya alkalmazások.

Az Arduino SPI digitális tűi előre meghatározottak. Az Arduino Uno SPI pin konfigurációja a következő:

SPI vonal GPIO ICSP fejléc PIN
SCK 13 3
MISO 12 1
FÜST tizenegy 4
SS 10
  • A MOSI jelentése Master Out Slave In , A MOSI adatátviteli vonal a mestertől a szolgáig.
  • Az SCK a Óra vonal amely meghatározza az átviteli sebességet és a kezdővégi jellemzőket.
  • SS jelentése Slave Select ; Az SS vonal lehetővé teszi, hogy a mester egy adott Slave eszközt válasszon, ha több slave konfigurációban működik.
  • A MISO jelentése Mester a Slave Outban ; A MISO egy Slave-Master adatátviteli vonal.

Az SPI protokoll egyik fő jellemzője a Master-Slave konfiguráció. Az SPI használatával egy eszköz mesterként definiálható több slave eszköz vezérléséhez. A mester az SPI protokollon keresztül teljes mértékben irányítja a Slave eszközöket.

Az SPI egy szinkron protokoll, ami azt jelenti, hogy a kommunikáció közös órajellel van összekötve a Master és a Slave között. Az SPI több eszközt is vezérelhet Slave-ként egyetlen adási és vételi vonalon keresztül. Az összes Slave közös használatával csatlakozik a Mesterhez MISO sorral együtt fogadni FÜST egy közös átviteli vonal. SCK a Master és Slave eszközök közös óravonala is. Az egyetlen különbség a Slave eszközök között, hogy minden szolga eszközt külön vezérelnek SS vonal kiválasztása. Ez azt jelenti, hogy minden Slave-nek szüksége van egy extra GPIO tűre az Arduino kártyáról, amely kiválasztási vonalként működik az adott Slave eszközhöz.

Az SPI-protokoll néhány főbb jellemzője az alábbiakban található:

  • Az SPI a leggyorsabb protokoll, mint az I2C és az UART
  • Nincs szükség start és stop bitekre, mint az UART-nál, ami azt jelenti, hogy folyamatos adatátvitel lehetséges
  • A Slave könnyen megszólítható az egyszerű Master Slave konfigurációnak köszönhetően
  • Minden Slave számára egy extra tű van elfoglalva az Arduino táblán. Gyakorlatilag 1 Master 4 Slave eszközt tud vezérelni
  • Hiányzik az adatnyugtázás, mint az UART-ban
  • Több mester konfigurációja nem lehetséges

I2C kommunikációs protokoll

Az Inter Integrated Circuit (I2C) egy másik kommunikációs protokoll, amelyet az Arduino kártyák használnak. Az I2C a legnehezebb és legbonyolultabb protokoll, amelyet Arduinóval és más eszközökkel lehet megvalósítani. Bonyolultsága ellenére számos olyan funkciót kínál, amelyek hiányoznak más protokollokból, például több mester és több szolga konfigurációból. Az I2C lehetővé teszi akár 128 eszköz csatlakoztatását a fő Arduino kártyához. Ez csak azért lehetséges, mert az I2C egyetlen vezetéket oszt meg az összes Slave eszköz között. Az Arduino I2C címrendszert használ, ami azt jelenti, hogy mielőtt adatokat küldene a Slave eszközre, az Arduino-nak először ki kell választania a Slave eszközt egyedi cím elküldésével. Az I2C csak két vezetéket használ, ami csökkenti az általános Arduino tűk számát, de a rossz oldala az, hogy az I2C lassabb, mint az SPI protokoll.

Arduino analóg tű I2C Pin
A4 SDA
A5 SCL

Hardver szinten az I2C csak két vezetékre korlátozódik, az egyik az úgynevezett adatvonalhoz SDA (soros adatok) a második pedig az Óra vonalhoz SCL (soros óra). Üresjárati állapotban az SDA és az SCL is magasra van húzva. Amikor adatokat kell továbbítani, ezeket a vonalakat a MOSFET áramkör segítségével alacsonyra húzzák. Az I2C használata projektekben kötelező a felhúzó ellenállások használata, általában 4,7 Kohm értékű. Ezek a felhúzó ellenállások biztosítják, hogy mind az SDA, mind az SCL vonalak magasan maradjanak üresjárati indításkor.

Az I2C protokollok néhány főbb jellemzője:

  • A szükséges csapok száma nagyon alacsony
  • Több Master Slave eszköz csatlakoztatható
  • Csak 2 vezetéket használ
  • A sebesség lassabb az SPI-hez képest a felhúzó ellenállások miatt
  • Az ellenállásoknak több hely kell az áramkörben
  • A projektek összetettsége az eszközök számának növekedésével

Az UART vs I2C és SPI összehasonlítása

Jegyzőkönyv UART SPI 2C
Sebesség Leglassabb Leggyorsabb Gyorsabb, mint az UART
Eszközök száma 2-ig 4 készülék Akár 128 eszköz
Vezetékek szükségesek 2 (Tx, Rx) 4 (SCK, SMOKE, EYES, SS) 2 (SDA,SCL)
Duplex mód Full Duplex mód Full Duplex mód Félduplex
Master-Slave lehetséges száma Single Master-Single Slave Egyetlen mester-több rabszolga Több mester - Több rabszolga
Bonyolultság Egyszerű Könnyen vezérelhet több eszközt Összetett az eszközök számának növekedésével
Elismerés bit Dehogy Dehogy Igen

Következtetés

Ebben a cikkben az Arduino-ban használt mindhárom UART, SPI és I2C protokoll átfogó összehasonlítását ismertettük. Az összes protokoll ismerete fontos, mivel végtelen lehetőséget kínál több eszköz integrálására. Az összes kommunikációs periféria megértése időt takarít meg, és segít a projektek optimalizálásában a megfelelő protokoll szerint.