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

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

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

При этом следует помнить, что процесс распределения приоритетов не должен выполняться между:

•состоянием ПОВСТАРТ и передачей бита данных;

•состоянием СТОП и передачей бита данных;

•состоянием ПОВСТАРТ и СТОП.

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

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

Формат адресного пакета

Все адресные пакеты, передаваемые по шине TWI, имеют длину 9 бит. Пакет содержит 7-битный адрес (первым передается старший бит), управляющий бит R/W и бит квитирования АСК (Рис. 11.6). Значение управляющего бита R/W определяет направление передачи данных по шине. Бит, сброшенный в 0, означает передачу данных, а установленный в 1 — запрос данных (чтение). Пакеты со сброшенным и установленным управляющим битом обозначаются соответственно SLA-Wh SLA-R.

7-битный адрес

MSBLSBR/WАСК

SDA

\-Г\ГУ\/\/\

SCL

СТАРТ

Рис. 11.6. Формат адресного пакета

При распознавании ведомым своего адреса он должен сформировать подтверждение (АСК) путем выдачи на линию SDA сигнала НИЗКОГО


уровня во время 9-го тактового импульса. Если ведомый по каким-либо причинам не может обслужить запрос ведущего, он должен во время 9-го тактового импульса удерживать на линии сигнал ВЫСОКОГО уровня (NACK — нет подтверждения).

Ведомым устройствам могут быть назначены любые адреса, за исключением нулевого адреса и адресов из диапазона 1111000...1111111. Нулевой адрес зарезервирован для реализации так называемых общих вызовов, а адреса формата 111 lxxx должны быть зарезервированы для использования в дальнейшем.

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

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

Формат пакета данных

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

На практике каждый цикл обмена по шине TWI состоит из следующих этапов (Рис. 11.8):

1.Формирование состояния СТАРТ.

2.Передача адресного пакета SLA+R/W.

3.Передача одного или нескольких пакетов данных.

4.Формирование состояния СТОП.


Линия SDA

SCL от ведущего

SLA+R/W

Байт данных (8 битов) MSBLSB АСК

2 " у Пакет данных

СТОП, ПОВСТАРТ, СТАРТ или след. пакет данных

Рис. 11.7. Формат пакета данных

MSB

LSB R/W АСК

1 2 я 7 8 9 СТАРТАдресный пакет (SLA+R/W)

MSB

LSB АСК

1 2 " 7 8 9 Пакет данных

СТОП

Рис. 11.8. Типичный цикл обмена

Скорость обмена по шине TWI задается ведущим, так как именно он генерирует тактовые импульсы. Однако, если ведомый не может принимать данные с такой скоростью или ему просто требуется время на обработку данных между приемом пакетов, он может увеличить паузу между тактовыми импульсами, удерживая на линии SCL сигнал НИЗКОГО уровня. На длительность тактовых импульсов это не влияет.

11.3. Обзор модуля TWI

Структурная схема модуля TWI приведена на Рис. 11.9. Как видно из рисунка, модуль состоит из нескольких блоков, каждый из которых выполняет определенные функции.

Взаимодействие программы с модулем TWI осуществляется посредством пяти (в новых моделях — шести) регистров ввода/вывода. Названия и назначение этих регистров, а также их положение в адресном пространстве ввода/вывода всех моделей приведено в Табл. 11.2.



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