Oavsett om det är kringutrustning för datorer, smarta apparater, Internet of Things (IoT)-enheter eller elektroniska mätverktyg använder de alla seriella kommunikationsprotokoll för att koppla ihop olika elektroniska komponenter tillsammans.

Dessa komponenter består vanligtvis av en mikrokontroller och slavmoduler som en fingeravtryckssensor, en ESP8266 (Wi-Fi-modul), servon och seriella displayer.

Dessa enheter använder olika typer av kommunikationsprotokoll. Nedan kommer du att lära dig om några av de mest populära seriella kommunikationsprotokollen, hur de fungerar, deras fördelar och varför de fortfarande används.

Vad är seriell kommunikation?

Seriella kommunikationsprotokoll har funnits här ända sedan morsekodens uppfinning 1838. Idag använder moderna seriella kommunikationsprotokoll samma principer. Signaler genereras och överförs på en enda tråd genom att upprepade gånger kortsluta två ledare tillsammans. Denna korta fungerar som en switch; den slås på (hög) och av (låg), vilket ger binära signaler. Hur denna signal sänds och tas emot beror på vilken typ av seriellt kommunikationsprotokoll som används.

instagram viewer

Bildkredit: shankar.s/Wikimedia Commons

Med uppfinningen av transistorn och de innovationer som följde gjorde både ingenjörer och pysslare bearbetningsenheter och minne mindre, snabbare och mer energieffektiva. Dessa förändringar krävde att busskommunikationsprotokollen skulle vara lika tekniskt avancerade som de komponenter som ansluts. Alltså uppfinningen av seriella protokoll som UART, I2C och SPI. Även om dessa seriella protokoll är flera decennier gamla, är de fortfarande att föredra för mikrokontroller och bara-metal-programmering.

UART (Universal Asynchronous Receiver-Transmitter)

UART-protokollet är ett av de äldsta men ändå mest pålitliga seriella kommunikationsprotokollen vi fortfarande använder idag. Detta protokoll använder två ledningar som kallas Tx (sändning) och Rx (mottagning) för att båda komponenterna ska kommunicera.

För att överföra data måste både sändaren och mottagaren överensstämma med fem vanliga konfigurationer, dessa är:

  • Baud hastighet: Överföringshastigheten för hur snabbt data ska överföras.
  • Datalängd: Det överenskomna antalet bitar som mottagaren kommer att spara i sina register.
  • Startbit: En låg signal som låter mottagaren veta när data är på väg att överföras.
  • Stop Bit: En hög signal som låter mottagaren veta när den sista biten (den mest signifikanta biten) har skickats.
  • Paritetsbit: Antingen en hög eller låg signal som används för att kontrollera om skickade data var korrekta eller korrupta.

Eftersom UART är ett asynkront protokoll har det inte en egen klocka som reglerar dataöverföringshastigheten. Som ett alternativ använder den överföringshastighet för timing när en bit sänds. Den vanliga baudhastigheten som används för UART är 9600 baud, vilket betyder en överföringshastighet på 9600 bitar per sekund.

Om vi ​​räknar ut och dividerar en bit med 9600 baud kan vi beräkna hur snabbt en bit data överförs till mottagaren.

1/9600 =104 mikrosekunder

Det betyder att våra UART-enheter börjar räkna 104 mikrosekunder för att veta när nästa bit kommer att sändas.

När UART-enheter har anslutits höjs standardsignalen alltid till hög. När den upptäcker en lågfrekvent signal kommer mottagaren att börja räkna 104 mikrosekunder plus ytterligare 52 mikrosekunder innan den börjar spara bitarna i sina register (minne).

Eftersom det redan var överens om att åtta bitar skulle vara datalängd, när den väl har sparat åtta bitar av data, kommer den att börja kontrollera för paritet för att kontrollera om data är udda eller jämn. Efter paritetskontrollen kommer stoppbiten att höja en hög signal för att meddela enheterna att hela åtta databitar har överförts till mottagaren.

Eftersom UART är det mest minimalistiska seriella protokollet som använder endast två ledningar, används UART idag i smarta kort, SIM-kort och bilar.

Relaterad: Vad är ett SIM-kort? Saker du behöver veta

SPI (Serial Peripheral Interface)

