Arduino kommunikasjonsprotokoller
Ved å bruke kommunikasjonsprotokoller kan vi sende og motta enhver sensors data i Arduino.
Noen enkle sensorer som Infrared (IR) kan direkte kommunisere med Arduino, men noen av de komplekse sensorene som Wi-Fi-modul, SD-kortmodul og gyroskop kan ikke kommunisere direkte med Arduino uten noen kommunikasjonsprotokoller. Så det er grunnen til at disse protokollene er en integrert del av Arduino -kommunikasjonen.
Arduino har flere periferiutstyr knyttet til den; Blant dem er det tre kommunikasjonsperiferiutstyr som brukes i Arduino -brett.
Arduino kommunikasjonsprotokoller
Kommunikasjon mellom forskjellige elektroniske enheter som Arduino er standardisert blant disse tre protokollene; Det gjør det enkelt å kommunisere mellom forskjellige enheter uten kompatibilitetsproblemer. Arbeidet med disse tre protokollene er de samme som de tjener samme kommunikasjonsformål, men de er forskjellige i implementering i en krets. Ytterligere beskrivelse av disse protokollene er diskutert nedenfor.
Uart
Uart er kjent som Universal asynkron mottaker sender. UART er en seriell kommunikasjonsprotokoll som betyr at databiter overføres i sekvensiell form en etter den andre. For å sette opp UART -kommunikasjon trenger vi to linjer. Den ene er TX (D1) PIN -koden til Arduino -styret, og den andre er RX (D0) PIN -koden til Arduino -styret. TX PIN er for overføring av data til enheter og RX PIN brukes til å motta data. Ulike Arduino -brett har flere UART -pinner.
Arduino Digital Pin | Uart pin |
D1 | Tx |
D0 | Rx |
For å etablere seriell kommunikasjon ved hjelp av UART -port, må vi koble to enheter nedenfor vist konfigurasjon:
På Arduino UNO er en seriell port dedikert for kommunikasjon som ofte blir referert til som USB -port. Som navnet antyder universell seriell buss, så er det en seriell port. Å bruke USB -porten Arduino kan etablere kommunikasjon med datamaskiner. USB -porten er koblet til Ombord -pinner TX og RX av Arduino. Ved hjelp av disse pinnene kan vi koble til annen ekstern maskinvare enn datamaskin via USB. Arduino IDE gir programvarebibliotek (Programvare.h) som lar brukere bruke GPIO -pinner som serielle TX- og RX -pinner.
Seriell perifert grensesnitt (SPI)
Spi er et forkortelse av seriell perifert grensesnitt som er spesialdesignet for mikrokontrollere for å kommunisere med dem. SPI opererer på full-dupleksmodus som betyr at SPI kan sende og motta data samtidig. Sammenlignet med UART og I2C er det den raskeste kommunikasjonen perifere i Arduino -brett. Det brukes ofte der det kreves høy datahastighet som i LCD -skjerm og Micro SD -kortapplikasjoner.
SPI Digital Pins på Arduino er forhåndsdefinert. For Arduino Uno SPI -pin -konfigurasjon er som følger:
Spi -linje | GPIO | ICSP -toppstift |
SCK | 1. 3 | 3 |
Miso | 12 | 1 |
Mosi | 11 | 4 |
Ss | 10 | - |
Et av hovedhøydepunktene i SPI-protokollen er Master-Slave Configuration. Å bruke SPI En enhet kan defineres som master for å kontrollere flere slaveenheter. Master er i full kontroll over slaveenheter gjennom SPI -protokollen.
SPI er synkron protokoll, noe som betyr at kommunikasjon er knyttet til vanlig klokkesignal mellom master og slave. SPI kan kontrollere flere enheter som slave over en enkelt sending og motta linje. Alle slavene er koblet til Master ved bruk av vanlige Miso Motta linje sammen med Mosi En vanlig overføringslinje. SCK er også den vanlige klokkelinjen blant master- og slaveenheter. Bare forskjellen i slaveenheter er at hver slaveenhet kontrolleres gjennom separat Ss Velg linje. Dette betyr at hver slave trenger en ekstra GPIO -pinne fra Arduino -brettet som vil fungere som valgt linje for den aktuelle slaveapparatet.
Noen av de viktigste høydepunktene i SPI -protokollen er listet opp nedenfor:
I2C kommunikasjonsprotokoll
Inter Integrated Circuit (I2C) er en annen kommunikasjonsprotokoll som brukes av Arduino -tavler. I2C er den vanskeligste og kompliserte protokollen å implementere med Arduino og andre enheter. Til tross for komplikasjonen, tilbyr det flere funksjoner som mangler i andre protokoller som flere master og flere slaver -konfigurasjoner. I2C tillater å koble opp til 128 enheter til hoved Arduino -tavlen. Dette er bare mulig fordi I2C deler enkelttråd mellom alle slaveenhetene. I2C i Arduino bruker et adressesystem, noe som betyr at du sender data til slaveenhet Arduino må først velge slaveenhet ved å sende unik adresse. I2C bruker bare to ledninger som reduserer den totale telleren.
Arduino analog pin | I2C PIN |
A4 | SDA |
A5 | SCL |
På maskinvarenivå er I2C begrenset til bare to ledninger, en for en datalinje kjent som SDA (seriedata) og den andre for klokkelinjen SCL (serieklokke). Ved tomgangsstat blir både SDA og SCL trukket høyt. Når data må overføres, trekkes disse linjene lave ved hjelp av MOSFET -kretsløp. Ved å bruke I2C i prosjekter er det obligatorisk å bruke opptreden motstander normalt en verdi på 4.7kohm. Disse trekker opp motstandene sikrer at både SDA- og SCL -linjer forblir høye i sin ledige start.
Noen av de viktigste høydepunktene i I2C -protokoller er:
Sammenligning mellom UART vs I2C vs SPI
Protokoll | Uart | Spi | I2C |
Hastighet | Tregeste | Raskest | Raskere enn uart |
Antall enheter | Opptil 2 | 4 enheter | Opptil 128 enheter |
Ledninger kreves | 2 (TX, RX) | 4 (SCK, MOSI, MISO, SS) | 2 (SDA, SCL) |
Dupleksmodus | Full dupleksmodus | Full dupleksmodus | Halv dupleks |
Antall mulige master-slaver | Single Master-Single Slave | Enkelt master-multiple slaver | Flere master-multiple slaver |
Kompleksitet | Enkel | Kan enkelt kontrollere flere enheter | Kompleks med økning i enheter |
Anerkjennelse | Nei | Nei | Ja |
Konklusjon
I denne artikkelen har vi dekket en omfattende sammenligning av alle de tre protokollene UART, SPI og I2C brukt i Arduino. Å kjenne alle protokollene er viktig, da det gir uendelige muligheter til å integrere flere enheter. Å forstå alle kommunikasjonsgjennomgangene vil spare tid og bidra til å optimalisere prosjekter i henhold til riktig protokoll.