- Viestintäkäytäntöjen tyypit
- Lähetystilat sarjaliikenteessä
- Kellon synkronointi
- Muut sarjaviestintään liittyvät ehdot
- Synkroniset sarjaprotokollat
- Asynkroniset sarjaprotokollat
- Johtopäätös
Ennen kuin aloitat sarjaliikenneprotokollien kanssa, rikkotaan terminologia kolmeen osaan. Viestintä on hyvin tunnettua terminologiaa, joka liittyy tietojen vaihtoa kahden tai useamman väliaineet. Sulautetuissa järjestelmissä viestintä tarkoittaa tiedonvaihtoa kahden mikrokontrollerin välillä bitteinä. Tämä databittien vaihto mikro-ohjaimessa tapahtuu joidenkin määriteltyjen sääntöjen joukolla, joita kutsutaan tietoliikenneprotokolliksi. Jos data lähetetään sarjassa eli yksi toisensa jälkeen, tiedonsiirtoprotokolla tunnetaan nimellä Serial Communication Protocol. Tarkemmin sanottuna databitit lähetetään yksi kerrallaan peräkkäin tietoväylän tai tietoliikennekanavan kautta sarjaliikenteessä.
Viestintäkäytäntöjen tyypit
Digitaalisessa elektroniikassa on saatavana erilaisia tiedonsiirtotyyppejä, kuten sarjaliikenne ja rinnakkaisviestintä. Vastaavasti protokollat on jaettu kahteen tyyppiin, kuten sarjaliikenneprotokolla ja rinnakkaisyhteysprotokollat. Esimerkkejä rinnakkaisyhteysprotokollista ovat ISA, ATA, SCSI, PCI ja IEEE-488. Vastaavasti on olemassa useita esimerkkejä sarjaliikenneprotokollista, kuten CAN, ETHERNET, I2C, SPI, RS232, USB, 1-johdin ja SATA jne.
Tässä artikkelissa käsitellään erityyppisiä sarjaliikenneprotokollia. Sarjaliikenne on yleisimmin käytetty tapa siirtää tietoa tietojenkäsittelyoheislaitteiden välillä. Jokainen elektroniikkalaite, onko se henkilökohtainen tietokone (PC) tai mobiili, toimii sarjaliikenteellä. Protokolla on turvallinen ja luotettava viestintämuoto, jolla on joukko sääntöjä, joihin lähde-isäntä (lähettäjä) ja kohde-isäntä (vastaanottaja) vastaavat.
Lähetystilat sarjaliikenteessä
Kuten jo edellä todettiin, sarjaliikenteessä data lähetetään bittien eli binaaripulssien muodossa ja on hyvin tiedossa, että binäärinen edustaa logiikkaa KORKEA ja nolla edustaa logiikkaa LOW. Sarjaliikennettä on useita tyyppejä lähetystilan ja tiedonsiirron tyypistä riippuen. Lähetystilat on luokiteltu yksinkertaiseksi, puoliksi kaksipuoliseksi ja täyspuoliseksi.
Simplex-menetelmä:
Simplex-menetelmässä kumpikin väline eli lähettäjä tai vastaanottaja voi olla aktiivinen kerrallaan. Joten jos lähettäjä lähettää dataa, vastaanottaja voi hyväksyä vain ja päinvastoin. Joten simplex-menetelmä on yksisuuntainen viestintätekniikka. Tunnettuja esimerkkejä yksisuuntaisesta menetelmästä ovat Televisio ja Radio.
Puoliduplex-menetelmä:
Puoliduplex-menetelmässä sekä lähettäjä että vastaanottaja voivat olla aktiivisia, mutta eivät samanaikaisesti. Joten jos lähettäjä lähettää, vastaanottaja voi hyväksyä, mutta ei voi lähettää ja vastaavasti päinvastoin. Tunnettuja esimerkkejä puoliduplexista on Internet, jossa käyttäjä lähettää datapyynnön ja saa sen palvelimelta.
Täysi kaksipuolinen tulostusmenetelmä:
Täysduplex-menetelmässä sekä vastaanotin että lähetin voivat lähettää tietoja toisilleen samanaikaisesti. Tunnettu esimerkki on matkapuhelin.
Tämän lisäksi kellolla on asianmukainen tiedonsiirto tärkeä rooli ja se on yksi ensisijaisista lähteistä. Kellon toimintahäiriö johtaa odottamattomaan tiedonsiirtoon, jopa joskus tietojen menetykseen. Joten kellosynkronointi tulee erittäin tärkeäksi, kun käytetään sarjaliikennettä.
Kellon synkronointi
Kello on erilainen sarjalaitteille ja se on luokiteltu kahteen tyyppiin eli. Synkroninen sarjaliitäntä ja asynkroninen sarjaliitäntä.
Synkroninen sarjaliitäntä:
Se on pisteestä pisteeseen-yhteys isännältä orjalle. Tämän tyyppisessä käyttöliittymässä kaikki laitteet käyttävät yhtä CPU-väylää tietojen ja kellon jakamiseen. Tiedonsiirto nopeutuu samalla väylällä kellon ja datan jakamiseksi. Tässä liitännässä ei myöskään ole yhteensopivuutta baudinopeuden kanssa. Lähettimen puolella tapahtuu datan siirtyminen sarjajohdolle, joka tarjoaa kellon erillisenä signaalina, koska dataan ei lisätä aloitus-, pysäytys- ja pariteettibittejä. Vastaanottopuolella dataa puretaan lähettimen tarjoamalla kellolla ja se muuntaa sarjadatan takaisin rinnakkaismuotoon. Tunnettuja esimerkkejä ovat I2C ja SPI.
Asynkroninen sarjaliitäntä:
Asynkronisessa sarjaliitännässä ulkoinen kellosignaali puuttuu. Asynkroniset sarjaliitännät näkyvät enimmäkseen pitkän matkan sovelluksissa, ja ne sopivat täydellisesti vakaaseen viestintään. Asynkronisessa sarjaliitännässä ulkoisen kellolähteen puuttuminen saa sen tukeutumaan useisiin parametreihin, kuten tietovirranhallintaan, virheenhallintaan, tiedonsiirtonopeuden hallintaan, tiedonsiirron ohjaukseen ja vastaanoton hallintaan. On lähettimen puolella, on siirtyminen yhdensuuntainen dataa sarjaväylän kautta sen oman kellon. Lisäksi se lisää alku-, lopetus- ja pariteettitarkistusbitit. Vastaanottopuolella vastaanotin poimii datan omalla kellollaan ja muuntaa sarjatiedot takaisin rinnakkaismuotoon sen jälkeen, kun aloitus-, lopetus- ja pariteettibitit on poistettu. Tunnettuja esimerkkejä ovat RS-232, RS-422 ja RS-485.
Muut sarjaviestintään liittyvät ehdot
Kellosynkronoinnin lisäksi on tiettyjä asioita, jotka on muistettava siirrettäessä tietoja sarjaan, kuten siirtonopeus, databittivalinta (kehystys), synkronointi ja virheen tarkistus. Keskustellaan näistä ehdoista lyhyesti.
Siirtonopeus: Siirtonopeus on nopeus, jolla data siirretään lähettimen ja vastaanottimen välillä bitteinä sekunnissa (bps). Yleisimmin käytetty siirtonopeus on 9600. Mutta siirtonopeutta on muitakin vaihtoehtoja, kuten 1200, 2400, 4800, 57600, 115200. Mitä enemmän siirtonopeus on rasvaa, tiedot siirretään kerrallaan. Myös tiedonsiirron yhteydessä tiedonsiirtonopeuden on oltava sama sekä lähettimelle että vastaanottimelle.
Kehystys: Kehystys viittaa lähettimestä vastaanottimeen lähetettävien databittien määrään. Databittien lukumäärä vaihtelee sovellustapauksessa. Suurin osa sovelluksesta käyttää 8 bittiä vakiotietobitteinä, mutta se voidaan valita myös 5, 6 tai 7 bittiä.
Synkronointi: Synkronointibitit ovat tärkeitä tietopalan valitsemiseksi. Se kertoo databittien alun ja lopun. Lähetin asettaa aloitus- ja lopetusbitit datakehykseen ja vastaanotin tunnistaa sen vastaavasti ja suorittaa jatkokäsittelyn.
Virheenhallinta: Virheenhallinnalla on tärkeä rooli sarjaliikenteessä, koska on monia tekijöitä, jotka vaikuttavat ja lisäävät sarjaliikenteen melua. Tämän virheen poistamiseksi käytetään pariteettibittejä, joissa pariteetti tarkistaa parillisen ja parittoman pariteetin. Joten jos datakehys sisältää parillisen 1: n, niin se tunnetaan parillisena pariteettina ja rekisterin pariteettibitti asetetaan arvoon 1. Vastaavasti, jos datakehys sisältää parittoman määrän 1: itä, se tunnetaan parittomana pariteettina ja tyhjentää pariton pariteettibitti rekisterissä.
Protokolla on kuin yhteinen kieli, jota järjestelmä käyttää tietojen ymmärtämiseen. Kuten edellä on kuvattu, sarjaliikenneprotokolla on jaettu tyyppeihin eli synkroniseen ja asynkroniseen. Nyt molemmista keskustellaan yksityiskohtaisesti.
Synkroniset sarjaprotokollat
Synkronoitu tyyppi sarjaviestiprotokollat kuten SPI, I2C, CAN ja LIN käytetään eri hankkeita, koska se on yksi parhaista resursseja laivalla oheislaitteita. Nämä ovat myös laajasti käytettyjä protokollia tärkeimmissä sovelluksissa.
SPI-protokolla
Serial Peripheral Interface (SPI) on synkroninen liitäntä, joka mahdollistaa useiden SPI-mikrokontrollerien yhdistämisen. SPI: ssä tarvitaan erilliset johdot dataa ja kellolinjaa varten. Kello ei myöskään sisälly datavirtaan, ja se on toimitettava erillisenä signaalina. SPI voidaan konfiguroida joko isäntänä tai orjana. Neljä SPI-perussignaalia (MISO, MOSI, SCK ja SS), Vcc ja Ground ovat osa tiedonsiirtoa. Joten se tarvitsee 6 johtoa lähettämään ja vastaanottamaan tietoja orjalta tai isännältä. Teoriassa SPI: llä voi olla rajoittamaton määrä orjia. Tietoliikenne on määritetty SPI-rekistereihin. SPI voi tuottaa jopa 10Mbps nopeutta ja on ihanteellinen nopeaan tiedonsiirtoon.
Suurimmalla osalla mikrokontrollereista on sisäänrakennettu tuki SPI: lle ja ne voidaan liittää suoraan SPI-tuettuun laitteeseen:
- SPI-tiedonsiirto PIC-mikrokontrollerin PIC16F877A kanssa
- SPI-tiedonsiirron käyttäminen STM32-mikrokontrollerissa
- SPI: n käyttö Arduinossa: Kahden Arduino-levyn välinen viestintä
I2C-sarjaliikenne
Integroidun piirin (I2C) kaksilinjainen tiedonsiirto eri mikropiirien tai moduulien välillä, joissa kaksi linjaa ovat SDA (Serial Data Line) ja SCL (Serial Clock Line). Molemmat johdot on kytkettävä positiiviseen syöttöön vetovastuksella. I2C pystyy toimittamaan nopeuden jopa 400 kt / s, ja se käyttää 10- tai 7-bittistä osoitejärjestelmää kohdentaakseen tietyn laitteen i2c-väylään, jotta se voi liittää jopa 1024 laitetta. Sen tiedonsiirto on rajoitettua ja ihanteellinen laivalla tapahtuvaan viestintään. I2C-verkot on helppo asentaa, koska se käyttää vain kahta johtoa ja uudet laitteet voidaan yksinkertaisesti liittää kahteen yleiseen I2C-väylään. Samoin kuin SPI: ssä, mikrokontrollerissa on yleensä I2C-nastat minkä tahansa I2C-laitteen liittämiseen:
- I2C-tiedonsiirron käyttäminen STM32-mikrokontrollerissa
- I2C-tiedonsiirto PIC-mikrokontrollerin PIC16F877 kanssa
- I2C: n käyttö Arduinossa: Kahden Arduino-levyn välinen tiedonsiirto
USB
USB (Universal Serial Bus) on laajasti protokolla, jolla on eri versiot ja nopeudet. Yhdelle USB-isäntäohjaimelle voidaan liittää enintään 127 oheislaitetta. USB toimii "plug and play" -laitteena. USB: tä käytetään melkein laitteissa, kuten näppäimistöt, tulostimet, medialaitteet, kamerat, skannerit ja hiiri. Se on suunniteltu helpoksi asennettavaksi, nopeammalle tiedonsiirrolle, vähemmän kaapelointia ja pikavaihtoa varten. Se on korvannut suuremmat ja hitaammat sarja- ja rinnakkaisportit. USB käyttää differentiaalista signalointia häiriöiden vähentämiseen ja nopeaan siirtoon pitkällä etäisyydellä.
Differentiaaliväylä on rakennettu kahdella johtimella, joista toinen edustaa lähetettyä dataa ja toinen sen komplementtia. Ajatuksena on, että johtojen 'keskimääräinen' jännite ei sisällä mitään tietoa, mikä johtaa vähemmän häiriöihin. USB: ssä laitteiden annetaan vetää tietty määrä virtaa kyselemättä isäntää. USB käyttää vain kahta johtoa tiedonsiirtoon ja on nopeampi kuin sarja- ja rinnakkaisliitäntä. USB-versiot tukevat eri nopeuksia, kuten 1,5 Mbps (USB v1.0), 480 Mbps (USB2.0), 5Gbps (USB v3.0). Yksittäisen USB-kaapelin pituus voi olla jopa 5 metriä ilman keskitintä ja 40 metriä keskittimen kanssa.
VOI
Ohjaimen alueverkkoa (CAN) käytetään esim. Autoteollisuudessa tiedonsiirron sallimiseksi moottorin ohjausyksiköiden (ECU) ja antureiden välillä. CAN-protokolla on vankka, edullinen ja viestipohjainen ja kattaa monissa sovelluksissa - esim. Autot, kuorma-autot, traktorit, teollisuusrobotit. CAN-väyläjärjestelmä mahdollistaa keskitettyjen virheiden diagnosoinnin ja konfiguroinnin kaikissa ECU-yksiköissä. CAN-sanomat priorisoidaan tunnusten kautta, jotta korkeimman prioriteetin tunnukset eivät keskeydy. Jokainen ECU sisältää sirun kaikkien lähetettyjen viestien vastaanottamiseksi, päättää asiaankuuluvuuden ja toimii sen mukaisesti - tämä mahdollistaa lisäsolmujen (esim. CAN-väylän tiedonkerääjät) helpon muokkaamisen ja sisällyttämisen. Sovelluksia ovat ajoneuvojen käynnistys / pysäytys, törmäyksenestojärjestelmät. CAN-väyläjärjestelmät voivat tarjota nopeutta jopa 1Mbps.
Mikrolanka
MICROWIRE on 3 Mbit / s: n sarjajohdin 3-johdinliitäntä, joka on olennaisesti osa SPI-liitäntää. Microwire on mikrokontrollerien I / O-portti, joten Microwire-väylä löytyy myös EEPROM-levyiltä ja muilta oheislaitepiireiltä. Kolme riviä ovat SI (Serial Input), SO (SerialOutput) ja SK (Serial Clock). Sarjaliitäntäjohto (SI) mikrokontrollerille, SO on sarjaliitäntäjohto ja SK on sarjakellojohto. Tiedot siirretään SK: n laskevalla reunalla ja arvostetaan nousevalla reunalla. SI on siirtynyt SK: n nousevalla reunalla. MICROWIRE-väylän lisäparannusta kutsutaan MICROWIRE / Plus. Suurin ero näiden kahden väylän välillä näyttää olevan se, että mikro-ohjaimen MICROWIRE / Plus -arkkitehtuuri on monimutkaisempi. Se tukee jopa 3Mbps nopeutta.
Asynkroniset sarjaprotokollat
Asynkroninen sarjaprotokolla on erittäin tärkeää, kun on kyse luotettavasta pidemmän etäisyyden tiedonsiirrosta. Asynkroninen tiedonsiirto ei vaadi molemmille laitteille yhteistä ajoituskelloa. Jokainen laite kuuntelee ja lähettää itsenäisesti digitaalipulsseja, jotka edustavat tietobittiä sovitulla nopeudella. Asynkronista sarjaliikennettä kutsutaan joskus Transistor-Transistor Logic (TTL) -sarjaksi, jossa korkea jännitetaso on logiikka 1, ja matala jännite vastaa logiikkaa 0. Lähes jokaisella markkinoilla tällä hetkellä olevalla mikrokontrollerilla on ainakin yksi yleinen asynkroninen vastaanotin - Lähetin (UART) sarjaliikennettä varten. Esimerkkejä ovat RS232, RS422, RS485 jne.
RS232
RS232 (suositeltava standardi 232) on hyvin yleinen protokolla, jota käytetään erilaisten oheislaitteiden, kuten näyttöjen, CNC: n jne., Liittämiseen. RS232 on uros- ja naarasliittimissä. RS232 on pisteestä pisteeseen topologia, johon on kytketty enintään yksi laite ja joka kattaa jopa 15 metrin etäisyyden 9600 bps: llä. RS-232-liitännän tiedot välitetään digitaalisesti loogisilla 0 ja 1. Looginen "1" (MARK) vastaa jännitettä alueella -3 - -15 V. Looginen "0" (SPACE) vastaa jännite vaihtelee välillä +3 - +15 V.Se toimitetaan DB9-liittimessä, jossa on 9 pinoutia, kuten TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 on samanlainen kuin RS232, jonka avulla voidaan samanaikaisesti lähettää ja vastaanottaa viestejä erillisillä linjoilla, mutta käyttää tähän differentiaalista signaalia. RS-422-verkossa voi olla vain yksi lähetyslaite ja enintään 10 vastaanottavaa laitetta. Tiedonsiirtonopeus RS-422: ssa riippuu etäisyydestä ja voi vaihdella välillä 10 kbps (1200 metriä) - 10 Mbps (10 metriä). RS-422-linja on 4 johtoa tiedonsiirtoa varten (2 kierrettyä johtoa lähetystä varten ja 2 kierrettyä johtoa vastaanottoa varten) ja yksi yhteinen GND-maadoitusjohto. Datalinjojen jännite voi olla välillä -6 V - +6 V. Looginen ero A: n ja B: n välillä on suurempi kuin +0,2 V. Looginen 1 vastaa A: n ja B: n eroa alle -0,2 V. RS-422-standardi ei määrittele tietyn tyyppistä liitintä, yleensä se voi olla riviliitin tai DB9-liitin.
RS485
Koska RS485 käyttää monipistetopologiaa, sitä käytetään eniten teollisuudessa ja se on alan suosima protokolla. RS422 voi liittää 32 linjaohjainta ja 32 vastaanotinta differentiaalisissa kokoonpanoissa, mutta lisätoistimien ja signaalivahvistimien avulla jopa 256 laitteeseen. RS-485 ei määritä tietyn tyyppistä liitintä, mutta se on usein riviliitin tai DB9-liitin. Toiminnan nopeus riippuu myös linjan pituudesta ja voi saavuttaa 10 Mbit / s 10 metrin etäisyydellä. Linjojen jännite on alueella -7 V - +12 V. On olemassa kahdenlaisia RS-485-tyyppejä, kuten puoliduplex-tila RS-485, jossa on 2 kosketinta, ja kaksisuuntainen tila RS-485, jossa on 4 kosketinta. Jos haluat lisätietoja RS485: n käytöstä muiden mikrokontrollerien kanssa, tarkista linkit:
- RS-485 MODBUS-sarjaliikenne käyttäen Arduino UNO: ta orjana
- RS-485-sarjaliikenne Raspberry Pi: n ja Arduino Unon välillä
- RS485-sarjaliikenne Arduino Unon ja Arduino Nanon välillä
- Sarjaliikenne STM32F103C8: n ja Arduino UNO: n välillä RS-485: n avulla
Johtopäätös
Sarjaliikenne on yksi elektroniikan ja sulautettujen järjestelmien laajasti käytetyistä tiedonsiirtoliitäntäjärjestelmistä. Tiedonsiirtonopeudet voivat olla erilaiset eri sovelluksissa. Sarjaliikenneprotokollilla voi olla ratkaiseva merkitys käsiteltäessä tällaisia sovelluksia. Joten oikean sarjaprotokollan valitsemisesta tulee erittäin tärkeää.