I2C-koppelvlak: beskrywing in Russies

INHOUDSOPGAWE:

I2C-koppelvlak: beskrywing in Russies
I2C-koppelvlak: beskrywing in Russies
Anonim

In moderne huishoudelike toestelle, industriële elektronika en verskeie telekommunikasietoerusting kan soortgelyke oplossings dikwels gevind word, alhoewel die produkte feitlik nie verwant is nie. Byna elke stelsel sluit byvoorbeeld die volgende in:

  • 'n sekere "slim" beheereenheid, wat in die oorgrote meerderheid van gevalle 'n enkelskyfie-mikrorekenaar is;
  • algemene doelkomponente soos LCD-buffers, RAM, I/O-poorte, EEPROM of toegewyde data-omsetters;
  • spesifieke komponente insluitend digitale instel- en seinverwerkingkringe vir video- en radiostelsels.

Hoe om hul toepassing te optimaliseer?

kort beskrywing van uart spi i2c-koppelvlakke
kort beskrywing van uart spi i2c-koppelvlakke

Om die meeste van hierdie algemene oplossings tot voordeel van ontwerpers en vervaardigers te maak, sowel as om die algehele werkverrigting van verskeie hardeware te verbeter en die toegepaste stroombaankomponente te vereenvoudig, het Philips beoog om die eenvoudigste twee-draad tweerigting te ontwikkel bus wat die mees produktiewe inter-skyfie verskafbeheer. Hierdie bus verskaf data-oordrag via die I2C-koppelvlak.

Vandag sluit die vervaardiger se produkreeks meer as 150 CMOS in, sowel as bipolêre toestelle wat versoenbaar is met I2C en ontwerp is om in enige van die kategorieë gelys te werk. Daar moet kennis geneem word dat die I2C-koppelvlak aanvanklik in alle versoenbare toestelle ingebou is, waardeur hulle maklik met mekaar kan kommunikeer deur 'n spesiale bus te gebruik. As gevolg van die gebruik van so 'n ontwerpoplossing, was dit moontlik om 'n redelike groot aantal probleme op te los om verskeie toerusting te koppel, wat nogal tipies is vir die ontwikkeling van digitale stelsels.

Sleutelvoordele

i2c koppelvlak
i2c koppelvlak

Selfs as jy na 'n kort beskrywing van die UART-, SPI-, I2C-koppelvlakke kyk, kan jy die volgende voordele van laasgenoemde uitlig:

  • Om te werk, het jy net twee reëls nodig – sinchronisasie en data. Enige toestel wat aan so 'n bus koppel, kan dan programmaties aan 'n heeltemal unieke adres geadresseer word. Op enige gegewe tydstip is daar 'n eenvoudige verhouding wat die meesters toelaat om as meester-sender of meester-ontvanger op te tree.
  • Hierdie bus bied die vermoë om verskeie meesters gelyktydig te hê, wat al die nodige middele verskaf om botsings te bepaal, sowel as arbitrasie om datakorrupsie te voorkom in die geval dat twee of meer meesters inligting gelyktydig begin oordra. In standaardmodusslegs seriële 8-bis data-oordrag word verskaf teen 'n spoed van nie meer as 100 kbps nie, en in vinnige modus kan hierdie drempel vier keer verhoog word.
  • Die skyfies gebruik 'n spesiale ingeboude filter wat oplewings effektief onderdruk en maksimum data-integriteit verseker.
  • Die maksimum moontlike aantal skyfies wat aan een bus gekoppel kan word, word slegs deur sy maksimum moontlike kapasiteit van 400 pF beperk.

Voordele vir Konstrukteurs

i2c-koppelvlak lcd1602
i2c-koppelvlak lcd1602

Die I2C-koppelvlak, sowel as alle versoenbare skyfies, kan die ontwikkelingsproses aansienlik bespoedig, van 'n funksionele diagram tot sy finale prototipe. Terselfdertyd moet daarop gelet word dat as gevolg van die moontlikheid om sulke mikrokringe direk aan die bus te koppel sonder om allerhande bykomende stroombane te gebruik, ruimte voorsien word vir verdere modernisering en wysiging van die prototipe stelsel deur verskeie toestelle te ontkoppel en te koppel van die bus.

Daar is baie voordele wat die I2C-koppelvlak laat uitstaan. Die beskrywing, veral, laat jou toe om die volgende voordele vir konstrukteurs te sien:

  • Die blokke op die funksionele diagram stem ten volle ooreen met mikrokringe, en terselfdertyd word 'n redelik vinnige oorgang van funksioneel na fundamenteel verskaf.
  • Dit is nie nodig om buskoppelvlakke te ontwikkel nie, want die bus is reeds inheems geïntegreer in toegewyde skyfies.
  • Geïntegreerde kommunikasieprotokolle entoesteladressering laat die stelsel toe om heeltemal sagteware-gedefinieer te word.
  • Dieselfde tipes mikrobane, indien nodig, kan in heeltemal verskillende toepassings gebruik word.
  • Totale ontwikkelingstyd word aansienlik verminder as gevolg van die feit dat ontwerpers vinnig vertroud kan raak met die mees gebruikte funksionele blokke, sowel as verskeie mikrobane.
  • As jy wil, kan jy skyfies byvoeg of van die stelsel verwyder, en terselfdertyd nie veel effek hê op ander toerusting wat aan dieselfde bus gekoppel is nie.
  • Totale sagteware-ontwikkelingstyd kan aansienlik verminder word deur 'n biblioteek van herbruikbare sagtewaremodules toe te laat.

Dit is onder andere die moeite werd om te let op die uiters eenvoudige prosedure vir die diagnose van foute wat plaasgevind het en verdere ontfouting, wat die I2C-koppelvlak onderskei. Die beskrywing dui daarop dat, indien nodig, selfs geringe afwykings in die werking van sulke toerusting onmiddellik sonder enige probleme gemonitor kan word en dienooreenkomstig toepaslike maatreëls getref kan word. Dit is ook opmerklik dat ontwerpers spesiale oplossings kry, wat veral baie aantreklik is vir verskeie draagbare toerusting en stelsels wat batterykrag verskaf deur die I2C-koppelvlak te gebruik. Die beskrywing in Russies dui ook aan dat die gebruik daarvan jou toelaat om die volgende belangrike voordele te bied:

  • Voldoende hoë mate van weerstand teen enige opkomende interferensie.
  • Uiteindeliklae kragverbruik.
  • Wedste toevoerspanningreeks.
  • Wy temperatuurreeks.

Voordele vir tegnoloë

Dit is opmerklik dat nie net ontwerpers nie, maar ook tegnoloë onlangs 'n gespesialiseerde I2C-koppelvlak begin gebruik het. Die beskrywing in Russies dui op 'n redelike wye reeks voordele wat hierdie kategorie spesialiste bied:

  • 'n Standaard tweedraad-seriële bus met hierdie koppelvlak minimaliseer verbindings tussen IC's, wat beteken dat daar minder penne en minder spore benodig word, wat PCB's goedkoper en baie kleiner maak.
  • 'n Volledig geïntegreerde I2C-koppelvlak LCD1602 of 'n ander opsie skakel die behoefte aan adresdekodeerders en ander eksterne klein logika heeltemal uit.
  • Dit is moontlik om verskeie meesters gelyktydig op so 'n bus te gebruik, wat toetsing en daaropvolgende toerustingopstelling aansienlik bespoedig, aangesien die bus aan 'n monteerlynrekenaar gekoppel kan word.
  • Die beskikbaarheid van IC's wat met hierdie koppelvlak versoenbaar is in VSO-, SO- en pasgemaakte DIL-pakkette kan toestelgroottevereistes aansienlik verminder.

Dit is net 'n kort lys van voordele wat die I2C-koppelvlak van die LCD1602 en ander onderskei. Daarbenewens kan versoenbare skyfies die buigsaamheid van die stelsel wat gebruik word aansienlik verhoog, verskafuiters eenvoudige ontwerp van verskeie toerustingopsies, asook relatief maklike opgraderings om ontwikkeling op die huidige vlak verder te ondersteun. Dit is dus moontlik om 'n hele familie van verskillende toerusting te ontwikkel, deur 'n sekere basiese model as basis te gebruik.

Verdere modernisering van toerusting en uitbreiding van sy funksies kan uitgevoer word deur middel van 'n standaardverbinding met die bus van die ooreenstemmende mikrokring deur die Arduino 2C-koppelvlak of enige ander uit die beskikbare lys te gebruik. As 'n groter ROM benodig word, sal dit net genoeg wees om 'n ander mikrobeheerder met 'n verhoogde ROM te kies. Aangesien opgedateerde skyfies oues heeltemal kan vervang indien nodig, kan jy maklik nuwe kenmerke by toerusting voeg of die algehele werkverrigting daarvan verhoog deur eenvoudig verouderde skyfies te ontkoppel en dan met nuwer toerusting te vervang.

ACCESS.bus

As gevolg van die feit dat die bus 'n tweedraad-aard het, sowel as die moontlikheid van programadressering, is een van die mees ideale platforms vir ACCESS.bus die I2C-koppelvlak. Die spesifikasie (beskrywing in Russies word in die artikel aangebied) van hierdie toestel maak dit 'n baie goedkoper alternatief vir die voorheen aktief gebruikte RS-232C-koppelvlak om verskeie randapparatuur aan rekenaars te koppel deur 'n standaard vierpenkoppelaar te gebruik.

Spesifikasie-inleiding

i2c-koppelvlakbeskrywing in Russies
i2c-koppelvlakbeskrywing in Russies

Vir moderne toepassings8-bis beheer, wat mikrobeheerders gebruik, is dit moontlik om 'n paar ontwerpkriteria te stel:

  • volledige stelsel sluit meestal een mikrobeheerder en ander randapparatuur in, insluitend geheue en verskeie I/O-poorte;
  • totale koste om verskillende toestelle binne een stelsel te kombineer, moet soveel as moontlik verminder word;
  • die stelsel wat die funksies beheer, maak nie voorsiening vir die behoefte om hoëspoed-inligtingoordrag te verskaf nie;
  • totale doeltreffendheid is direk afhanklik van die toerusting wat gekies word, asook die aard van die verbindingsbus.

Om 'n stelsel te ontwerp wat ten volle aan die gelyste kriteria voldoen, moet jy 'n bus gebruik wat die I2C-reekskoppelvlak sal gebruik. Alhoewel die reeksbus nie die bandwydte van die parallelle bus het nie, benodig dit minder verbindings en minder skyfiepenne. Terselfdertyd, moenie vergeet dat die bus nie net verbindingsdrade insluit nie, maar ook verskeie prosedures en formate wat nodig is om kommunikasie binne die stelsel te verseker.

Toestelle wat kommunikeer deur sagteware-emulasie van die I2C-koppelvlak of die ooreenstemmende bus te gebruik, moet 'n spesifieke protokol hê wat jou toelaat om verskeie moontlikhede van botsings, verlies of blokkering van inligting te voorkom. Vinnige toestelle moet met stadige toestelle kan kommunikeer, en die stelsel behoort nie afhanklik te wees nievan die toerusting wat daaraan gekoppel is, aangesien andersins alle verbeterings en wysigings nie gebruik sal kan word nie. Dit is ook nodig om 'n prosedure te ontwikkel met behulp waarvan dit realisties is om vas te stel watter spesifieke toestel tans busbeheer verskaf en op watter tydstip. Daarbenewens, as verskillende toestelle met verskillende klokfrekwensies aan dieselfde bus gekoppel is, moet jy besluit oor die bron van die sinchronisasie daarvan. Al hierdie kriteria word nagekom deur die I2C-koppelvlak vir die AVR en enige ander van hierdie lys.

Hoofkonsep

i2c koppelvlak spesifikasie beskrywing in Russies
i2c koppelvlak spesifikasie beskrywing in Russies

Die I2C-bus kan enige skyfietegnologie wat gebruik word, ondersteun. Die I2C LabVIEW-koppelvlak en ander soortgelyke koppelvlakke maak voorsiening vir die gebruik van twee lyne vir die oordrag van inligting - data en sinchronisasie. Enige toestel wat op hierdie manier gekoppel is, word herken aan sy unieke adres, ongeag of dit 'n LCD-buffer, mikrobeheerder, geheue of sleutelbordkoppelvlak is, en kan as 'n ontvanger of sender optree, afhangende van waarvoor dit vir hierdie toerusting bedoel is.

In die oorgrote meerderheid van gevalle is die LCD-buffer 'n standaardontvanger, en die geheue kan nie net verskeie data ontvang nie, maar ook versend. Onder andere, volgens die proses om inligting te verskuif, kan toestelle as slaaf en meester geklassifiseer word.

In hierdie geval is die meester die toestel wat die data-oordrag inisieer, en ook genereersinchronisasie seine. In hierdie geval sal enige adresseerbare toestelle as slawe in verband daarmee beskou word.

Die I2C-kommunikasie-koppelvlak maak voorsiening vir die teenwoordigheid van verskeie meesters op een slag, dit wil sê, meer as een toestel wat in staat is om die bus te beheer, kan daaraan koppel. Die vermoë om meer as een mikrobeheerder op dieselfde bus te gebruik, beteken dat meer as een meester op enige gegewe tydstip aangestuur kan word. Om die potensiële chaos wat die risiko loop om te voorkom wanneer so 'n situasie ontstaan uit te skakel, is 'n gespesialiseerde arbitrasieprosedure ontwikkel wat die I2C-koppelvlak gebruik. Uitbreiders en ander toestelle maak voorsiening vir die koppeling van toestelle aan die bus volgens die sogenaamde bedradingsreël

Die opwekking van die kloksein is die verantwoordelikheid van die meester, en elke meester genereer sy eie sein tydens data-oordrag, en dit kan eers later verander as dit deur 'n stadige slaaf of 'n ander meester "getrek" word wanneer 'n botsing plaasvind

Algemene parameters

Beide SCL en SDA is tweerigtinglyne wat verbind word met 'n positiewe kragbron met 'n optrekweerstand. Wanneer die band absoluut vry is, is elke lyn in 'n hoë posisie. Die uitsetstadiums van toestelle wat aan die bus gekoppel is moet oop-drein of oop-kollektor wees sodat die bedrade EN funksie verskaf kan word Inligting deur die I2C koppelvlak kan versend word teen 'n spoed van nie meer as 400 kbpsvinnige modus, terwyl die standaardspoed nie 100 kbps oorskry nie. Die totale aantal toestelle wat gelyktydig aan die bus gekoppel kan word hang af van slegs een parameter. Dit is die lynkapasitansie, wat nie meer as 400 pf is nie.

Bevestiging

i2c koppelvlak beskrywing
i2c koppelvlak beskrywing

Bevestiging is 'n verpligte prosedure in die data-oordragproses. Die meester genereer die toepaslike sinkroniseringspuls terwyl die sender die SDA-lyn vrystel tydens hierdie sinkroniseringspuls as 'n erkenning. Daarna moet die ontvanger verseker dat die SDA-lyn stabiel gehou word tydens die klok hoë toestand in 'n stabiele lae toestand. In hierdie geval, maak seker dat jy opstel- en terughoutye in ag neem.

In die oorgrote meerderheid van gevalle is dit verpligtend vir die geadresseerde ontvanger om 'n erkenning te genereer na elke greep wat ontvang is, met die enigste uitsondering wanneer die begin van die transmissie 'n CBUS-adres insluit.

As die ontvanger-slaaf geen manier het om bevestiging van sy eie adres te stuur nie, moet die datalyn hoog gelaat word, en dan sal die meester 'n "Stop"-sein kan uitreik, wat die versending van alle inligting. As die adres bevestig is, maar die slaaf vir 'n lang tyd nie meer data kan ontvang nie, moet die meester ook die versending onderbreek. Om dit te doen, erken die slaaf nie die volgende greep wat ontvang is nie en verlaat eenvoudig die lynhoog, wat veroorsaak dat die meester 'n stopsein genereer.

As die oordragprosedure voorsiening maak vir die teenwoordigheid van 'n meester-ontvanger, dan moet dit in hierdie geval die slaaf inlig oor die einde van die oordrag, en dit word gedoen deur nie die laaste ontvang greep te erken nie. In hierdie geval stel die slaafsender onmiddellik die datalyn vry sodat die meester 'n "Stop"-sein kan uitreik of die "Begin"-sein weer kan herhaal.

Om te kyk of die toerusting werk, kan jy probeer om standaardvoorbeelde van sketse vir die I2C-koppelvlak in Arduino in te voer, soos in die foto hierbo.

Arbitrasie

2c arduino-koppelvlak
2c arduino-koppelvlak

Meesters kan begin om inligting te stuur eers nadat die bus heeltemal vry is, maar twee of meer meesters kan 'n beginsein op die minimum houtyd genereer. Dit lei uiteindelik tot 'n spesifieke "Begin"-sein op die bus.

Arbitrasie werk op die SDA-bus terwyl die SCL-bus hoog is. As een van die meesters 'n lae vlak op die datalyn begin oordra, maar terselfdertyd is die ander een hoog, dan word laasgenoemde heeltemal daarvan ontkoppel, want die SDL-toestand stem nie ooreen met die hoë toestand van sy interne lyn nie..

Arbitrage kan oor verskeie stukkies voortduur. As gevolg van die feit dat die adres eers versend word, en dan die data, kan arbitrasie duur tot die einde van die adres, en as die meesters sal aanspreekdieselfde toestel, dan sal verskillende data ook aan die arbitrasie deelneem. As gevolg van hierdie arbitrasieskema, sal geen data verlore gaan as enige botsing plaasvind nie.

As die meester die arbitrasie verloor, kan dit klokpulse in SCL uitreik tot aan die einde van die greep, waartydens toegang verloor is.

Aanbeveel: