Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXV Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 18 декабря 2017 г.)

Наука: Технические науки

Секция: Радиотехника, Электроника

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Михайлов С.А., Лохов А.К. ОПИСАНИЕ ПРОТОКОЛА УПРАВЛЕНИЯ ШИНОЙ I2C // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. XXXV междунар. студ. науч.-практ. конф. № 24(35). URL: https://sibac.info/archive/meghdis/24(35).pdf (дата обращения: 26.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ОПИСАНИЕ ПРОТОКОЛА УПРАВЛЕНИЯ ШИНОЙ I2C

Михайлов Станислав Александрович

студент 1 курса магистратуры, кафедра систем автоматического управления и контроля МИЭТ,

РФ, г. Москва

Лохов Алексей Константинович

студент 1 курса магистратуры, кафедра систем автоматического управления и контроля МИЭТ,

РФ, г. Москва

Чтобы обеспечить максимально эффективное использование таких общих решений для выгоды конструкторов и самих производителей, а также для повышения общей степени производительности различной аппаратуры и упрощения применяемых схемотехнических узлов, компания Philips Semiconductors задалась целью разработать предельно простую двухпроводную двунаправленную шину, обеспечивающую наиболее продуктивное межмикросхемное управление. Шина состоит из линии данных (SDA) и линии тактирования (SCL). Первая спецификация вышла в 1982. В 1992 вышла спецификация v1.0, многие устройства полностью поддерживают именно эту версию стандарта.Данная шина обеспечивает передачу данных через интерфейс I2C.

I2C является двунаправленной, последовательной шиной данных. Скорость передачи в стандартном режиме (спецификация v1.0) составляет 100 кбит/с, более новые версии стандарта допускают скорость 400 кбит/с, 1 Мбит/с и 3,4 Мбит/с. Каждое подключенное к шине устройство адресуется уникальным адресом, число устройств на шине ограниченно максимально допустимой ёмкостью шины (400 пФ). Каждая линия шины подключена к питанию через подтягивающий резистор, то есть линии в отсутствии передачи находятся в состоянии логической “1”. Устройства подключены к шине таким образом, что любое устройство может удерживать линию в состоянии логического “0”, в не зависимости от сигналов других устройств (т.н. wired AND). Это позволяет “медленным” устройствам удерживать линию тактирования до готовности к передаче данных [1].

Даже если посмотреть кратко описание интерфейсов UART, SPI, I2C, можно выделить следующие преимущества последнего:

- Для работы нужно всего две линии – синхронизации и данных. Любое устройство, которое подключается к такой шине, в дальнейшем может программно адресоваться по абсолютно уникальному адресу. В любой момент существует простое отношение, позволяющее ведущим работать в качестве ведущего-передатчика или ведущего-приемника.

- Данная шина предусматривает возможность иметь сразу несколько ведущих, предоставляя все необходимые средства для определения коллизий, а также арбитраж, позволяющий предотвратить повреждение данных в том случае, если два или большее количество ведущих начинает одновременно передавать информацию. В стандартном режиме предусматривается только передача последовательных восьмибитных данных при скорости не более 100 кбит/с, а в быстром режиме этот порог может быть увеличен в четыре раза.

- В микросхемах используется специальный встроенный фильтр, который достаточно эффективно подавляет всплески и обеспечивает максимальную целостность данных.

- Предельно возможное количество микросхем, которые могут быть подсоединены к одной шине, ограничивается только ее предельно возможной емкостью, составляющей 400 пФ.

Начало обмена данными на шине инициирует ведущее устройство, путём формирования состояния СТАРТ: перехода линии SDA из состояния логической “1” в “0” при высоком уровне SCL. Другие устройства на шине воспринимают это как начало процедуры обмена. Тактирования на линии SCL так же осуществляет ведущий. Концом передачи является состояние СТОП: ведущее устройство изменяет состояние линии SDA из логического “0” в “1” при высоком уровне на SCL. Данные на линии SDA могут изменяться при низком уровне SCL и должны быть постоянны при высоком. Между состояниями СТАРТ и СТОП линия считается занятой.

 Пакет данных в I2C имеет длину 9 бит: 8 бит данных от передатчика и 1 бит подтверждения от приёмника. После состояния СТАРТ ведущий передаёт адресный пакет: 7 байт адреса устройства, которому предназначены данные, и бит режима: чтение или запись. Устройство, узнавшее свой адрес, на месте 9 бита выставляет высокий уровень (подтверждение приёма, acknowledge). После этого ведущий-передатчик передаёт N байт данных. Передача заканчивается состоянием СТОП [2]. Временная диаграмма процесса передачи приведена на рисунке 1.

 

Рисунок 1. Временная диаграмма передачи данных по шине I2C

 

Если ведущий является приёмником, то после адресного пакета данные передаёт ведомое устройство, а бит подтверждения генерируется ведущим. Для завершения передачи ведущий должен ответить на байт данных низким уровнем на месте 9 бита (not-acknowledge) и сформировать состояние СТОП. Формат передачи для случая ведущий-приёмник представлен на рисунке 2.

 

Рисунок 2. Формат передачи данных, когда ведущее устройство является приёмником

 

Так же возможен, и в данной работе будет активно использоваться, комбинированный режим, когда ведущий сначала передаёт данные, а потом принимает. Пример такого обмена приведён на рисунке 3.

 

Рисунок 3. Комбинированный формат передачи данных, когда ведущее устройство сначала передаёт, а потом принимает данные

 

То есть ведущий-передатчик (режим write) сначала передаёт данные, потом формирует состояние ПОВТОРНЫЙ СТАРТ: переход из состояния логической “1” в “0” на линии SDA во время высокого уровня на линии SCL. Это состояние ничем не отличается от состояния СТАРТ. Далее ведущий передаёт адресный пакет и меняет режим на чтение (ведущий-приёмник). Далее процесс передачи такой же, как описанный выше.

Для иллюстрации обмена данными по шине I2C, рассмотрим процесс чтения регистров микросхемы часов реального времени RX-8571. Формат передачи для чтения содержимого регистров микросхемы представлен на рисунке 4.

 

Рисунок 4. Формат передачи для чтения содержимого регистров микросхемы часов RX-8571

 

Ведущий-передатчик формирует состояние СТАРТ, посылает на линию адрес микросхемы и бит “запись”, микросхема отвечает подтверждением. Далее ведущий передаёт адрес регистра, из которого необходимо считать данные и ждёт подтверждения от ведомого. После подтверждения, ведущий формирует состояние ПОВТОРНЫЙ СТАРТ, снова передаёт адрес микросхемы, меняет режим на “чтение” и принимает N данных. Микросхема часов, после каждого считаного байта, автоматически производит инкремент адреса регистра для чтения. Когда N байт приняты, ведущий отвечает отказом на данные и формирует состояние СТОП. Сеанс передачи закончен.

 

Список литературы:

  1. Лайонс Р. Цифровая обработка сигналов. 2-е изд. Пер. с англ. – М.: ООО «Бином-Пресс», 2006. 656 с.
  2. Семенов Б.Ю. Шина I2C в радиотехнических конструкциях. – М.: «Солон-Р», 2010. 225 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.