Разработен от Philips през 80-те години, I2C (алтернативно изписван I2C) се превърна в един от най-често използваните серийни комуникационни протоколи в електрониката. I2C улеснява комуникацията между електронни компоненти или интегрални схеми, независимо дали компонентите са на една и съща печатна платка или са свързани с кабел.
Какво представлява I2C протоколът?
I2C е сериен комуникационен протокол, който изисква само две сигнални линии. Той е проектиран за комуникация между чипове на печатна платка (PCB). I2C първоначално е проектиран за 100 Kbps комуникация. През годините обаче са разработени по-бързи режими на предаване на данни, за да се постигнат скорости до 3.4 Mbit.
Ключовата характеристика на I2C е възможността да има много компоненти на една комуникационна шина само с два проводника, което прави I2C перфектен за прости приложения. Протоколът I2C е установен като официален стандарт, позволяващ обратна съвместимост между реализациите на I2C.
I2C сигнали
Протоколът I2C използва две двупосочни сигнални линии за комуникация с устройствата в комуникационната шина. Използваните два сигнала са:
- Серийна линия за данни (SDL)
- Сериен часовник за данни (SDC)
Причината, поради която I2C може да използва само два сигнала за комуникация с няколко периферни устройства, е в това как се обработва комуникацията по шината. Всяка I2C комуникация започва със 7-битов (или 10-битов) адрес, който извиква адреса на периферното устройство.
Това позволява на множество устройства в I2C шината да играят ролята на основното устройство, както изискват нуждите на системата. За предотвратяване на сблъсъци в комуникацията протоколът I2C включва възможности за арбитраж и откриване на сблъсъци, които позволяват гладка комуникация по шината.
Предимства на I2C
Като комуникационен протокол I2C има следните предимства:
- Гъвкави скорости на предаване на данни.
- Комуникация на по-голямо разстояние от SPI.
- Всяко устройство в шината е независимо адресируемо.
- Устройствата имат проста първична/вторична връзка.
- Изисква само две сигнални линии.
- Способен е да обработва множество първични комуникации, като осигурява арбитраж и откриване на комуникационни сблъсъци.
Ограничения на I2C
С всички тези предимства, I2C има и няколко ограничения, които може да се наложи да бъдат заобиколени. Най-важните I2C ограничения включват:
- Тъй като са налични само 7 бита (или 10 бита) за адресиране на устройства, устройствата на една и съща шина могат да споделят един и същ адрес. Някои устройства могат да конфигурират последните няколко бита от адреса, но това налага ограничение на устройствата на една и съща шина.
- Налични са само няколко ограничени комуникационни скорости и много устройства не поддържат предаване при по-високи скорости. Необходима е частична поддръжка за всяка скорост на шината, за да се предотврати по-бавните устройства от улавяне на частични предавания, което може да доведе до оперативни проблеми.
- Споделената природа на I2C шината може да доведе до блокиране на цялата шина, когато едно устройство в шината спре да работи. Прекъсването на захранването към автобуса може да възстанови правилната работа.
- Тъй като устройствата задават собствената си скорост на комуникация, по-бавно работещите устройства могат да забавят работата на по-бързите устройства.
- I2C черпи повече енергия от другите серийни комуникационни шини поради топологията с отворен дренаж на комуникационните линии.
- Ограниченията на I2C шината обикновено ограничават броя на устройствата в една шина до около дузина.
I2C приложения
I2C е страхотна опция за приложения, които изискват ниска цена и просто изпълнение, а не висока скорост. Например обичайните употреби на комуникационния протокол I2C включват:
- Четене на определени IC памети.
- Достъп до DAC и ADC.
- Предаване и контролиране на насочени от потребителя действия.
- Четене на хардуерни сензори.
- Комуникация с множество микроконтролери.