Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 296

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 290 291 292 293 294 295 < 296 > 297 298 299 300 301 302 .. 528 >> Следующая

совпадают со структурой таблицы протокол-независимых параметров (см.
табл. 5.30). Отличие заключается только в том, что отсутствуют две
последние ячейки таблицы со смещениями I2C base+28 и I2C base+2C.
Данные для 12С-канала хранятся в буферах памяти, которые организованы в
таблицу TxBD (передачи) и RxBD (приема). Принцип организации таблицы
аналогичен таблицам буферов для SCC-каналов ввода/вывода. Стартовый адрес
таблиц в памяти контроллера хранится в ячейках RBASE и TBASE памяти
параметров 12С-контроллера. Пользователь может ограничить число буферов в
таблице, установив бит W := 1 в слове состояния последнего необходимого
буферного дескриптора. При подготовке обмена данными центральный
процессор готовит данные для передачи в буферах памяти, заполняет
соответствующие буферные дескрипторы и устанавливает в их слове состояния
бит готовности к передаче R := 1, а также заранее подготавливает буферы
для приема данных.
Режимы работы PC-контроллера. В режиме master 12С-контроллер управляет
обменом данными со slave-устройствами. Для этого он передает slave-
устройству специальное сообщение, которое определяет режим работы (чтение
или запись). Если это операция чтения, то после передачи первого
сообщения направление передачи по линии SDA меняется, и передавать будет
slave-устройство.
Для начала обмена сообщениями master-устройство должно подготовить данные
для передачи в буферах TxBD, установив бит готовности R := 1 в слове
состояния буферного дескриптора, а также подготовить буферы приема RxBD.
Затем центральный процессор должен установить бит STR := 1 в регистре
команд I2COM. Данные будут передаваться после того, как они будут
загружены в буфер FIFO передатчика по SDMA-каналам из памяти, и после
того, как 12С-шина будет свободна. Размер буфера FIFO приемника и
передатчика установлен равным двум символам. При передаче MSB передается
первым.
При начале передачи 12С-контроллер выставляет start-условия (адрес slave-
устройства) на линии SDA и тактовые импульсы , число которых
соответствует числу передаваемых битов, на линию SCL. Для каждого
переданного бита на линию SDA контроллер производит его повторное чтение
(контроль), чтобы обнаружить состояние коллизии (collision) с другим
master-устройством. Поскольку выводы контроллера объединены по схеме
"монтажное ИЛИ" в единую шину, то коллизии обнаруживаются, если была
выставлена "1", а обнаружен "0". При этом передача прерывается и канал
переводится в режим slave и генерируется маскируемое прерывание к
центральному процессору.
После передачи каждого байта данных устройство master контролирует
индикацию подтверждения от slave-станции. Если подтверждение не пришло,
передача прерывается и условие "остановки" генерируется master-станцией.
Регистрация stop- и start-условий всегда приводит к закрытию текущего
буфера приемника.
529
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Для передачи данных slave-устройству master-станция подготавливает в
буфере п+1 байт данных, где первый байт содержит адрес slave-устройства и
бит, определяющий режим чтение/запись. Остальные п байт - это данные,
которые передаются slave-устройству. Если R/W = 1, то будет производиться
чтение с устройства slave.
Если 12С-контроллер работает в режиме slave, то его адрес задается
пользователем в регистре I2ADD (рис. 5.58) и имеет 7 разрядов, таким
образом, в сети может быть до 128 slave-устройств. Если slave-устройство
распознало свой адрес, то данные принимаются во внутренние буферы RxBD,
на них передаются подтверждения, и так продолжается, пока по линии SDA не
придет от master-станции новое start/stop-усповие. Если совпадения адреса
не произошло, slave-устройство ожидает следующего start-условия. Slave-
контроллер подтверждает прием каждого байта, пока не обнаружит ошибку
переполнения overrun своего буфера FIFO.
Если данные для передачи от master-устройства занимают несколько буферов
TxBD, то они будут передаваться байт за байтом, пока не будет достигнут
последний буфер (бит L = 1 в его слове состояния), при этом бит STR = 1
повторно для каждого нового байта не устанавливается. Бит STR будет
автоматически сбрасываться после передачи первого бита байта данных.
Если контроллер работает в режиме slave, то для начала обмена данными он
ожидает команды и тактового сигнала SCL от master-устройства. Все
принятые от master-станции сообщения тут же посылаются обратно, таким
образом, обеспечивается подтверждение их приема.
Перед началом обмена центральный процессор slave-станции должен
подготовить буферы данных для передачи (TxBD) и для приема данных (RxBD),
затем установить бит STR := 1 в регистре команд I2COM. Установка бита STR
в slave-устройстве не начинает передачу, а только подготавливает схемы
контроллера и данные для передачи. Передача начнется только после прихода
команды от master-станции.
Если при начале передачи start-условия slave-станция в первом
передаваемом байте распознала свой адрес (биты с 7-го по 1-й), то
Предыдущая << 1 .. 290 291 292 293 294 295 < 296 > 297 298 299 300 301 302 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed