Развиена од Philips во 1980-тите, I2C стана еден од најчестите протоколи за сериска комуникација во електрониката. I2C овозможува комуникација помеѓу електронските компоненти или IC до IC, без разлика дали компонентите се на иста PCB или се поврзани преку кабел. Клучната карактеристика на I2C е способноста да има огромен број на компоненти на единствена комуникациска шина со само две жици што го прави I2C совршен за апликации кои бараат едноставност и ниски трошоци за брзина.
Преглед на протоколот I2C
I2C е сериски протокол за комуникација кој бара само две сигнални линии кои се дизајнирани за комуникација меѓу чипови на ПХБ. I2C првично беше дизајниран за 100kbps комуникација, но побрзи начини за пренос на податоци беа развиени во текот на годините за да се постигне брзина до 3.4Mbit. Протоколот I2C е воспоставен како официјален стандард, кој обезбедува добра компатибилност помеѓу имплементациите на I2C и добрата компатибилност за назад.
I2C сигнали
Протоколот I2C користи само две двонасочни сигнални линии за да комуницира со сите уреди на I2C магистралата. Двете сигнали што се користат се:
- Сериски податочен линк (SDL)
- Сериски податочен часовник (SDC)
Причината поради која I2C може да користи само два сигнали за комуникација со голем број периферни уреди е како се ракува комуникацијата по автобусот. Секоја I2C комуникација започнува со 7-битна (или 10-битна) адреса која ја нарекува адресата на периферијата, а остатокот од комуникацијата е наменета за примање на комуникацијата. Ова им овозможува на повеќе уреди на I2C магистралата да ја играат улогата на главниот уред, бидејќи потребите на системот се диктат. За да се спречат комуникациски судири, протоколот I2C вклучува можности за арбитража и откривање на судири кои овозможуваат непречена комуникација долж автобусот.
Предности и ограничувања
Како комуникациски протокол, I2C има многу предности што го прават е добар избор за многу вградени дизајнерски апликации. I2C ги носи следните предности:
- I2C бара само две сигнални линии
- Флексибилни стапки на пренос на податоци
- Секој уред во автобусот е независно адресибилен
- Уредите имаат едноставна врска Master / Slave
- I2C е способен за ракување со повеќе главни комуникации преку обезбедување на арбитражна и комуникациска детекција на судир
- Подолги комуникации оддалечени од SPI
Со сите овие предности, I2C, исто така, има неколку ограничувања кои можеби ќе треба да бидат дизајнирани околу. Најважните I2C ограничувања вклучуваат:
- Бидејќи се достапни само 7 бита (или 10 бита) за адресирање на уредот, уредите на истиот автобус можат да ја делат истата адреса. Некои уреди се способни да ги конфигурираат последните неколку битови од адресата, но ова сè уште наметнува ограничување на уредите на истата шина.
- Достапни се само неколку ограничени брзини на комуникација и многу уреди не поддржуваат поголеми брзини на пренос. Потребна е делумна поддршка за секоја брзина на автобусот за да се спречат забавените уреди да фатат делумни пренос што ќе резултира со оперативни грешки.
- Споделената природа на I2C магистралата може да резултира со висина на целата шина кога еден уред на автобусот ќе престане да работи. Возењето на моќноста на автобусот може да се искористи за да се рестартира автобусот и да се врати правилно функционирање.
- Бидејќи уредите можат да ја постават својата брзина на комуникација, побавните оперативни уреди може да ја одложат работата на уредите со поголема брзина.
- I2C привлекува поголема моќ отколку другите сериски комуникациски автобуси поради отворената топологија на комуникациските линии.
- Ограничувањата на I2C магистралата обично го ограничуваат бројот на уредите на автобус на околу десетина уреди.
Апликации
Автобусот I2C е одлична опција за апликации кои бараат ниска цена и едноставна имплементација наместо голема брзина. На пример, читањето на одредени мемориски идентификатори, пристап до DACs и ADC, читање на сензори , пренесување и контролирање на дејства насочени кон корисникот, читање на хардверски сензори и комуникација со повеќе микроконтролери се честа употреба на I2C комуникацискиот протокол.