Студопедия — Режимы работы модуля TWI
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Режимы работы модуля TWI






Модуль TWI, может работать в следующих режимах:

• ведущий передатчик (Master Transmitter);

• ведущий приемник (Master Receiver);

• ведомый передатчик (Slave Transmitter);

• ведомый приемник (Slave Receiver).

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

Режим «Ведущий передатчик»

В режиме «Ведущий передатчик» (Master Transmitter) осуществляется передача данных от ведущего устройства к ведомому. Для переключения устройства в режим ведущего модуль TWI должен сформировать на шине состояние СТАРТ. Формат адресного пакета, передаваемого затем, определяет в каком из режимов будет работать ведущий. При передаче пакета SLA+W модуль переходит в режим « Ведущий передатчик», а при передаче пакета SLA+R — в режим «Ведущий приемник».

Формирование состояния СТАРТ начнется после записи в регистр TWCR следующего значения:

В результате записи указанного значения модуль TWI начнет контролировать состояние шины и сформирует состояние СТАРТ сразу же, как только она станет свободной. По окончании формирования состояния СТАРТ устанавливается флаг TWINT; код статуса должен при этом иметь значение, равное $08 (см. Табл.10.6). Для переключения модуля в режим «Ведущий передатчик» необходимо передать по шине пакет SLA+W. Для этого содержимое пакета загружается в регистр TWDR, а в регистр TWCR заносится следующее значение:

 

 

После передачи адресного пакета и приема бита подтверждения флаг TWINT снова устанавливается в «1». Код статуса на этом этапе может иметь одно из следующих значений: $18, $20 или $38. Какие действия необходимо предпринять при обнаружении того или иного кода, подробно рассмотрено в Табл. 10.7

После передачи адресного пакета должны быть переданы пакеты данных. Значение байта данных загружается в регистр TWDR. Передача пакета данных начинается после записи в регистр TWCR следующего значения:

 

Описанная процедура используется для передачи всех пакетов данных. После передачи последнего байта данных, ведущий должен сформировать на шине состояние СТОП или ПОВСТАРТ. Формирование состояния СТОП начнется после записи в регистр TWCR следующего значения:

 

А для формирования состояния ПОВСТАРТ в регистр TWCR необходимо занести следующее значение:

 

$<$<

 

После формирования на шине состояния ПОВСТАРТ (код статуса $10) ведущий может адресовать того же или другого ведомого не формируя состояния СТОП. Другими словами, использование состояния ПОВСТАРТ позволяет осуществлять смену ведомых устройств, а также переключаться между режимами «Ведущий передатчик» и «Ведущий приемник» без утери контроля над шиной._

 

Таблица10.7 Коды статуса для режима «Ведущий передатчик»

 

Продолжение таблицы 10.7

Рис.10.14 Состояния модуля TWI в режиме «Ведущий передатчик»

 

Режим «Ведущий приемник»

В режиме «Ведущий приемник» ведущий осуществляет прием данных от ведомого устройства. Как обычно, для переключения устройства в режим ведущего модуль TWI должен сформировать на шине состояние СТАРТ. Формат адресного пакета, передаваемого следом, определяет, в каком из режимов будет работать ведущий. При передаче пакета SLA+W модуль переходит в режим « Ведущий передатчик», а при передаче пакета SLA+R переходит в режим «Ведущий приемник».

Формирование состояния СТАРТ начинается после записи в регистр TWCR сле- дующего значения:

$<_IL_21 5

_вклВ результате записи указанного значения модуль TWI начнет контролировать состояние шины и сформирует состояние СТАРТ сразу же, как только она станет свободной.

По окончании формирования состояния СТАРТ устанавливается флаг TWINT; код статуса должен при этом иметь значение, равное $08 (Табл.10.8). Для переключения модуля в режим «Ведущий приемник» необходимо передать по шине пакет SLA+R. Для этого содержимое пакета загружается в регистр TWDR, а в регистр TWCR заносится следующее значение:

 

После передачи адресного пакета и приема бита подтверждения флаг TWINT снова устанавливается в «1». Полученный от ведомого байт данных находится при этом в регистре TWDR. Код статуса на этом этапе может иметь одно из следующих значений: $38, $40 или $48. Какие действия необходимо предпринять при обнаружении того или иного кода подробно рассмотрено в Табл. 10.8

Описанная процедура используется для передачи всех пакетов данных. После приема последнего байта данных ведущий должен проинформировать об этом ведомого передатчика, послав сигнал неподтверждения (NACK). Затем ведущий должен сформировать на шине состояние СТОП или ПОВСТАРТ. Формирование состояния СТОП начнется после записи в регистр TWCR следующего значения:

 

Для формирования состояния ПОВСТАРТ в регистр TWCR необходимо занести следующее значение:

 

$<_IL_218_

 

 

Рис.10.15 Состояния модуля TWI в режиме «Ведущий приемник»

