Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
theory:i2c [2020/05/19 15:58] – создано labuser29theory:i2c [2020/05/19 16:59] (текущий) labuser29
Строка 1: Строка 1:
 ===== Интерфейсы. Шина I2C ===== ===== Интерфейсы. Шина I2C =====
 +
 +В цифровой электронике очень широко применяются различные интерфейсы для обмена данными между устройствами и/или блоками одного устройства. Например, хорошо знакомый интерфейс USB применяется для связи компьютера с периферийным устройством. Интерфейс HDMI применяется для обмена данными между компьютером и монитором. Интерфейс RS485 применяется для обмена данными между устройствами промышленной автоматизации. Различных интерфейсов очень много.
 +
 +Интерфейсы различаются по назначению, скорости передачи данных. Они бывают последовательные и параллельные. Различаются они и топологией — количеством ведущих и ведомых устройств, их ролями в протоколе обмена.
 +
 +Интерфейсы нужны в первую очередь для стандартизации и унификации. Несколько различных производителей устройств, которые никогда не слышали о существовании друг друга, могут производить устройства, которые успешно работают вместе, благодаря тому, что поддерживают один и тот же стандартный интерфейс. 
 +
 +Микроконтроллеры обычно включают в себя в качестве периферийных устройств контрóллеры различных интерфейсов. Мы будем использовать интерфейс I2C для работы с LCD дисплеем нашего конструктора.
 +
 +I2C — последовательная асимметричная шина для связи между интегральными схемами внутри электронных приборов. Использует две двунаправленные линии связи (SDA и SCL), применяется для соединения низкоскоростных периферийных компонентов с процессорами и микроконтроллерами (например, на материнских платах, во встраиваемых системах, в мобильных телефонах). Разработана фирмой Philips Semiconductors в начале 1980-х как простая 8-битная шина внутренней связи для создания управляющей электроники. Была рассчитана на частоту 100 кГц. Стандартизована в 1992 году, в первой версии к стандартному режиму 100 кбит/с добавлен скоростной режим 400 кбит/с (Fast-mode, Fm); за счёт 10-битной адресации становится возможным подключение на одну шину более 1000 устройств.
 +
 +Протокол обмена данными по шине I2C достаточно сложен, рассматривать его сейчас мы не будем. Для нас работа с ним будет заключаться в вызове функций стандартной библиотеки Python.
 +
 +<WRAP center round info 60%>
 +[[https://ru.wikipedia.org/wiki/I²C|Подробнее о шине I2C]]
 +</WRAP>
 +
 +Для нас важно то, что 
 +  * для обмена данными шина I2C использует две линии связи, грубо говоря два провода 
 +  * интерфейс подразумевает деление устройств на ведущих и ведомых
 +  * ведущее устройство может быть только одно, ведомых несколько
 +  * обменом управляет ведущее устройство
 +  * только ведущее устройство может быть инициатором обмена данными
 +  * для того, чтобы ведомые устройства поняли к кому из них обращается ведущий, используется адрессация. У каждого ведомого устройства есть свой адрес