Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа подчиненного модуля TWI
Подчиненный модуль TWI предназначен для побайтной передачи данных и поддерживает возможность генерации прерываний после передачи/приема каждого байта. Предусмотрены отдельное прерывание по данным и отдельное прерывание по адресу/условию STOP. Флаги прерывания могут использоваться для опроса состояния модуля. Предусмотрены отдельные флаги статуса для сигнализации приема бита ACK/NACK, задержки синхронизации, коллизии, ошибки шины и направления 'чтение/запись'. Если флаг прерывания установлен, линия SCL удерживается в низком состоянии. Благодаря этому, подчиненное устройство получает время на реагирование или обработку данных, что в большинстве случаев требует взаимодействия с программой. Работу подчиненного модуля TWI демонстрирует рисунок 19.13. Ромбовидным значком с надписью SW отмечены места, где требуется взаимодействие с программой. Количество генерируемых прерываний поддерживается на минимуме за счет автоматической обработки большинства условий. При необходимости автоматического запуска операций и снижения сложности программы может быть разрешена команда QUICK. Облегчить реализацию подчиненного устройства, которое должно реагировать на любой принятый адрес, поможет режим PROMISCUOUS. Прием пакета адреса После надлежащей конфигурации подчиненного модуля TWI он переходит к ожиданию появления на шине условия START. Если это происходит, начинается последовательный прием байта адреса, затем он поступает в логику сравнения адреса и, если она обнаруживает совпадение, отправляется бит ACK. Если совпадение адреса не обнаружено, прием адреса не подтверждается, а подчиненное устройство возвращается к ожиданию нового условия START. Флаг прерывания по адресу/условию STOP устанавливается, когда вслед за условием START был обнаружен действительный пакет адреса. Этот флаг прерывания также устанавливается при обнаружении адреса общего вызова. Условие START, которое передано сразу за условием STOP, является недопустимым и, в таком случае, устанавливается флаг ошибки шины. Состояние флага направления R/W отражает состояние принятого в пакете адреса бита направления передачи. Для определения типа транзакции предусмотрена возможность программного опроса этого флага.
В зависимости от состояния бита направления (R/W) и состояния шины дальнейшая работа шины после приема пакета адреса может выполняться по 4 сценариям. Все эти сценарии необходимо реализовать программно. Сценарий 1: принят пакета адреса с равным единице битом направления Если флаг направления R/W равен единице, это указывает на транзакцию типа "чтение ведущим устройством". Линия SCL удерживается в низком состоянии для задержки синхронизации шины. Если подчиненное устройство отправило бит ACK, его схема установит флаг прерывания по данным, сигнализируя о необходимости передачи данных. Если же подчиненное устройство отправит бит NACK, оно перейдет к ожиданию нового условия START и совпадения адреса. Сценарий 2: принят пакет адреса с равным нулю битом направления Если флаг направления R/W равен нулю, это указывает на транзакцию типа "запись ведущим устройством". Линия SCL удерживается в низком состоянии, задерживая синхронизацию шины. Если подчиненное устройство отправило бит ACK, оно переходит к ожиданию приема данных. После этого, возможен прием данных, а также условий REPEATED START или STOP. Если же подчиненное устройство отправит NACK, оно перейдет к ожиданию нового условия START и совпадения адреса. Сценарий 3: коллизия Если подчиненное устройство не может отправить высокий уровень или бит NACK, устанавливается флаг коллизии и выход данных и подтверждения отключается от блока логики подчиненного устройства. Удержание линии синхронизации отменяется. В дальнейшем возможен прием условия START или REPEATED START.
|
|||||
Последнее изменение этой страницы: 2016-12-30; просмотров: 236; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.196.248.93 (0.004 с.) |