В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

  • I2C
  • IrDA
  • CAN
  • USB
  • SPI
  • RS-232
  • RS-485
  • LVDS
  • Centronics
  • MIDI
  • X10
  • HDMI
  • Статьи
  • Ссылки
  •  
    Пересюхтюмя


    13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





    Выставка Передовые Технологии Автоматизации





    Главная страница > Интерфейсы > I2C
    Пересюхтюмя


    13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





    Выставка Передовые Технологии Автоматизации


    Общие положения и введение в логику работы шины I2C

    Шина I2C

    Отличительные особенности

    • Двунаправленный обмен по двум линиям
    • Высокая скорость обмена - до 100 кбит и выше
    • Возможность адресации до 128 устройств
    • Простота программной реализации "Master"-абонента
    • Временная независимость процесса передачи

    Данное введение является формальным описанием шины I2C и предназначено только для достаточно подробного ознакомления с целью самостоятельной реализации частных алгоритмов связи. Для получения более полной информации обращайтесь к соответствующей литературе фирмы Philips.

    Разработанная фирмой Philips шина I2C ("Inter-Integrated Circuit"), - это двунаправленная асинхронная шина с последовательной передачей данных и возможностью адресации до 128 устройств. Физически шина I2C содержит две сигнальные линии, одна из которых (SCL) предназначена для передачи тактового сигнала, вторая (SDA) для обмена данными. Для управления линиями применяются выходные каскады с открытым коллектором, поэтому линии шины должны быть подтянуты к источнику питания +5 В через резисторы сопротивлением 1...10 кОм, в зависимости от физической длины линий и скорости передачи данных. Длина соединительных линий в стандартном режиме может достигать 2-х метров, скорость передачи - до 100 кбит/с. Суммарная емкость линий должна быть не больше 400 пФ, входная емкость на каждую ИС должна быть в пределах 5...10 пФ.

    Все абоненты шины делятся на два класса - "Master" и "Slave". Устройство "Master" генерирует тактовый сигнал (SCL) и, как следствие, является ведущим. Оно может самостоятельно выходить на шину и адресовать любое "Slave" - устройство с целью передачи или приема информации. Все "Slave"-устройства "слушают" шину на предмет обнпружения собственного адреса и, распознав его, выполняют предписываемую операцию. Кроме того, возможен так называемый "Multi Master" - режим когда на шине установлено несколько "Master"-абонентов, которые либо совместно разделяют общие "Slave"-устройства, либо попеременно являются то "Master"-устройствами, когда сами инициируют обмен информацией, то "Slave", когда находятся в режиме ожидания обращения от другого "Master"-устройства. Режим "Multi Master" требует арбитража и распознавания конфликтов. Естественно, он сложнее в реализации (имеется ввиду программная реализаци) и, как следствие, реже используется в реальных изделиях.

    В начальный момент времени - в режиме ожидания - обе линии SCL и SDA находятся в состоянии логической единицы (транзистор выходного каскада с ОК закрыт). В режиме передачи (рис. 1) бит данных SDA стробируется положительным импульсом SCL. Смена информации на линии SDA производится при нулевом состоянии линии SCL. "Slave"-устройство может "придерживать" линию SCL в нулевом состоянии, например, на время обработки очередного принятого байта, при этом "Master"-устройство обязано дождаться освобождения линии SCL, прежде чем продолжить передачу информации.

    Рис. 1. Диаграмма процесса передачи данных по шине I2C

    Для синхронизации пакетов шины I2C различают два условия - "Start" и "Stop", ограничивающие начало и конец информационного пакета (рис. 2). Для кодирования этих условий используется изменение состояния линии SCL, что недопустимо при передаче данных. "Start"-условие образуется при отрицательном перепаде линии SDA, когда линия SCL находится в единичном состоянии, и наоборот, 'Stop"-условие образуется при положительном перепаде линии SDA при единичном состоянии линии SCL.

    Рис. 2. Диаграмма "Старт"/"Стоп" условия шины I2C

    Рис. 3. Диаграмма подтверждения приема байта по шине I2C

    Передача данных начинается по первому положительному импульсу на линии SCL (рис. 3), которым стробируется старший бит первого информационного байта. Каждый информационный байт (8 битов) содержит 9 тактовых периодов линии SCL. В девятом такте устройство-получатель выдает подтверждение (ACK) - отрицательный импульс, свидетельствующий о "взаимопонимании" передатчика и получателя. Сразу отметим, что любой абонент шины, как "Master", так и "Slave" может в разные моменты времени быть как передатчиком, так и получателем и в соответствии с режимом обязан либо принимать, либо выдавать сигнал ACK, отсутствие которого интерпритируется как ошибка.

    Рис. 4. Временная диаграмма работы шины I2C

    Временная диаграмма сигналов SCL и SDA шины I2C приведена на рис. 4. Здесь S обозначает "Start"-условие, Р - "Stop"-условие. Значения временных характеристик приведены в табл. 1.

    Таблица 1. Значения временных характеристик шины I2C

    Параметр Обозначение Мин. Макс. Един.
    Частота сигнала SCL fSCL 0 100 кГц
    Свободная шина tBUF 4.7 -- мкс
    Фиксация "Start"-условия tHD;STA 4.0 -- мкс
    Длительность "LOW" полупериода SCL tLOW 4.7 -- мкс
    Длительность "HIGH" полупериода SCL tHIGH 4.0 -- мкс
    Готовность повторного "Start"-условия tSU;STA 4.7 -- мкс
    Удержание данных tHD;DAT 0 -- мкс
    Готовность данных tsu;dat 250 -- нс
    Фронт сигналов SCL и SDA tr -- 1000 нс
    Спад сигналов SCL и SDA tf -- 300 нс
    Готовность "STOP"-условия tSU;STO 4.0 -- мкс

    Чтобы начать операцию обмена устройство "Master" выдает на шину "Start"-условие, за которым следует байт с адресом "Slave"-устройства (рис. 5), состоящий из семибитового адреса устройства (занимает биты 1...7) и однобитового флага операции - "R/W" (бит 0) определяющего направление обмена, причем 0 означает передачу от "Master" к "Slave" (рис. 5 а), а 1 - чтение из "Slave" (рис. 5б). Все биты передаются по шине I2C в порядке старший-младший, то есть первым передается 7-ой бит, последним 0-ой. За адресои могут следовать один или более информационных байтов (в направлении, определенном флагом R/W), биты которых стробируются сигналом SCL из "Master"-устройства.

    При совершении операции чтения "Master"-абонент должен сопровождать прочитанный байт сигналом ACK, если необходимо прочитать следующий байт, и не выдавать сигнала ACK, если собирается закончить чтение пакета (рис. 5б).

    Допускается многократное возобновление "Slave"-адреса в одном цикле передачи, то есть передача повторного "Start"-условия без предварительного "Stop"-условия. Такой принцип широко применяется в управлении I2C абонентами, когда выдача нового "Start"-условия служит для синхронизации начала нового пакета данных, сопровождаемого, например, новым управляющим словом, уточняющим адресацию пакета. Логическая реализация протоколов на шине I2C не нормируется документами фирмы Philips, содержащими формальные описания шины, и может быть произвольной для каждой конкретной ИС.


    gaw.ru рекомендует: офисные и квартирные переезды