Fie că este vorba de periferice de computer, aparate inteligente, dispozitive Internet of Things (IoT) sau electronice instrumente de măsurare, toate folosesc protocoale de comunicație serială pentru a conecta diferite componente electronice împreună.

Aceste componente constau de obicei dintr-un microcontroler și module slave, cum ar fi un senzor de amprentă, un ESP8266 (modul Wi-Fi), servo-uri și afișaje seriale.

Aceste dispozitive folosesc diferite tipuri de protocoale de comunicare. Mai jos veți afla despre unele dintre cele mai populare protocoale de comunicații seriale, cum funcționează, avantajele lor și de ce rămân în uz.

Ce este comunicarea în serie?

Protocoalele de comunicare în serie au fost aici încă de la inventarea codului Morse în 1838. Astăzi, protocoalele moderne de comunicații seriale folosesc aceleași principii. Semnalele sunt generate și transmise pe un singur fir prin scurtcircuitarea repetată a doi conductori împreună. Acest scurtmetraj acționează ca un comutator; se activează (înalt) și se oprește (scăzut), furnizând semnale binare. Modul în care este transmis și recepționat acest semnal va depinde de tipul de protocol de comunicare serială utilizat.

instagram viewer

Credit imagine: shankar.s/Wikimedia Commons

Odată cu invenția tranzistorului și inovațiile care au urmat, atât inginerii, cât și bricolagii au făcut unitățile de procesare și memoria mai mici, mai rapide și mai eficiente din punct de vedere energetic. Aceste modificări au cerut ca protocoalele de comunicație cu magistrală să fie la fel de avansate din punct de vedere tehnologic ca și componentele conectate. Astfel, invenția de protocoale seriale precum UART, I2C și SPI. Deși aceste protocoale seriale sunt vechi de câteva decenii, ele sunt încă preferate pentru microcontrolere și programare bare-metal.

UART (receptor-transmițător asincron universal)

Protocolul UART este unul dintre cele mai vechi, dar cele mai fiabile protocoale de comunicații seriale pe care le folosim și astăzi. Acest protocol folosește două fire cunoscute ca Tx (transmit) și Rx (Receive) pentru ca ambele componente să comunice.

Pentru a transmite date, atât emițătorul, cât și receptorul trebuie să fie de acord cu cinci configurații comune, acestea sunt:

  • Viteza de transmisie: Viteza de transmisie a cât de repede vor fi transmise datele.
  • Lungimea datelor: Numărul convenit de biți pe care receptorul îi va salva în registrele sale.
  • Bit de pornire: Un semnal scăzut care informează receptorul când datele sunt pe cale să fie transferate.
  • Bit de oprire: Un semnal ridicat care informează receptorul când a fost trimis ultimul bit (bitul cel mai semnificativ).
  • Bit de paritate: Fie un semnal ridicat, fie un semnal scăzut, utilizat pentru a verifica dacă datele trimise au fost corecte sau corupte.

Deoarece UART este un protocol asincron, nu are propriul ceas care reglează viteza de transmisie a datelor. Ca alternativă, utilizează rata de transmisie pentru sincronizarea când un bit este transmis. Rata de transmisie obișnuită utilizată pentru UART este de 9600 baud, adică o rată de transmisie de 9600 biți pe secundă.

Dacă facem calculul și împărțim un bit la 9600 baud, putem calcula cât de repede este transmis un bit de date către receptor.

1/9600 =104 microsecunde

Aceasta înseamnă că dispozitivele noastre UART vor începe să numere 104 microsecunde pentru a ști când va transmite următorul bit.

Când dispozitivele UART au fost conectate, semnalul implicit este întotdeauna ridicat la mare. Când detectează un semnal de joasă frecvență, receptorul va începe să numere 104 microsecunde plus alte 52 microsecunde înainte de a începe să salveze biții în registrele sale (memorie).

Deoarece s-a convenit deja că opt biți ar trebui să fie lungimea datelor, odată ce a salvat opt ​​biți de date, va începe să verifice paritatea pentru a verifica dacă datele sunt impare sau pare. După verificarea parității, bitul de oprire va ridica un semnal ridicat pentru a notifica dispozitivele că toți cei opt biți de date au fost transmisi cu succes la receptor.

Fiind cel mai minimalist protocol serial care utilizează doar două fire, UART este utilizat în mod obișnuit astăzi în carduri inteligente, cartele SIM și automobile.

Legate de: Ce este o cartelă SIM? Lucruri pe care trebuie să le știți

SPI (Interfață periferică serială)

SPI este un alt protocol serial popular folosit pentru rate de date mai rapide de aproximativ 20 Mbps. Folosește un total de patru fire, și anume SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) și SS/CS (Chip Select). Spre deosebire de UART, SPI folosește un format master-to-slave pentru a controla mai multe dispozitive slave cu un singur master.

MISO și MOSI acționează ca Tx și Rx ale UART, fiind folosite pentru a transmite și a primi date. Chip Select este folosit pentru a selecta cu ce slave dorește să comunice masterul.

Deoarece SPI este un protocol sincron, folosește un ceas încorporat de la master pentru a se asigura că atât dispozitivele master, cât și cele slave rulează pe aceeași frecvență. Aceasta înseamnă că cele două dispozitive nu mai trebuie să negocieze o rată de transmisie.

Protocolul începe cu masterul care selectează dispozitivul slave prin scăderea semnalului acestuia la SS/CK specific conectat la dispozitivul slave. Când slave primește un semnal scăzut, începe să asculte atât SCK, cât și MOSI. Maestrul trimite apoi un bit de pornire înainte de a trimite biții care conțin date.

Atât MOSI, cât și MISO sunt full-duplex, ceea ce înseamnă că pot transmite și primi date în același timp.

Cu capacitatea sa de a se conecta la mai multe slave, comunicare full-duplex și consum de energie mai mic decât altele protocoalele sincrone precum I2C, SPI sunt utilizate în dispozitive de memorie, carduri de memorie digitale, convertoare ADC la DAC și cristal afișează memoria.

I2C (circuit inter-integrat)

I2C este încă un alt protocol serial sincron precum SPI, dar cu mai multe avantaje față de acesta. Acestea includ capacitatea de a avea mai mulți master și slave, adresare simplă (nu este nevoie de Chip Select), funcționând cu tensiuni diferite și folosind doar două fire conectate la două pull-up rezistențe.

I2C este adesea folosit în multe dispozitive IoT, echipamente industriale și electronice de larg consum.

Cei doi pini dintr-un protocol I2C sunt SDA (Serial Data Line) care transmite și primește date și pinul SCL (Serial Clock Line), care funcționează ca un ceas.

  1. Protocolul începe cu masterul care trimite un bit de pornire (scăzut) de la pinul său SDA, urmat de o adresă de șapte biți care selectează slave și un bit pentru a selecta citirea sau scrierea.
  2. După ce a primit bitul de pornire și adresa, slave trimite apoi un bit de confirmare către master și începe să asculte SCL și SDA pentru transmisiile de intrare.
  3. Odată ce masterul primește acest lucru, știe că conexiunea a fost făcută cu slave corect. Maestrul va selecta acum ce registru specific (memorie) din slave dorește să îl acceseze. Face acest lucru trimițând alți opt biți specificând ce registru va fi utilizat.
  4. La primirea adresei, slave pregătește acum registrul de selectare înainte de a trimite o altă confirmare către master.
  5. După ce a selectat ce slave specific și care dintre registrele sale să folosească, masterul trimite în sfârșit bitul de date către slave.
  6. După ce datele sunt trimise, un bit de confirmare final este trimis către master înainte ca masterul să se termine cu un bit de oprire (înalt).

Legate de: Cele mai bune proiecte Arduino IoT

De ce comunicațiile în serie sunt aici pentru a rămâne

Odată cu creșterea protocoalelor paralele și a multor protocoale fără fir, comunicațiile seriale nu au căzut niciodată din popularitate. În general, folosind doar două până la patru fire pentru transmiterea și primirea datelor, protocoalele seriale sunt un mod esențial de comunicare pentru electronice care au doar câteva porturi de rezervă.

Un alt motiv este simplitatea sa care se traduce prin fiabilitate. Cu doar câteva fire care trimit date odată, serialul și-a dovedit fiabilitatea de a trimite pachetele complete de date fără pierderi sau corupții atunci când sunt transmise. Chiar și la frecvențe înalte și la o rază mai lungă de comunicare, protocoalele seriale încă bat multe protocoale moderne de comunicații paralele disponibile astăzi.

Deși mulți ar putea crede că comunicațiile seriale precum UART, SPI și I2C au un dezavantaj de a fi vechi și depășite, rămâne faptul că și-au dovedit fiabilitatea peste mai multe decenii. Protocoalele fiind atât de vechi, fără nicio înlocuire reală, sugerează doar că sunt, de fapt, indispensabile și vor continua să fie utilizate în electronică în viitorul apropiat.

Raspberry Pi, Pico, Arduino și alte computere și microcontrolere cu o singură placă

Sunteți confuz între SBC-uri precum Raspberry Pi și microcontrolere precum Arduino și Raspberry Pi Pico? Iată ce trebuie să știți.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Tehnologia explicată
  • Utilizarea de date
Despre autor
Personalul MUO

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona