- Tipus de protocols de comunicació
- Modes de transmissió en comunicació en sèrie
- Sincronització de rellotge
- Altres termes relacionats amb la comunicació en sèrie
- Protocols de sèrie síncrons
- Protocols de sèrie asíncrons
- Conclusió
Abans de començar amb els protocols de comunicació en sèrie, trenquem la terminologia en tres parts. La comunicació és una terminologia molt coneguda que implica l’intercanvi d’informació entre dos o més suports. En sistemes incrustats, la comunicació significa l’intercanvi de dades entre dos microcontroladors en forma de bits. Aquest intercanvi de bits de dades en microcontrolador es realitza mitjançant un conjunt de regles definides conegudes com a protocols de comunicació. Ara bé, si les dades s’envien en sèrie, és a dir, un darrere l’altre, el protocol de comunicació es coneix com a protocol de comunicació en sèrie. Més específicament, els bits de dades es transmeten un per un de manera seqüencial a través del bus de dades o del canal de comunicació a la comunicació en sèrie.
Tipus de protocols de comunicació
Hi ha diferents tipus de transferència de dades disponibles a l'electrònica digital, com ara la comunicació en sèrie i la comunicació paral·lela. De la mateixa manera, els protocols es divideixen en dos tipus, com ara el protocol de comunicació en sèrie i els protocols de comunicació en paral·lel. Alguns exemples de protocols de comunicació paral·lels són ISA, ATA, SCSI, PCI i IEEE-488. De la mateixa manera, hi ha diversos exemples de protocols de comunicació en sèrie, com ara CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire i SATA, etc.


En aquest article, es parlarà dels diferents tipus de protocols de comunicació en sèrie. La comunicació en sèrie és l’enfocament més utilitzat per transferir informació entre perifèrics de processament de dades. Tots els dispositius electrònics, ja siguin ordinadors personals (PC) o mòbils, funcionen en comunicació en sèrie. El protocol és la forma segura i fiable de comunicació que té un conjunt de regles dirigides per l'amfitrió d'origen (emissor) i l'amfitrió de destinació (receptor) similars a la comunicació paral·lela.
Modes de transmissió en comunicació en sèrie
Com ja s'ha dit anteriorment, en la comunicació en sèrie les dades s'envien en forma de bits, és a dir, polsos binaris i és ben sabut que, el binari representa la lògica ALTA i el zero representa la lògica BAIXA. Hi ha diversos tipus de comunicació en sèrie segons el tipus de mode de transmissió i de transferència de dades. Els modes de transmissió es classifiquen en Simplex, Half Duplex i Full Duplex.
Mètode Simplex:
En el mètode simplex, qualsevol del mitjà, és a dir, emissor o receptor, pot estar actiu alhora. Així, si l’emissor transmet les dades, el receptor només pot acceptar i viceversa. Per tant, el mètode simplex és una tècnica de comunicació unidireccional. Els exemples coneguts del mètode simple són la televisió i la ràdio.
Mètode Half Duplex:
En el mètode mig dúplex, tant l'emissor com el receptor poden estar actius, però no al mateix temps. Per tant, si l’emissor està transmetent, el receptor pot acceptar però no pot enviar i, de manera similar, viceversa. Els exemples coneguts del mig dúplex són Internet, on l'usuari envia una sol·licitud de dades i les obté del servidor.
Mètode dúplex complet:
En el mètode dúplex complet, tant el receptor com el transmissor es poden enviar dades mútuament al mateix temps. L’exemple conegut és el telèfon mòbil.
A part d'això, per a una transmissió de dades adequada, el rellotge té un paper important i és una de les fonts principals. Un mal funcionament del rellotge provoca una transmissió de dades inesperada, fins i tot de vegades la pèrdua de dades. Per tant, la sincronització del rellotge esdevé molt important quan s’utilitza comunicació en sèrie.
Sincronització de rellotge
El rellotge és diferent per als dispositius de sèrie i es classifica en dos tipus, a saber. Interfície sèrie síncrona i interfície sèrie asíncrona.
Interfície sèrie síncrona:
És una connexió punt a punt d’un mestre a un esclau. En aquest tipus d’interfície, tots els dispositius utilitzen un únic bus de CPU per compartir dades i rellotge. La transmissió de dades es fa més ràpida amb el mateix bus per compartir el rellotge i les dades. Tampoc hi ha cap desajust en la velocitat de transmissió en aquesta interfície. Al costat del transmissor, hi ha un desplaçament de les dades cap a la línia serial que proporciona el rellotge com a senyal independent, ja que no hi ha bits d’inici, parada i paritat a les dades. Al costat del receptor, les dades s’extreuen mitjançant el rellotge proporcionat per l’emissor i converteix les dades de sèrie en forma paral·lela. Els exemples coneguts són I2C i SPI.

