Наконец, подобрались к I2C. Давно хотелось, но всё никак. Тема интересная, а возможности периферии общающейся по этому протоколу могут существенно расширить возможности микроконтроллерной системы. I2C, в отличии от SPI, позволяет наращивать функционал, добавлять новые блоки без изменения в схеме и не задействуя новые выводы МК — настоящий конструктор — стыкуй что и сколько надо =)
I2C (Inter-Integrated Circuit — примерно «Схема внутренней связи» =), читается “и-два-цэ” — последовательная шина выдуманная в недрах Philips ещё в 80-х годах прошлого века. Задумывалась, как простая шина для связи блоков внутри устройства — получилось, и на удивление удачно=)
1-Wire – разработан фирмой Dallas Semiconductor (ныне MAXIM) в конце 90-х годов.
Фирменная документация здесь.
Этот интерфейс интересен тем, что для двустороннего обмена требуется всего одна линия! (отсюда и название :)
Правда, ещё требуется общий провод (земля), но это вроде как в расчёт не принимается :)
Причём, на эту одну линию можно повесить несколько устройств, а ассортимент таких устройств очень широк (от датчиков температуры до широко распространённых ключей-таблеток iButton).
Кроме того – протокол очень прост и легко реализуется на МК программно.
Обмен данными через PS/2 осуществляется асинхронно по последовательному протоколу.
Для обмена информацией используется 2 линии: 1 — DATA (по этой линии передаются сами данные) 5 — CLOCK (по этой линии передаются тактовые сигналы)
Данные передаются по одному байту за раз (невзирая на направление передачи – к устройству или от него).