Nykyaikaisista kodinkoneista, teollisuuselektroniikasta ja erilaisista tietoliikennelaitteista löytyy usein samank altaisia ratkaisuja, vaikka tuotteet voivat olla käytännössä riippumattomia. Esimerkiksi melkein kaikki järjestelmät sisältävät seuraavat:
- tiety "älykäs" ohjausyksikkö, joka useimmissa tapauksissa on yksisiruinen mikrotietokone;
- yleiset komponentit, kuten LCD-puskurit, RAM, I/O-portit, EEPROM tai erilliset datamuuntimet;
- erityiset komponentit, mukaan lukien digitaaliset viritys- ja signaalinkäsittelypiirit video- ja radiojärjestelmille.
Kuinka optimoida heidän sovelluksensa?
Hyödyntääkseen näitä yleisiä ratkaisuja suunnittelijoiden ja valmistajien hyödyksi sekä parantaakseen eri laitteistojen yleistä suorituskykyä ja yksinkertaistaakseen käytettyjä piirikomponentteja Philips päätti kehittää yksinkertaisimman kaksijohtimisen kaksisuuntaisen väylä, joka tarjoaa tuottavimman sirunohjata. Tämä väylä tarjoaa tiedonsiirron I2C-liitännän kautta.
Tänä päivänä valmistajan tuotevalikoimaan kuuluu yli 150 CMOS-laitetta sekä I2C-yhteensopivia bipolaarisia laitteita, jotka on suunniteltu toimimaan missä tahansa luetelluista luokista. On huomattava, että I2C-liitäntä on alun perin sisäänrakennettu kaikkiin yhteensopiviin laitteisiin, minkä ansiosta ne voivat helposti kommunikoida keskenään erityistä väylää käyttämällä. Tällaisen suunnitteluratkaisun käytön ansiosta pystyttiin ratkaisemaan melko suuri määrä erilaisten laitteiden liitäntäongelmia, mikä on varsin tyypillistä digitaalisten järjestelmien kehitykselle.
Tärkeimmät edut
Vaikka katsoisit UART-, SPI- ja I2C-liitäntöjen lyhyttä kuvausta, voit korostaa jälkimmäisen seuraavat edut:
- Työskentelyyn tarvitaan vain kaksi riviä - synkronointi ja tiedot. Kaikki tällaiseen väylään kytkeytyvä laite voidaan sitten ohjelmoida täysin yksilölliseen osoitteeseen. Milloin tahansa on olemassa yksinkertainen suhde, jonka avulla isännät voivat toimia isäntälähettimenä tai isäntävastaanottimena.
- Tämä väylä tarjoaa mahdollisuuden käyttää useita isäntiä kerralla, mikä tarjoaa kaikki tarvittavat välineet törmäysten määrittämiseen sekä sovittelun tietojen korruption estämiseksi siinä tapauksessa, että kaksi tai useampi isäntä alkaa lähettää tietoa samanaikaisesti. Vakiotilassavain sarja 8-bittistä tiedonsiirtoa tarjotaan enintään 100 kbps:n nopeudella, ja nopeassa tilassa tätä kynnystä voidaan nostaa neljä kertaa.
- Siruissa on erityinen sisäänrakennettu suodatin, joka vaimentaa tehokkaasti ylijännitteitä ja varmistaa tietojen maksimaalisen eheyden.
- Yhteen väylään kytkettävien sirujen enimmäismäärää rajoittaa vain sen suurin mahdollinen kapasiteetti 400 pF.
Edut rakentajille
I2C-liitäntä sekä kaikki yhteensopivat sirut voivat nopeuttaa merkittävästi kehitysprosessia toimintakaaviosta lopulliseen prototyyppiin. Samalla on huomattava, että koska tällaiset mikropiirit on mahdollista kytkeä suoraan väylään ilman kaikenlaisia lisäpiirejä, on tilaa prototyyppijärjestelmän edelleen modernisoinnille ja muokkaamiselle irrottamalla ja kytkemällä erilaisia laitteita väylästä. bussi.
I2C-liittymästä erottuu monia etuja. Kuvauksen avulla näet erityisesti seuraavat edut rakentajille:
- Toimintakaavion lohkot vastaavat täysin mikropiirejä, ja samalla saadaan aikaan melko nopea siirtyminen toiminnallisesta perustilaan.
- Väyläliittymiä ei tarvitse kehittää, koska väylä on jo integroitu natiivisti omistettuihin siruihin.
- Integroidut viestintäprotokollat jalaiteosoitteiden avulla järjestelmä voidaan määrittää kokonaan ohjelmiston avulla.
- Saman tyyppisiä mikropiirejä voidaan tarvittaessa käyttää täysin erilaisissa sovelluksissa.
- Kokonaiskehitysaika lyhenee merkittävästi, koska suunnittelijat voivat nopeasti tutustua yleisimmin käytettyihin toiminnallisiin lohkoihin sekä erilaisiin mikropiireihin.
- Voit halutessasi lisätä siruja järjestelmään tai poistaa siitä, ja samalla ei ole paljon vaikutusta muihin samaan väylään kytkettyihin laitteisiin.
- Ohjelmiston kehittämisen kokonaisaikaa voidaan lyhentää merkittävästi sallimalla uudelleenkäytettävien ohjelmistomoduulien kirjasto.
Muiden asioiden lisäksi on syytä huomata äärimmäisen yksinkertainen menettely tapahtuneiden vikojen diagnosoimiseksi ja lisävirheenkorjaukseksi, mikä erottaa I2C-rajapinnan. Kuvaus viittaa siihen, että tarvittaessa pienetkin poikkeamat tällaisten laitteiden toiminnassa voidaan välittömästi seurata ilman vaikeuksia ja vastaavasti voidaan ryhtyä asianmukaisiin toimenpiteisiin. On myös syytä huomata, että suunnittelijat saavat erikoisratkaisuja, jotka ovat varsin houkuttelevia erilaisille kannettaville laitteille ja järjestelmille, jotka tarjoavat akkuvirtaa I2C-rajapinnan avulla. Venäjänkielinen kuvaus osoittaa myös, että sen käyttö mahdollistaa seuraavat tärkeät edut:
- Riittävän korkea vastustuskyky kaikille uusille häiriöille.
- Lopultaalhainen virrankulutus.
- Levein syöttöjännitealue.
- Laaja lämpötila-alue.
Etuja tekniikan asiantuntijoille
On syytä huomata, että paitsi suunnittelijat, myös teknikot ovat viime aikoina alkaneet käyttää erikoistunutta I2C-liitäntää melko usein. Venäjänkielinen kuvaus osoittaa melko laajan valikoiman etuja, joita tämä asiantuntijaluokka tarjoaa:
- Tavallinen kaksijohtiminen sarjaväylä tällä liitännällä minimoi IC:iden väliset liitännät, mikä tarkoittaa, että tarvitaan vähemmän nastoja ja vähemmän raitoja, mikä tekee piirilevyistä halvempia ja paljon pienempiä.
- Täysin integroitu I2C-liitäntä LCD1602 tai jokin muu vaihtoehto eliminoi täysin osoitedekooderien ja muun ulkoisen pienen logiikan tarpeen.
- Tällaisessa väylässä on mahdollista käyttää useita isäntiä samanaikaisesti, mikä nopeuttaa merkittävästi testausta ja myöhempää laitteiston asennusta, koska väylä voidaan liittää kokoonpanolinjan tietokoneeseen.
- Tämän liitännän kanssa yhteensopivien IC-piirien saatavuus VSO-, SO- ja mukautetuissa DIL-paketeissa voi vähentää laitteen kokovaatimuksia merkittävästi.
Tämä on vain lyhyt luettelo eduista, jotka erottavat LCD1602:n ja muiden I2C-liitännän. Lisäksi yhteensopivat sirut voivat merkittävästi lisätä käytetyn järjestelmän joustavuutta tarjoamallaäärimmäisen yksinkertainen eri laitevaihtoehtojen suunnittelu sekä suhteellisen helppoja päivityksiä tukemaan edelleen kehitystä nykyisellä tasolla. Siten on mahdollista kehittää kokonainen perhe erilaisia laitteita käyttäen pohjana tiettyä perusmallia.
Laitteiston modernisointi ja toimintojen laajentaminen voidaan suorittaa vakiokytkennällä vastaavan mikropiirin väylään käyttämällä Arduino 2C -liitäntää tai mitä tahansa muuta saatavilla olevasta luettelosta. Jos tarvitaan suurempi ROM, riittää vain, että valitset toisen mikro-ohjaimen, jolla on suurempi ROM. Koska päivitetyt sirut voivat tarvittaessa korvata vanhat kokonaan, voit helposti lisätä uusia ominaisuuksia laitteisiin tai parantaa sen yleistä suorituskykyä yksinkertaisesti irrottamalla vanhentuneet sirut ja korvaamalla ne sitten uudemmilla laitteilla.
ACCESS.bus
Koska väylällä on kaksijohtiminen luonne sekä mahdollisuus ohjelmaosoitteeseen, yksi ACCESS.busin ihanteellisimmista alustoista on I2C-liitäntä. Tämän laitteen tekniset tiedot (venäjänkielinen kuvaus on esitetty artikkelissa) tekevät siitä paljon halvemman vaihtoehdon aiemmin aktiivisesti käytetylle RS-232C-liitännälle erilaisten oheislaitteiden liittämiseen tietokoneisiin tavallisella nelinapaisella liittimellä.
Erittelyn esittely
Nykyaikaisiin sovelluksiin8-bittinen ohjaus, joka käyttää mikrokontrollereita, on mahdollista asettaa joitain suunnittelukriteereitä:
- täydellinen järjestelmä sisältää enimmäkseen yhden mikro-ohjaimen ja muita oheislaitteita, mukaan lukien muistin ja erilaiset I/O-portit;
- eri laitteiden yhdistämisen yhteen järjestelmään liittyvät kokonaiskustannukset tulisi minimoida mahdollisimman paljon;
- toimintoja ohjaava järjestelmä ei tarjoa tarvetta tarjota nopeaa tiedonsiirtoa;
- kokonaistehokkuus riippuu suoraan valitusta laitteesta sekä liitäntäväylän luonteesta.
Jos haluat suunnitella järjestelmän, joka täyttää täysin luetellut kriteerit, sinun on käytettävä väylää, joka käyttää I2C-sarjaliitäntää. Vaikka sarjaväylällä ei ole rinnakkaisväylän kaistanleveyttä, se vaatii vähemmän yhteyksiä ja vähemmän sirun nastoja. Älä kuitenkaan unohda, että väylässä ei ole vain liitäntäjohtoja, vaan myös erilaisia toimenpiteitä ja formaatteja, jotka ovat tarpeen järjestelmän sisäisen viestinnän varmistamiseksi.
Laitteilla, jotka kommunikoivat I2C-liitännän tai vastaavan väylän ohjelmistoemulaatiolla, on oltava erityinen protokolla, jonka avulla voit estää erilaiset törmäysmahdollisuudet, tietojen katoamisen tai tukkeutumisen. Nopeiden laitteiden pitäisi pystyä kommunikoimaan hitaiden kanssa, eikä järjestelmän pitäisi olla riippuvainen niistäsiihen liitetyistä laitteista, koska muuten kaikkia parannuksia ja muutoksia ei voida käyttää. On myös tarpeen kehittää menettelytapa, jonka avulla on realistista selvittää, mikä laite kulloinkin tarjoaa väyläohjausta ja missä vaiheessa. Lisäksi, jos samaan väylään on kytketty eri laitteita eri kellotaajuuksilla, sinun on päätettävä sen synkronoinnin lähde. AVR:n ja muiden tässä luettelossa olevien I2C-liitäntä täyttää kaikki nämä kriteerit.
Pääkonsepti
I2C-väylä tukee mitä tahansa käytettyä sirutekniikkaa. I2C LabVIEW -rajapinta ja muut sitä vastaavat mahdollistavat kahden linjan käytön tiedon siirtoon - datan ja synkronoinnin. Jokainen tällä tavalla liitetty laite tunnistetaan ainutlaatuisesta osoitteestaan riippumatta siitä, onko se LCD-puskuri, mikro-ohjain, muisti tai näppäimistöliitäntä, ja se voi toimia vastaanottimena tai lähettimenä riippuen siitä, mihin se on tarkoitettu tälle laitteelle.
Useimmissa tapauksissa LCD-puskuri on tavallinen vastaanotin, ja muisti ei voi vain vastaanottaa, vaan myös lähettää erilaisia tietoja. Muun muassa tiedonsiirtoprosessin mukaan laitteet voidaan luokitella orja- ja isäntälaitteiksi.
Tässä tapauksessa isäntä on laite, joka aloittaa tiedonsiirron ja myös luosynkronointisignaalit. Tässä tapauksessa kaikkia osoitettavia laitteita pidetään siihen liittyvinä orjina.
I2C-viestintärajapinta mahdollistaa useiden isäntien läsnäolon samanaikaisesti, eli siihen voi muodostaa yhteyden useampi kuin yksi väylää ohjaamaan kykenevä laite. Mahdollisuus käyttää useampaa kuin yhtä mikro-ohjainta samassa väylässä tarkoittaa, että useampi kuin yksi isäntä voidaan lähettää eteenpäin milloin tahansa. Tällaisen tilanteen ilmaantuessa syntyvän mahdollisen kaaoksen eliminoimiseksi on kehitetty erikoistunut välimiesmenettely, joka käyttää I2C-rajapintaa. Laajentimet ja muut laitteet mahdollistavat laitteiden kytkemisen väylään niin sanotun johdotussäännön mukaisesti.
Kellosignaalin generointi on isäntälaitteen vastuulla, ja jokainen isäntä tuottaa oman signaalinsa tiedonsiirron aikana, ja se voi muuttua vasta myöhemmin, jos hidas orja tai toinen isäntä "vetää" sitä törmäyksen sattuessa
Yleiset parametrit
Sekä SCL että SDA ovat kaksisuuntaisia linjoja, jotka liitetään positiiviseen virtalähteeseen vetovastuksen avulla. Kun rengas on täysin vapaa, jokainen rivi on korkealla. Väylään liitettyjen laitteiden lähtöasteiden tulee olla open-drain tai open-collector, jotta langallinen JA-toiminto voidaan toteuttaa I2C-liitännän kautta voidaan siirtää tietoa enintään 400 kbps nopeudellanopea tila, kun taas vakionopeus ei ylitä 100 kbps. Väylään samanaikaisesti kytkettävien laitteiden kokonaismäärä riippuu vain yhdestä parametrista. Tämä on linjakapasitanssi, joka on enintään 400 pf.
Vahvistus
Vahvistus on pakollinen toimenpide tiedonsiirtoprosessissa. Isäntä generoi sopivan tahdistuspulssin, kun lähetin vapauttaa SDA-linjan tämän synkronointipulssin aikana kuittauksena. Tämän jälkeen vastaanottimen on varmistettava, että SDA-linja pysyy vakaana kellon korkean tilan aikana vakaassa matalassa tilassa. Muista tässä tapauksessa ottaa asennus- ja pitoajat huomioon.
Useimmissa tapauksissa osoitetun vastaanottajan on pakollista generoida kuittaus jokaisen vastaanotetun tavun jälkeen, ainoana poikkeuksena on se, että lähetyksen alku sisältää CBUS-osoitteen.
Jos vastaanotin-orja ei pysty lähettämään vahvistusta omasta osoitteestaan, datalinja tulee jättää korkealle, jolloin isäntä pystyy antamaan "Stop"-signaalin, joka keskeyttää osoitteen lähettämisen. kaikki tiedot. Jos osoite on vahvistettu, mutta orja ei voi vastaanottaa enempää dataa pitkään aikaan, isäntäkoneen on myös keskeytettävä lähetys. Tätä varten orja ei kuittaa seuraavaa vastaanotettua tavua ja yksinkertaisesti poistuu riviltäkorkea, jolloin isäntä tuottaa pysäytyssignaalin.
Jos siirtoproseduuri mahdollistaa isäntävastaanottimen läsnäolon, niin tässä tapauksessa sen on ilmoitettava orjalle lähetyksen päättymisestä, ja tämä tapahtuu jättämällä kuittaamatta viimeistä vastaanotettua tavua. Tässä tapauksessa orjalähetin vapauttaa välittömästi datalinjan, jotta isäntä voi antaa "Stop"-signaalin tai toistaa "Start"-signaalin uudelleen.
Jos haluat tarkistaa, toimiiko laite, voit yrittää syöttää vakioesimerkkejä I2C-liitännän luonnoksista Arduinossa, kuten yllä olevassa kuvassa.
välimiesmenettely
Masterit voivat aloittaa tiedon lähettämisen vasta, kun väylä on täysin vapaa, mutta kaksi tai useampi isäntä voi luoda aloitussignaalin vähimmäispitoajalla. Tämä johtaa lopulta tietyn "Start"-signaalin väylään.
Sovittelu toimii SDA-väylällä, kun SCL-väylä on korkealla. Jos toinen isännistä alkaa lähettää datalinjalla matalaa tasoa, mutta samaan aikaan toinen on korkea, niin jälkimmäinen kytkeytyy siitä kokonaan irti, koska SDL-tila ei vastaa sen sisäisen linjan korkeaa tilaa..
Arbitraasi voi jatkua useiden bittien ajan. Koska ensin välitetään osoite ja sitten tiedot, välimiesmenettely voi kestää osoitteen loppuun asti ja jos isännät osoittelevatsama laite, silloin eri tiedot osallistuvat myös välimiesmenettelyyn. Tämän välimiesmenettelyn vuoksi tietoja ei menetetä, jos törmäys tapahtuu.
Jos isäntä menettää sovittelun, se voi antaa kellopulsseja SCL:ssä tavun loppuun asti, jolloin pääsy katkesi.