Описание интерфейса I2C (1031655), страница 2
Текст из файла (страница 2)
Таким образом, линия SCL будет находиться вНИЗКОМ состоянии на протяжении самого длинного НИЗКОГО периода из двухсинхросигналов. Устройства с более коротким НИЗКИМ периодом будут входить всостояние ожидания на время, пока не кончится длинный период.Когда у всех задействованных устройств кончится НИЗКИЙ периодсинхросигнала, линия SCL перейдет в ВЫСОКОЕ состояние. Все устройства начнутпроходить ВЫСОКИЙ период своих синхросигналов. Первое устройство, у которогокончится этот период, снова установит линию SCL в НИЗКОЕ состояние.Таким образом, НИЗКИЙ период синхролинии SCL определяется наидлиннейшимпериодом синхронизации из всех задействованных устройств, а ВЫСОКИЙ периодопределяется самым коротким периодом синхронизации устройств.Рисунок 7.
Синхронизация во время арбитража.1.Состояние ожидания. 2. Начало отсчета ВЫСОКОГО периода синхроимпульса4.1. Арбитраж.Ведущий может начинать пересылку данных только если шина свободна. Два иболее ведущих могут сгенерировать сигнал СТАРТ за время минимального удерживания(Thd;sta), что ведет к определенному сигналу СТАРТ на шине.Арбитраж происходит на шине SDA, в периоды, когда шина SCL находится вВЫСОКОМ состоянии. Если один ведущий передает на линию данных НИЗКИЙ уровень,в то время как другой - ВЫСОКИЙ, то последний отключается от линии, так каксостояние SDL (НИЗКОЕ) не соответствует ВЫСОКОМУ состоянию его внутреннейлинии данных.Арбитраж может продолжаться на протяжении нескольких бит. Так как сначалапередается адрес, а потом данные, то арбитраж может продолжаться до окончания адреса,а если ведущие адресуют одно и то же устройство, то в арбитраже будут участвовать иданные. Вследствие такой схемы арбитража при столкновении данные не теряются.Ведущему, проигравшему арбитраж, разрешается выдавать синхроимпульсы нашину SCL до конца байта, в течение которого был потерян доступ.Если в устройство ведущего также встроены и функции ведомого и он проигрываетарбитраж на стадии передачи адреса, то он немедленно должен переключиться в режимведомого, так как выигравший арбитраж ведущий мог адресовать его.Рисунок 8 показывает процедуру арбитража двух ведущих.
Конечно, большееколичество ведущих может быть вовлечено в процесс. В момент, когда обнаруживаетсяразличие между уровнем внутренней линии данных и SDA, выход первого ведущегопринимает ВЫСОКОЕ значение, не влияя таким образом на пересылку данныхвыигравшего ведущего.Вследствие того, что арбитраж зависит только от адреса и данных, передаваемыхсоревнующимися ведущими, не существует центрального ведущего, а такжеприоритетного доступа к шине.Особое внимание следует обратить на ситуацию, когда во время арбитражнойпроцедуры на шину передается повторный сигнал СТАРТ или сигнал СТОП. Еслисуществует возможность возникновения такой ситуации, то ведущие должны послатьповторный сигнал СТАРТ или сигнал СТОП в одних и тех же позициях кадра. Другимисловами, арбитраж запрещен между:− повторным сигналом СТАРТ и битом данных− сигналом СТОП и битом данных− повторным сигналом СТАРТ и сигналом СТОПРисунок 8.
Арбитраж между двумя ведущими.* передатчик 1 проигрывает арбитраж - его линия данных не совпадает с SDA.4.2. Использование механизма синхронизации как процедуры управлениясвязью.Кроме использования в процедуре арбитража, механизм синхронизации можетбыть использован приемниками как средство управления пересылкой данных на байтовоми битовом уровнях.На уровне байта, если устройство может принимать байты данных с большойскоростью, но требует определенное время для сохранения принятого байта илиподготовки к приему следующего, то оно может удерживать линию SCL в НИЗКОМсостоянии после приема и подтверждения байта, переводя таким образом передатчик всостояние ожидания.На уровне битов, устройство, такое как микроконтроллер без встроенныхаппаратных цепей I2C или с ограниченными цепями, может замедлить частотусинхроимпульсов путем продления их НИЗКОГО периода.
Таким образом скоростьпередачи любого ведущего адаптируется к скорости медленного устройства.5. Форматы с 7-битным адресом.Посылки данных происходят в формате, показанном на Рис. 9.Рисунок 9. Посылка данных.1.2.3.4.5.6.Сигнал СТАРТАдресБит направления (R/W)ПодтверждениеДанныеСигнал СТОППосле сигнала СТАРТ посылается адрес ведомого. После 7 бит адреса следует битнаправления данных (R/W), "ноль" означает передачу (запись), а "единица" - прием(чтение). Пересылка данных всегда заканчивается сигналом СТОП, генерируемымведущим. Однако, если ведущий желает оставаться на шине дальше, он должен выдатьповторный сигнал СТАРТ и затем адрес следующего устройства.
При таком форматепосылки возможны различные комбинации чтения/записи.Возможные форматы:− Ведущий-передатчик передает ведомому-приёмнику. Направление пересылкиданных не изменяется (см. Рисунок 10).− Ведущий читает ведомого немедленно после пересылки первого байта (см.Рисунок 11). В момент первого подтверждения ведущий-передатчик становитсяведущим-приёмником и ведомый-приёмник становится ведомым-передатчиком.− Подтверждение тем не менее генерируется ведомым. Сигнал СТОП генерируетсяведущим− Комбинированный формат (см. Рисунок 12).
При изменении направления пересылкиданных повторяется сигнал СТАРТ и адрес ведомого, но бит направления данныхинвертируется. Если ведущий-приёмник посылает повторный сигнал СТАРТ, онобязан предварительно послать сигнал неподтверждения.Рисунок 10.1.2.3.4.5.6.7.8.9.10.От ведущего к ведомомуОт ведомого к ведущемуАдрес ведомогоБит направленияДанныеПересылаемые данные (n байт + подтверждение)А - ПодтверждениеНеподтверждениеСигнал СТАРТСигнал СТОПРисунок 11.Рисунок 12.1.2.3.4.5.6.Адрес ведомогоЧтение или записьn байтов + подтвержденияСигнал повторного СТАРТАНаправление пересылки может измениться в этой точкеНаправление пересылки данных и битов подтверждения зависит от битов направленияПРИМЕЧАНИЯ:− Комбинированные форматы могут быть использованы, например, для управленияпоследовательной памятью.
Во время первого байта данных можно передавать адрес впамяти, который записывается во внутреннюю защелку. После повторения сигнала СТАРТаи адреса ведомого выдаются данные из памяти.− Все решения об авто-инкременте или декременте адреса, к которому произошелпредыдущий доступ, принимаются конструктором устройства− Каждый байт завершается битом подтверждения, обозначенным А или А^ на рисунках− I2C-совместимые устройства должны сбрасывать логику шины при получении сигналаСТАРТ или повторный СТАРТ и подготавливаться к приему адреса.6.7-битная адресация.Процедура адресации на шине I2C заключается в том, что первый байт послесигнала СТАРТ определяет, какой ведомый выбирается ведущим для работы.
Исключениесоставляет адрес "Общего вызова", который адресует все устройства на шине. Когдаиспользуется этот адрес, все устройства в теории должны послать сигнал подтверждения.Однако, устройства могут быть сделаны игнорирующими этот адрес. Второй байтпосылки общего вызова определяет действие, которое должны произвести устройства.Более подробно процедура описана в следующем разделе.6.1. Назначение битов первого байта.Первые семь битов первого байта образуют адрес ведомого (см. Рисунок 13).Восьмой, младший бит, определяет направление пересылки данных.
"Ноль" означает, чтоведущий будет записывать информацию в выбранного ведомого. "Единица" означает, чтоведущий будет считывать информацию из ведомого.Рисунок 13. Первый байт после сигнала СТАРТ.1. Старший разряд2. Младший разряд3. Адрес ведомогоПосле того, как адрес послан, каждое устройство в системе сравнивает первые семьбит после сигнала СТАРТ со своим адресом.
При совпадении устройство полагает себявыбранным как ведомый-приёмник или как ведомый-передатчик, в зависимости от битанаправления. Адрес ведомого может состоять из фиксированной и программируемойчастей. Вероятно, что в системе будет несколько таких одинаковых устройств, поэтомупри помощи программируемой части адреса становится возможным подключить к шинемаксимально возможное количество таких устройств.
Количество программируемых бит вадресе зависит от количества свободных выводов микросхемы. Например, еслиустройство имеет 4 фиксированных и 3 программируемых адресных битов, всего 8одинаковых устройств может быть подключено к шине.Комитет I2C координирует выделение I2C адресов. Две группы по восемь адресов(0000ХХХ и 1111ХХХ) зарезервированы для целей, указанных в таблице 2. Комбинациябит 11110ХХ адреса зарезервирована для 10-битной адресации (см. Раздел 11.0).Таблица 2.
Зарезервированные адреса.АдресR/W битОписание00000000Адрес общего вызова00000001Байт СТАРТА0000001ХАдрес CBUS0000010ХАдрес, зарезервированный для шин другого формата0000011ХЗарезервирован для дальнейшего использования00001ХХХЗарезервирован для дальнейшего использования11111ХХХЗарезервирован для дальнейшего использования11110ХХХ10-битная адресацияПРИМЕЧАНИЯ:− Устройствам запрещается подтверждать прием байта СТАРТА− Адрес CBUS зарезервирован для того, чтобы можно было использовать CBUS-совместимыеи I2C-совместимые устройства в одной системе.
I2C-совместимым устройствам запрещаетсяреагировать на прием этого адреса.− Адрес, зарезервированный для шин другого формата, также предназначен для смешанногоиспользования различных протоколов. Отвечать на прием этого адреса могут толькоустройства, умеющие работать с другим форматом.6.1.1. Адрес общего вызова.Адрес общего вызова адресует все устройства на шине. Однако, если устройству ненужны какие-либо данные, которые могут быть переданы по общему вызову, оно можетигнорировать обращение путем не выдачи подтверждения.















