Описание интерфейса I2C (Раздаточный материал к курсовому проекту)
Описание файла
Файл "Описание интерфейса I2C" внутри архива находится в следующих папках: Раздаточный материал к курсовому проекту, Доп_материалы. PDF-файл из архива "Раздаточный материал к курсовому проекту", который расположен в категории "". Всё это находится в предмете "системы автоматического управления (сау) (мт-11)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
http://www.atlastelecom.ru/kkm/technical/part_2_0Описание интерфейса I2C.1. Концепция шины I2C.Шина I2C поддерживает любую технологию изготовления микросхем (НМОП,КМОП, биполярную). Две линии, данных (SDA) и синхронизации (SCL), служат дляпереноса информации. Каждое устройство распознается по уникальному адресу и можетработать как передатчик или приёмник, в зависимости от назначения устройства. Крометого, устройства могут быть классифицированы как ведущие и ведомые при передачеданных (см.
Таблицу 1 ). Ведущий - это устройство, которое инициирует передачуданных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройствосчитается ведомым по отношению к ведущему.Таблица 1. Терминология шины I2CТерминТермин (англ)Описание(рус)TransmitterПередатчик Устройство, посылающее данные в шинуReceiverПриемник Устройство, принимающее с шиныНачинает пересылку данных, вырабатываетMasterВедущийсинхроимпульсы, заканчивает пересылку данныхSlaveВедомыйУстройство, адресуемое ведущимНесколько ведущих могут пытаться захватитьMulti-master шину одновременно, без нарушения передаваемойинформацииArbitrationАрбитраж Процедура, обеспечивающая Multi-masterSynchronization Синхр.Процедура синхронизации двух устройствРис.
1. Пример конфигурации шины I2C с двумя микроконтроллерами.1.2.3.4.5.6.Микроконтроллер АНабор регистровЖКИ драйверАЦПСтатическая ОЗУ или ППЗУМикроконтроллер BШина I2C допускает несколько ведущих. Это означает, что более чем одноустройство, способное управлять шиной, может быть подключено к ней. Поскольку вкачестве ведущих обычно выступают микроконтроллеры, давайте рассмотрим примерпересылки данных между двумя микроконтроллерами, подключенными к шине (см. Рис.3). Пример покажет взаимоотношения передатчик-приемник и ведущий-ведомый,существующие в шине I2C.
Необходимо заметить, что эти отношения не постоянны, азависят только от направления пересылки данных в данный момент времени. Пересылкаданных будет происходить следующим образом:1. Пусть микроконтроллер А желает послать информацию в микроконтроллер В:− микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый);− микроконтроллер А (ведущий-передатчик) посылает данные микроконтроллеру В(ведомый-приёмник) ;− микроконтроллер А заканчивает пересылку.2.Пусть микроконтроллер А желает принять информацию от микроконтроллера В:− микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)− микроконтроллер А (ведущий-приемник) принимает данные от микроконтроллера В(ведомый-передатчик)− микроконтроллер А заканчивает пересылкуВ обоих случаях ведущий (микроконтроллер А) генерирует синхроимпульсы изаканчивает пересылку.Возможность подключения более одного микроконтроллера к шине означает, чтоболее чем один ведущий может попытаться начать пересылку в один и тот же моментвремени.
Для устранения хаоса, который может возникнуть в данном случае, разработанапроцедура арбитража. Эта процедура основана на том, что все I2C -устройстваподключаются к шине по правилу монтажного И. Подробнее об арбитраже см. Раздел 4.2.Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущийгенерирует свой собственный сигнал синхронизации при пересылке данных по шине.Сигнал синхронизации может быть изменен только если он "вытягивается" медленнымведомым устройством (путем удержания линии в низком состоянии), или другимведущим, если происходит столкновение.2. Общие параметры.Как SDA, так и SCL являются двунаправленными линиями, подсоединенными кположительному источнику питания через подтягивающий резистор (см.
Рис.2). Когдашина свободна, обе линии находятся в ВЫСОКОМ положении. Выходные каскадыустройств, подключенных к шине, должны иметь открытый сток или открытый коллектордля обеспечения функции монтажного И. Данные по шине I2C могут передаваться соскоростю до 100 кбит/с в стандартном режиме, и до 400 кбит/с в "быстром" режиме.Количество устройств, подключенных к шине, определяется единственным параметром емкостью линии (до 400 пф).Рис. 2. Подключение I2C устройств к шине.1.2.3.4.5.6.7.8.SDA (линия данных)SCL (линия синхронизации)Выход синхронизацииВход синхронизацииВыход данныхВход данныхПодтягивающие резисторыНапряжение питания2.1.
Валидность данных.Данные на линии SDA должны быть стабильными в течение ВЫСОКОГО периодасинхроимпульса. ВЫСОКОЕ или НИЗКОЕ состояние линии данных должно меняться,только если линия синхронизации в состоянии НИЗКОЕ (см. Рисунок 3).Рисунок 3. Пересылка бита в шине I2C1. Линия данных находится в стабильном состоянии, данные определены2. Допускается изменение данных2.2. Сигналы START и STOP.Специальные ситуации на шине отмечают сигналы START и STOP (см. Рис.
4).Переход линии SDA из ВЫСОКОГО состояния в НИЗКОЕ, в то время как SCLнаходится в ВЫСОКОМ состоянии означает START.Переход линии SDA из НИЗКОГО состояния в ВЫСОКОЕ при SCL в ВЫСОКОМсостоянии означает STOP.Сигналы СТАРТ и СТОП всегда вырабатываются ведущим.
Считается, что шиназанята после сигнала СТАРТ. Шина считается освободившейся через определенное времяпосле сигнала СТОП.Определение сигналов СТАРТ и СТОП устройствами, подключенными к шинедостаточно легко, если в них встроены необходимые цепи. Однако микроконтроллеры безтаковых цепей должны осуществлять считывание значения линии SDA как минимумдважды за период синхронизации для того, чтобы определить переход состояния.Рис.
4. Сигналы СТАРТ и СТОП.1. Сигнал СТАРТ2. Сигнал СТОП3. Пересылка бита.Вследствие различных технологий микросхем (КМОП, НМОП, биполярная),которые могут быть подключены к шине, уровни логического нуля ("НИЗКИЙ") илогической еденицы ("ВЫСОКИЙ") не фиксированы и зависят от соответствующегоуровня Vdd (см. Раздел 13.0 для электрических параметров). Один синхроимпульсгенерируется на каждый пересылаемый бит.3.1. Формат байта.Каждый байт, передаваемый по линии SDA, должен состоять из 8 бит.
Количествобайт, передаваемых за один сеанс связи неограничено. Каждый байт должен оканчиватьсябитом подтверждения. Данные передаются, начиная с наиболее значащего бита (см.Рисунок 5). Если приёмник не может принять еще один целый байт, пока он не выполниткакую-либо другую функцию (например, обслужит внутреннее прерывание), он можетудерживать линию SCL в НИЗКОМ состоянии, переводя передатчик в состояниеожидания. Пересылка данных продолжается, когда приёмник будет готов к следующемубайту и отпустит линию SCL.В некоторых случаях, необходимо использовать другой формат данных (например,CBUS).
Посылка, которая передается с таким адресом, может быть закончена выдачейсигнала СТОП, даже если это происходит во время передачи байта. В этом случаеподтверждение не генерируется (см. Раздел 6.1.3).Рис. 5. Пересылка данных по шине I2C1.2.3.4.5.6.7.Сигнал СТАРТСтарший разряд байтаСигнал подтверждения от приёмникаПрием байта завершен. Прерывание внутри приемникаСинхролиния удерживается в низком состоянии, пока обслуживается прерываниеСигнал подтверждения от приемникаСигнал СТОП3.2.
Подтверждение.Подтверждение при передаче данных обязательно. Соответствующий испульссинхронизации генерируется ведущим. Передатчик отпускает (ВЫСОКОЕ) линию SDA втечение синхроимпульса подтверждения. Приёмник должен удерживать линию SDA втечение ВЫСОКОГО состояния синхроимпульса подтверждения в стабильно НИЗКОМсостоянии (Рисунок 6). Конечно, время установки и удержания также должны быть принятыво внимание (см. Раздел 13.0 Электрические и временные параметры).Обычно, приёмник, который был адресован, обязан генерировать подтверждениепосле каждого принятого байта, исключая те случаи, когда посылка начинается с адресаCBUS (см. Раздел 6.1.3).В том случае, когда ведомый-приёмник не может подтвердить свой адрес(например, когда он выполняет в данный момент какие-либо функции реальноговремени), линия данных должна быть оставлена в ВЫСОКОМ состоянии.
После этоговедущий может выдать сигнал СТОП для прерывания пересылки данных.Если ведомый-приёмник подтвердил свой адрес, но через некоторое время большене может принимать данные, ведущий также должен прервать пересылку. Для этоговедомый не подтверждает следующий байт, оставляет линию данных в ВЫСОКОМсостоянии и ведущий генерирует сигнал СТОП.Если в пересылке участвует ведущий-приёмник, то он должен сообщить обокончании передачи ведомому-передатчику путем не подтверждения последнего байта.Ведомый-передатчик должен освободить линию данных для того, чтобы позволитьведущему выдать сигнал СТОП или повторить сигнал СТАРТ.Рисунок 6. Подтверждение.1.2.3.4.5.Данные, переданные передатчикомДанные, переданные приёмникомSCL от ведущегоСигнал СТАРТСинхроимпульс подтверждения4. Синхронизация.При передаче посылок по шине I2C каждый ведущий генерирует свойсинхросигнал на линии SCL.
Данные действительны только во время ВЫСОКОГОсостояния синхроимпульса.Синхронизация выполняется с использованием подключения к линии SCL поправилу монтажного И. Это означает, что вследствие перехода линии SCL изВЫСОКОГО состояния в НИЗКОЕ, вызванного переходом синхросигнала одного изустройств в НИЗКОЕ состояние, произойдет также переход синхросигнала другогоустройства в НИЗКОЕ состояние.Это состояние линии SCL удерживается до тех пор, пока не будет достигнутоВЫСОКОЕ состояние внутреннего синхросигнала одного из устройств (Рисунок 7). Однако,переход из НИЗКОГО состояния в ВЫСОКОЕ синхросигнала может не вызватьаналогичный переход на линии SCL, если синхросигнал другого устройства все ещенаходится в НИЗКОМ состоянии.