Interfície sèrie asíncrona:
A la interfície sèrie asíncrona, el senyal de rellotge extern està absent. Les interfícies sèrie asíncrones es poden veure principalment en aplicacions de llarga distància i són perfectes per a una comunicació estable. En la interfície sèrie asíncrona, l'absència de font de rellotge externa fa que depengui de diversos paràmetres, com ara el control de flux de dades, el control d'errors, el control de velocitat de transmissió, el control de transmissió i el control de recepció. Al costat del transmissor, hi ha un desplaçament de dades paral·leles a la línia serial mitjançant el seu propi rellotge. També afegeix els bits d'inici, parada i comprovació de la paritat. Al costat del receptor, el receptor extreu les dades mitjançant el seu propi rellotge i converteix les dades de sèrie a la forma paral·lela després d’eliminar els bits d’inici, parada i paritat. Els exemples més coneguts són RS-232, RS-422 i RS-485.

Altres termes relacionats amb la comunicació en sèrie
A part de la sincronització de rellotge, hi ha algunes coses que cal recordar quan es transfereixen dades en sèrie, com ara Baud Rate, Selecció de bits de dades (emmarcament), Sincronització i comprovació d'errors. Analitzem breument aquests termes.
Baud Rate: la velocitat en bauds és la velocitat a la qual es transfereixen les dades entre el transmissor i el receptor en forma de bits per segon (bps). La velocitat en baud més utilitzada és el 9600. Però hi ha una altra selecció de la velocitat en bauds, com ara 1200, 2400, 4800, 57600, 115200. També per a la comunicació de dades, la velocitat en bauds ha de ser la mateixa per al transmissor i el receptor.
Enquadrament: l’ enquadrament es refereix al nombre de bits de dades que s’enviaran del transmissor al receptor. El nombre de bits de dades difereix en cas d'aplicació. La majoria de l'aplicació utilitza 8 bits com a bits de dades estàndard, però també es pot seleccionar com a 5, 6 o 7 bits.
Sincronització: els bits de sincronització són importants per seleccionar un tros de dades. Indica l’inici i el final dels bits de dades. El transmissor configurarà els bits d’inici i d’aturada al marc de dades i el receptor l’identificarà en conseqüència i farà el processament posterior.
Control d'errors: el control d'errors té un paper important mentre que la comunicació en sèrie, ja que hi ha molts factors que afecten i afegeixen el soroll en la comunicació en sèrie. Per eliminar aquest error, s'utilitzen els bits de paritat on la paritat comprovarà la paritat parella i senar. Per tant, si el marc de dades conté el nombre parell d’1, es coneix com a paritat parella i el bit de paritat al registre s’estableix a 1. De la mateixa manera, si el marc de dades conté un nombre senar d’1, es coneix com a paritat senar i esborra la bit de paritat estrany al registre.
El protocol és com un llenguatge comú que el sistema utilitza per entendre les dades. Com es va descriure anteriorment, el protocol de comunicació serial es divideix en tipus, és a dir, síncrons i asíncrons. Ara es parlarà amb detall de tots dos.
Protocols de sèrie síncrons
El tipus síncron de protocols sèrie com SPI, I2C, CAN i LIN s’utilitzen en diferents projectes perquè és un dels millors recursos per a perifèrics integrats. Aquests també són els protocols àmpliament utilitzats en les principals aplicacions.
Protocol SPI
La interfície perifèrica en sèrie (SPI) és una interfície síncrona que permet interconnectar diversos microcontroladors SPI. A SPI, es necessiten cables separats per a les dades i la línia de rellotge. A més, el rellotge no s’inclou al flux de dades i s’ha de proporcionar com a senyal independent. L'SPI es pot configurar com a mestre o com a esclau. Els quatre senyals SPI bàsics (MISO, MOSI, SCK i SS), Vcc i Ground formen part de la comunicació de dades. Per tant, necessita 6 cables per enviar i rebre dades de l’esclau o del mestre. Teòricament, l'SPI pot tenir un nombre il·limitat d'esclaus. La comunicació de dades es configura en registres SPI. El SPI pot proporcionar fins a 10 Mbps de velocitat i és ideal per a la comunicació de dades d’alta velocitat.