Как уже было сказано, после формирования на шине состояния ПОВСТАРТ (код статуса $10) ведущий может адресовать того же или другого ведомого, не формируя состояния СТОП. Другими словами, использование состояния ПОВСТАРТ позволяет осуществлять смену ведомых устройств, а также переключаться между режимами «Ведущий передатчик» и «Ведущий приемник» без утери контроля над шиной.

 

Таблица 10.8. Коды статуса для режима «Ведущий приемник»

 

Режим «Ведомый приемник»

В режиме «Ведомый приемник» ведомое устройство осуществляет прием данных от ведущего. Перед тем как переключить модуль в режим «Ведомый приемник», следует занести в старшие разряды регистра TWAR адрес устройства и в соответствии с логикой работы программы установить или сбросить младший разряд регистра (TWGCE). Затем необходимо записать в регистр TWCR следующее значение:

 

После инициализации регистров TWAR и TWCR модуль будет ожидать адресного пакета с адресом, указанным в регистре TWAR, или общего вызова (если его распознавание разрешено). Значение следующего за адресом бита направления определит режим, в который переключится модуль. Если этот бит будет сброшен в «0» (запись), модуль TWI переключится в режим «Ведомый приемник». В противном случае модуль переключится в режим «Ведомый передат- чик». Напоминаем еще раз, что устройство также может самостоятельно переключиться в режим «Ведомый приемник» из режима ведущего при потере приоритета (см. описание кодов статуса $68 и $78 в Табл.10.9).

После приема пакета SLA+W установится флаг TWINT и состояние обмена по шине можно будет, как обычно, определить по коду статуса. Возможные действия со стороны программы, соответствующие тому или иному коду статуса, указаны в Табл.10.9.

Чтобы прервать поток данных, следует сбросить в «0» разряд TWEA регистра TWCR (это можно сделать и во время обмена, т. е. при сброшенном флаге TWINT). В результате после передачи следующего байта на линию SDA будет выдан сигнал неподтверждения, сигнализирующий ведущему о том, что ведомый не может больше осуществлять прием данных. Обработка адресных пакетов при сброшенном разряде TWEA прекращается, но может быть возобновлена в любой момент времени повторной установкой этого разряда.

Если адресация устройства произойдет при нахождении микроконтроллера в «спящем» режиме и разряд TWEA будет при этом установлен, модуль TWI переведет микроконтроллер в рабочий режим.

 

 

Таблица 10.9. Коды статуса для режима «Ведомый приемник»

 

 

Продолжение таблицы 10.9

Продолжение таблицы 10.9

Рис.10.16. Состояния модуля TWI в режиме «Ведомый приемник»

Режим «Ведомый передатчик»

В режиме «Ведомый передатчик» ведомое устройство осуществляет передачу данных веду щему, который в этом случае является приемником. Перед тем как переключить модуль в этот режим, следует занести в старшие разряды регистра TWAR адрес устройства и в соответствии с логикой работы программы установить или сбросить младший разряд регистра (TWGCE).

Затем необходимо записать в регистр TWCR следующее значение:

После инициализации регистров TWAR и TWCR модуль будет ожидать адресного пакета с адре- сом, указанным в регистре TWAR, или общего вызова (если его распознавание разрешено). Значение следующего за адресом бита направления определит режим, в который переклю- чится модуль. Если этот бит будет установлен в «1» (чтение), модуль TWI переключится в режим «Ведомый передатчик». В противном случае модуль переключится в режим «Ведомый приемник». Следует помнить, что устройство также может автоматически переключиться в режим «Ведомый приемник» из режима ведущего при потере приоритета (см. описание кода статуса $B0 в Табл. 10.10

После приема пакета SLA+R установится флаг TWINT, и состояние обмена можно будет, как обычно, определить по коду статуса. Возможные действия со стороны программы, соответ- ствующие тому или иному коду стату са, указаны в Табл. 10.10.

Таблица 10.10 Коды статуса для режима «Ведомый-передатчик»

 

Продолжение таблицы 10.10

При передаче последнего байта данных необходимо сбросить в «0» разряд TWEA. После этого модуль перейдет в состояние с кодом статуса $C0 или $C8 в зависимости от того, какой сигнал (ACK или NACK) передаст ведущий в ответ. В состояние с кодом статуса $C8 модуль TWI перейдет в случае, если ведущий затребовал дополнительные данные, передав подтверждение (ACK), несмотря на то что ведомый передатчик передал последний байт и ожидал сигнала NACK.

 

Рис. 10.17 Состояния модуля TWI в режиме «Ведомый передатчик»

 

После перехода в любое из указанных состояний модуль TWI будет игнорировать обращения к нему ведущего. Соответственно, если ведущий будет продолжать обмен по шине, он будет постоянно принимать значение «1». Обработка адресных пакетов при сброшенном разряде TWEA также прекращается, но может быть возобновлена в любой момент времени повторной установкой этого разряда.

 







Дата добавления: 2015-12-04; просмотров: 199. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Постинъекционные осложнения, оказать необходимую помощь пациенту I.ОСЛОЖНЕНИЕ: Инфильтрат (уплотнение). II.ПРИЗНАКИ ОСЛОЖНЕНИЯ: Уплотнение...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия