Sa mga modernong kagamitan sa sambahayan, pang-industriya na elektroniko at iba't ibang kagamitan sa telekomunikasyon, madalas na matatagpuan ang mga katulad na solusyon, bagama't ang mga produkto ay maaaring halos walang kaugnayan. Halimbawa, halos lahat ng system ay may kasamang sumusunod:
- isang partikular na "matalinong" control unit, na sa karamihan ng mga kaso ay isang single-chip microcomputer;
- general purpose component gaya ng mga LCD buffer, RAM, I/O port, EEPROM o mga nakalaang data converter;
- mga partikular na bahagi kabilang ang digital tuning at signal processing circuits para sa mga video at radio system.
Paano i-optimize ang kanilang application?
Para masulit ang mga karaniwang solusyon na ito para sa kapakinabangan ng mga designer at manufacturer, gayundin para mapahusay ang pangkalahatang performance ng iba't ibang hardware at pasimplehin ang mga inilapat na bahagi ng circuitry, itinakda ng Philips na bumuo ng pinakasimpleng two-wire bidirectional bus na nagbibigay ng pinaka-produktibong inter-chipkontrol. Nagbibigay ang bus na ito ng paglilipat ng data sa pamamagitan ng interface ng I2C.
Ngayon, ang hanay ng produkto ng manufacturer ay may kasamang higit sa 150 CMOS, pati na rin ang mga bipolar device na tugma sa I2C at idinisenyo upang gumana sa alinman sa mga nakalistang kategorya. Dapat pansinin na ang interface ng I2C ay una na binuo sa lahat ng mga katugmang aparato, dahil kung saan madali silang makipag-usap sa isa't isa gamit ang isang espesyal na bus. Dahil sa paggamit ng naturang solusyon sa disenyo, naging posible na malutas ang isang medyo malaking bilang ng mga problema ng interfacing ng iba't ibang kagamitan, na medyo tipikal para sa pagbuo ng mga digital system.
Mga Pangunahing Benepisyo
Kahit na tumingin ka sa isang maikling paglalarawan ng mga interface ng UART, SPI, I2C, maaari mong i-highlight ang mga sumusunod na bentahe ng huli:
- Para gumana, kailangan mo lang ng dalawang linya - pag-synchronize at data. Anumang device na kumokonekta sa naturang bus ay maaaring i-program sa isang ganap na natatanging address. Sa anumang oras, mayroong isang simpleng relasyon na nagpapahintulot sa mga master na kumilos bilang master-transmitter o master-receiver.
- Ang bus na ito ay nagbibigay ng kakayahang magkaroon ng maraming master nang sabay-sabay, na nagbibigay ng lahat ng kinakailangang paraan para sa pagtukoy ng mga banggaan, gayundin ng arbitrasyon upang maiwasan ang katiwalian ng data kung sakaling magsimulang magpadala ng impormasyon ang dalawa o higit pang master nang sabay-sabay. Sa karaniwang modeserial 8-bit data transmission lang ang ibinibigay sa bilis na hindi hihigit sa 100 kbps, at sa fast mode ang threshold na ito ay maaaring dagdagan ng apat na beses.
- Gumagamit ang mga chips ng espesyal na built-in na filter na epektibong pinipigilan ang mga surge at tinitiyak ang maximum na integridad ng data.
- Ang maximum na posibleng bilang ng mga chip na maaaring ikonekta sa isang bus ay limitado lamang sa maximum na posibleng kapasidad nito na 400 pF.
Mga Benepisyo para sa Mga Konstruktor
Ang interface ng I2C, gayundin ang lahat ng katugmang chip, ay maaaring makabuluhang mapabilis ang proseso ng pagbuo, mula sa isang functional diagram hanggang sa huling prototype nito. Kasabay nito, dapat tandaan na dahil sa posibilidad ng pagkonekta ng mga naturang microcircuits nang direkta sa bus nang hindi gumagamit ng lahat ng uri ng karagdagang mga circuit, ang espasyo ay ibinigay para sa karagdagang paggawa ng makabago at pagbabago ng prototype system sa pamamagitan ng pagdiskonekta at pagkonekta ng iba't ibang mga aparato mula sa bus.
Maraming benepisyo na nagpapatingkad sa interface ng I2C. Ang paglalarawan, sa partikular, ay nagbibigay-daan sa iyong makita ang mga sumusunod na pakinabang para sa mga konstruktor:
- Ang mga bloke sa functional diagram ay ganap na tumutugma sa microcircuits, at sa parehong oras, isang medyo mabilis na paglipat mula sa functional patungo sa basic.
- Hindi na kailangang bumuo ng mga interface ng bus dahil ang bus ay natively integrated na sa mga dedicated chips.
- Mga pinagsama-samang protocol ng komunikasyon atAng pag-address ng device ay nagbibigay-daan sa system na maging ganap na tinukoy ng software.
- Ang parehong mga uri ng microcircuits, kung kinakailangan, ay maaaring gamitin sa ganap na magkakaibang mga application.
- Ang kabuuang oras ng pag-develop ay makabuluhang nabawasan dahil sa katotohanan na ang mga designer ay maaaring mabilis na maging pamilyar sa mga pinakakaraniwang ginagamit na functional block, pati na rin sa iba't ibang microcircuits.
- Kung ninanais, maaari kang magdagdag o mag-alis ng mga chips mula sa system, at sa parehong oras ay walang masyadong epekto sa iba pang kagamitan na konektado sa parehong bus.
- Maaaring makabuluhang bawasan ang kabuuang oras ng pag-develop ng software sa pamamagitan ng pagpayag sa isang library ng mga reusable software modules.
Bukod sa iba pang mga bagay, nararapat na tandaan ang napakasimpleng pamamaraan para sa pag-diagnose ng mga pagkabigo na naganap at karagdagang pag-debug, na nagpapakilala sa interface ng I2C. Ang paglalarawan ay nagmumungkahi na, kung kinakailangan, kahit na ang mga maliliit na paglihis sa pagpapatakbo ng naturang kagamitan ay maaaring agad na masubaybayan nang walang anumang kahirapan at, nang naaayon, ang mga naaangkop na hakbang ay maaaring gawin. Nararapat din na tandaan na ang mga taga-disenyo ay nakakakuha ng mga espesyal na solusyon, na, sa partikular, ay medyo kaakit-akit para sa iba't ibang mga portable na kagamitan at mga sistema na nagbibigay ng lakas ng baterya gamit ang interface ng I2C. Ang paglalarawan sa Russian ay nagpapahiwatig din na ang paggamit nito ay nagbibigay-daan sa iyong ibigay ang mga sumusunod na mahahalagang bentahe:
- Sapat na mataas na antas ng pagtutol sa anumang umuusbong na interference.
- Sa wakasmababang paggamit ng kuryente.
- Pinakamalawak na hanay ng boltahe ng supply.
- Malawak na hanay ng temperatura.
Mga benepisyo para sa mga technologist
Nararapat tandaan na hindi lamang ang mga designer, kundi pati na rin ang mga technologist ay nagsimulang gumamit kamakailan ng isang dalubhasang interface ng I2C nang madalas. Ang paglalarawan sa Russian ay nagpapahiwatig ng medyo malawak na hanay ng mga pakinabang na ibinibigay ng kategoryang ito ng mga espesyalista:
- Ang karaniwang two-wire serial bus na may ganitong interface ay nagpapaliit ng mga interconnect sa pagitan ng mga IC, ibig sabihin, mas kaunting mga pin at mas kaunting mga track ang kinakailangan, na ginagawang mas mura at mas maliit ang mga PCB.
- Ang ganap na pinagsama-samang I2C interface na LCD1602 o iba pang opsyon ay ganap na nag-aalis ng pangangailangan para sa mga decoder ng address at iba pang panlabas na maliit na lohika.
- Posibleng gumamit ng ilang master sa naturang bus nang sabay-sabay, na makabuluhang nagpapabilis ng pagsubok at kasunod na pag-setup ng kagamitan, dahil maaaring ikonekta ang bus sa isang assembly line na computer.
- Ang pagkakaroon ng mga IC na tugma sa interface na ito sa VSO, SO, at mga custom na DIL package ay maaaring makabuluhang bawasan ang mga kinakailangan sa laki ng device.
Ito ay isang maikling listahan lamang ng mga pakinabang na nagpapakilala sa I2C interface ng LCD1602 at iba pa. Bilang karagdagan, ang mga katugmang chip ay maaaring makabuluhang taasan ang flexibility ng system na ginamit, na nagbibigaynapakasimpleng disenyo ng iba't ibang mga opsyon sa kagamitan, pati na rin ang medyo madaling pag-upgrade upang higit pang suportahan ang pag-unlad sa kasalukuyang antas. Kaya, posibleng bumuo ng isang buong pamilya ng iba't ibang kagamitan, gamit ang isang partikular na pangunahing modelo bilang batayan.
Ang karagdagang modernisasyon ng kagamitan at pagpapalawak ng mga function nito ay maaaring isagawa sa pamamagitan ng karaniwang koneksyon sa bus ng kaukulang microcircuit gamit ang Arduino 2C interface o anumang iba pa mula sa available na listahan. Kung kinakailangan ang isang mas malaking ROM, magiging sapat lamang na pumili ng isa pang microcontroller na may mas mataas na ROM. Dahil ang mga na-update na chip ay maaaring ganap na palitan ang mga luma kung kinakailangan, madali mong madadagdagan ang mga bagong feature sa kagamitan o mapapataas ang pangkalahatang pagganap nito sa pamamagitan lamang ng pagdiskonekta ng mga hindi na ginagamit na chip at pagkatapos ay palitan ang mga ito ng mas bagong kagamitan.
ACCESS.bus
Dahil sa katotohanan na ang bus ay may two-wire nature, pati na rin ang posibilidad ng program addressing, ang isa sa mga pinaka-perpektong platform para sa ACCESS.bus ay ang I2C interface. Ang detalye (paglalarawan sa Russian ay ipinakita sa artikulo) ng device na ito ay ginagawa itong isang mas murang alternatibo sa dating aktibong ginagamit na interface ng RS-232C para sa pagkonekta ng iba't ibang peripheral sa mga computer gamit ang isang karaniwang four-pin connector.
Introduksyon ng detalye
Para sa mga modernong aplikasyon8-bit na kontrol, na gumagamit ng mga microcontroller, posibleng magtakda ng ilang pamantayan sa disenyo:
- complete system mostly may kasamang isang microcontroller at iba pang peripheral, kabilang ang memory at iba't ibang I/O port;
- kabuuang halaga ng pagsasama-sama ng iba't ibang device sa loob ng isang system ay dapat mabawasan hangga't maaari;
- ang system na kumokontrol sa mga function ay hindi nagbibigay ng pangangailangang magbigay ng mabilis na paglipat ng impormasyon;
- ang kabuuang kahusayan ay direktang nakadepende sa napiling kagamitan gayundin sa katangian ng kumukonektang bus.
Upang magdisenyo ng system na ganap na nakakatugon sa nakalistang pamantayan, kailangan mong gumamit ng bus na gagamit ng serial interface ng I2C. Bagama't ang serial bus ay walang bandwidth ng parallel bus, nangangailangan ito ng mas kaunting mga koneksyon at mas kaunting mga chip pin. Kasabay nito, huwag kalimutan na kasama sa bus hindi lamang ang mga wire sa pagkonekta, kundi pati na rin ang iba't ibang mga pamamaraan at mga format na kinakailangan upang matiyak ang komunikasyon sa loob ng system.
Ang mga device na nakikipag-ugnayan gamit ang software emulation ng I2C interface o ang kaukulang bus ay dapat may partikular na protocol na nagbibigay-daan sa iyong maiwasan ang iba't ibang posibilidad ng banggaan, pagkawala o pagharang ng impormasyon. Ang mga mabibilis na device ay dapat makipag-ugnayan sa mga mabagal, at hindi dapat umasa ang system samula sa kagamitan na konektado dito, dahil kung hindi, ang lahat ng mga pagpapabuti at pagbabago ay hindi magagamit. Kinakailangan din na bumuo ng isang pamamaraan sa tulong ng kung saan ito ay makatotohanang itatag kung aling partikular na aparato ang kasalukuyang nagbibigay ng kontrol sa bus at sa anong punto ng oras. Bilang karagdagan, kung ang iba't ibang mga aparato na may iba't ibang mga frequency ng orasan ay konektado sa parehong bus, kailangan mong magpasya sa pinagmulan ng pag-synchronize nito. Ang lahat ng pamantayang ito ay natutugunan ng interface ng I2C para sa AVR at sinumang iba pa mula sa listahang ito.
Pangunahing Konsepto
Maaaring suportahan ng I2C bus ang anumang chip technology na ginamit. Ang interface ng I2C LabVIEW at iba pang katulad nito ay nagbibigay para sa paggamit ng dalawang linya para sa paglilipat ng impormasyon - data at pag-synchronize. Ang anumang device na nakakonekta sa ganitong paraan ay kinikilala ng natatanging address nito, hindi alintana kung ito ay isang LCD buffer, microcontroller, memory o keyboard interface, at maaaring kumilos bilang isang receiver o transmitter, depende sa kung para saan ito. nilayon para sa kagamitang ito.
Sa karamihan ng mga kaso, ang LCD buffer ay isang karaniwang receiver, at ang memorya ay hindi lamang makakatanggap, ngunit nagpapadala rin ng iba't ibang data. Sa iba pang mga bagay, ayon sa proseso ng paglipat ng impormasyon, ang mga device ay maaaring uriin bilang slave at master.
Sa kasong ito, ang master ay ang device na nagpapasimula ng paglipat ng data, at bumubuo rinmga signal ng pag-synchronize. Sa kasong ito, ituturing na mga alipin ang anumang naa-address na device kaugnay nito.
Ang interface ng komunikasyon ng I2C ay nagbibigay para sa pagkakaroon ng ilang mga master nang sabay-sabay, iyon ay, higit sa isang device na may kakayahang kontrolin ang bus ay maaaring kumonekta dito. Ang kakayahang gumamit ng higit sa isang microcontroller sa parehong bus ay nangangahulugan na higit sa isang master ang maaaring ipasa sa anumang oras. Upang alisin ang mga potensyal na kaguluhan na may panganib na lumitaw kapag lumitaw ang ganoong sitwasyon, isang espesyal na pamamaraan ng arbitrasyon ang binuo na gumagamit ng interface ng I2C. Nagbibigay ang mga expander at iba pang device para sa pagkonekta ng mga device sa bus ayon sa tinatawag na wiring rule.
Ang pagbuo ng signal ng orasan ay responsibilidad ng master, at ang bawat master ay gumagawa ng sarili nitong signal sa panahon ng paglilipat ng data, at maaari lang itong magbago sa ibang pagkakataon kung ito ay "hinatak" ng isang mabagal na alipin o ng ibang master kapag may naganap na banggaan.
Mga pangkalahatang parameter
Parehong ang SCL at SDA ay bi-directional na mga linya na kumokonekta sa isang positibong power supply na may pull-up resistor. Kapag ang gulong ay ganap na libre, ang bawat linya ay nasa mataas na posisyon. Ang mga yugto ng output ng mga device na nakakonekta sa bus ay dapat na open-drain o open-collector para maibigay ang wired na function na AND. Ang impormasyon sa pamamagitan ng I2C interface ay maaaring maipadala sa bilis na hindi hihigit sa 400 kbpsfast mode, habang ang karaniwang bilis ay hindi lalampas sa 100 kbps. Ang kabuuang bilang ng mga device na maaaring sabay na ikonekta sa bus ay nakasalalay sa isang parameter lamang. Ito ang line capacitance, na hindi hihigit sa 400 pf.
Kumpirmasyon
Ang Ang kumpirmasyon ay isang mandatoryong pamamaraan sa proseso ng paglilipat ng data. Binubuo ng master ang naaangkop na pulso ng pag-sync habang inilalabas ng transmitter ang linya ng SDA sa panahon ng pulso ng pag-sync na ito bilang isang pagkilala. Pagkatapos nito, dapat tiyakin ng receiver na ang linya ng SDA ay pinananatiling matatag sa panahon ng mataas na estado ng orasan sa isang matatag na mababang estado. Sa kasong ito, tiyaking isaalang-alang ang mga oras ng pag-setup at pag-hold.
Sa karamihan ng mga kaso, ipinag-uutos para sa naka-address na receiver na bumuo ng isang pagkilala pagkatapos matanggap ang bawat byte, na ang tanging pagbubukod ay kapag ang simula ng paghahatid ay may kasamang CBUS address.
Kung ang receiver-slave ay walang paraan upang magpadala ng kumpirmasyon ng sarili nitong address, ang linya ng data ay dapat na iwanang mataas, at pagkatapos ay makakapag-isyu ang master ng signal na "Stop", na makagambala sa pagpapadala ng lahat ng impormasyon. Kung ang address ay nakumpirma na, ngunit ang alipin ay hindi makakatanggap ng anumang karagdagang data sa loob ng mahabang panahon, ang master ay dapat ding matakpan ang pagpapadala. Upang gawin ito, hindi kinikilala ng alipin ang susunod na byte na natanggap at umalis lamang sa linyamataas, na nagiging dahilan upang makabuo ang master ng stop signal.
Kung ang pamamaraan ng paglipat ay nagbibigay para sa pagkakaroon ng isang master-receiver, sa kasong ito, dapat itong ipaalam sa alipin tungkol sa pagtatapos ng paghahatid, at ito ay ginagawa sa pamamagitan ng hindi pagkilala sa huling natanggap na byte. Sa kasong ito, agad na ilalabas ng slave-transmitter ang linya ng data para makapag-isyu ang master ng signal na "Stop" o ulitin ang signal na "Start."
Upang tingnan kung gumagana ang kagamitan, maaari mong subukang maglagay ng mga karaniwang halimbawa ng sketch para sa interface ng I2C sa Arduino, tulad ng nasa larawan sa itaas.
Arbitrasyon
Maaari lamang magsimulang magpadala ng impormasyon ang mga masters pagkatapos na ganap na libre ang bus, ngunit ang dalawa o higit pang master ay makakabuo ng start signal sa pinakamababang oras ng hold. Sa kalaunan ay nagreresulta ito sa isang partikular na signal na "Start" sa bus.
Gumagana ang Arbitration sa SDA bus habang mataas ang SCL bus. Kung ang isa sa mga masters ay nagsimulang magpadala ng isang mababang antas sa linya ng data, ngunit sa parehong oras ang isa ay mataas, kung gayon ang huli ay ganap na hindi nakakonekta mula dito, dahil ang estado ng SDL ay hindi tumutugma sa mataas na estado ng panloob na linya nito..
Ang arbitrage ay maaaring magpatuloy sa ilang piraso. Dahil sa ang katunayan na ang address ay ipinadala muna, at pagkatapos ay ang data, ang arbitrasyon ay maaaring tumagal hanggang sa katapusan ng address, at kung ang mga masters ay tutugonang parehong aparato, pagkatapos ay iba't ibang data din ang lalahok sa arbitrasyon. Dahil sa arbitration scheme na ito, walang data na mawawala kung may nangyaring banggaan.
Kung matalo ang master sa arbitration, maaari itong mag-isyu ng mga clock pulse sa SCL hanggang sa dulo ng byte, kung saan nawala ang access.