La majoria dels microcontroladors tenen compatibilitat integrada amb SPI i es poden connectar directament amb dispositius compatibles amb SPI:
- Comunicació SPI amb microcontrolador PIC PIC16F877A
- Com s'utilitza la comunicació SPI al microcontrolador STM32
- Com utilitzar SPI a Arduino: comunicació entre dues plaques Arduino
Comunicació en sèrie I2C

Comunicació de dues línies entre circuits integrats (I2C) entre diferents circuits integrats o mòduls on dues línies són SDA (Serial Data Line) i SCL (Serial Clock Line). Les dues línies han d’estar connectades a una alimentació positiva mitjançant una resistència de tracció. I2C pot oferir velocitat de fins a 400 Kbps i utilitza un sistema d’adreces de 10 o 7 bits per dirigir-se a un dispositiu específic del bus i2c, de manera que pot connectar fins a 1024 dispositius. Té una comunicació de longitud limitada i és ideal per a la comunicació a bord. Les xarxes I2C són fàcils de configurar, ja que només utilitza dos cables i es poden connectar nous dispositius a les dues línies de bus I2C habituals. Igual que SPI, els microcontroladors solen tenir pins I2C per connectar qualsevol dispositiu I2C:
- Com s'utilitza la comunicació I2C al microcontrolador STM32
- Comunicació I2C amb microcontrolador PIC PIC16F877
- Com utilitzar I2C a Arduino: comunicació entre dues plaques Arduino
USB
USB (Universal Serial Bus) és àmpliament protocol·lari amb diferents versions i velocitats. Es poden connectar un màxim de 127 perifèrics a un únic controlador d'amfitrió USB. El USB actua com a dispositiu "plug and play". L’USB s’utilitza en gairebé dispositius com ara teclats, impressores, dispositius multimèdia, càmeres, escàners i ratolins. Està dissenyat per a una fàcil instal·lació, una classificació de dades més ràpida, menys cablejat i intercanvi en calent. Ha substituït els ports sèrie i paral·lel més voluminosos i lents. USB utilitza senyalització diferencial per reduir les interferències i permetre la transmissió a gran velocitat a gran distància.
Un bus diferencial es construeix amb dos cables, un dels quals representa les dades transmeses i l’altre el seu complement. La idea és que el voltatge "mitjà" dels cables no conté cap informació, cosa que resulta en una menor interferència. En USB, els dispositius poden obtenir una certa quantitat d'energia sense demanar-ho a l'amfitrió. USB només fa servir dos cables per a la transferència de dades i és més ràpid que la interfície sèrie i paral·lela. Les versions USB admeten velocitats diferents, com ara 1,5 Mbps (USB v1.0), 480 Mbps (USB 2.0), 5 Gbps (USB v3.0). La longitud del cable USB individual pot arribar fins a 5 metres sense hub i 40 metres amb hub.
LLAUNA
La xarxa d'àrea de controlador (CAN) s'utilitza, per exemple, en automoció per permetre la comunicació entre ECU (unitats de control del motor) i sensors. El protocol CAN és robust, de baix cost i basat en missatges i cobreix en moltes aplicacions (per exemple, automòbils, camions, tractors, robots industrials). El sistema de bus CAN permet el diagnòstic i la configuració d'errors centrals en totes les ECU. Els missatges CAN es prioritzen mitjançant identificadors de manera que els identificadors de màxima prioritat no s’interrompin. Cada ECU conté un xip per rebre tots els missatges transmesos, decidir la rellevància i actuar en conseqüència; això permet modificar fàcilment i incloure nodes addicionals (per exemple, registres de dades de bus CAN). Les aplicacions inclouen l’arrencada / aturada de vehicles, sistemes d’evitació de col·lisions. Els sistemes de bus CAN poden proporcionar velocitat de fins a 1 Mbps.
Microwire
MICROWIRE és una interfície de 3 fils de sèrie de 3 Mbps essencialment un subconjunt de la interfície SPI. Microwire és un port d'E / S sèrie en microcontroladors, de manera que el bus Microwire també es trobarà a EEPROM i altres xips perifèrics. Les 3 línies són SI (entrada de sèrie), SO (sortida de sèrie) i SK (rellotge de sèrie). La línia d'entrada de sèrie (SI) al microcontrolador, SO és la línia de sortida sèrie i SK és la línia de rellotge en sèrie. Les dades es desplacen a la vora descendent de SK i es valoren a la vora ascendent. El SI es desplaça a la vora ascendent de SK. Una millora addicional del bus a MICROWIRE s’anomena MICROWIRE / Plus. La principal diferència entre els dos busos sembla ser que l’arquitectura MICROWIRE / Plus dins del microcontrolador és més complexa. Admet velocitats de fins a 3 Mbps.
Protocols de sèrie asíncrons
El tipus asincrònic de protocols serials és molt essencial quan es tracta de transferències de dades fiables a distància més llarga. La comunicació asíncrona no requereix un rellotge de temps que sigui comú a tots dos dispositius. Cada dispositiu escolta i envia de manera independent impulsos digitals que representen bits de dades a un ritme acordat. La comunicació serial asíncrona de vegades es denomina sèrie Transistor-Transistor Logic (TTL), on el nivell d’alta tensió és la lògica 1 i la baixa tensió equival a la lògica 0. Quasi tots els microcontroladors del mercat tenen actualment almenys un receptor asíncron universal. Transmissor (UART) per a la comunicació en sèrie. Els exemples són RS232, RS422, RS485, etc.
RS232
El RS232 (Standard 232 recomanat) és un protocol molt comú que s’utilitza per connectar diferents perifèrics, com ara monitors, CNC, etc. El RS232 és una topologia punt a punt amb un dispositiu connectat com a màxim i cobreix una distància de fins a 15 metres a 9600 bps. La informació sobre la interfície RS-232 es transmet digitalment pel lògic 0 i 1. El lògic "1" (MARK) correspon a una tensió en el rang de -3 a -15 V. El lògic "0" (ESPAI) correspon tensió en el rang de +3 a +15 V. Es presenta en un connector DB9 que té 9 pinouts com TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
El RS422 és similar al RS232, que permet enviar i rebre simultàniament missatges en línies separades, però utilitza un senyal diferencial per a això. A la xarxa RS-422, només hi pot haver un dispositiu transmissor i fins a 10 dispositius receptors. La velocitat de transferència de dades a RS-422 depèn de la distància i pot variar de 10 kbps (1200 metres) a 10 Mbps (10 metres). La línia RS-422 és de 4 cables per a la transmissió de dades (2 cables trenats per a la transmissió i 2 cables per a la recepció) i un cable de terra GND comú. La tensió a les línies de dades pot oscil·lar entre -6 V i +6 V. La diferència lògica entre A i B és superior a +0,2 V. La lògica 1 correspon a la diferència entre A i B inferior a -0,2 V. L'estàndard RS-422 no defineix un tipus específic de connector, normalment pot ser un bloc de terminals o un connector DB9.
RS485
Atès que RS485 utilitza topologia de punts múltiples, és la més utilitzada a la indústria i és un protocol preferit per la indústria. RS422 pot connectar 32 controladors de línia i 32 receptors en configuracions diferencials, però amb l'ajut de repetidors addicionals i amplificadors de senyal fins a 256 dispositius. El RS-485 no defineix un tipus específic de connector, però sovint és un bloc de terminals o un connector DB9. La velocitat de funcionament també depèn de la longitud de la línia i pot arribar a 10 Mbit / s a 10 metres. El voltatge a les línies oscil·la entre -7 V i +12 V. Hi ha dos tipus de RS-485, com ara el mode semi-dúplex RS-485 amb 2 contactes i el mode dúplex complet RS-485 amb 4 contactes. Per obtenir més informació sobre l’ús de RS485 amb altres microcontroladors, consulteu els enllaços:
- Comunicació sèrie RS-485 MODBUS mitjançant Arduino UNO com a esclau
- Comunicació en sèrie RS-485 entre Raspberry Pi i Arduino Uno
- Comunicació en sèrie RS485 entre Arduino Uno i Arduino Nano
- Comunicació en sèrie entre STM32F103C8 i Arduino UNO mitjançant RS-485
Conclusió
La comunicació en sèrie és un dels sistemes d’interfície de comunicació àmpliament utilitzats en electrònica i sistemes incrustats. Les velocitats de dades poden ser diferents per a diferents aplicacions. Els protocols de comunicació en sèrie poden jugar un paper decisiu a l’hora de tractar aquest tipus d’aplicacions. Per tant, triar el protocol sèrie correcte esdevé molt important.
