Šiuolaikinėje buitinėje technikoje, pramoninėje elektronikoje ir įvairioje telekomunikacijų įrangoje dažnai galima rasti panašių sprendimų, nors produktai gali būti praktiškai nesusiję. Pavyzdžiui, beveik kiekvienoje sistemoje yra:
- tam tikras „protingas“valdymo blokas, kuris daugeliu atvejų yra vieno lusto mikrokompiuteris;
- bendros paskirties komponentai, pvz., LCD buferiai, RAM, I/O prievadai, EEPROM arba tam skirti duomenų keitikliai;
- specifiniai komponentai, įskaitant skaitmeninio derinimo ir signalų apdorojimo grandines, skirtas vaizdo ir radijo sistemoms.
Kaip optimizuoti jų taikymą?
Siekdamas maksimaliai išnaudoti šiuos įprastus sprendimus dizainerių ir gamintojų naudai, taip pat pagerinti bendrą įvairios aparatinės įrangos veikimą ir supaprastinti taikomus grandinės komponentus, „Philips“nusprendė sukurti paprasčiausią dviejų laidų dvikryptį autobusas, kuris suteikia našiausią tarpinę lustąkontrolė. Ši magistralė užtikrina duomenų perdavimą per I2C sąsają.
Šiandien gamintojo gaminių asortimentą sudaro daugiau nei 150 CMOS, taip pat dvipolių įrenginių, suderinamų su I2C ir sukurtų veikti bet kurioje iš išvardytų kategorijų. Reikėtų pažymėti, kad I2C sąsaja iš pradžių yra integruota į visus suderinamus įrenginius, dėl kurių jie gali lengvai bendrauti tarpusavyje naudodami specialią magistralę. Dėl tokio dizaino sprendimo panaudojimo pavyko išspręsti gana daug įvairios įrangos sąsajų problemų, kas gana būdinga skaitmeninių sistemų kūrimui.
Pagrindiniai privalumai
Net jei pažvelgsite į trumpą UART, SPI, I2C sąsajų aprašymą, galite pabrėžti šiuos pastarųjų pranašumus:
- Norėdami dirbti, jums reikia tik dviejų eilučių – sinchronizavimo ir duomenų. Bet kuris įrenginys, kuris prisijungia prie tokios magistralės, gali būti programiškai adresuojamas visiškai unikaliu adresu. Bet kuriuo metu yra paprastas ryšys, leidžiantis pagrindiniams siųstuvams arba pagrindiniams imtuvams veikti.
- Ši magistralė suteikia galimybę vienu metu turėti kelis pagrindinius įrenginius, suteikdama visas reikalingas priemones susidūrimams nustatyti, taip pat arbitražą, kad būtų išvengta duomenų sugadinimo tuo atveju, jei informaciją vienu metu pradėtų perduoti du ar daugiau pagrindinių. Standartiniu režimuužtikrinamas tik nuoseklus 8 bitų duomenų perdavimas ne didesniu kaip 100 kbps greičiu, o greituoju režimu ši riba gali būti padidinta keturis kartus.
- Lustuose naudojamas specialus integruotas filtras, kuris veiksmingai slopina viršįtampius ir užtikrina maksimalų duomenų vientisumą.
- Didžiausias galimas lustų, kurias galima prijungti prie vienos magistralės, skaičius ribojamas tik jos maksimalia galima 400 pF talpa.
Privalumai konstruktoriams
I2C sąsaja, taip pat visi suderinami lustai, gali žymiai pagreitinti kūrimo procesą nuo funkcinės diagramos iki galutinio prototipo. Kartu pažymėtina, kad dėl galimybės tokias mikroschemas prijungti tiesiai prie magistralės, nenaudojant visokių papildomų grandinių, yra numatyta erdvė tolimesniam prototipo sistemos modernizavimui ir modifikavimui, atjungiant ir prijungiant įvairius įrenginius nuo autobusas.
Yra daug privalumų, dėl kurių I2C sąsaja išsiskiria. Visų pirma aprašymas leidžia pamatyti šiuos konstruktorių pranašumus:
- Funkcinėje schemoje esantys blokai visiškai atitinka mikroschemas ir tuo pačiu suteikiamas gana greitas perėjimas nuo funkcinio prie pagrindinio.
- Nereikia kurti magistralės sąsajų, nes magistralė jau savaime integruota į tam skirtas lustus.
- Integruoti ryšio protokolai irĮrenginio adresas leidžia sistemą visiškai apibrėžti programine įranga.
- To paties tipo mikroschemos, jei reikia, gali būti naudojamos visiškai skirtingose srityse.
- Bendras kūrimo laikas žymiai sutrumpėja dėl to, kad dizaineriai gali greitai susipažinti su dažniausiai naudojamais funkciniais blokais, taip pat įvairiomis mikroschemomis.
- Jei norite, galite pridėti arba pašalinti iš sistemos lustus ir tuo pačiu neturėti didelio poveikio kitai įrangai, prijungtai prie tos pačios magistralės.
- Bendras programinės įrangos kūrimo laikas gali būti žymiai sutrumpintas, jei leidžiama turėti daugkartinio naudojimo programinės įrangos modulių biblioteką.
Be kitų dalykų, verta atkreipti dėmesį į itin paprastą įvykusių gedimų diagnozavimo ir tolesnio derinimo procedūrą, kuri išskiria I2C sąsają. Apraše teigiama, kad esant reikalui net ir nedidelius tokios įrangos veikimo nukrypimus galima akimirksniu be jokių sunkumų stebėti ir atitinkamai imtis atitinkamų priemonių. Taip pat verta paminėti, kad dizaineriai gauna specialius sprendimus, kurie ypač yra gana patrauklūs įvairiai nešiojamai įrangai ir sistemoms, maitinančioms bateriją naudojant I2C sąsają. Aprašymas rusų kalba taip pat nurodo, kad jo naudojimas leidžia jums suteikti šiuos svarbius pranašumus:
- Pakankamai aukštas atsparumo bet kokiems trikdžiams laipsnis.
- Galiausiaimažas energijos suvartojimas.
- Plačiausias maitinimo įtampos diapazonas.
- Platus temperatūros diapazonas.
Privalumai technologams
Verta pažymėti, kad ne tik dizaineriai, bet ir technologai pastaruoju metu gana dažnai pradėjo naudoti specializuotą I2C sąsają. Aprašymas rusų kalba nurodo gana platų pranašumų spektrą, kurį suteikia šios kategorijos specialistai:
- Standartinė dviejų laidų nuoseklioji magistralė su šia sąsaja sumažina IC sujungimus, tai reiškia, kad reikia mažiau kontaktų ir mažiau takelių, todėl PCB yra pigesni ir daug mažesni.
- Visiškai integruota I2C sąsaja LCD1602 ar kita parinktis visiškai pašalina adresų dekoderių ir kitos išorinės mažos logikos poreikį.
- Tokioje magistralėje vienu metu galima naudoti kelis pagrindinius elementus, o tai žymiai pagreitina testavimą ir tolesnį įrangos nustatymą, nes magistralę galima prijungti prie surinkimo linijos kompiuterio.
- Su šia sąsaja suderinamų IC VSO, SO ir tinkintuose DIL paketuose gali žymiai sumažinti įrenginio dydžio reikalavimus.
Tai tik trumpas pranašumų sąrašas, išskiriantis LCD1602 ir kitų I2C sąsają. Be to, suderinami lustai gali žymiai padidinti naudojamos sistemos lankstumą, suteikdamiitin paprastas įvairių įrangos variantų dizainas, taip pat gana paprastas atnaujinimas, siekiant toliau palaikyti plėtrą esamu lygiu. Taigi, remiantis tam tikru baziniu modeliu, galima sukurti visą įvairios įrangos šeimą.
Tolimesnį įrangos modernizavimą ir jos funkcijų išplėtimą galima atlikti standartiniu prijungimu prie atitinkamos mikroschemos magistralės naudojant Arduino 2C sąsają arba bet kurią kitą iš turimo sąrašo. Jei reikalingas didesnis ROM, tuomet pakaks tik pasirinkti kitą mikrovaldiklį su padidintu ROM. Kadangi atnaujinti lustai, jei reikia, gali visiškai pakeisti senus, galite lengvai pridėti naujų funkcijų į įrangą arba padidinti jos bendrą našumą tiesiog atjungdami pasenusius lustus ir pakeisdami juos naujesne įranga.
ACCESS.bus
Dėl to, kad magistralė yra dviejų laidų, taip pat dėl programos adresavimo galimybės, viena iš idealiausių ACCESS.bus platformų yra I2C sąsaja. Dėl šio įrenginio specifikacijos (straipsnyje pateiktas aprašymas rusų kalba) jis yra daug pigesnė alternatyva anksčiau aktyviai naudotai RS-232C sąsajai, skirta įvairių išorinių įrenginių prijungimui prie kompiuterių naudojant standartinę keturių kontaktų jungtį.
Specifikacijos įvadas
Šiuolaikinėms programoms8 bitų valdymas, kuriame naudojami mikrovaldikliai, galima nustatyti kai kuriuos projektavimo kriterijus:
- visą sistemą dažniausiai sudaro vienas mikrovaldiklis ir kiti išoriniai įrenginiai, įskaitant atmintį ir įvairius įvesties/išvesties prievadus;
- bendra skirtingų įrenginių derinimo vienoje sistemoje sąnaudos turėtų būti kiek įmanoma sumažintos;
- funkcijas valdanti sistema nenumato būtinybės užtikrinti greitą informacijos perdavimą;
- bendras efektyvumas tiesiogiai priklauso nuo pasirinktos įrangos, taip pat nuo jungiamosios magistralės pobūdžio.
Norėdami sukurti sistemą, kuri visiškai atitinka išvardytus kriterijus, turite naudoti magistralę, kuri naudos I2C nuosekliąją sąsają. Nors nuoseklioji magistralė neturi lygiagrečios magistralės pralaidumo, jai reikia mažiau jungčių ir mažiau lustų kaiščių. Tuo pačiu nepamirškite, kad magistrale yra ne tik sujungimo laidai, bet ir įvairios procedūros bei formatai, būtini komunikacijai sistemoje užtikrinti.
Įrenginiai, kurie bendrauja naudodami programinę I2C sąsajos emuliaciją arba atitinkamą magistralę, turi turėti specialų protokolą, leidžiantį išvengti įvairių susidūrimų, informacijos praradimo ar blokavimo galimybių. Greiti įrenginiai turėtų turėti galimybę bendrauti su lėtais, o sistema neturėtų nuo jų priklausytinuo prie jo prijungtos įrangos, nes kitaip nebus galima naudoti visų patobulinimų ir modifikacijų. Taip pat būtina parengti procedūrą, kurios pagalba būtų realu nustatyti, koks konkretus įrenginys šiuo metu ir kuriuo momentu užtikrina magistralės valdymą. Be to, jei prie tos pačios magistralės prijungti skirtingi įrenginiai su skirtingais laikrodžio dažniais, turite nuspręsti dėl jos sinchronizavimo š altinio. Visus šiuos kriterijus atitinka I2C sąsaja, skirta AVR ir bet kuriai kitai šiame sąraše.
Pagrindinė koncepcija
I2C magistralė gali palaikyti bet kokią naudojamą lustų technologiją. I2C LabVIEW sąsaja ir kitos panašios į ją numato naudoti dvi eilutes informacijai perduoti – duomenims ir sinchronizacijai. Bet kuris tokiu būdu prijungtas įrenginys atpažįstamas pagal unikalų adresą, nesvarbu, ar tai LCD buferis, mikrovaldiklis, atmintis ar klaviatūros sąsaja, ir gali veikti kaip imtuvas arba siųstuvas, priklausomai nuo to, kam jis skirtas.skirtas šiai įrangai.
Daugeliu atvejų LCD buferis yra standartinis imtuvas, o atmintis gali ne tik priimti, bet ir perduoti įvairius duomenis. Be kita ko, atsižvelgiant į informacijos perkėlimo procesą, įrenginiai gali būti klasifikuojami kaip pavaldūs ir pagrindiniai.
Šiuo atveju pagrindinis įrenginys yra įrenginys, kuris inicijuoja duomenų perdavimą ir generuojasinchronizacijos signalus. Tokiu atveju visi adresuojami įrenginiai bus laikomi pagalbiniais įrenginiais.
I2C ryšio sąsaja suteikia galimybę vienu metu turėti kelis pagrindinius įrenginius, tai yra, prie jos gali prisijungti daugiau nei vienas įrenginys, galintis valdyti magistralę. Galimybė naudoti daugiau nei vieną mikrovaldiklį toje pačioje magistralėje reiškia, kad bet kuriuo metu galima persiųsti daugiau nei vieną pagrindinį valdiklį. Siekiant pašalinti galimą chaosą, kuris gali kilti susidarius tokiai situacijai, buvo sukurta specializuota arbitražo procedūra, naudojanti I2C sąsają. Plėtiniai ir kiti įrenginiai numato prietaisų prijungimą prie magistralės pagal vadinamąją laidų taisyklę.
Už laikrodžio signalo generavimą yra atsakingas pagrindinis valdiklis, o kiekvienas valdiklis generuoja savo signalą duomenų perdavimo metu, o vėliau jis gali pasikeisti tik tada, kai susidūrimo metu jį „traukia“lėtas vergas ar kitas valdiklis.
Bendrieji parametrai
Tiek SCL, tiek SDA yra dvikryptės linijos, kurios jungiamos prie teigiamo maitinimo š altinio su ištraukiamuoju rezistoriumi. Kai padanga visiškai laisva, kiekviena linija yra aukštoje padėtyje. Prie magistralės prijungtų įrenginių išvesties pakopos turi būti atviro nutekėjimo arba atvirojo kolektoriaus, kad būtų galima užtikrinti laidinę AND funkciją Informacija per I2C sąsają gali būti perduodama ne didesniu kaip 400 kbps greičiugreitasis režimas, o standartinė sparta neviršija 100 kbps. Bendras įrenginių, kuriuos vienu metu galima prijungti prie magistralės, skaičius priklauso tik nuo vieno parametro. Tai linijos talpa, kuri yra ne didesnė kaip 400 pf.
Patvirtinimas
Patvirtinimas yra privaloma procedūra duomenų perdavimo procese. Pagrindinis valdiklis generuoja atitinkamą sinchronizavimo impulsą, o siųstuvas išleidžia SDA liniją šio sinchronizavimo impulso metu kaip patvirtinimą. Po to imtuvas turi užtikrinti, kad SDA linija būtų stabili aukšto laikrodžio būsenoje esant stabiliai žemai. Tokiu atveju būtinai atsižvelkite į sąrankos ir palaikymo laiką.
Daugeliu atvejų gavėjas, kuriam adresuotas, privalo generuoti patvirtinimą po kiekvieno gauto baito, išskyrus atvejus, kai perdavimo pradžioje yra CBUS adresas.
Jei imtuvas-pagalvas neturi galimybės išsiųsti savo adreso patvirtinimo, duomenų eilutę reikia palikti aukštai, o tada pagrindinis kompiuteris galės duoti "Stop" signalą, kuris nutrauks visa informacija. Jei adresas buvo patvirtintas, bet vergas ilgą laiką nebegali gauti daugiau duomenų, šeimininkas taip pat turi nutraukti siuntimą. Norėdami tai padaryti, vergas nepripažįsta kito gauto baito ir tiesiog palieka eilutędidelis, todėl pagrindinis įrenginys generuoja sustabdymo signalą.
Jei perdavimo procedūra numato pagrindinio imtuvo buvimą, tai tokiu atveju jis turi informuoti vergą apie siuntimo pabaigą, o tai daroma nepatvirtinus paskutinio gauto baito. Tokiu atveju pagalbinis siųstuvas nedelsdamas atleidžia duomenų liniją, kad pagrindinis kompiuteris galėtų duoti „Stop“signalą arba vėl pakartoti „Start“signalą.
Jei norite patikrinti, ar įranga veikia, galite pabandyti įvesti standartinius I2C sąsajos eskizų pavyzdžius „Arduino“, kaip parodyta aukščiau esančioje nuotraukoje.
Arbitražas
Meistrai gali pradėti siųsti informaciją tik tada, kai magistralė bus visiškai laisva, tačiau du ar daugiau meistrų gali generuoti pradžios signalą per minimalų sulaikymo laiką. Galų gale, magistralėje bus rodomas konkretus „Start“signalas.
Arbitražas veikia SDA magistralėje, kai SCL magistralė yra aukšta. Jei vienas iš pagrindinių duomenų perdavimo linijoje pradeda perduoti žemą lygį, bet tuo pačiu metu kitas yra aukštas, tada pastarasis yra visiškai nuo jo atjungtas, nes SDL būsena neatitinka jo vidinės linijos aukšto lygio..
Arbitražas gali tęstis kelis bitus. Dėl to, kad pirmiausia perduodamas adresas, o po to duomenys, arbitražas gali trukti iki adreso pabaigos, o jei meistrai kreipsistą patį įrenginį, tada arbitraže dalyvaus ir kiti duomenys. Dėl šios arbitražo schemos, įvykus susidūrimui, jokie duomenys nebus prarasti.
Jei pagrindinis valdiklis praranda arbitražą, jis gali leisti laikrodžio impulsus SCL iki baito pabaigos, per kurį buvo prarasta prieiga.