Kaasaegsetest kodumasinatest, tööstuselektroonikast ja erinevatest telekommunikatsiooniseadmetest võib sageli leida sarnaseid lahendusi, kuigi tooted ei pruugi praktiliselt omavahel seotud olla. Näiteks sisaldab peaaegu iga süsteem järgmist:
- teatud "tark" juhtseade, mis enamikul juhtudel on ühe kiibiga mikroarvuti;
- üldotstarbelised komponendid, nagu LCD puhvrid, RAM, I/O pordid, EEPROM või spetsiaalsed andmemuundurid;
- spetsiifilised komponendid, sealhulgas video- ja raadiosüsteemide digitaalsed häälestus- ja signaalitöötlusahelad.
Kuidas nende rakendust optimeerida?
Et neid levinud lahendusi disainerite ja tootjate huvides maksimaalselt ära kasutada, samuti parandada erinevate riistvara üldist jõudlust ja lihtsustada kasutatavaid vooluahela komponente, asus Philips välja töötama kõige lihtsama kahejuhtmelise kahesuunalise buss, mis pakub kõige produktiivsemat inter-kiipikontroll. See siin pakub andmeedastust I2C liidese kaudu.
Tänapäeval on tootja tootevalikus enam kui 150 CMOS-i, samuti I2C-ga ühilduvaid bipolaarseid seadmeid, mis on loodud töötama mis tahes loetletud kategooriates. Tuleb märkida, et I2C liides on algselt sisse ehitatud kõikidesse ühilduvatesse seadmetesse, tänu millele saavad nad spetsiaalse siini abil hõlpsasti omavahel suhelda. Tänu sellise disainilahenduse kasutamisele oli võimalik lahendada küll altki suur hulk erinevate seadmete liidestamise probleeme, mis on üsna tüüpiline digitaalsete süsteemide arendamisel.
Peamised eelised
Isegi kui vaatate UART-, SPI-, I2C-liideste lühikirjeldust, saate esile tuua viimaste järgmised eelised:
- Töötamiseks vajate ainult kahte rida – sünkroonimist ja andmeid. Iga seadme, mis sellise siiniga ühendub, saab seejärel programmiliselt adresseerida täiesti unikaalsele aadressile. Igal ajahetkel on olemas lihtne seos, mis võimaldab ülematel toimida ülem-saatja või ülem-vastuvõtjana.
- See siin annab võimaluse kasutada korraga mitut ülemseadet, pakkudes kõiki vajalikke vahendeid kokkupõrgete kindlakstegemiseks, samuti arbitraaži, et vältida andmete riknemist juhul, kui kaks või enam ülemseadet hakkavad korraga teavet edastama. Standardrežiimisainult 8-bitine jadaedastus toimub kiirusega kuni 100 kbps ja kiirrežiimis saab seda läve neli korda suurendada.
- Kiibid kasutavad spetsiaalset sisseehitatud filtrit, mis summutab tõhus alt liigpingeid ja tagab andmete maksimaalse terviklikkuse.
- Ühe siiniga ühendatavate kiipide maksimaalne arv on piiratud ainult selle maksimaalse võimaliku võimsusega 400 pF.
Eelised konstruktoritele
I2C liides ja kõik ühilduvad kiibid võivad arendusprotsessi märkimisväärselt kiirendada, alates funktsionaalsest diagrammist kuni lõpliku prototüübini. Samas tuleb märkida, et tänu võimalusele ühendada sellised mikroskeemid otse siiniga ilma igasuguseid lisaskeeme kasutamata, on ette nähtud ruumi prototüübisüsteemi edasiseks moderniseerimiseks ja muutmiseks, lahutades ja ühendades erinevad seadmed vooluvõrgust. buss.
I2C liidesel on palju eeliseid. Eelkõige võimaldab kirjeldus näha konstruktorite jaoks järgmisi eeliseid:
- Funktsionaaldiagrammil olevad plokid vastavad täielikult mikroskeemidele ja samal ajal on tagatud üsna kiire üleminek funktsionaalselt põhifunktsioonile.
- Siiniliideseid pole vaja arendada, sest siin on juba algselt integreeritud spetsiaalsetesse kiibisse.
- Integreeritud sideprotokollid jaseadme adresseerimine võimaldab süsteemi täielikult tarkvaraliselt määratleda.
- Sama tüüpi mikroskeeme saab vajadusel kasutada täiesti erinevates rakendustes.
- Koguarendusaeg väheneb oluliselt tänu sellele, et disainerid saavad kiiresti tuttavaks enimkasutatavate funktsionaalplokkidega, aga ka erinevate mikroskeemidega.
- Soovi korral saate süsteemi kiipe lisada või se alt eemaldada ning samal ajal mitte avaldada suurt mõju teistele samasse siiniga ühendatud seadmetele.
- Tarkvara arendamise koguaega saab oluliselt lühendada, lubades korduvkasutatavate tarkvaramoodulite raamatukogu.
Muuhulgas tasub tähele panna ülilihtsat protseduuri tekkinud rikete diagnoosimiseks ja edasiseks silumiseks, mis eristab I2C liidest. Kirjeldus viitab sellele, et vajaduse korral saab selliste seadmete töös esinevaid väiksemaid kõrvalekaldeid koheselt ja ilma raskusteta jälgida ja vastav alt vajadusele võtta kasutusele asjakohased meetmed. Samuti väärib märkimist, et disainerid saavad erilahendusi, mis on eriti atraktiivsed erinevate kaasaskantavate seadmete ja süsteemide jaoks, mis pakuvad I2C liidese abil akut. Venekeelne kirjeldus näitab ka, et selle kasutamine võimaldab teil pakkuda järgmisi olulisi eeliseid:
- Piisav alt kõrge vastupidavus mis tahes tekkivatele häiretele.
- Lõpuksmadal energiatarve.
- Kõige laiem toitepinge vahemik.
- Lai temperatuurivahemik.
Kasu tehnoloogidele
Väärib märkimist, et mitte ainult disainerid, vaid ka tehnoloogid on viimasel ajal hakanud üsna sageli kasutama spetsiaalset I2C liidest. Venekeelne kirjeldus näitab üsna laia valikut eeliseid, mida see spetsialistide kategooria pakub:
- Selle liidesega standardne kahejuhtmeline jadasiin minimeerib IC-de vahelisi ühendusi, mis tähendab, et vaja on vähem kontakte ja vähem radu, muutes PCB-d odavamaks ja palju väiksemaks.
- Täielikult integreeritud I2C liides LCD1602 või mõni muu valik välistab täielikult vajaduse aadressidekooderite ja muu välise väikese loogika järele.
- Sellisel siinil on võimalik kasutada korraga mitut masterit, mis kiirendab oluliselt testimist ja hilisemat seadmete seadistamist, kuna siini saab ühendada konveieri arvutiga.
- Selle liidesega ühilduvate IC-de saadavus VSO, SO ja kohandatud DIL-pakettides võib märkimisväärselt vähendada seadme suuruse nõudeid.
See on vaid lühike loetelu eelistest, mis eristavad LCD1602 I2C liidest ja teisi. Lisaks võivad ühilduvad kiibid märkimisväärselt suurendada kasutatava süsteemi paindlikkust, pakkudeserinevate varustusvõimaluste ülilihtne disain, aga ka suhteliselt lihtsad uuendused, et toetada edasist arengut praegusel tasemel. Seega on võimalik välja töötada terve perekond erinevaid seadmeid, võttes aluseks kindla põhimudeli.
Seadmete edasist moderniseerimist ja nende funktsioonide laiendamist saab läbi viia standardse ühenduse kaudu vastava mikroskeemi siiniga, kasutades Arduino 2C liidest või mõnda muud saadaolevast loendist. Kui on vaja suuremat ROM-i, siis piisab vaid mõne teise suurendatud ROM-iga mikrokontrolleri valimisest. Kuna uuendatud kiibid võivad vajadusel vanu täielikult asendada, saate lihts alt lisada seadmetele uusi funktsioone või suurendada selle üldist jõudlust, lihts alt lahutades aegunud kiibid ja asendades need seejärel uuemate seadmetega.
ACCESS.bus
Tulenev alt asjaolust, et siinil on kahejuhtmeline olemus ja ka programm adresseerimise võimalus, on ACCESS.busi jaoks üks ideaalsemaid platvorme I2C liides. Selle seadme spetsifikatsioon (venekeelne kirjeldus on toodud artiklis) muudab selle palju odavamaks alternatiiviks varem aktiivselt kasutatud RS-232C liidesele erinevate välisseadmete ühendamiseks arvutitega standardse neljakontaktilise pistiku abil.
Spetsifikatsiooni tutvustus
Kaasaegsete rakenduste jaoks8-bitine juhtimine, mis kasutab mikrokontrollereid, on võimalik seada mõned disainikriteeriumid:
- täielik süsteem sisaldab enamasti ühte mikrokontrollerit ja muid välisseadmeid, sealhulgas mälu ja erinevaid I/O-porte;
- erinevate seadmete ühes süsteemis kombineerimise kogukulu tuleks võimalikult palju minimeerida;
- funktsioone kontrolliv süsteem ei näe ette vajadust tagada kiire teabeedastus;
- üldefektiivsus sõltub otseselt nii valitud seadmest kui ka ühendussiini olemusest.
Süsteemi kavandamiseks, mis vastab täielikult loetletud kriteeriumidele, peate kasutama siini, mis kasutab I2C jadaliidest. Kuigi jadasiini ribalaius puudub paralleelsiiniga, vajab see vähem ühendusi ja vähem kiibi kontakte. Samal ajal ärge unustage, et siin ei sisalda mitte ainult ühendusjuhtmeid, vaid ka erinevaid protseduure ja vorminguid, mis on vajalikud süsteemisisese suhtluse tagamiseks.
Seadmed, mis suhtlevad I2C liidese või vastava siini tarkvaralise emulatsiooni abil, peavad omama spetsiifilist protokolli, mis võimaldab vältida erinevaid kokkupõrkeid, info kadumist või blokeerimist. Kiired seadmed peaksid suutma suhelda aeglastega ja süsteem ei tohiks sellest sõltudasellega ühendatud seadmetest, kuna vastasel juhul ei saa kõiki täiustusi ja muudatusi kasutada. Samuti on vaja välja töötada protseduur, mille abil on reaalne kindlaks teha, milline konkreetne seade parasjagu siinijuhtimist tagab ja mis ajahetkel. Lisaks, kui sama siiniga on ühendatud erinevad seadmed, millel on erinev taktsagedus, peate otsustama selle sünkroonimise allika üle. Kõik need kriteeriumid vastavad AVR-i I2C-liidesele ja teistele selles loendis olevatele.
Põhikontseptsioon
I2C siini toetab mis tahes kasutatavat kiibitehnoloogiat. I2C LabVIEW liides ja teised sellega sarnased võimaldavad teabe edastamiseks kasutada kahte rida - andmeid ja sünkroonimist. Kõik sel viisil ühendatud seadmed tuvastatakse selle kordumatu aadressi järgi, olenemata sellest, kas tegemist on LCD puhvri, mikrokontrolleri, mälu või klaviatuuri liidesega, ning see võib toimida vastuvõtja või saatjana, olenev alt sellest, milleks see on ette nähtud.
Enamikul juhtudel on LCD-puhver tavaline vastuvõtja ja mälu ei saa mitte ainult vastu võtta, vaid ka edastada mitmesuguseid andmeid. Muu hulgas saab vastav alt teabe teisaldamise protsessile klassifitseerida seadmeid alam- ja ülemseadmeteks.
Sel juhul on ülemseade seade, mis algatab andmeedastuse ja genereeribsünkroniseerimissignaalid. Sel juhul käsitletakse kõiki adresseeritavaid seadmeid selle suhtes orjadena.
I2C sideliides tagab korraga mitme ülemseadme olemasolu, see tähendab, et sellega saab ühenduse luua rohkem kui üks seade, mis on võimeline siini juhtima. Võimalus kasutada samal siinil rohkem kui ühte mikrokontrollerit tähendab, et igal ajahetkel saab edastada rohkem kui ühte juhtseadet. Võimaliku kaose kõrvaldamiseks, mis sellise olukorra tekkimisel võib tekkida, on välja töötatud spetsiaalne vahekohtumenetlus, mis kasutab I2C liidest. Laiendajad ja muud seadmed võimaldavad seadmete ühendamist siiniga nn juhtmestiku reegli järgi.
Kellasignaali genereerimise eest vastutab ülem ja iga ülem genereerib andmeedastuse ajal oma signaali ning see saab hiljem muutuda ainult siis, kui kokkupõrke korral seda "tõmbab" aeglane alam või mõni teine ülem
Üldparameetrid
Nii SCL kui ka SDA on kahesuunalised liinid, mis ühendatakse tõmbetakistiga positiivse toiteallikaga. Kui rehv on täiesti vaba, on iga rida kõrgel positsioonil. Siiniga ühendatud seadmete väljundastmed peavad olema avatud äravooluga või avatud kollektoriga, et oleks võimalik pakkuda juhtmega JA funktsiooni I2C liidese kaudu saab infot edastada kiirusega kuni 400 kbpskiire režiim, samas kui standardkiirus ei ületa 100 kbps. Siini üheaegselt ühendatavate seadmete koguarv sõltub ainult ühest parameetrist. See on liini mahtuvus, mis ei ületa 400 pf.
Kinnitus
Kinnitamine on andmeedastusprotsessis kohustuslik protseduur. Ülemseade genereerib sobiva sünkroonimisimpulsi, samal ajal kui saatja vabastab selle sünkroonimisimpulsi ajal kinnituseks SDA liini. Pärast seda peab vastuvõtja tagama, et SDA liin püsiks stabiilsena kõrgel kella oleku ajal stabiilses madalas olekus. Sellisel juhul võtke kindlasti arvesse seadistus- ja ooteaegu.
Valdav enamikul juhtudel on adresseeritud vastuvõtjal kohustuslik genereerida kinnitus pärast iga vastuvõetud baiti, ainsaks erandiks on see, kui edastuse algus sisaldab CBUS-aadressi.
Kui vastuvõtja-alluv ei saa oma aadressi kinnitust saata, tuleks andmeliin kõrgele jätta ja siis saab ülem anda "Stopp" signaali, mis katkestab saatmise. kogu info. Kui aadress on kinnitatud, kuid alamseade ei saa enam pikka aega andmeid vastu võtta, peab ülem ka saatmise katkestama. Selleks ei kinnita alam järgmist vastuvõetud baiti ja lihts alt lahkub re altkõrge, mistõttu ülem genereerib stoppsignaali.
Kui edastusprotseduur näeb ette ülem-vastuvõtja olemasolu, siis sel juhul peab ta teavitama alamseadet edastuse lõppemisest ja selleks ei võeta vastu viimast vastuvõetud baiti. Sel juhul vabastab alam-saatja kohe andmeliini, et ülemseade saaks anda "Stopp" signaali või korrata uuesti "Start" signaali.
Seadmete töötamise kontrollimiseks võite proovida sisestada Arduino I2C liidese standardnäiteid, nagu ül altoodud fotol.
Vahekohus
Masterid saavad hakata teavet saatma alles siis, kui siin on täiesti vaba, kuid kaks või enam masterit saavad genereerida stardisignaali minimaalse ooteaja jooksul. Selle tulemuseks on lõpuks spetsiifiline "Start" signaal siinis.
Arbitraaž töötab SDA siinil, kui SCL siini tase on kõrge. Kui üks masteri hakkab andmeliinil edastama madalat taset, kuid samal ajal on teine kõrge, siis on viimane sellest täielikult lahti ühendatud, kuna SDL olek ei vasta tema siseliini kõrgele olekule..
Arbitraaž võib jätkuda mitme biti jooksul. Kuna esm alt edastatakse aadress ja seejärel andmed, võib arbitraaž kesta kuni aadressi lõpuni ja kui meistrid adresseerivadsama seade, siis osalevad arbitraažis ka erinevad andmed. Selle vahekohtuskeemi tõttu ei lähe kokkupõrke korral andmed kaotsi.
Kui ülemseade kaotab arbitraaži, võib ta anda SCL-is taktimpulsse kuni baidi lõpuni, mille käigus juurdepääs kaob.