Of het nu gaat om computerrandapparatuur, slimme apparaten, Internet of Things (IoT)-apparaten of elektronische meetinstrumenten, ze gebruiken allemaal seriële communicatieprotocollen om verschillende elektronische componenten aan te sluiten samen.

Deze componenten bestaan ​​meestal uit een microcontroller en slave-modules zoals een vingerafdruksensor, een ESP8266 (Wi-Fi-module), servo's en seriële displays.

Deze apparaten gebruiken verschillende soorten communicatieprotocollen. Hieronder leert u over enkele van de meest populaire seriële communicatieprotocollen, hoe ze werken, hun voordelen en waarom ze in gebruik blijven.

Wat is seriële communicatie?

Seriële communicatieprotocollen zijn er al sinds de uitvinding van de morsecode in 1838. Tegenwoordig gebruiken moderne seriële communicatieprotocollen dezelfde principes. Signalen worden gegenereerd en verzonden op een enkele draad door twee geleiders herhaaldelijk kort te sluiten. Deze short werkt als een schakelaar; het gaat aan (hoog) en uit (laag) en levert binaire signalen. Hoe dit signaal wordt verzonden en ontvangen, hangt af van het type seriële communicatieprotocol dat wordt gebruikt.

Afbeelding tegoed: shankar.s/Wikimedia Commons

Met de uitvinding van de transistor en de innovaties die daarop volgden, maakten zowel ingenieurs als knutselaars de verwerkingseenheden en het geheugen kleiner, sneller en energiezuiniger. Deze veranderingen vereisten dat buscommunicatieprotocollen net zo technologisch geavanceerd waren als de componenten die werden aangesloten. Dus de uitvinding van seriële protocollen zoals UART, I2C en SPI. Hoewel deze seriële protocollen tientallen jaren oud zijn, genieten ze nog steeds de voorkeur voor microcontrollers en bare-metal programmering.

UART (universele asynchrone ontvanger-zender)

Het UART-protocol is een van de oudste maar meest betrouwbare seriële communicatieprotocollen die we vandaag de dag nog steeds gebruiken. Dit protocol gebruikt twee draden die bekend staan ​​als Tx (zenden) en Rx (ontvangen) om beide componenten te laten communiceren.

Om gegevens te verzenden, moeten zowel de zender als de ontvanger akkoord gaan met vijf algemene configuraties, namelijk:

  • Baud-snelheid: De transmissiesnelheid van hoe snel gegevens moeten worden verzonden.
  • Gegevenslengte: Het overeengekomen aantal bits dat de ontvanger in zijn registers zal opslaan.
  • Beginbit: Een laag signaal dat de ontvanger laat weten wanneer gegevens op het punt staan ​​te worden overgedragen.
  • Stopbit: Een hoog signaal dat de ontvanger laat weten wanneer het laatste bit (meest significante bit) is verzonden.
  • Pariteitsbit: Ofwel een hoog of laag signaal dat wordt gebruikt om te controleren of de verzonden gegevens correct of beschadigd waren.

Omdat UART een asynchroon protocol is, heeft het geen eigen klok die de gegevensoverdrachtsnelheid regelt. Als alternatief gebruikt het wel de baudrate voor timing wanneer een bit wordt verzonden. De gebruikelijke baudrate die voor UART wordt gebruikt, is 9600 baud, wat een overdrachtssnelheid van 9600 bits per seconde betekent.

Als we de wiskunde doen en één bit delen door 9600 baud, kunnen we berekenen hoe snel één bit gegevens naar de ontvanger wordt verzonden.

1/9600 =104 microseconden

Dit betekent dat onze UART-apparaten 104 microseconden beginnen te tellen om te weten wanneer het volgende bit wordt verzonden.

Wanneer UART-apparaten zijn aangesloten, wordt het standaardsignaal altijd te hoog ingesteld. Wanneer het een laagfrequent signaal detecteert, begint de ontvanger 104 microseconden te tellen plus nog eens 52 microseconden voordat het begint met het opslaan van de bits in zijn registers (geheugen).

Omdat er al was overeengekomen dat acht bits de gegevenslengte zouden zijn, zal het zodra het acht bits aan gegevens heeft opgeslagen, beginnen met het controleren op pariteit om te controleren of de gegevens oneven of even zijn. Na de pariteitscontrole zal de stopbit een hoog signaal afgeven om de apparaten te informeren dat alle acht gegevensbits met succes naar de ontvanger zijn verzonden.

Omdat het het meest minimalistische seriële protocol is dat slechts twee draden gebruikt, wordt UART tegenwoordig veel gebruikt in smartcards, simkaarten en auto's.

Verwant: Wat is een simkaart? Dingen die u moet weten

SPI (seriële perifere interface)

SPI is een ander populair serieel protocol dat wordt gebruikt voor snellere gegevenssnelheden van ongeveer 20 Mbps. Het gebruikt in totaal vier draden, namelijk SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) en SS/CS (Chip Select). In tegenstelling tot UART gebruikt SPI een master-naar-slave-indeling om meerdere slave-apparaten te bedienen met slechts één master.

MISO en MOSI werken als de Tx en Rx van UART die worden gebruikt om gegevens te verzenden en te ontvangen. Chip Select wordt gebruikt om te selecteren met welke slave de master wil communiceren.

Omdat SPI een synchroon protocol is, gebruikt het een ingebouwde klok van de master om ervoor te zorgen dat zowel de master- als de slave-apparaten op dezelfde frequentie werken. Dit betekent dat de twee apparaten niet langer over een baudrate hoeven te onderhandelen.

Het protocol begint met de master die het slave-apparaat selecteert door het signaal te verlagen naar de specifieke SS/CK die op het slave-apparaat is aangesloten. Wanneer de slave een laag signaal ontvangt, begint hij zowel naar de SCK als naar de MOSI te luisteren. De master verzendt vervolgens een startbit voordat de bits worden verzonden die gegevens bevatten.

Zowel MOSI als MISO zijn full-duplex, wat betekent dat ze tegelijkertijd gegevens kunnen verzenden en ontvangen.

Met de mogelijkheid om verbinding te maken met meerdere slaves, full-duplex communicatie en een lager stroomverbruik dan andere synchrone protocollen zoals I2C, SPI worden gebruikt in geheugenapparaten, digitale geheugenkaarten, ADC naar DAC-converters en kristal geheugen weergegeven.

I2C (inter-geïntegreerd circuit)

I2C is nog een ander synchroon serieel protocol zoals SPI, maar met verschillende voordelen. Deze omvatten de mogelijkheid om meerdere masters en slaves te hebben, eenvoudige adressering (geen chip nodig) Select), werkend met verschillende spanningen en met slechts twee draden die zijn aangesloten op twee pull-up weerstanden.

I2C wordt vaak gebruikt in veel IoT-apparaten, industriële apparatuur en consumentenelektronica.

De twee pinnen in een I2C-protocol zijn de SDA (Serial Data Line) die gegevens verzendt en ontvangt, en de SCL (Serial Clock Line) pin, die functioneert als een klok.

  1. Het protocol begint met de master die een startbit (laag) verzendt vanaf de SDA-pin, gevolgd door een zeven-bits adres dat de slave selecteert, en één bit om lezen of schrijven te selecteren.
  2. Na ontvangst van het startbit en adres stuurt de slave een bevestigingsbit naar de master en begint te luisteren naar de SCL en SDA voor inkomende transmissies.
  3. Zodra de master dit ontvangt, weet hij dat er verbinding is gemaakt met de juiste slave. De master zal nu selecteren tot welk specifiek register (geheugen) van de slave hij toegang wil hebben. Het doet dit door nog eens acht bits te verzenden om aan te geven welk register moet worden gebruikt.
  4. Na ontvangst van het adres, maakt de slave nu het select register gereed voordat hij een nieuwe bevestiging naar de master stuurt.
  5. Nadat de master is geselecteerd welke specifieke slave en welke van zijn registers moet worden gebruikt, stuurt hij uiteindelijk de databit naar de slave.
  6. Nadat de gegevens zijn verzonden, wordt een laatste bevestigingsbit naar de master verzonden voordat de master eindigt met een stopbit (hoog).

Verwant: De beste Arduino IoT-projecten

Waarom seriële communicatie er is om te blijven

Met de opkomst van parallelle en vele draadloze protocollen is seriële communicatie nooit uit populariteit geraakt. Over het algemeen gebruiken ze slechts twee tot vier draden voor het verzenden en ontvangen van gegevens, en seriële protocollen zijn een essentiële manier van communicatie voor elektronica die maar een paar poorten over heeft.

Een andere reden is de eenvoud die zich vertaalt in betrouwbaarheid. Met slechts een paar draden die gegevens één voor één verzenden, heeft serieel zijn betrouwbaarheid bewezen om de volledige gegevenspakketten te verzenden zonder enig verlies of corruptie bij verzending. Zelfs bij hoge frequenties en communicatie over een groter bereik, verslaan seriële protocollen nog steeds veel moderne parallelle communicatieprotocollen die tegenwoordig beschikbaar zijn.

Hoewel velen misschien denken dat seriële communicatie zoals UART, SPI en I2C het nadeel heeft van oud en achterhaald te zijn, blijft het een feit dat ze hun betrouwbaarheid over meerdere jaren hebben bewezen tientallen jaren. Omdat protocollen zo oud zijn zonder enige echte vervanging, suggereert dit alleen maar dat ze in feite onmisbaar zijn en in de nabije toekomst in de elektronica zullen blijven worden gebruikt.

Raspberry Pi, Pico, Arduino en andere single-board computers en microcontrollers

Verward tussen SBC's zoals de Raspberry Pi en microcontrollers zoals de Arduino en Raspberry Pi Pico? Dit is wat u moet weten.

Lees volgende

DeelTweetenE-mail
Gerelateerde onderwerpen
  • Technologie uitgelegd
  • Data gebruik
Over de auteur
MUO-staf

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren