Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Логика контроля состояния шины TWI
После разрешения работы TWI в качестве ведущего устройства, логика контроля состояния шины непрерывно следит за активностью на линиях шины. Она остается в работе во всех экономичных режимах МК, в т.ч. режим POWER DOWN. Логика контроля состояния шины состоит из схемы обнаружения условий START и STOP, схемы обнаружения коллизий, таймера для измерения интервалов времени бездействия шины и счетчика бит. Все эти узлы используются для определения состояния шины. Программа может оценить состояние шины путем опроса бит статуса шины в регистре статуса ведущего устройства. Как показано на рисунке 19.11, шина может находиться в следующих состояниях: UNKNOWN (неопределенное). IDLE (незанятое), BUSY (занятое внешним устройством) и OWNER (занятое владельцем). На рисунке также представлены соответствующие состояниям шины значения бит статуса шины. После системного сброса, состояние шины является неопределенным (UNKNOWN). Из этого состояния автомат состояний может перейти в состояние IDLE с одновременной соответствующей записью в биты состояния шины. Данное состояние также вводится, если иного состояния не было введено программой и обнаружено условие STOP. Дополнительно, переход в состояние IDLE происходит по истечении выдержки времени таймера, контролирующего интервалы бездействия шины (только при условии разрешения его работы). После перехода в любое известное состояние обратный переход в состояние UNKNOWN из любого другого состояния не предусмотрен. Состояние UNKNOWN вводится только системным сбросом или отключением ведущего модуля TWI. Нахождение шины в состоянии IDLE указывает на её готовность к новой транзакции. При обнаружении внешне сгенерированного условия START, шина переходит в занятое состояние (BUSY) вплоть до появления на шине следующего условия STOP. Условие STOP вновь переведет шину в состояние IDLE. Переход в это состояние также произойдет по истечении выдержки времени таймера контроля интервалов бездействия шины, но только при условии разрешения его работы. Если же из состояния IDLE условие START вводит модуль TWI, то осуществляется переход в состояние OWNER. В случае нормального выполнения транзакции, т.е. без обнаружения коллизий, ведущее устройство генерирует условие STOP и шина возвращается в состояние IDLE. В случае же обнаружения коллизии и проигрыша арбитража, шина переходит в состояние BUSY вплоть до обнаружения условия STOP. Условие REPEATED START способно изменить состояние шины только при проигрыше арбитража во время генерации этого условия.
Работа ведущего модуля TWI Ведущий модуль TWI предназначен для побайтной передачи данных и может генерировать прерывание после передачи/приема каждого байта. Предусмотрены отдельные прерывания для транзакций записи ведущим устройством и чтения ведущим устройством. При необходимости управления модулем путем опроса его состояния, могут использоваться флаги прерываний. Для сигнализации о приеме бита ACK/NACK, обнаружении ошибки, проигрыше арбитража, задержки синхронизации и состоянии шины предусмотрены отдельные биты статуса. После установки флага прерывания, линия SCL удерживается в низком состоянии. Данная задержка необходима ведущему устройству для реагирования на прерывание или обработку данных, что в большинстве случаев требует участия программы. Работу ведущего модуля TWI иллюстрирует рисунок 19.12. Ромбовидный значок с надписью SW указывает на участки, где требуется взаимодействие с программой. Освобождение линии SCL произойдет только после сброса флагов прерываний. За счет автоматического выполнения многих операций количество генерируемых прерываний поддерживается на минимальном уровне. Для автоматического запуска операций и снижения сложности программы могут быть разрешены команда QUICK и режим SMART. Передача пакета адреса После ввода условия START, ведущее устройство начнет транзакцию шины сразу после записи в регистр адреса ведущего устройства адреса подчиненного устройства и бита направления. Если шина находится в состоянии BUSY, то ведущий модуль TWI будет ожидать перехода шины в состояние IDLE. При обнаружении этого состояния ведущее устройство генерирует условие START, а затем передает байт адреса. В зависимости от результата арбитража и состояния бита направления R/W дальнейшая передача (по завершении передачи пакета адреса) может осуществляться по 4 сценариям. Все эти сценарии должны быть реализованы программно.
|
|||||
Последнее изменение этой страницы: 2016-12-30; просмотров: 220; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.131.72 (0.005 с.) |