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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 358 359 360 361 362 363 < 364 > 365 366 367 368 369 370 .. 528 >> Следующая

ETHER_NET = 1 FEC-контроллер начинает работать. При сбросе этого бита
контроллер немедленно прекращает прием кадра, а передача будет
остановлена только после передачи неправильной CRC контрольной суммы в
конце текущего кадра. При выключении контроллера указатели FIFO, буферные
дескрипторы и схемы DMA сбрасываются.
При установке бита RESET := 1 производится сброс FEC-контроллера,
аналогичный аппаратному сбросу или сбросу по команде процессора, все
операции приема и передачи немедленно прекращаются.
В регистре R_HASH (рис. 5.124) пользователь может установить максимальную
длину используемых кадров в байтах. Напомним, что при приеме/передаче
кадра с длиной более указанной будет выработаны прерывания BABR/BABT.
Стандарт 802.3 рекомендует устанавливать параметр MAX_FRAME_LENGTH равным
0х5ЕЕ, что соответствует 1518 байтам.
0 20 21 31
Все "0".
MAX FRAME LENGTH
Рис. 5.124. Формат регистра RJHASH
При возникновении определенных событий в канале связи происходит их
регистрация в регистре прерываний l_EVENT (рис. 5.125). Сброс бита
события производится записью в выбранный разряд кода "1". Регистрация
прерывания, связанного с любым из событий, может быть замаскирована
пользователем при программировании регистра маски I MASK. Форматы
регистров прерываний и маски совпадают. Прерывание разрешено, если
соответствующий бит в регистре маски установлен в "1".
Бит HBERR (Heartbeat Error) регистрируется, когда в слове состояния
буферного дескриптора передачи был установлен бит ошибки НВС = 1, т. е.
была обнаружена ошибка проверки аппаратуры.
Если был принят кадр длиной более 1518 байт, будет зарегистрирована
ошибка Babbling Receive Error, которая фиксируется установкой бита ошибки
BABR := 1.
Если из-за ошибок пользователя при программировании контроллер передал
кадр длиной более 1518 байт, то будет зарегистрирована ошибка Babbling
Тransmit Error, которая фиксируется установкой бита ошибки ВАВТ := 1.
После завершения передачи полного кадра и заполнения слова состояния
последнего буферного дескриптора регистрируется прерывание и
устанавливается бит TFINT := 1 (Transmit Frame Interrupt). После передачи
каждого отдельного буфера текущего кадра регистрируется прерывание и
устанавливается бит ТХВ := 1 (Transmit Buffer Interrupt).
0 1 2 3 4 5 6 7 8 9 10 31,
HBERR BABR ВАВТ GRA TFINT TXB RFINT RXB Mil EBERR Зарезервировано.
Все "0".
Рис. 5.125. Формат регистра прерываний LEVENT и регистра маски l_MASK
637
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
О 1 2
3__________________________________________________________________
____ 27 28 29 30 31
ILEVEL Все "0". IVEC 0 0
Рис. 5.126. Формат регистра IVEC
После завершения приема полного кадра и заполнения слова состояния
последнего буферного дескриптора регистрируется прерывание и
устанавливается бит RFINT := 1 (Receive Frame Interrupt). После приема
каждого отдельного буфера текущего кадра регистрируется прерывание и
устанавливается бит RXB := 1 (Receive Buffer Interrupt), но только если в
слове состояния этого дескриптора установлен бит разрешения прерывания
при приеме данных I = 1 (Interrupt).
После завершения Ml I-интерфейсом очередной порции обмена данными
регистрируется прерывание Mil Interrupt и устанавливается бит МИ := 1.
Если при обмене FEC-контроллером по системной шине произошла ошибка, то
регистрируется прерывание Ethernet Bus Error и устанавливается бит EBERR
:= 1.
В регистре IVEC (Interrupt Vector Register, рис. 5.126) хранится
информация об уровне прерывания 0-7 (биты ILEVEL), который будет связан с
FEC-контроллером, и вектор прерывания (биты IVEC). Установка битов IVEC
назначает для блоков FEC-контроллера наивысший уровень приоритета
прерываний (IVEC = 00 - не рассматривать FEC-прерывания, 01 -для
некритичных ко времени прерываний, 10-для передатчика, 11 -для
приемника).
Внутренний буфер FIFO модуля Fast Ethernet, который имеет размер 448 байт
(размер одной ячейки 32 бита), может динамически распределяться между
приемником и передатчиком, например 32x56 RX и 32x56 ТХ. Увеличенный
размер буфера позволяет контроллеру иметь переменное время доступа к
внутренней шине для передачи данных в память. В случае коллизии в сети
повторная передача кадра начинается автоматически из внутренних FIFO-
буферов контроллера и не требует повторного чтения данных из памяти по
системной шине. Для хранения буферов принятых данных и данных для
передачи всегда требуется внешняя память. Буферы данных во внешней памяти
организованы по кольцевой структуре (аналогично всем другим
коммуникационным контроллерам фирмы "Motorola"), и их общее количество
зависит только от размера памяти и требований к быстродействию канала
связи.
Восьмибитный, только для чтения, регистр R_BOUND (рис. 5.127) определяет
верхний адрес блока буфера FIFO приема в памяти. Содержимое регистров
R_BOUND, R_FSTART, и X_START используется RISC-процессором, чтобы
рассчитать доступное пространство между областями памяти для приема и
Предыдущая << 1 .. 358 359 360 361 362 363 < 364 > 365 366 367 368 369 370 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed