8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 137 138 139 140 141 142 143 ... 195

При последующем рассмотрении модуля TWI будут часто встречаться некоторые термины. Их описание приведено в Табл. 11.1.

Таблица 11.1. Термины, используемые при описании модуля TWI

Термин

Описание

Ведущий (Master)

Устройство, инициирующее и завершающее передачу данных по шине, а также генерирующее тактовый сигнал SCL

Ведомый (Slave)

Устройство, адресуемое ведущим

Передатчик (Transmitter)

Устройство, выдающее данные на шину

Приемник (Reciever)

Устройство, считывающее данные с шины

11.2. Принципы обмена данными по шине TWI

Поскольку шина TW1 является последовательной, все данные передаются по ней (по линии SDA) побитно. Каждый передаваемый бит сопровождается импульсом на линии тактового сигнала SCL. Причем сигнал на линии SDA должен быть стабильным в течение всего времени, пока на шине SCL присутствует сигнал лог. 1 (см. Рис. 11.2). Единственным исключением из этого правила являются два особых состояния шины TWI — СТАРТ и СТОП.

SDA

SCL

Стабильное состояние линии SOA

!

\

Состояние линии SDA изменяется

Рис. 11.2. Корректная выдача данных на шину SDA

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

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


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

Состояния СТАРТ и СТОП формируются путем изменения уровня сигнала на линии SDA при ВЫСОКОМ уровне на линии SCL. Состоянию СТАРТ соответствует смена уровня с 1 на 0, а состоянию СТОП — наоборот, с 0 на 1 (Рис. 11.3).

SDA

SCL

СТАРТСТОП СТАРТПОВСТАРТ

Рис. 11.3. Состояния СТАРТ, СТОП и ПОВСТАРТ

стоп

Заметим, что протокол интерфейса TWI позволяет подключать к шине несколько ведущих устройств (режим Multi-Master). При этом могут возникать различные проблемы, одной из которых является несовпадение частот тактовых сигналов, генерируемых разными ведущими.

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

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


SCLot ведущего А

SCLot ведущего В

Сигнал на линии SCL

„ TAlow

, TAhiqh ж

\

/

/

/

/ /

\ 1

TBiow

я TBhiah м 1

ч Ведущие начинают отсчет паузы

Ведущие начинают отсчет импульса

Рис. 11.4. Синхронизация сигнала SCL нескольких ведущих

Для решения описанной задачи все ведущие устройства после выдачи данных на линию SDA контролируют ее состояние. Если состояние линии отличается от того, в которое ее переводил ведущий, он теряет приоритет (Рис. 11.5). Напоминаю, что такое возможно только в случае выдачи им сигнала ВЫСОКОГО уровня во время выдачи другими ведущими (получившими приоритет) сигнала НИЗКОГО уровня. Ведущий, потерявший приоритет, должен немедленно переключиться в режим ведомого и проверить, не был ли он адресован каким-либо из ведущих, получивших приоритет. При этом он должен продолжать удерживать на линии SDA сигнал ВЫСОКОГО уровня. Однако он может продолжать генерировать тактовый сигнал до окончания передачи текущего пакета.

СТАРТ

SDAot ведущего А

SDAot ведущего В

Линия SDA

Линия SCL

1

Ведущий А теряет приоритет SDAa*SDA

1 \

/ \

1 \

/ \

Рис. 11.5. Распределение приоритетов между двумя ведущими



0 ... 137 138 139 140 141 142 143 ... 195