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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 274 275 276 277 278 279 < 280 > 281 282 283 284 285 286 .. 528 >> Следующая

При обработке текущего буфера RISC-контроллер периодически опрашивает
готовность следующего буфера. Алгоритм опроса зависит от конфигурации
канала. Если после обработки текущего буфера N следующий буфер N+1 не
готов к обработке (не заполнен для передачи или не освобожден для
приема), то возникает ошибка переполнения (overrun) при приеме и ошибка
незаполнения (underrun) при передаче. В этой ситуации RISC-контроллер
будет ждать го-
Слово состояния буфера данных Размер буфера данных в байтах Адрес буфера
данных в памяти
Рис. 5.43. Формат буферного дескриптора BD
504
ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ В КМК
DUAL-PORT RAM
EXTERNAL OR INTERNAL RAM
Рис. 5.44. Организация памяти при работе с SCC-каналами
товности N+1 буфера и не перейдет к проверке готовности N+2 буфера, даже
если он уже готов к обработке. Если следующий буфер готов к обработке, то
RISC-контроллер приступает или к его передаче, или к его заполнению при
приеме. При переходе к новому буферу контроллер проверяет в слове
состояния текущего буфера бит последнего BD в таблице W (Wrap). Если этот
бит установлен, то после текущего буфера будет проверяться готовность
первого BD в таблице. Если этот бит равен 0, то будет обрабатываться
следующий по порядку BD в таблице.
Каждый SCC-контроллер содержит собственный FIFO для передачи данных и
FIFO для приема данных. Наличие дополнительной памяти в виде FIFO
позволяет согласовывать по скорости работы внутренние каналы передачи
данных по шинам контроллера и скорости передачи данных по сети, а также
позволяет избежать потерь данных из-за переполнения буферов каналов. У
МРС860 в СРМ-модуле объем FIFO не зависит от используемого протокола и
составляет по 16 байт для приема и передачи у каналов SCC2-SCC4 и по 32
байта для приема и для передачи у канала SCC1. Размер буферов FIFO
каналов SMC, а также портов SPI и 12С составляет по два символа для
приема и передачи. В контроллере МРС860 порт PIP имеет FIFO приема и
передачи размером по одному символу каждый.
При передаче данных бит готовности буфера для передачи R := 1 (Ready)
устанавливается центральным процессором. Данные из этого буфера RISC-
контроллер передает в буфер FIFO канала передачи. По окончании передачи
всех данных из буфера RISC-контроллер сбрасывает бит R := 0. Таким
образом, дважды содержимое одного буфера в нормальном режиме работы не
передается. Но у СРМ существует одно исключение. В слове состояния BD
пользователь может установить бит повторной передачи СМ := 1 (Continuous
Mode), при этом если RISC-контроллер снова через цикл опроса обратится к
этому буферу, то его содержимое будет повторно передаваться, даже если
бит готовности R = 0.
В режиме приема центральный процессор освобождает буфер для приема новых
данных и в слове состояния BD этих буферов устанавливает бит пустого
буфера Е := 1 (Empty). При приеме данных RISC-контроллер находит пустой
буфер и записывает в него данные из буфера FIFO канала приемника.
Заполненный буфер закрывается, а RISC-контроллер устанавливает бит
занятого буфера Е := 0 и переходит к заполнению очередного буфера. Если
текущий буфер заполнен, а следующий еще не освобожден центральным
процессором, то генерируется ошибка занятости (busy error).
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
15 14 13 12 1 1 10 9 8 7 6
TOD Зарезервировано
Рис. 5.45. Формат регистра TODR
Таким образом, при приеме данных буфер считается занятым, пока
центральный процессор не обработает его данные и не установит бит
незанятости буфера Е := 1. В нормальном режиме RISC-контроллер не будет
записывать новые данные в этот буфер, пока он не будет отмечен как
пустой. Но в СРМ пользователь может установить в слове состояния этого
буфера бит повторной записи СМ := 1 (Continuous Mode), и RISC-контроллер
при повторном обращении к этому буферу будет записывать новые данные
поверх старых, даже если буфер отмечен как занятый Е = 0.
Когда буфер весь заполнен при приеме или весь передан при передаче и в
его слове состояния установлен бит прерывания 1 = 1, RISC-контроллер
посылает прерывание центральному процессору, чтобы он мог обрабатывать
данные этого буфера при приеме или заполнять буфер новыми данными при
передаче. Прерывание может быть также передано CPU, если при работе с
буфером произошла одна из возможных ошибок. Более точная причина ошибки
будет установлена в регистре событий (events) SCC-канала и указана в
слове состояния текущего буфера.
Существует исключение в правилах обработки буфера при передаче в СРМ. При
нормальном алгоритме опроса готовности буфера к передаче RISC-контроллер
анализирует бит готовности буфера R каждые 8-32 периода тактового
сигнала. Но пользователь может заставить RISC-контроллер начать обработку
буфера немедленно, не ожидая, когда наступит время нового опроса
готовности бита R у данного буфера. Для чего пользователь должен
установить бит R := 1 в слове состояния BD этого буфера и установить бит
Предыдущая << 1 .. 274 275 276 277 278 279 < 280 > 281 282 283 284 285 286 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed