Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Синхронизация и арбитраж в I2C




3.1. Синхронизация.

Все ведущие устройства, передавая данные по шине I2C, генерируют собственные синхроимпульсы на выводе SCL. Данные истинны и воспринимаются только течение полупериода синхросигнала, имеющего высокий уровень (HIGH). Поэтому для выполнения побитовой процедуры арбитража необходим определенный синхросигнал.

Синхронизация синхроимпульсов выполняется благодаря схеме подключения “монтажное И”, используемой для вывода SCL интерфейсов I2C. Это означает, что состояния HIGH и LOW на линии SCL вызываются соответствующими устройствами, запускающими отсчет своих полупериодов LOW, как только устройство переводит свой синхросигнал в состояние LOW, оно захватывает линию SCL и удерживает ее в этом состоянии, пока его синхросигнал не переходит в состояние HIGH (см. рис. 5.6). Однако синхросигнал не может изменить состояние линии SCL LOW на HIGH, если другие синхросигналы все еще находятся в полупериоде LOW своего выходного сигнала. Поэтому линия SCL будет находится в состоянии LOW до тех пор, пока его удерживает в этом состоянии устройством с самым длинным полупериодом LOW. Устройства с более короткими полупериодами LOW за это перейдут в состояние HIGH и будут ожидать завершения этого полупериода.

Когда все ведущие устройства завершают свои полупериоды LOW, линия синхронизации освобождается и переходит в состояние HIGH. Теперь состояние всех выходных сигналов синхроимпульсов совпадает с состоянием линии SCL, все устройства запускают отсчет длительности полупериода HIGH. Первое устройство, завершая свой полупериод синхронизации HIGH, снова переводит линию SCL в состояние LOW.

 

Рис. 5.6. Синхронизация синхроимпульсов

в процессе выполнения арбитража

 

Таким образом синхронизированный синхросигнал SCL генерируется с длительностью полупериода LOW, определяемой устройством с самым длинным полупериодом LOW своего синхросигнала, и длительностью полупериода HIGH, определяемой устройством с самым коротким полупериодом HIGH своего синхросигнала.

3.2. Арбитраж.

Ведущее устройство может начать передачу только в случае, если шина свободна. При этом два или более ведущих устройств могут сгенерировать условие START в пределах минимального времени захвата (tHD;STA) условия START, что приводит к возникновению условия START в шине.

Арбитраж выполняется по состоянию линии SDA в то время, когда линия SCL находится в состоянии HIGH, следующим образом: если первое ведущее устройство передает данные уровня HIGH, а второе - данные уровня LOW, сигнал данных (DATA) первого устройства будет потерян, так как уровень в шине будет иметь другое значение. Устройство должно уступить шину.

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

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

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

Рис. 5.7 показывает процедуру арбитража между двумя ведущими устройствами. Конечно, в действительности их может быть больше (в зависимости от того, сколько ведущих устройств подключено к шине). В момент, когда обнаруживается различие между внутренним уровнем данных, передаваемых ведущим устройством, генерирующим данные DATA 1, и фактическим уровнем в линии SDA, вывод данных, для которого обнаружено данное различие, немедленно отключается, переходя в состояние HIGH. Это состояние не будет влиять на передачу данных, инициализированную ведущим устройством, получившим арбитраж.

 

Рис. 5.7. Процедура арбитража двух ведущих устройств

 

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

Особое внимание необходимо обратить на ситуацию, когда в процессе последовательной передачи, процедура арбитража еще не была завершена, а какое-либо из устройств повторно генерирует в шину I2C условие START или генерирует условие STOP. Если это происходит, остальные выполняющие обмен данными в данный момент ведущие устройства должны повторить обнаруженное условие - условие START или условие STOP в той же позиции передаваемого кадра данных. Другими словами, арбитраж недопустим между следующими сигналами:

· повтор условия START и бит данных;

· условие STOP и бит данных;

· повтор условия START и условие STOP.

3.3. Согласование скоростей приема и передачи (рукопожатие).

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

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

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




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 1360; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.