I2C kopne — piešķiršana, ierīce, datu pārsūtīšana, adresēšana

Veidojot elektronisko shēmu, daudzi izstrādātāji saskaras ar vajadzību izmantot lielu skaitu starpposma mikroshēmu, lai saskaņotu, ņemtu paraugus un adresētu tās atsevišķos blokus. Lai samazinātu papildu mikroshēmu skaitu, Philips 80. gados ierosināja divu vadu divvirzienu I2C seriālā tīkla saskarni, kas īpaši izstrādāta, lai pārvaldītu vairākas mikroshēmas vienā ierīcē.

I2C kopne - piešķiršana, ierīce, datu pārsūtīšana, adresēšana

Mūsdienās Philips vien ražo vairāk nekā simts ar I2C saderīgu ierīču elektroniskām iekārtām ar visdažādākajiem mērķiem: atmiņu, video procesoru sistēmām, analogo-digitālo un digitālo-analogo pārveidotājus, displeja draiverus utt.

I2C autobuss

I2C kopne ir sērijas datu apmaiņas protokola modifikācija, kas spēj pārraidīt seriālos 8 bitu datus parastajā "ātrā" režīmā ar ātrumu no 100 līdz 400 kbps. Datu apmaiņas process šeit tiek realizēts tikai uz diviem vadiem (neskaitot kopējo vadu): SDA līnija datiem un SCL līnija sinhronizācijai.

Kopne kļūst divvirzienu sakarā ar to, ka kopnei pievienoto ierīču izeju kaskādēm ir atvērti kolektori vai kanāli, tādējādi atkārtojot UN vadu. Rezultātā kopne samazina savienojumu skaitu starp mikroshēmām, atstājot uz tāfeles mazāk nepieciešamo tapu un pēdu. Rezultātā pati plāksne izrādās vienkāršāka, kompaktāka un tehnoloģiski progresīvāka ražošanā.

Šis protokols ļauj atspējot adrešu dekodētājus un citas ārējās sarunu loģikas. Mikroshēmu skaitu, kas vienlaikus var darboties I2C kopnē, ierobežo tā ietilpība - ne vairāk kā 400 pF.

I2C protokols

Ar I2C saderīgiem IC ir aparatūras trokšņu slāpēšanas algoritms, kas nodrošina datu integritāti pat spēcīgu traucējumu klātbūtnē. Šādām ierīcēm ir saskarne, kas ļauj mikroshēmām sazināties savā starpā pat tad, ja to barošanas spriegums ir atšķirīgs. Zemāk esošajā attēlā varat iepazīties ar vairāku mikroshēmu savienošanas principu caur kopīgu kopni.

Katrai no kopnes pieslēgtajām ierīcēm ir sava unikāla adrese, to nosaka tā un atbilstoši ierīces mērķim tā var darboties kā uztvērējs vai kā raidītājs. Pārsūtot datus, šīs ierīces var būt galvenās (galvenās) vai vergu (slave) ierīces. Galvenais ir ierīce, kas uzsāk datu pārsūtīšanu un ģenerē pulksteņa signālus SCL līnijā. Slave attiecībā pret galveno ierīci ir mērķa ierīce.

Ierīces savienojuma shēma

Jebkurā darbības brīdī I2C kopnē tikai viena ierīce var darboties kā galvenā ierīce; tas ģenerē signālu SCL līnijā.Galvenais uztvērējs var būt galvenais uztvērējs vai galvenais raidītājs.

Principā kopne pieļauj vairākus dažādus meistarus, bet uzliek ierobežojumus vadības signālu veidošanas un kopnes statusa uzraudzības raksturlielumiem; tas nozīmē, ka raidīšanu var sākt vairāki maģistri vienlaikus, bet šāda veida konflikti tiek novērsti, pateicoties arbitrāžai, tas ir, veidam, kā meistars uzvedas, konstatējot, ka kopni aizņem cits kapteinis.

Ierīču pāra sinhronizāciju nodrošina tas, ka visas ierīces ir savienotas ar kopni, veidojot "UN" vadu. Sākotnēji SDA un SCL signāli ir augsti.

START un STOP

Apmaiņa sākas ar to, ka galvenais ģenerē "START" stāvokli: SDA līnijā signāls pāriet no augsta uz zemu stāvokli, savukārt SCL līnijai ir stabili augsts līmenis. Visas ar kopni pievienotās ierīces šo situāciju uztver kā komandu, lai sāktu apmaiņu.


Starts un stop – sinhronizācijas signāls

Katrs galvenais ģenerē individuālu pulksteņa signālu SCL līnijā, pārraidot datus kopnē.

Apmaiņa beidzas ar STOP stāvokļa veidošanu, ko veic kapteinis: SDA līnijā signāls mainās no zema uz augstu, savukārt SCL līnijai ir stabili augsts līmenis.

Vadītājs vienmēr darbojas kā START un STOP signālu avots. Tiklīdz signāls «START» ir fiksēts, tas nozīmē, ka līnija ir aizņemta. Līnija ir brīva, kad tiek uztverts STOP signāls.

Datu pārsūtīšana

Tūlīt pēc START stāvokļa deklarēšanas galvenais SCL līniju pārslēdz zemu un nosūta pirmā ziņojuma baita nozīmīgāko bitu uz SDA līniju. Baitu skaits ziņojumā nav ierobežots.Izmaiņas SDA līnijā ir iespējotas tikai tad, ja signāla līmenis SCL līnijā ir zems. Dati ir derīgi, un tos nedrīkst mainīt tikai tad, ja sinhronizācijas impulss ir augsts.

Apstiprinājums, ka baitu no galvenā raidītāja ir saņēmis pakārtotais uztvērējs, tiek veikts, iestatot īpašu apstiprinājuma bitu SDA līnijā pēc astotā datu bita saņemšanas.

APSTIPRINĀJUMS

Tātad, 8 bitu datu nosūtīšana no raidītāja uz uztvērēju beidzas ar papildu impulsu SCL līnijā, kad uztverošā ierīce pazemina SDA līniju, norādot, ka tā ir saņēmusi visu baitu.

Apstiprinājuma sinhronizācijas impulss

Apstiprināšana ir datu pārsūtīšanas procesa neatņemama sastāvdaļa. Galvenais ģenerē sinhronizācijas impulsu. Raidītājs nosūta zemu stāvokli SDA, kamēr ir aktīvs apstiprinājuma pulkstenis. Kamēr sinhronizācijas impulss ir augsts, uztvērējam ir jāsaglabā zems SDA.

Ja galamērķa vergs neatzīst savu adresi, piemēram, tāpēc, ka tas pašlaik ir aizņemts, datu līnija ir jāuztur augstu. Pēc tam kapteinis var dot STOP signālu, lai pārtrauktu nosūtīšanu.

Ja uztveršanu veic galvenais uztvērējs, tad tam ir pienākums informēt pakārtoto raidītāju pēc pārraides pabeigšanas, nevis apstiprinot pēdējo baitu. Slavenais raidītājs atbrīvo datu līniju, lai kapteinis varētu izdot STOP signālu vai atkārtotu START signālu.

Ierīču sinhronizāciju nodrošina tas, ka pieslēgumi SCL līnijai tiek veikti pēc "UN" principa.

Kapteinim nav vienīgo tiesību kontrolēt SCL līnijas pāreju no zemas uz augstu.Ja slavenajam ir nepieciešams vairāk laika, lai apstrādātu saņemto bitu, tas var neatkarīgi noturēt zemu SCL, līdz tas ir gatavs saņemt nākamo datu bitu. SCL līnija šādā situācijā būs zema garākā zemā līmeņa sinhronizācijas impulsa laikā.

Ierīces ar zemāko ilgstošo zemo vērtību paliks dīkstāvē līdz ilgā perioda beigām. Kad visas ierīces ir beigušas zemās sinhronizācijas periodu, SCL palielināsies.

Visas ierīces sāks darboties ar augstu pulksteni, un pirmā ierīce, kas pabeigs savu periodu, būs pirmā, kas iestatīs zemu SCL līniju. Rezultātā SCL zemā stāvokļa ilgumu noteiks vienas ierīces sinhronizācijas impulsa garākais zemais stāvoklis, bet augstā stāvokļa ilgumu noteiks vienas no ierīcēm īsākais sinhronizācijas periods. ierīces.

Sinhronizācijas signālus uztvērēji var izmantot kā līdzekli datu pārraides kontrolei bitu un baitu līmenī.

Ja ierīce spēj saņemt baitus ar lielu ātrumu, bet ir nepieciešams noteikts laiks, lai saglabātu saņemto baitu vai sagatavotos nākamā baita saņemšanai, tā var turpināt saglabāt SCL zemu pēc baita saņemšanas un apstiprināšanas, piespiežot raidītājs gaidīšanas režīmā.

Mikrokontrolleris bez iebūvētām aparatūras shēmām, piemēram, bitu līmenī, var palēnināt pulksteņa ātrumu, palielinot to zemā stāvokļa ilgumu. Rezultātā galvenās ierīces bodu ātrumu noteiks ierīces ātrums. lēnāka ierīce.


I2C autobuss

ADRESĒŠANA

Katrai ierīcei, kas savienota ar I2C kopni, ir unikāla programmas adrese, kurā kapteinis to adresē, nosūtot noteiktu komandu. Tāda paša veida mikroshēmas raksturo adreses selektors, kas tiek īstenots vai nu selektora digitālo ieeju veidā, vai analogā formā. Adreses tiek sadalītas kopnei pievienoto ierīču adrešu telpā.

Parastā režīmā tiek pieņemta septiņu bitu adrese. Adresēšana darbojas šādi: pēc komandas «START» galvenais nosūta pirmo baitu, kas nosaka, kura pakārtotā ierīce ir nepieciešama saziņai ar galveno. Ir arī kopēja izsaukuma adrese, kas nosaka visas kopnes ierīces, visas ierīces (teorētiski) uz to atbild ar apstiprinājumu, bet praksē tas notiek reti.

Tātad pirmā baita pirmie septiņi biti ir vergu adrese. Vismazāk nozīmīgais bits, astotais, norāda datu sūtīšanas virzienu. Ja ir «0», tad informācija no saimnieka tiks rakstīta šim vergam. Ja "1", informāciju nolasīs kapteinis no šī verga.

Pēc tam, kad galvenais ir beidzis nosūtīt adreses baitu, katrs slavens salīdzina savu adresi ar to. Ikviens ar vienu un to pašu adresi ir pakārtots un tiek definēts kā vergu raidītājs vai uztvērējs atkarībā no adreses baita vismazāk nozīmīgā bita vērtības.

Slave adrese var ietvert fiksētas un programmējamas daļas. Diezgan bieži vienā sistēmā strādā liels skaits viena tipa ierīču, tad adreses programmējamā daļa ļauj kopnē izmantot maksimāli viena veida ierīces. Cik daudz bitu adreses baitā ir programmējams, ir atkarīgs no mikroshēmas brīvo tapu skaita.

Dažreiz pietiek ar tapu ar programmējamā adrešu diapazona analogo iestatījumu, piemēram, SAA1064 - LED indikatora draiveri, kuram ir tieši šāda ieviešana. Konkrētas tapas potenciāls nosaka mikroshēmas adrešu telpas nobīdi, lai viena veida mikroshēmas nekonfliktētu, darbojoties tajā pašā kopnē. Visas mikroshēmas, kas atbalsta I2C kopni, satur adrešu kopu, ko ražotājs norāda dokumentācijā.

Kombinācija «11110XX» ir rezervēta 10 bitu adresēšanai. Ja iedomājamies datu apmaiņu no komandas «START» uz komandu «STOP», tas izskatīsies šādi:


Uzrunāšana

Šeit ir atļauti vienkārši un kombinēti datu apmaiņas formāti. Kombinētais formāts nozīmē, ka starp "START" un "STOP" galvenais un slavenais var darboties kā uztvērēji un raidītāji, tas ir noderīgi, piemēram, sērijas atmiņas pārvaldībā.

Ļaujiet pirmajam datu baitam pārsūtīt atmiņas adresi. Pēc tam, atkārtojot komandu «START» un nolasot vergu adresi, atmiņas dati darbosies. Lēmumus par iepriekš piekļūtās adreses automātisku palielināšanu vai samazināšanu pieņem ierīces izstrādātājs, iepriekš izpētījis mikroshēmas dokumentāciju. Tā vai citādi pēc START komandas saņemšanas visām ierīcēm ir jāatjauno sava loģika un jāsagatavojas tam, ka adrese tagad tiks nosaukta.

Mēs iesakām izlasīt:

Kāpēc elektriskā strāva ir bīstama?