Огляд та переваги шини I2C
Розроблений компанією Philips у 1980-х роках, I2C (альтернативно пишеться I2C) став одним з найбільш часто використовуваних протоколів послідовного зв'язку в електроніці. I2C полегшує зв'язок між електронними компонентами або інтегрованими схеми, чи збігаються компоненти друкована плата або підключений за допомогою кабелю.
Що таке протокол I2C?
I2C - це протокол послідовного зв'язку, який вимагає лише двох сигнальних ліній. Він був розроблений для зв'язку між мікросхемами на друкованій платі (PCB). I2C спочатку був розроблений для 100 Кбіт/с спілкування. Проте протягом багатьох років були розроблені більш швидкі режими передачі даних, щоб досягти швидкості до 3,4 Мбіт.
Ключовою особливістю 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 включають:
- Зчитування певних мікросхем пам'яті.
- Доступ до ЦАП і АЦП.
- Передача та контроль дій, спрямованих користувачем.
- Зчитування апаратних датчиків.
- Зв'язок з кількома мікроконтролерами.