- Typer af kommunikationsprotokoller
- Transmissionsformer i seriel kommunikation
- Ursynkronisering
- Andre vilkår relateret til seriel kommunikation
- Synkrone serielle protokoller
- Asynkrone serielle protokoller
- Konklusion
Før vi starter med serielle kommunikationsprotokoller, lad os bryde terminologien i tre dele. Den meddelelse er meget velkendt terminologi, der involverer udveksling af information mellem to eller flere medier. I indlejrede systemer betyder kommunikationen udveksling af data mellem to mikrocontrollere i form af bits. Denne udveksling af databits i mikrocontroller sker ved hjælp af nogle sæt definerede regler kendt som kommunikationsprotokoller. Hvis dataene nu sendes i serie, dvs. den ene efter den anden, er kommunikationsprotokollen kendt som Serial Communication Protocol. Mere specifikt transmitteres databitene en ad gangen på sekventiel måde over databussen eller kommunikationskanalen i seriel kommunikation.
Typer af kommunikationsprotokoller
Der findes forskellige typer dataoverførsler i den digitale elektronik, såsom seriel kommunikation og parallel kommunikation. Tilsvarende er protokollerne opdelt i to typer såsom seriel kommunikationsprotokol og parallelle kommunikationsprotokoller. Eksempler på parallelle kommunikationsprotokoller er ISA, ATA, SCSI, PCI og IEEE-488. Tilsvarende er der flere eksempler på serielle kommunikationsprotokoller som CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire og SATA osv.
I denne artikel vil de forskellige typer serielle kommunikationsprotokoller blive diskuteret. Seriel kommunikation er den mest anvendte metode til at overføre information mellem periferiudstyr til databehandling. Enhver elektronisk enhed, hvad enten det er pc (pc) eller mobil, kører på seriel kommunikation. Protokollen er den sikre og pålidelige form for kommunikation, der har et sæt regler adresseret af kildeværten (afsenderen) og destinationsværten (modtageren) svarende til parallel kommunikation.
Transmissionsformer i seriel kommunikation
Som allerede nævnt ovenfor sendes data i seriel kommunikation i form af bits, dvs. binære impulser, og det er velkendt, at binær en repræsenterer logikken HIGH og nul repræsenterer logikken LAV. Der er flere typer seriel kommunikation afhængigt af typen af transmissionstilstand og dataoverførsel. Transmissionstilstande er klassificeret som Simplex, Half Duplex og Full Duplex.
Simplex metode:
I simplex-metoden kan en af medierne, dvs. afsenderen eller modtageren, være aktiv ad gangen. Så hvis afsenderen transmitterer dataene, kan modtageren kun acceptere og omvendt. Så simplex-metoden er envejskommunikationsteknik. De velkendte eksempler på simplex-metoden er fjernsyn og radio.
Halv dupleks metode:
I halv duplex-metode kan både afsender og modtager være aktive, men ikke på samme tid. Så hvis afsenderen sender, kan modtageren acceptere, men ikke sende, og omvendt. De velkendte eksempler på halv duplex er internettet, hvor brugeren sender en anmodning om data og får det fra serveren.
Fuld dupleksmetode:
I fuld duplex-metode kan både modtager og sender sende data til hinanden på samme tid. Det velkendte eksempel er mobiltelefon.
Bortset fra dette spiller uret en vigtig rolle for passende datatransmission, og det er en af de primære kilder. Fejl i uret resulterer i uventet datatransmission, selv undertiden datatab. Så urssynkroniseringen bliver meget vigtig, når du bruger seriel kommunikation.
Ursynkronisering
Uret er forskelligt for serielle enheder, og det er klassificeret i to typer nemlig. Synkron serielt interface og asynkron serielt interface.
Synkron serielt interface:
Det er en punkt-til-punkt-forbindelse fra en mester til slave. I denne type interface bruger alle enheder en enkelt CPU-bus til at dele data og ur. Datatransmissionen bliver hurtigere med samme bus til at dele ur og data. Der er heller ikke nogen uoverensstemmelse i baudrate i denne grænseflade. På sendersiden er der en forskydning af dataene til seriel linje, der giver uret som et separat signal, da der ikke er noget start-, stop- og paritetsbit tilføjes til data. På modtagersiden ekstraheres dataene ved hjælp af det ur, der leveres af senderen, og konverterer de serielle data tilbage til den parallelle form. De velkendte eksempler er I2C og SPI.
Asynkron seriel grænseflade:
I asynkron seriel grænseflade er det eksterne ursignal fraværende. De asynkrone serielle grænseflader kan hovedsagelig ses i langdistanceapplikationer og passer perfekt til den stabile kommunikation. I asynkron seriel grænseflade gør fraværet af ekstern urkilde det afhængigt af flere parametre såsom datastrømskontrol, fejlkontrol, baudrate-kontrol, transmissionskontrol og modtagelseskontrol. På sendersiden er der en forskydning af parallelle data på den serielle linje ved hjælp af sit eget ur. Det tilføjer også start-, stop- og paritetscheckbitene. På modtagersiden ekstraherer modtageren dataene ved hjælp af sit eget ur og konverterer serielle data tilbage til den parallelle form efter fjernelse af start-, stop- og paritetsbit. De velkendte eksempler er RS-232, RS-422 og RS-485.
Andre vilkår relateret til seriel kommunikation
Bortset fra ursynkronisering er der visse ting, du skal huske, når du overfører data serielt som baudrate, valg af databit (indramning), synkronisering og fejlkontrol. Lad os diskutere disse vilkår i korte træk.
Baudrate: Baudrate er hastighed, hvormed dataene overføres mellem senderen og modtageren i form af bits pr. Sekund (bps). Den mest anvendte baudhastighed er 9600. Men der er et andet valg af baudhastighed, såsom 1200, 2400, 4800, 57600, 115200. Jo mere baudhastigheden er fedt, overføres dataene ad gangen. Også for datakommunikationen skal baudhastigheden være den samme for både sender og modtager.
Indramning: Indramning henvises til antallet af databits, der skal sendes fra sender til modtager. Antallet af databits varierer i tilfælde af anvendelse. Det meste af applikationen bruger 8 bit som standard databits, men det kan også vælges som 5, 6 eller 7 bits.
Synkronisering: Synkronisering Bits er vigtige for at vælge et stykke data. Det fortæller starten og slutningen af databits. Senderen indstiller start- og stopbits til datarammen, og modtageren identificerer det i overensstemmelse hermed og udfører den videre behandling.
Fejlkontrol: Fejlkontrollen spiller en vigtig rolle under seriel kommunikation, da der er mange faktorer, der påvirker og tilføjer støj i den serielle kommunikation. For at slippe af med denne fejl bruges paritetsbitene, hvor paritet vil kontrollere for lige og ulige paritet. Så hvis datarammen indeholder det lige antal 1'er, så er det kendt som jævn paritet, og paritetsbiten i registret er indstillet til 1. Hvis dataen indeholder ligeledes ulige antal 1'er, så er den kendt som ulige paritet og rydder ulige paritetsbit i registret.
Protokol er ligesom et almindeligt sprog, som systemet bruger til at forstå dataene. Som beskrevet ovenfor er den serielle kommunikationsprotokol opdelt i typer, dvs. synkron og asynkron. Nu vil begge blive diskuteret detaljeret.
Synkrone serielle protokoller
Den synkrone type serielle protokoller som SPI, I2C, CAN og LIN bruges i forskellige projekter, fordi det er en af de bedste ressourcer til indbygget perifert udstyr. Disse er også de meget anvendte protokoller i større applikationer.
SPI-protokol
Den serielle perifere grænseflade (SPI) er en synkron grænseflade, der gør det muligt at forbinde flere SPI-mikrocontrollere. I SPI kræves separate ledninger til data og urlinje. Uret er heller ikke inkluderet i datastrømmen og skal leveres som et separat signal. SPI kan konfigureres enten som master eller som slave. De fire grundlæggende SPI-signaler (MISO, MOSI, SCK og SS), Vcc og Ground er en del af datakommunikation. Så det har brug for 6 ledninger til at sende og modtage data fra slave eller master. Teoretisk kan SPI have ubegrænset antal slaver. Datakommunikationen er konfigureret i SPI-registre. SPI kan levere op til 10 Mbps hastighed og er ideel til datakommunikation med høj hastighed.
De fleste mikrokontrollere har indbygget support til SPI og kan være direkte tilsluttet SPI-understøttet enhed:
- SPI-kommunikation med PIC Microcontroller PIC16F877A
- Sådan bruges SPI-kommunikation i STM32 Microcontroller
- Sådan bruges SPI i Arduino: Kommunikation mellem to Arduino Boards
I2C seriel kommunikation
Inter-integreret kredsløb (I2C) to-linjekommunikation mellem forskellige IC'er eller moduler, hvor to linjer er SDA (Serial Data Line) og SCL (Serial Clock Line). Begge ledninger skal forbindes til en positiv forsyning ved hjælp af en pull-up-modstand. I2C kan levere hastighed op til 400 Kbps, og den bruger 10 bit eller 7 bit adresseringssystem til at målrette mod en bestemt enhed på i2c-bussen, så den kan oprette forbindelse til op til 1024 enheder. Den har kommunikation med begrænset længde og er ideel til kommunikation om bord. I2C-netværk er nemme at opsætte, da det kun bruger to ledninger, og nye enheder simpelthen kan forbindes til de to almindelige I2C-buslinjer. Samme som SPI, har microcontroller generelt I2C-ben til at forbinde enhver I2C-enhed:
- Sådan bruges I2C-kommunikation i STM32 Microcontroller
- I2C Kommunikation med PIC Microcontroller PIC16F877
- Sådan bruges I2C i Arduino: Kommunikation mellem to Arduino Boards
USB
USB (Universal Serial Bus) er bredt protokol med forskellige versioner og hastigheder. Højst 127 eksterne enheder kan tilsluttes til en enkelt USB-værtscontroller. USB fungerer som en "plug and play" -enhed. USB bruges næsten i enheder såsom tastaturer, printere, medieenheder, kameraer, scannere og mus. Det er designet til nem installation, hurtigere dataklassificering, mindre kabler og hot swapping. Det har erstattet de større og langsommere serielle og parallelle porte. USB bruger differentiel signalering for at reducere interferens og tillade højhastighedstransmission over lang afstand.
En differentiel bus er bygget med to ledninger, den ene repræsenterer de transmitterede data og den anden dens komplement. Ideen er, at den 'gennemsnitlige' spænding på ledningerne ikke bærer nogen information, hvilket resulterer i mindre interferens. I USB får enhederne lov til at trække en vis mængde strøm uden at spørge værten. USB bruger kun to ledninger til dataoverførsel og er hurtigere end den serielle og parallelle grænseflade. USB-versioner understøtter forskellige hastigheder såsom 1,5 Mbps (USB v1.0), 480 Mbps (USB2.0), 5 Gbps (USB v3.0). Længden på det enkelte USB-kabel kan nå op til 5 meter uden hub og 40 meter med hub.
KAN
Controller Area Network (CAN) bruges i f.eks. Bilindustrien til at muliggøre kommunikation mellem ECU'er (motorstyringsenheder) og sensorer. CAN-protokollen er robust, billig og beskedbaseret og dækker i mange applikationer - fx biler, lastbiler, traktorer, industrielle robotter. CAN-bussystemet muliggør central fejldiagnose og konfiguration på tværs af alle ECU'er. CAN-meddelelser prioriteres via id'er, så de højest prioriterede id'er ikke afbrydes. Hver ECU indeholder en chip til modtagelse af alle transmitterede meddelelser, beslutter relevans og handler i overensstemmelse hermed - dette muliggør let modifikation og inkludering af yderligere noder (f.eks. CAN-bus dataloggere). Ansøgningerne inkluderer start / stop af køretøjer, kollisionsundgåelsessystemer. CAN-bussystemerne kan levere hastighed op til 1 Mbps.
Microwire
MICROWIRE er en 3Mbps seriel 3-leder interface, der i det væsentlige er en delmængde af SPI-interface. Microwire er en seriel I / O-port på mikrokontrollere, så Microwire-bussen findes også på EEPROM'er og andre perifere chips. De 3 linjer er SI (Serial Input), SO (SerialOutput) og SK (Serial Clock). Serien input (SI) linje til mikrocontroller, SO er den serielle output linje, og SK er den serielle ur linje. Data flyttes ud på den faldende kant af SK og værdiansættes på den stigende kant. SI flyttes ind på den stigende kant af SK. En ekstra busforbedring til MICROWIRE kaldes MICROWIRE / Plus. Den største forskel mellem de to busser ser ud til at være, at MICROWIRE / Plus-arkitekturen i mikrocontrolleren er mere kompleks. Det understøtter hastigheder op til 3 Mbps.
Asynkrone serielle protokoller
Den asynkrone type serielle protokoller er meget vigtig, når det gælder pålidelig dataoverførsel på længere afstand. Asynkron kommunikation kræver ikke et tidsur, der er fælles for begge enheder. Hver enhed lytter uafhængigt og sender digitale impulser, der repræsenterer databitar med en aftalt hastighed. Asynkron seriel kommunikation kaldes undertiden Transistor-Transistor Logic (TTL) seriel, hvor højspændingsniveauet er logisk 1, og lavspændingen svarer til logik 0. Næsten hver mikrocontroller på markedet i dag har mindst en universel asynkron modtager- Transmitter (UART) til seriel kommunikation. Eksemplerne er RS232, RS422, RS485 osv.
RS232
RS232 (anbefalet standard 232) er en meget almindelig protokol, der bruges til at forbinde forskellige perifere enheder såsom skærme, CNC'er osv. RS232 kommer i mandlige og kvindelige stik. RS232 er punkt-til-punkt topologi med maksimalt tilsluttet enhed og dækker afstand op til 15 meter ved 9600 bps. Information om RS-232-grænsefladen transmitteres digitalt med logisk 0 og 1. Den logiske "1" (MARK) svarer til en spænding i området fra -3 til -15 V. Den logiske "0" (MELLEMRUM) svarer til en spænding i området fra +3 til +15 V. Den leveres i DB9-stik, der har 9 pinouts, såsom TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 svarer til RS232, som giver mulighed for samtidig at sende og modtage meddelelser på separate linjer, men bruger et differentielt signal til dette. I RS-422-netværket kan der kun være en transmitterende enhed og op til 10 modtagende enheder. Dataoverførselshastigheden i RS-422 afhænger af afstanden og kan variere fra 10 kbps (1200 meter) til 10 Mbps (10 meter). RS-422-linjen er 4 ledninger til datatransmission (2 snoede ledninger til transmission og 2 snoede ledninger til modtagelse) og en fælles GND-jordledning. Spændingen på datalinjerne kan være i området fra -6 V til +6 V. Den logiske forskel mellem A og B er større end +0,2 V. Logisk 1 svarer til forskellen mellem A og B mindre end -0,2 V. RS-422-standarden definerer ikke en bestemt type stik, normalt kan det være en klemme eller et DB9-stik.
RS485
Da RS485 bruger flerpunkts topologi, bruges den mest i brancher og er branchens foretrukne protokol. RS422 kan forbinde 32 linjedrivere og 32 modtagere i forskellige konfigurationer, men ved hjælp af yderligere repeatere og signalforstærkere op til 256 enheder. RS-485 definerer ikke en bestemt type stik, men det er ofte en terminalblok eller et DB9-stik. Driftshastigheden afhænger også af linjens længde og kan nå 10 Mbit / s ved 10 meter. Spændingen på linjerne er i området fra -7 V til +12 V. Der er to typer RS-485 såsom halv duplex-tilstand RS-485 med 2 kontakter og fuld duplex-tilstand RS-485 med 4 kontakter. For at lære mere om brug af RS485 med andre mikrocontrollere, se linkene:
- RS-485 MODBUS seriel kommunikation ved hjælp af Arduino UNO som slave
- RS-485 seriel kommunikation mellem Raspberry Pi og Arduino Uno
- RS485 seriel kommunikation mellem Arduino Uno og Arduino Nano
- Seriel kommunikation mellem STM32F103C8 og Arduino UNO ved hjælp af RS-485
Konklusion
Seriel kommunikation er et af de meget anvendte kommunikationsinterfacesystemer inden for elektronik og indlejrede systemer. Datahastighederne kan være forskellige for forskellige applikationer. Serielle kommunikationsprotokoller kan spille en afgørende rolle, når de handler i denne type applikationer. Så det bliver meget vigtigt at vælge den rigtige serieprotokol.