logo
Shpora_AVMiS

14. Последовательный интерфейс передачи данных i2c.

I2C - синхронная последовательная шина, обеспечивающая двустороннюю передачу данных между подключенными устройствами. Состоит из двух линий. Передача ведется 8-битными данными. Сигналы соответствуют ТТЛ, КМОП. Питание - либо +5 В, либо +3.3 В. Появился в ~1980 г. Разработчик - фирма Philips. Оффициальная версия 1.0 была опубликована в 1992 г. В ней было поддержано 2 режима:

1)стандартный режим, скорость от 0 до 100 кбит/с; 2)быстрый режим, скорость от 0 до 400 кбит/с.

В 1998 году вышла версия 2.0. В ней появился высокоскоростной режим со скоростью до 3.4 Мбит/с.

Применение:

- информационный обмен между микроконтроллерами;

- чтение информации с часов реального времени;

- доступ к модулям памяти NVRAM;

- управление включением/выключением питания и т.д.

Как происходит передача:

1 - начало любой передачи - условие Start - высокий уровень сигнала SCL, а SDA переходит из высокого в низкий.

2 - при передаче данных состояние линии SDA может изменяться только при низком уровне SCL.

3 - данные считаются действительными во время высокого уровня SCL.

4 - каждая посылка данных состоит из 8 бит. Во время девятого такта формируется бит подтверждения ACK.

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

6 - конец передачи - условие Stop - при высоком сигнале SCL происходит переход линии SDA с низкого в высокий.

Адрессация на шине: 7 битная и 10 битная.

Cписок возможных применений: -доступ к модулям памяти -доступ к низкоскоростным ЦАП и АЦП. -регулировка насыщенности цветового баланса у монитора -регулировка звука в динамике