Раздел: Документация
0 ... 148 149 150 151 152 153 154 ... 195 11.5.5. Комбинирование различных режимов На практике, для выполнения какой-либо операции по шине TWI каждому устройству приходится использовать несколько режимов, переключаясь между ними при необходимости. В качестве примера рассмотрим операцию чтения данных из внешнего EEPROM. Все операции такого рода можно разбить на четыре этапа: 1.Инициирование обмена. 2.Передача адреса, по которому требуется прочитать данные. 3.Выполнение чтения. 4.Завершение передачи. Из сказанного видно, что при выполнении операции происходит передача информации как от ведущего к ведомому, так и наоборот. После инициирования обмена по шине ведущий должен находиться в режиме «Ведущий-передатчик», чтобы сообщить ведомому адрес, по которому он намеревается осуществить чтение. Для выполнения следующего этапа операции (чтение данных) ведущий должен переключиться в режим «Ведущий-приемник». При этом он должен сохранять контроль над шиной во время выполнения всех этапов операции. Для этого используется состояние ПОВСТАРТ. В рассматриваемом случае ведущий формирует это состояние между передачей адреса и приемом данных, как показано на Рис 11.20. Ведущий-передатчикВедущий-приемник И SLA+W Адрес A RS SLA+R Данные s = стартrs = повстартр - стоп j Передача от ведущего к ведомому j Передача от ведомого к ведущему Рис. 11.20. Пример обращения к внешнему EEPROM 11.5.6. Арбитраж В случае присутствия на шине нескольких ведущих возможна ситуация, при которой несколько ведущих одновременно начнут процесс обмена. Для таких случаев спецификацией TWI предусмотрен процесс распределения приоритетов (арбитраж), в результате выполнения которого на шине остается только одно ведущее устройство. Принципы этого процесса были рассмотрены в разделе 2.2, однако его выполнение может развиваться по различным сценариям (Рис. 11.21): 1. Два или более ведущих осуществляют однотипный обмен с одним и тем же ведомым. В этом случае никто из них не сможет распознать конфликт на шине. 2.Два или более ведущих обращаются к одному и тому же ведомому с различными данными или различными типами обмена (чтение/запись). В этом случае распределение приоритетов произойдет во время передачи битов данных или бита направления. Ведущий, потерявший приоритет, может либо переключиться в режим неадресованного ведомого, либо дождаться освобождения шины и сформировать состояние СТАРТ для ее захвата. 3.Два или более ведущих обращаются к различным ведомым. В этом случае распределение приоритетов начнется во время передачи битов адресного пакета. Ведущий, потерявший приоритет, переключится в режим ведомого для проверки, не был ли он адресован ведущим. Если бывший ведущий был адресован, он переключится в режим «Ведомый-передатчик» или «Ведомый-приемник», в зависимости от значения бита направления. Если же он не был адресован, он переключится в режим неадресованного ведомого либо дождется освобождения шины и сформирует новое состояние СТАРТ.
Потеря приоритета при передаче адресного пакета Потеря приоритета при передаче пакета данных Освобождает шину и переходит в режим неадресованного ведущего Когда шина освободится, будет сформировано состояние СТАРТ Будет принят байт данных и возвращено неподтверждение (NACK) Будет принят байт данных и возвращено подтверждение (АСК) Будет передан последний байт, должно быть получено неподтверждение (NACK) Будет передан очередной байт, должно быть получено подтверждение (АСК) Рис. 11.21. Состояния модуля TWI во время арбитража 11.6. Параметры интерфейса TWI Требования, предъявляемые к устройствам, которые подключаются к шине TWI, приведены в Табл. 11.12. Разумеется, модуль TWI микроконтроллеров семейства Mega полностью им удовлетворяет. Временные диаграммы сигналов, формируемых на шине TWI, приведены на Рис. 11.22. Таблица 11.12. Требования шины TWI
0 ... 148 149 150 151 152 153 154 ... 195
|