- Vrste komunikacijskih protokolov
- Načini prenosa v serijski komunikaciji
- Sinhronizacija ure
- Drugi izrazi, povezani s serijsko komunikacijo
- Sinhroni serijski protokoli
- Asinhroni serijski protokoli
- Zaključek
Preden začnemo s protokoli serijske komunikacije, razdelimo terminologijo na tri dele. Komunikacija je zelo dobro znano terminologijo, ki vključuje izmenjavo informacij med dvema ali več medijev. V vgrajenih sistemih komunikacija pomeni izmenjavo podatkov med dvema mikrokrmilnikoma v obliki bitov. Ta izmenjava podatkovnih bitov v mikrokrmilniku poteka z nekaterimi določenimi pravili, znanimi kot komunikacijski protokoli. Če so podatki poslani zaporedno, torej eden za drugim, je komunikacijski protokol znan kot protokol serijske komunikacije. Natančneje, podatkovni bit se prenašajo eden za drugim zaporedoma po podatkovnem vodilu ali komunikacijskem kanalu v serijski komunikaciji.
Vrste komunikacijskih protokolov
V digitalni elektroniki so na voljo različne vrste prenosa podatkov, kot sta serijska in vzporedna komunikacija. Podobno so protokoli razdeljeni na dve vrsti, kot sta protokol serijske komunikacije in protokol vzporedne komunikacije. Primeri protokolov vzporedne komunikacije so ISA, ATA, SCSI, PCI in IEEE-488. Podobno obstaja več primerov serijskih komunikacijskih protokolov, kot so CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire in SATA itd.
V tem članku bomo obravnavali različne vrste protokolov serijske komunikacije. Zaporedna komunikacija je najpogosteje uporabljen pristop za prenos informacij med zunanjimi napravami za obdelavo podatkov. Vsaka elektronska naprava, ne glede na to, ali gre za osebni računalnik (PC) ali mobilni telefon, deluje s serijsko komunikacijo. Protokol je varna in zanesljiva oblika komunikacije, ki vsebuje niz pravil, ki jih naslavljata izvorni gostitelj (pošiljatelj) in ciljni gostitelj (sprejemnik), podobna vzporedni komunikaciji.
Načini prenosa v serijski komunikaciji
Kot že rečeno, se podatki v serijski komunikaciji pošiljajo v obliki bitov, tj. Binarnih impulzov, in dobro je znano, da binarni predstavlja logiko VISOKO, nič pa logiko LOW. Obstaja več vrst serijske komunikacije, odvisno od vrste načina prenosa in prenosa podatkov. Načini prenosa so razvrščeni kot Simplex, Half Duplex in Full Duplex.
Simplex metoda:
Pri simpleksni metodi je lahko hkrati aktiven kateri koli medij, tj. Pošiljatelj ali prejemnik. Torej, če pošiljatelj prenaša podatke, lahko sprejemnik sprejema samo in obratno. Simplex metoda je torej enosmerna komunikacijska tehnika. Znana primera simpleksne metode sta televizija in radio.
Metoda pol dupleksa:
Pri poldupleksni metodi sta lahko aktivna tako pošiljatelj kot prejemnik, vendar ne hkrati. Torej, če pošiljatelj oddaja, lahko sprejemnik sprejme, ne more pa poslati in podobno obratno. Dobro znani primeri polovičnega dupleksa je internet, kjer uporabnik pošlje zahtevo za podatke in jih dobi s strežnika.
Full Duplex metoda:
Pri full duplex metodi lahko tako sprejemnik kot oddajnik hkrati pošiljata podatke. Znan primer je mobilni telefon.
Poleg tega ima ura za ustrezen prenos podatkov pomembno vlogo in je eden glavnih virov. Napaka ure povzroči nepričakovan prenos podatkov, celo včasih izgubo podatkov. Torej, sinhronizacija ure postane zelo pomembna pri uporabi serijske komunikacije.
Sinhronizacija ure
Ura je pri serijskih napravah drugačna in je razvrščena v dva tipa. Sinhroni serijski vmesnik in asinhroni serijski vmesnik.
Sinhroni serijski vmesnik:
To je povezava od glavne točke do pomožne točke. V tej vrsti vmesnika vse naprave uporabljajo eno CPU vodilo za izmenjavo podatkov in ure. Prenos podatkov postane hitrejši z istim vodilom za skupno rabo ure in podatkov. Tudi v tem vmesniku ni neskladja v hitrosti prenosa. Na strani oddajnika pride do premika podatkov na serijsko linijo, ki daje uro kot ločen signal, saj se podatkom ne dodajo bitov za zagon, zaustavitev in pariteto. Na strani sprejemnika se podatki izvlečejo z uporabo ure, ki jo zagotavlja oddajnik, in serijske podatke pretvorijo nazaj v vzporedni obrazec. Znana primera sta I2C in SPI.
Asinhroni serijski vmesnik:
V asinhronem serijskem vmesniku zunanji signal ure ni. Asinhroni serijski vmesniki so vidni predvsem v aplikacijah na dolge razdalje in so popolnoma primerni za stabilno komunikacijo. V asinhronem serijskem vmesniku se odsotnost zunanjega ure ure zanaša na več parametrov, kot so nadzor pretoka podatkov, nadzor napak, nadzor hitrosti prenosa, nadzor prenosa in nadzor sprejema. Na strani oddajnika je premik vzporednih podatkov na serijsko linijo z uporabo svoje ure. Poleg tega doda bit, zagon, zaustavitev in preverjanje paritete. Na strani sprejemnika sprejemnik izvleče podatke s svojo uro in serijske podatke po odstranitvi začetnega, ustavitvenega in paritetnega bita pretvori nazaj v vzporedni obrazec. Znani primeri so RS-232, RS-422 in RS-485.
Drugi izrazi, povezani s serijsko komunikacijo
Poleg sinhronizacije ure si morate zapomniti nekatere stvari pri serijskem prenosu podatkov, kot so hitrost prenosa podatkov, izbira podatkovnih bitov (kadriranje), sinhronizacija in preverjanje napak. O teh pogojih se pogovorimo na kratko.
Hitrost prenosa : Hitrost prenosa je hitrost prenosa podatkov med oddajnikom in sprejemnikom v obliki bitov na sekundo (bps). Najpogosteje uporabljena hitrost prenosa je 9600. Obstajajo pa tudi druge izbire hitrosti prenosa, kot so 1200, 2400, 4800, 57600, 115200. Bolj ko bo hitrost prenosa maščob, se bodo podatki naenkrat prenašali. Tudi za podatkovno komunikacijo mora biti hitrost prenosa enaka tako za oddajnik kot za sprejemnik.
Uokvirjanje: Uokvirjanje se nanaša na število podatkovnih bitov, ki jih je treba poslati od oddajnika do sprejemnika. Število podatkovnih bitov se v primeru uporabe razlikuje. Večina aplikacije uporablja 8 bitov kot standardne podatkovne bite, lahko pa jih izberete tudi kot 5, 6 ali 7 bitov.
Sinhronizacija: Bit za sinhronizacijo je pomemben za izbiro kosa podatkov. Sporoča začetek in konec podatkovnih bitov. Oddajnik nastavi nastavitvene in končne bite na podatkovni okvir, sprejemnik pa ga ustrezno prepozna in opravi nadaljnjo obdelavo.
Nadzor napak: Nadzor napak igra pomembno vlogo med serijsko komunikacijo, saj obstaja veliko dejavnikov, ki vplivajo in dodajajo šum v serijski komunikaciji. Da se znebimo te napake, se uporabljajo paritetni bitji, pri katerih bo parnost preverila sodo in liho parnost. Torej, če podatkovni okvir vsebuje sodo število 1, je to znano kot parna parnost in bit parnosti v registru je nastavljen na 1. Podobno, če podatkovni okvir vsebuje liho število 1, potem je znan kot liha parnost in počisti lih bit parnosti v registru.
Protokol je podoben običajnemu jeziku, ki ga sistem uporablja za razumevanje podatkov. Kot je opisano zgoraj, je serijski komunikacijski protokol razdeljen na vrste, tj. Sinhroni in asinhroni. Zdaj se bo o obeh podrobno razpravljalo.
Sinhroni serijski protokoli
Sinhroni tip serijskih protokolov kot so SPI, I2C, CAN in LIN se uporabljajo v različnih projektih, saj je eden izmed najboljših virov za periferne opreme. To so tudi široko uporabljeni protokoli v glavnih aplikacijah.
Protokol SPI
Serijski periferni vmesnik (SPI) je sinhroni vmesnik, ki omogoča medsebojno povezavo več mikrokrmilnikov SPI. V SPI so potrebne ločene žice za podatkovno in urno linijo. Tudi ura ni vključena v podatkovni tok in mora biti predstavljena kot ločen signal. SPI je lahko nastavljen kot glavni ali podrejeni. Štirje osnovni signali SPI (MISO, MOSI, SCK in SS), Vcc in Ground so del podatkovne komunikacije. Torej potrebuje 6 žic za pošiljanje in prejemanje podatkov od podrejenega ali glavnega. Teoretično ima lahko SPI neomejeno število sužnjev. Podatkovna komunikacija je konfigurirana v registrih SPI. SPI omogoča hitrost do 10 Mb / s in je idealen za visokohitrostno podatkovno komunikacijo.
Večina mikrokrmilnikov ima vgrajeno podporo za SPI in jih je mogoče neposredno povezati z napravo, ki podpira SPI:
- Komunikacija SPI z mikrokrmilnikom PIC PIC16F877A
- Kako uporabljati komunikacijo SPI v mikrokrmilniku STM32
- Kako uporabljati SPI v Arduinu: Komunikacija med dvema ploščama Arduino
Serijska komunikacija I2C
Dvovrstna komunikacija med integriranimi vezji (I2C) med različnimi IC-ji ali moduli, pri čemer sta dve liniji SDA (serijska podatkovna linija) in SCL (serijska urna linija). Obe vodi morata biti povezani s pozitivnim napajalnikom z upogljivim uporom. I2C lahko doseže hitrost do 400Kbps in uporablja 10-bitni ali 7-bitni sistem za naslavljanje za ciljanje na določeno napravo na vodilu i2c, tako da lahko poveže do 1024 naprav. Ima omejeno dolžino komunikacije in je idealen za komunikacijo na krovu. Omrežja I2C je enostavno nastaviti, saj uporabljajo samo dve žici, nove naprave pa je mogoče preprosto povezati na dve običajni vodili vodila I2C. Tako kot SPI ima mikrokrmilnik na splošno I2C nožice za povezavo katere koli naprave I2C:
- Kako uporabljati komunikacijo I2C v mikrokrmilniku STM32
- I2C Komunikacija z mikrokrmilnikom PIC PIC16F877
- Kako uporabljati I2C v Arduinu: Komunikacija med dvema ploščama Arduino
USB
USB (Universal Serial Bus) je široko protokol z različnimi različicami in hitrostmi. Na en sam gostiteljski krmilnik USB je mogoče povezati največ 127 zunanjih naprav. USB deluje kot naprava "plug and play". USB se uporablja v skoraj napravah, kot so tipkovnice, tiskalniki, predstavnostne naprave, kamere, optični bralniki in miška. Zasnovan je za enostavno namestitev, hitrejšo oceno podatkov, manj kablov in vročo zamenjavo. Zamenjal je obsežnejša in počasnejša serijska in vzporedna vrata. USB uporablja diferencialno signalizacijo za zmanjšanje motenj in omogoča hiter prenos na velike razdalje.
Diferencialno vodilo je zgrajeno z dvema žicama, ena predstavlja posredovane podatke, druga pa dopolnilo. Ideja je, da "povprečna" napetost na žicah ne vsebuje nobenih informacij, kar ima za posledico manj motenj. V napravah USB lahko naprave črpajo določeno količino energije, ne da bi prosile gostitelja. USB za prenos podatkov uporablja samo dve žici in je hitrejši od serijskega in vzporednega vmesnika. Različice USB podpirajo različne hitrosti, kot so 1,5 Mb / s (USB v1.0), 480 Mbps (USB2.0), 5Gbps (USB v3.0). Dolžina posameznega kabla USB lahko doseže do 5 metrov brez zvezdišča in 40 metrov s pesto.
LAHKO
Controller Area Network (CAN) se uporablja npr. V avtomobilizmu, da omogoča komunikacijo med ECU-ji (krmilnimi enotami motorja) in senzorji. Protokol CAN je robusten, poceni in temelji na sporočilih ter zajema številne aplikacije - npr. Avtomobile, tovornjake, traktorje, industrijske robote. Sistem vodila CAN omogoča centralno diagnozo in konfiguracijo napak v vseh ECU-jih. Sporočila CAN imajo prednost prek ID-jev, tako da ID-ji z najvišjo prioriteto niso moteni. Vsak ECU vsebuje čip za sprejem vseh poslanih sporočil, odloči se o ustreznosti in ustrezno ukrepa - to omogoča enostavno spreminjanje in vključevanje dodatnih vozlišč (npr. Zapisovalniki podatkov vodila CAN). Aplikacije vključujejo zagon / zaustavitev vozil, sisteme za preprečevanje trkov. Sistemi vodila CAN lahko zagotavljajo hitrost do 1 Mb / s.
Microwire
MICROWIRE je serijski 3-žični vmesnik s hitrostjo 3 Mb / s, v bistvu podmnožica vmesnika SPI. Microwire je serijsko vhodno / izhodno pristanišče na mikrokrmilnikih, zato bo vodilo Microwire mogoče najti tudi na EEPROM-jih in drugih perifernih čipih. Tri vrstice so SI (serijski vhod), SO (serijski izhod) in SK (serijska ura). Vrstica serijskega vhoda (SI) do mikrokrmilnika, SO je serijska izhodna linija, SK pa serijska urna linija. Podatki se premaknejo na padajoči rob SK in se vrednotijo na naraščajočem robu. SI se premakne na naraščajoči rob SK. Dodatna izboljšava vodila za MICROWIRE se imenuje MICROWIRE / Plus. Zdi se, da je glavna razlika med obema vodiloma v tem, da je arhitektura MICROWIRE / Plus znotraj mikrokrmilnika bolj zapletena. Podpira hitrosti do 3Mbps.
Asinhroni serijski protokoli
Asinhroni tip serijskih protokolov je zelo pomemben pri zanesljivem prenosu podatkov na večje razdalje. Za asinhrono komunikacijo ni potrebna časovna ura, ki je skupna obema napravama. Vsaka naprava neodvisno posluša in pošlje digitalne impulze, ki predstavljajo bitov podatkov po dogovorjeni hitrosti. Asinhrona serijska komunikacija se včasih imenuje serijska tranzistorsko-tranzistorska logika (TTL), kjer je visokonapetostni nivo logika 1, nizka napetost pa enaka logiki 0. Skoraj vsak mikrokrmilnik na trgu danes ima vsaj en univerzalni asinhroni sprejemnik - Oddajnik (UART) za serijsko komunikacijo. Primeri so RS232, RS422, RS485 itd.
RS232
RS232 (priporočeni standard 232) je zelo pogost protokol, ki se uporablja za povezavo različnih zunanjih naprav, kot so monitorji, CNC-ji itd. RS232 je na voljo v moškem in ženskem konektorju. RS232 je topologija od točke do točke z največ eno priključeno napravo in pokriva razdaljo do 15 metrov pri 9600 bps. Informacije o vmesniku RS-232 se digitalno prenašajo z logičnimi 0 in 1. Logični "1" (MARK) ustreza napetosti v območju od -3 do -15 V. Logični "0" (PROSTOR) ustreza napetost v območju od +3 do +15 V. Na voljo je v priključku DB9, ki ima 9 izhodov, kot so TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 je podoben RS232, ki omogoča sočasno pošiljanje in prejemanje sporočil v ločenih linijah, vendar za to uporablja diferencialni signal. V omrežju RS-422 je lahko samo ena oddajna naprava in do 10 sprejemnih naprav. Hitrost prenosa podatkov v RS-422 je odvisna od razdalje in se lahko giblje od 10 kbps (1200 metrov) do 10 Mbps (10 metrov). Linija RS-422 je 4 žice za prenos podatkov (2 zviti žici za prenos in 2 zviti žici za sprejem) in ena skupna ozemljitvena žica GND. Napetost na podatkovnih linijah je lahko v območju od -6 V do +6 V. Logična razlika med A in B je večja od +0,2 V. Logična 1 ustreza razliki med A in B manj kot -0,2 V. Standard RS-422 ne določa določene vrste konektorja, običajno je to lahko priključni blok ali konektor DB9.
RS485
Ker RS485 uporablja večtočkovno topologijo, se najpogosteje uporablja v panogah in je za industrijo najprimernejši protokol. RS422 lahko poveže 32 linijskih gonilnikov in 32 sprejemnikov v različnih konfiguracijah, vendar s pomočjo dodatnih repetitorjev in ojačevalnikov signala do 256 naprav. RS-485 ne določa določene vrste priključka, vendar je pogosto priključni blok ali priključek DB9. Hitrost delovanja je odvisna tudi od dolžine proge in lahko pri 10 metrih doseže 10 Mbit / s. Napetost na linijah je v območju od -7 V do +12 V. Obstajata dve vrsti RS-485, na primer poldupleksni način RS-485 z dvema kontaktoma in polni dupleks način RS-485 s 4 kontakti. Če želite izvedeti več o uporabi RS485 z drugimi mikrokrmilniki, preverite povezave:
- Serijska komunikacija RS-485 MODBUS z uporabo Arduino UNO kot podrejene
- Zaporedna komunikacija RS-485 med Raspberry Pi in Arduino Uno
- Serijska komunikacija RS485 med Arduino Uno in Arduino Nano
- Zaporedna komunikacija med STM32F103C8 in Arduino UNO z uporabo RS-485
Zaključek
Zaporedna komunikacija je eden od pogosto uporabljenih sistemov komunikacijskih vmesnikov v elektroniki in vgrajenih sistemih. Hitrosti prenosa podatkov so lahko različne za različne aplikacije. Protokoli za serijsko komunikacijo imajo lahko odločilno vlogo pri obravnavanju tovrstnih aplikacij. Tako je izbira pravega serijskega protokola zelo pomembna.