Uanset om det er computerudstyr, smarte apparater, Internet of Things (IoT) enheder eller elektroniske måleværktøjer bruger de alle serielle kommunikationsprotokoller til at forbinde forskellige elektroniske komponenter sammen.
Disse komponenter består normalt af en mikrocontroller og slavemoduler såsom en fingeraftrykssensor, en ESP8266 (Wi-Fi-modul), servoer og serielle skærme.
Disse enheder bruger forskellige slags kommunikationsprotokoller. Nedenfor vil du lære om nogle af de mest populære serielle kommunikationsprotokoller, hvordan de virker, deres fordele, og hvorfor de forbliver i brug.
Hvad er seriel kommunikation?
Serielle kommunikationsprotokoller har været her lige siden opfindelsen af morsekoden i 1838. I dag bruger moderne serielle kommunikationsprotokoller de samme principper. Signaler genereres og transmitteres på en enkelt ledning ved gentagne gange at kortslutte to ledere sammen. Denne korte fungerer som en switch; den tænder (høj) og slukker (lav) og giver binære signaler. Hvordan dette signal transmitteres og modtages vil afhænge af typen af seriel kommunikationsprotokol, der anvendes.
Med opfindelsen af transistoren og de nyskabelser, der fulgte, gjorde både ingeniører og tinkerer processorenheder og hukommelse mindre, hurtigere og mere strømeffektive. Disse ændringer krævede, at buskommunikationsprotokoller var lige så teknologisk avancerede som de komponenter, der blev tilsluttet. Således opfindelsen af serielle protokoller såsom UART, I2C og SPI. Selvom disse serielle protokoller er flere årtier gamle, foretrækkes de stadig til mikrocontrollere og bare-metal-programmering.
UART (Universal Asynchronous Receiver-Transmitter)
UART-protokollen er en af de ældste, men mest pålidelige serielle kommunikationsprotokoller, vi stadig bruger i dag. Denne protokol bruger to ledninger kendt som Tx (transmit) og Rx (Receive) til at begge komponenter kan kommunikere.
For at transmittere data skal både senderen og modtageren være enige i fem almindelige konfigurationer, disse er:
- Baud hastighed: Overførselshastigheden for, hvor hurtigt data skal transmitteres.
- Datalængde: Det aftalte antal bits, som modtageren vil gemme i sine registre.
- Start bit: Et lavt signal, der lader modtageren vide, når data er ved at blive overført.
- Stop Bit: Et højt signal, der lader modtageren vide, hvornår den sidste bit (mest signifikante bit) er blevet sendt.
- Paritetsbit: Enten et højt eller lavt signal bruges til at kontrollere, om de sendte data var korrekte eller beskadigede.
Da UART er en asynkron protokol, har den ikke sit eget ur, der regulerer dataoverførselshastigheden. Som et alternativ bruger den baudrate til timing, når en bit bliver transmitteret. Den sædvanlige baudhastighed, der bruges til UART, er 9600 baud, hvilket betyder en transmissionshastighed på 9600 bits pr. sekund.
Hvis vi regner ud og dividerer en bit med 9600 baud, kan vi beregne, hvor hurtigt en bit data transmitteres til modtageren.
1/9600 =104 mikrosekunder
Det betyder, at vores UART-enheder begynder at tælle 104 mikrosekunder for at vide, hvornår den næste bit vil sende.
Når UART-enheder er blevet tilsluttet, hæves standardsignalet altid til højt. Når den detekterer et lavfrekvent signal, begynder modtageren at tælle 104 mikrosekunder plus yderligere 52 mikrosekunder, før den begynder at gemme bitsene i sine registre (hukommelse).
Da det allerede var aftalt, at otte bit skulle være datalængde, vil den, når den har gemt otte bits data, begynde at tjekke for paritet for at kontrollere, om data er ulige eller lige. Efter paritetskontrollen vil stopbitten udsende et højt signal for at underrette enhederne om, at hele otte databit er blevet overført til modtageren.
Da UART er den mest minimalistiske serielle protokol, der kun bruger to ledninger, bruges UART i dag i smartkort, SIM-kort og biler.
Relaterede: Hvad er et SIM-kort? Ting du behøver at vide
SPI (Serial Peripheral Interface)
SPI er en anden populær seriel protokol, der bruges til hurtigere datahastigheder på omkring 20 Mbps. Den bruger i alt fire ledninger, nemlig SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) og SS/CS (Chip Select). I modsætning til UART bruger SPI et master-to-slave-format til at styre flere slave-enheder med kun én master.
MISO og MOSI fungerer som Tx og Rx for UART, der bruges til at transmittere og modtage data. Chip Select bruges til at vælge hvilken slave masteren ønsker at kommunikere med.
Da SPI er en synkron protokol, bruger den et indbygget ur fra masteren for at sikre, at både master- og slaveenhederne kører på samme frekvens. Det betyder, at de to enheder ikke længere behøver at forhandle en baudrate.
Protokollen starter med, at masteren vælger slaveenheden ved at sænke dens signal til den specifikke SS/CK, der er forbundet til slaveenheden. Når slaven modtager et lavt signal, begynder den at lytte til både SCK og MOSI. Masteren sender derefter en startbit, før den sender de bits, der indeholder data.
Både MOSI og MISO er fuld-duplex, hvilket betyder, at de kan sende og modtage data på samme tid.
Med sin evne til at oprette forbindelse til flere slaver, fuld-duplex kommunikation og lavere strømforbrug end andre synkrone protokoller som I2C, SPI bruges i hukommelsesenheder, digitale hukommelseskort, ADC til DAC-konvertere og krystal hukommelse vises.
I2C (inter-integreret kredsløb)
I2C er endnu en synkron seriel protokol som SPI, men med flere fordele i forhold til det. Disse inkluderer evnen til at have flere mastere og slaver, simpel adressering (intet behov for Chip Vælg), opererer med forskellige spændinger og bruger kun to ledninger forbundet til to pull-ups modstande.
I2C bruges ofte i mange IoT-enheder, industrielt udstyr og forbrugerelektronik.
De to ben i en I2C protokol er SDA (Serial Data Line), som transmitterer og modtager data, og SCL (Serial Clock Line) pinden, der fungerer som et ur.
- Protokollen starter med, at masteren sender en startbit (lav) fra sin SDA-pin, efterfulgt af en syv-bit adresse, der vælger slaven, og en bit til for at vælge læsning eller skrivning.
- Efter at have modtaget startbit og adresse, sender slaven derefter en bekræftelsesbit til masteren og begynder at lytte til SCL og SDA for indgående transmissioner.
- Når masteren modtager dette, ved den, at forbindelsen er foretaget til den korrekte slave. Masteren vil nu vælge hvilket specifikt register (hukommelse) fra slaven den vil have adgang til. Det gør det ved at sende yderligere otte bits, der specificerer, hvilket register der skal bruges.
- Efter at have modtaget adressen, læser slaven nu vælgerregistret, inden den sender endnu en bekræftelse til masteren.
- Efter at have valgt hvilken specifik slave og hvilke af dens registre der skal bruges, sender masteren endelig databitten til slaven.
- Efter at dataene er sendt, sendes en sidste bekræftelsesbit til masteren, inden masteren slutter med en stopbit (høj).
Relaterede: De bedste Arduino IoT-projekter
Hvorfor seriel kommunikation er kommet for at blive
Med fremkomsten af parallelle og mange trådløse protokoller er seriel kommunikation aldrig faldet ud af popularitet. Generelt bruger man kun to til fire ledninger til at sende og modtage data, serielle protokoller er en væsentlig kommunikationsmåde for elektronik, der kun har nogle få porte til overs.
En anden grund er dens enkelhed, som oversættes til pålidelighed. Med kun et par ledninger, der sender data én gang ad gangen, har seriel bevist sin pålidelighed til at sende de komplette datapakker uden tab eller korruption, når de transmitteres. Selv ved høje frekvenser og kommunikation med længere rækkevidde slår serielle protokoller stadig mange moderne parallelle kommunikationsprotokoller, der er tilgængelige i dag.
Selvom mange måske tror, at seriel kommunikation som UART, SPI og I2C har ulempen af at være gamle og forældede, er det et faktum, at de har bevist deres pålidelighed over flere årtier. Protokoller, der er så gamle uden nogen reel erstatning, tyder kun på, at de faktisk er uundværlige og vil fortsætte med at blive brugt i elektronik i en overskuelig fremtid.
Forvirret mellem SBC'er som Raspberry Pi og mikrocontrollere som Arduino og Raspberry Pi Pico? Her er hvad du behøver at vide.
Læs Næste
- Teknologi forklaret
- Dataforbrug
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere