Mu sayansi yamakompyuta ndi zamagetsi, pali njira yolumikizirana yotchedwa I2C kapena Inter-Integrated Circuit yomwe imalola kusamutsa chidziwitso pakati pawo. zida zosiyanasiyana ophatikizidwa, ngakhale pogwiritsa ntchito zingwe ziwiri zokha. I2C, mosakayikira, chida champhamvu komanso chofunikira kwambiri chowongolera chiwonetsero ndi zingwe ziwiri zokha. Ukadaulo uwu umagwiritsidwa ntchito pazida zosiyanasiyana ndipo, chifukwa chake, umawonjezera phindu pamapulojekiti osawerengeka ndikugwiritsa ntchito pazinthu zamagetsi ndi makompyuta.
Chimodzi mwazinthu zofunika kwambiri za I2C ndikuti imafunikira mizere iwiri yokha yolumikizana. Mizere iwiriyi imadziwika kuti SDA (Data) ndi SCL (Clock). Ubwino waukulu wa basi ya data iyi ndikutha kugwira ntchito ngakhale mtunda wapakati pazida uli waukulu, zomwe zimapangitsa kukhala njira yabwino yothetsera kusakanikirana kwa zigawo muzinthu zamagetsi.
Nkhaniyi ifotokoza mwatsatanetsatane momwe imagwirira ntchito. ndondomeko ya I2C, amene ali Makhalidwe ake zoyambira ndi momwe zingagwiritsidwe ntchito kuwongolera chiwonetsero ndi zingwe ziwiri zokha. Chidziwitsochi mosakayikira chidzakhala chothandiza kwa aliyense amene ali ndi chidwi ndi mapangidwe ndi kusonkhanitsa zipangizo zamagetsi ndi machitidwe a digito.
Pomaliza, ngati mukufuna kudziwa zambiri za momwe mungagwiritsire ntchito ukadaulo wamalumikizidwe ndi njira zolumikizirana, tikukupemphani kuti muwone nkhani yathu momwe protocol ya UART imagwirira ntchito, njira ina yotumizira deta yomwe imagwiritsidwa ntchito nthawi zambiri pazida zamagetsi.
Kumvetsetsa mawonekedwe a I2C: ndi chiyani ndipo imagwira ntchito bwanji?
The interfaces I2C (Inter-Integrated Circuit) Ndizofunikira mdziko lapansi ya zamagetsi ndi microcontroller mapulogalamu. Protocol yolumikizirana iyi idapangidwa ndi Philips Semiconductors kuti alole kulumikizana kosavuta pakati pazigawo zomwe zili pagulu lomwelo. I2C imagwiritsa ntchito zingwe ziwiri zokha, zomwe zimadziwika kuti SDA (mzere wa data) ndi SCL (mzere wa wotchi), zomwe zimapangitsa kukhala chisankho chabwino kwambiri chochepetsera chiwerengero cha zingwe ndi zikhomo zomwe zimafunikira polumikiza zipangizo zotumphukira monga zowonetsera za LED kapena LCD.
Chimodzi mwazinthu zodziwika bwino za I2C ndikuti imalola kulumikizana mpaka Zipangizo 128 zosiyana pogwiritsa ntchito mabasi awiri okha. Chida chilichonse cha I2C chili ndi adilesi yakeyake kuti apewe mikangano pakulumikizana. Pamene chipangizo chambuye chikufunikira kulankhulana ndi chipangizo cha kapolo, chimangotumiza uthenga ndi adiresi ya chipangizo cha kapolo ndiyeno chimatumiza kapena kupempha deta yofanana.
Mukamagwiritsa ntchito mawonekedwe a I2C, ziyenera kuganiziridwa kuti liwiro lotumizira ndilotsika kwambiri poyerekeza ndi ma protocol ena, nthawi zambiri amakhala pakati pa 100 Kb/s ndi 400 Kb/s, ngakhale kuti matembenuzidwe aposachedwa awonjezera liwiroli mpaka 3.4 Mb / s. . Ngakhale zili zochepera izi, I2C ikadali yothandiza kwambiri m'mapulogalamu omwe kusamutsa kwa data sikufunika, chifukwa cha njira yake yolumikizira mawaya yosavuta komanso kusinthasintha kulumikiza zida zingapo. Kwa iwo omwe akufuna kuzama mozama mumayendedwe ena olumikizirana, tikulimbikitsidwa kuti muwerenge nkhaniyi momwe mawonekedwe a SPI amagwirira ntchito.
Kukonzekera kwa I2C Pazenera: Njira Zapadera
Njira yosinthira I2C Zimayamba ndikuzindikira zikhomo za SDA (Data) ndi SCL (Clock) pa chipangizocho. Ma pini awa adzakhala ndi udindo wotumiza deta ndi kuwongolera nthawi motsatana. Nthawi zambiri, amakhala padoko lokulitsa la GPIO (General Purpose Input Output) la microcontroller. Poonetsetsa kuti mukulumikiza bwino zikhomozi pakati pa chowongolera ndi chophimba titha kutsimikizira kulumikizana kolondola kwa I2C.
Laibulale ya Wire nthawi zambiri imakhala yomwe imagwiritsidwa ntchito popanga mapulogalamu pa microcontroller. Laibulale iyi imathandizira kupanga mapulogalamu popereka ntchito zoyambitsa kulumikizana, kulemba ndi kuwerenga deta. Fayilo yamutu Zamgululi ziyenera kuphatikizidwa mu code, ndikutsatiridwa ndi adilesi ya chipangizo cha I2C mumtundu wa hexadecimal. The Wire.begin() Command adzayamba kulankhulana pakati pa microcontroller ndi chophimba. Deta idzatumizidwa pogwiritsa ntchito lamulo la Wire.write () pamene Wire.read () idzawerenga zomwe zalandira.
Pomaliza, kulemba ndi kuwerenga deta kuchokera pazenera, kutsatizana kudzayamba ndi lamulo la Wire.beginTransmission () ndikutha ndi Wire.endTransmission (). Ndikofunika kutsimikizira zomwe zabwezedwa ndi ntchito yomalizayi. Mtengo wa zero udzawonetsa kuti deta yatumizidwa molondola. Ngati vuto lipezeka, ma values 2, 3, kapena 4 adzabwezedwa motsatana kuwonetsa cholakwika mu adilesi, zomwe zalandilidwa, kapena chida china sanayankhe. Kuti mumve zambiri za zolakwika za I2C ndi yankho lawo, mutha kuwona nkhani yathu I2C kuthetsa mavuto.
Zolakwika wamba ndi njira zothetsera zowonera kudzera pa I2C
Kusadziwa za kukhazikitsidwa koyenera kwa I2C protocol Izi nthawi zambiri zimakhala chifukwa chachikulu cha zolakwika poyesa kuwongolera chophimba ndi zingwe ziwiri. Zolakwa zambiri zimabwera chifukwa chosamvetsetsa bwino momwe protocol iyi imagwirira ntchito, makamaka poganizira kuti imalola kugwirizana kwa zipangizo zambiri ku mzere wolumikizana womwewo. Komanso, kusintha kwa pini kuti kulumikizane ndi SDA (Data), SCL (Clock) mu microcontroller kapena kufunikira kwa zotsutsa zokoka nthawi zina kumanyalanyazidwa.
Njira yoyamba yothetsera vuto lililonse lomwe mungakhale mukukumana nalo ndikuwongolera Screen kudzera pa I2C fufuzani kugwirizana. Izi zikuphatikizapo kutsimikizira kukhulupirika kwa zingwe, komanso kugwirizana kwawo koyenera ndi zikhomo za SDA ndi SCL pa chipangizocho. Kumbukirani kuti pini ya SDA ndiyo imayang'anira kusamutsa deta ndi SCL kupanga wotchi yolumikizira. Mu kalozera wathu pa momwe mungalumikizire ma I2C, mudzapeza zambiri zatsatanetsatane.
Pomaliza, ndikofunikira kwambiri kukumbukira izi Kuyankhulana kwa I2C kumadalira kwambiri mapulogalamu. Izi zikutanthauza kuti muyenera kuwonetsetsa kuti mukugwiritsa ntchito laibulale yolondola ya I2C yowonetsera yomwe mukuyesera kugwiritsa ntchito komanso kuti kasinthidwe ka mapulogalamu onse akhazikitsidwa molondola. Ma code anu ndi ofunikira kuti muthe kudziwa bwino I2C, choncho yesani nayo. Mwachidule, malingaliro athu ndikuti mumamvetsetsa bwino ndondomekoyi, pangani maulalo olondola omwe amatsatira miyezo, ndikukonzekera. mapulogalamu molondola kwa kuwongolera pazenera.
Kukulitsa luso la zowonetsera kudzera pa mawonekedwe a I2C: Malingaliro othandiza
Kuti tikwaniritse bwino kwambiri pakuwongolera chiwonetsero pogwiritsa ntchito mawonekedwe a I2C tidzafunika zingwe ziwiri zokha: SDA (data) ndi SCL (wotchi). M'malo mwake, awiriwa ndi okhawo omwe amafunikira kuti apereke chidziwitso. Ndi kukhazikitsa kolondola kwa zingwezi, titha kuwongolera chophimba bwino ndipo popanda kufunikira kolumikizana kwakukulu. Mfungulo ndiyo kukhathamiritsa ndi kufewetsa ndondomekoyi.
Ubwino umodzi wogwiritsa ntchito mawonekedwe a I2C ndikuti umatithandiza kukhala ndi mwayi wowongolera zida zingapo ndi zingwe ziwiri zokhazo zomwe zatchulidwa. Kuphatikiza apo, kusankha kolondola pakuletsa koletsa kungatipangitse kuti tichepetse kusokoneza, motero, kuwongolera mtundu wa chizindikirocho. Mawonekedwe a I2C amalola kuwongolera kogwira mtima komanso kosavuta, kuwonjezera phindu pakuchita bwino komanso kuwongolera kapangidwe ka makina athu.
Kuti mudziwe zambiri za kukhazikitsidwa ndi kugwiritsiridwa ntchito kwake, lingaliro lothandiza ndikulozera ku zolemba zovomerezeka ndi zothandizira monga maphunziro kapena ma forum apadera apa intaneti. Kutengerapo mwayi pazinthu zomwe zilipo kudzatithandiza kukhathamiritsa kugwiritsa ntchito komanso kugwiritsa ntchito bwino zowonera zathu kudzera pa mawonekedwe a I2C. Momwemonso, kuti mumvetsetse bwino kugwiritsa ntchito ndi mapindu a mawonekedwe amtunduwu, ndikofunikira kuti mudziwe bwino mawu ena okhudzana ndiukadaulo monga, mwachitsanzo, ndi chiyani komanso momwe mungagwiritsire ntchito I2C Bus. Kulowa m'dziko la I2C kungawoneke zovuta poyamba, koma kuzigwira ndizosavuta kuposa momwe zimawonekera ndipo zopindulitsa ndizodziwika. Kumvetsetsa momwe zimagwirira ntchito ndikofunikira kuti tiwongolere bwino ntchito zathu ndikukwaniritsa bwino ntchito zathu.
Ndine Sebastián Vidal, mainjiniya apakompyuta omwe amakonda ukadaulo komanso DIY. Komanso, ine ndine mlengi wa tecnobits.com, komwe ndimagawana nawo maphunziro kuti ukadaulo ukhale wofikirika komanso womveka kwa aliyense.