SPI är ett annat populärt seriellt protokoll som används för snabbare datahastigheter på cirka 20 Mbps. Den använder totalt fyra ledningar, nämligen SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) och SS/CS (Chip Select). Till skillnad från UART använder SPI ett master-to-slave-format för att styra flera slavenheter med endast en master.

MISO och MOSI fungerar som Tx och Rx för UART som används för att sända och ta emot data. Chip Select används för att välja vilken slav mastern vill kommunicera med.

Eftersom SPI är ett synkront protokoll använder det en inbyggd klocka från mastern för att säkerställa att både master- och slavenheterna körs på samma frekvens. Detta innebär att de två enheterna inte längre behöver förhandla om en baudhastighet.

Protokollet börjar med att mastern väljer slavenheten genom att sänka dess signal till den specifika SS/CK som är ansluten till slavenheten. När slaven tar emot en låg signal börjar den lyssna på både SCK och MOSI. Mastern skickar sedan en startbit innan de skickar bitarna som innehåller data.

Både MOSI och MISO är full-duplex, vilket innebär att de kan sända och ta emot data samtidigt.

Med sin förmåga att ansluta till flera slavar, full duplex kommunikation och lägre strömförbrukning än andra synkrona protokoll som I2C, SPI används i minnesenheter, digitala minneskort, ADC till DAC-omvandlare och kristall minne visas.

I2C (Inter-Integrated Circuit)

I2C är ännu ett synkront seriellt protokoll som SPI, men med flera fördelar jämfört med det. Dessa inkluderar möjligheten att ha flera masters och slavar, enkel adressering (inget behov av Chip Select), arbetar med olika spänningar och använder endast två ledningar anslutna till två pull-up motstånd.

I2C används ofta i många IoT-enheter, industriell utrustning och hemelektronik.

De två stiften i ett I2C-protokoll är SDA (Serial Data Line) som sänder och tar emot data, och SCL-stiftet (Serial Clock Line), som fungerar som en klocka.

  1. Protokollet börjar med att mastern skickar en startbit (låg) från dess SDA-stift, följt av en sjubitars adress som väljer slaven och en bit till för att välja läs eller skriv.
  2. Efter att ha mottagit startbiten och adressen skickar slaven sedan en bekräftelsebit till mastern och börjar lyssna på SCL och SDA för inkommande sändningar.
  3. När mastern tar emot detta vet den att anslutningen har gjorts till rätt slav. Mastern kommer nu att välja vilket specifikt register (minne) från slaven den vill komma åt. Den gör det genom att skicka ytterligare åtta bitar som specificerar vilket register som ska användas.
  4. Efter att ha tagit emot adressen läser slaven nu valregistret innan den skickar ytterligare en bekräftelse till mastern.
  5. Efter att ha valt vilken specifik slav och vilket av dess register som ska användas, skickar mastern slutligen databiten till slaven.
  6. Efter att data har skickats skickas en sista kvitteringsbit till mastern innan mastern slutar med en stoppbit (hög).

Relaterad: De bästa Arduino IoT-projekten

Varför seriell kommunikation är här för att stanna

Med framväxten av parallella och många trådlösa protokoll har seriell kommunikation aldrig fallit ur popularitet. Generellt använder bara två till fyra ledningar för att överföra och ta emot data, seriella protokoll är ett viktigt kommunikationssätt för elektronik som bara har ett fåtal portar över.

En annan anledning är dess enkelhet som översätts till tillförlitlighet. Med endast ett fåtal ledningar som skickar data en gång i taget, har seriell visat sin tillförlitlighet för att skicka hela datapaketen utan förlust eller korruption vid överföring. Även vid höga frekvenser och kommunikation med längre räckvidd slår seriella protokoll fortfarande många moderna parallella kommunikationsprotokoll som finns tillgängliga idag.

Även om många kanske tror att seriell kommunikation som UART, SPI och I2C har nackdelen av att vara gamla och föråldrade kvarstår faktum att de har bevisat sin tillförlitlighet över flera decennier. Protokoll som är så här gamla utan någon egentlig ersättning tyder bara på att de faktiskt är oumbärliga och kommer att fortsätta att användas inom elektronik under överskådlig framtid.

Raspberry Pi, Pico, Arduino och andra enkortsdatorer och mikrokontroller

Förvirrad mellan SBCs som Raspberry Pi och mikrokontroller som Arduino och Raspberry Pi Pico? Här är vad du behöver veta.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Teknik förklaras
  • Dataanvändning
Om författaren
MUO personal

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera