Enten det er periferiutstyr til datamaskiner, smarte apparater, Internet of Things (IoT) enheter eller elektroniske måleverktøy bruker de alle serielle kommunikasjonsprotokoller for å koble sammen forskjellige elektroniske komponenter sammen.
Disse komponentene består vanligvis av en mikrokontroller og slavemoduler som en fingeravtrykksensor, en ESP8266 (Wi-Fi-modul), servoer og serielle skjermer.
Disse enhetene bruker forskjellige typer kommunikasjonsprotokoller. Nedenfor vil du lære om noen av de mest populære seriekommunikasjonsprotokollene, hvordan de fungerer, deres fordeler og hvorfor de fortsatt er i bruk.
Hva er seriell kommunikasjon?
Serielle kommunikasjonsprotokoller har vært her helt siden oppfinnelsen av morsekoden i 1838. I dag bruker moderne serielle kommunikasjonsprotokoller de samme prinsippene. Signaler genereres og overføres på en enkelt ledning ved gjentatte ganger å kortslutte to ledere sammen. Denne korte fungerer som en bryter; den slås på (høy) og av (lav), og gir binære signaler. Hvordan dette signalet sendes og mottas vil avhenge av typen seriell kommunikasjonsprotokoll som brukes.
Med oppfinnelsen av transistoren og innovasjonene som fulgte, gjorde både ingeniører og tindere prosesseringsenheter og minne mindre, raskere og mer strømeffektive. Disse endringene krevde at busskommunikasjonsprotokoller var like teknologisk avanserte som komponentene som ble koblet til. Dermed oppfinnelsen av serielle protokoller som UART, I2C og SPI. Selv om disse serielle protokollene er flere tiår gamle, er de fortsatt foretrukket for mikrokontrollere og bare-metal-programmering.
UART (Universal Asynchronous Receiver-Transmitter)
UART-protokollen er en av de eldste, men mest pålitelige, serielle kommunikasjonsprotokollene vi fortsatt bruker i dag. Denne protokollen bruker to ledninger kjent som Tx (sende) og Rx (mottak) for at begge komponentene skal kommunisere.
For å overføre data må både senderen og mottakeren være enig med fem vanlige konfigurasjoner, disse er:
- Baud hastighet: Overføringshastigheten for hvor raskt data skal overføres.
- Datalengde: Det avtalte antallet biter som mottakeren vil lagre i sine registre.
- Startbit: Et lavt signal som lar mottakeren vite når data skal overføres.
- Stoppbit: Et høyt signal som lar mottakeren vite når den siste biten (den mest signifikante biten) er sendt.
- Paritetsbit: Enten et høyt eller lavt signal brukes til å sjekke om data som ble sendt var korrekte eller ødelagte.
Siden UART er en asynkron protokoll, har den ikke sin egen klokke som regulerer dataoverføringshastigheten. Som et alternativ bruker den overføringshastighet for timing når en bit blir overført. Den vanlige overføringshastigheten som brukes for UART er 9600 baud, som betyr en overføringshastighet på 9600 bits per sekund.
Hvis vi gjør regnestykket og deler en bit på 9600 baud, kan vi beregne hvor raskt en bit med data overføres til mottakeren.
1/9600 =104 mikrosekunder
Dette betyr at UART-enhetene våre begynner å telle 104 mikrosekunder for å vite når neste bit vil sende.
Når UART-enheter er tilkoblet, heves alltid standardsignalet til høyt. Når den oppdager et lavfrekvent signal, vil mottakeren begynne å telle 104 mikrosekunder pluss ytterligere 52 mikrosekunder før den begynner å lagre bitene i registrene (minnet).
Siden det allerede var avtalt at åtte biter skulle være datalengde, vil den begynne å sjekke for paritet når den har lagret åtte biter med data for å sjekke om data er oddetall eller partall. Etter paritetskontrollen vil stoppbiten heve et høyt signal for å varsle enhetene om at hele åtte databiter ble overført til mottakeren.
UART er den mest minimalistiske serieprotokollen som bruker bare to ledninger, og brukes i dag ofte i smartkort, SIM-kort og biler.
I slekt: Hva er et SIM-kort? Ting du trenger å vite
SPI (Serial Peripheral Interface)
SPI er en annen populær seriell protokoll som brukes for raskere datahastigheter på rundt 20 Mbps. Den bruker totalt fire ledninger, nemlig SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) og SS/CS (Chip Select). I motsetning til UART, bruker SPI et master-til-slave-format for å kontrollere flere slaveenheter med bare én master.
MISO og MOSI fungerer som Tx og Rx til UART som brukes til å overføre og motta data. Chip Select brukes til å velge hvilken slave masteren ønsker å kommunisere med.
Siden SPI er en synkron protokoll, bruker den en innebygd klokke fra masteren for å sikre at både master- og slaveenhetene kjører på samme frekvens. Dette betyr at de to enhetene ikke lenger trenger å forhandle en overføringshastighet.
Protokollen starter med at masteren velger slaveenheten ved å senke signalet til den spesifikke SS/CK koblet til slaveenheten. Når slaven mottar et lavt signal, begynner den å lytte til både SCK og MOSI. Masteren sender deretter en startbit før den sender bitene som inneholder data.
Både MOSI og MISO er full-dupleks, noe som betyr at de kan sende og motta data på samme tid.
Med sin evne til å koble til flere slaver, full-dupleks kommunikasjon og lavere strømforbruk enn andre synkrone protokoller som I2C, SPI brukes i minneenheter, digitale minnekort, ADC til DAC-omformere og krystall minne vises.
I2C (inter-integrert krets)
I2C er nok en synkron seriell protokoll som SPI, men med flere fordeler i forhold til det. Disse inkluderer muligheten til å ha flere mastere og slaver, enkel adressering (ikke behov for Chip Select), opererer med forskjellige spenninger, og bruker bare to ledninger koblet til to pull-up motstander.
I2C brukes ofte i mange IoT-enheter, industrielt utstyr og forbrukerelektronikk.
De to pinnene i en I2C-protokoll er SDA (Serial Data Line) som sender og mottar data, og SCL (Serial Clock Line) pin, som fungerer som en klokke.
- Protokollen starter med at masteren sender en startbit (lav) fra sin SDA-pin, etterfulgt av en syv-bits adresse som velger slaven, og en bit til for å velge les eller skriv.
- Etter å ha mottatt startbiten og adressen, sender slaven en bekreftelsesbit til masteren og begynner å lytte til SCL og SDA for innkommende sendinger.
- Når masteren mottar dette, vet den at forbindelsen er gjort til riktig slave. Masteren vil nå velge hvilket spesifikt register (minne) fra slaven den vil ha tilgang til. Den gjør det ved å sende ytterligere åtte bits som spesifiserer hvilket register som skal brukes.
- Etter å ha mottatt adressen, leser slaven nå valgregisteret før han sender en ny bekreftelse til masteren.
- Etter å ha valgt hvilken spesifikk slave og hvilke av dens registre som skal brukes, sender masteren til slutt databiten til slaven.
- Etter at dataene er sendt, sendes en siste bekreftelsesbit til masteren før masteren avsluttes med en stoppbit (høy).
I slekt: De beste Arduino IoT-prosjektene
Hvorfor seriell kommunikasjon er kommet for å bli
Med fremveksten av parallelle og mange trådløse protokoller, har seriell kommunikasjon aldri falt ut av popularitet. Vanligvis bruker bare to til fire ledninger for overføring og mottak av data, serielle protokoller er en viktig kommunikasjonsmåte for elektronikk som bare har noen få porter til overs.
En annen grunn er dens enkelhet som oversettes til pålitelighet. Med bare noen få ledninger som sender data én gang om gangen, har seriell bevist sin pålitelighet til å sende hele pakkene med data uten tap eller korrupsjon ved overføring. Selv ved høye frekvenser og kommunikasjon med lengre rekkevidde slår serielle protokoller fortsatt mange moderne parallellkommunikasjonsprotokoller som er tilgjengelige i dag.
Selv om mange kanskje tror at seriell kommunikasjon som UART, SPI og I2C har ulempen av å være gamle og utdaterte, gjenstår det faktum at de har bevist sin pålitelighet over flere tiår. Protokoller som er så gamle uten noen reell erstatning antyder bare at de faktisk er uunnværlige og vil fortsette å bli brukt i elektronikk i overskuelig fremtid.
Forvirret mellom SBC-er som Raspberry Pi og mikrokontrollere som Arduino og Raspberry Pi Pico? Her er det du trenger å vite.
Les Neste
- Teknologi forklart
- Databruk
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere