Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикладное программирование 2014 / Прикладное программирование -Конспект лекций - заготовка.doc
Скачиваний:
207
Добавлен:
21.03.2016
Размер:
3.48 Mб
Скачать

5.2 Модуль i2c межмикросхемного последовательного интерфейса

5.2.1 Интерфейс I2C (inter-integratedcircuit) разработан компаниейPhilipsв 1982 году для связи микроконтроллера с периферией в телевизоре. Модуль интерфейсаI2Cиспользуется для связи контроллера с периферийными устройствами или другим контроллером, имеющими соответствующий интерфейс версии 2.1 и подключенными к шинеI2C.

Интерфейс I2C– это протокол с многими ведущими и ведомыми, использующий только две сигнальные линии:

- линия последовательных данных SDA;

- линия синхросигнала SCL.

Модуль высокоскоростного синхронного последовательного интерфейса может использоваться в режиме ведущего (master) или ведомого (slave) и обеспечивает передачу и прием слов запрограммированной длины (от 1 до 8 бит данных) с запрограммированной скоростью.

5.2.2 Особенности модуля:

- режимы 7- и 10-битной адресации;

- режим общего вызова;

- режим стартового байта;

- режим свободного формата данных;

- поддержка множества ведущих (передатчиков) и ведомых (приемников);

- скорость передачи данных от 10 до 400 килобит в секунду (режим High-Speedне поддерживается);

- содержит FIFOна прием и передачу с объемом 16 байт каждое;

- модуль может выключаться.

Блок-схема модуля I2C и основные связи между его узлами приведены на рис.5.2.

Рис.5.2. Блок-схема модуляI2C

5.2.3 Принцип действия

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

Линии сигналов SDAиSCL– двунаправленные, должны быть подтянуты к положительной клемме источника питания через резисторы, выходными элементами устройств являются элементы с открытым стоком, реализующие на линии логическую функцию «проводного И».

Основными режимами обмена являются:

- стандартный режим, когда передается точно тот объем информации, который запрограммирован в регистре модуля;

- повторяющийся режим обмена, который повторяется до тех пор, пока программно будут выработаны условия для STOPили новогоSTART.

5.2.4 Модуль содержит следующие узлы:

- выводы SDAиSCL;

- сдвиговые регистры I2CXSRиI2CRSR, регистры данныхI2CDXRиI2CDRRиFIFOдля временного хранения полученных и передаваемых данных;

- регистры управления и статусные;

- интерфейс с периферийной шиной контроллера;

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

- делитель частоты для понижения частоты при формировании тактовых импульсов модуля;

- фильтр для снижения уровня шума в сигналах, принимаемых по линиям SDAиSCL;

- устройство арбитража;

- логика формирования прерываний.

5.2.5 Режимы работы

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

Модуль в режиме ведомого начинает обмен с приема адреса, передаваемого ведущим. При совпадении принятого адреса с адресом ведомого, последний должен отправить уведомление ведущему. Если данные должны передаваться ведущим, модуль должен оставаться в режиме приема. Если ведущий запрашивает данные от ведомого, то ведомый должен перейти на передачу.

Для управления обменом модуль в режиме ведущего формирует на линиях шины состояние STARTиSTOP.

Состояние STARTхарактеризуется переходом из 1 в 0 на линииSDAпри сохранении 1 на линииSCL. Ведущий, формируяSTART, обозначает начало обмена.

Состояние STOPхарактеризуется переходом из 0 в 1 на линииSDAпри сохранении 1 на линииSCL. Ведущий, формируяSTOP, обозначает конец обмена.

В промежутке между STARTиSTOPшина считается занятой, междуSTOPиSTARTшина считается свободной.

5.2.6 Формат данных

Каждый бит передается по линии SDAв течение одного периода синхросигнала на линииSCL. Передача данных начинается со старшего значащего разряда.

В режиме 7- битной адресации первый байт после состояния STARTсодержит 7 бит адреса ведомого и битR/Wнаправления передачи (R/W=0 ведущий передает ведомому,R/W=1 – ведомый передает ведущему).

После передачи каждого байта вставляется дополнительный такт уведомления (АСК – бит), выставляемый принимающей стороной.

В режиме 10- битной адресации адрес передается двумя байтами, первый байт после состояния STARTсодержит в первых пяти битах число 11110, затем два старших разряда адреса, затем битR/Wнаправления передачи; второй байт содержит оставшиеся 8 бит адреса ведомого.

После передачи каждого байта вставляется дополнительный такт уведомления (АСК – бит), выставляемый принимающей стороной.

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