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

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

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

буферные дескрипторы расположены во внешней памяти. Буферные дескрипторы
FEC-контроллера так же, как и буферные дескрипторы других
коммуникационных каналов, организованы в таблицу и имеют аналогичный
формат, который состоит из четырех слов. Последний дескриптор в таблице
имеет в слове состояния установленный бит W = 1 (Wrap).
Готовность буфера передачи и приема к обмену контролируется по состоянию
бита готовности R = 1 (Ready) и бита незанятости Е = 1 (Empty) в слове
состояния дескриптора. Дополнительно программное обеспечение
устанавливает биты X_DES_ACTIVE и R_DES_ACTIVE в одноименных регистрах,
чтобы уведомить FEC-контроллер, что данные для передачи в буферах
подготовлены или буферы для приема освобождены. После окончания работы с
буфером аппаратное обеспечение сбрасывает биты R и Е, чтобы пользователь
мог начать обработку их содержимого.
Буферный дескриптор приема. Формат слова состояния дескриптора приема
приведен на рис. 5.139.
Бит пустого буфера Е (Empty) устанавливается в "1" пользователем после
того, как он обработал данные из этого буфера, и буфер можно использовать
для приема новых данных. Бит Е := 0 записывает слово состояния FEC-
контроллера после заполнения буфера данными из сети.
Биты R01 и R02 (Receive Software Ownership) предназначены только для
программного обеспечения пользователя и не взаимодействуют с аппаратурой.
Бит последнего буфера W (Wrap), равный единице, сообщает FEC-контроллеру,
что текущий буфер - это последний буфер в таблице и после его обработки
необходимо переходить для работы к первому буферу BD в таблице буферных
дескрипторов. *
0 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15
Е R01 W R02 L 0 0 М ВС NC LG NO SH
CR OV TR
Рис. 5.139. Формат слова состояния дескриптора приема
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Бит последнего буфера L (Last) используется в протоколах, где кадр данных
может занимать несколько буферов, для указания последнего буфера кадра
(если бит L = 1). Указание последнего буфера в кадре обычно применяется
для организации прерываний в конце обработки всего кадра данных.
Бит М (Miss) устанавливается в "1" FEC-контроллером, если кадр данных был
принят без проверки совпадения адреса (режим promiscuous). Если бит М =
0, то кадр принят, так как адресован именно этой станции.
Бит ВС устанавливается в "1", если принятый кадр данных имеет
широковещательный адрес получателя (broadcast).
Бит МС устанавливается в "1", если принятый кадр данных имеет групповой
(но не широковещательный) адрес получателя (multicast).
Если бит LG (Lenght Violation) равен "1", то принят кадр данных, длина
которого превышает максимально допустимую, запрограммированную для FEC-
контроллера длину принимаемых кадров. При этом в буфер будет записана
только часть кадра, размер которой не превышает 2047 байт.
Бит TR устанавливается, если длина принятого кадра больше 2047 байт, и
кадр был обрезан при приеме.
Если бит NO (Nonoctet Aligned Frame) равен "1", то принят кадр данных,
длина которого не кратна 8 битам, и обнаружена ошибка проверки
контрольной суммы CRC.
Если бит SH (Short Frame) равен "1", то принят кадр данных, длина
которого меньше минимально допустимой для FEC-контроллера длины
принимаемых кадров.
Бит CR (CRC Error) устанавливается, если обнаружена ошибка при проверке
контрольной суммы, но длина кадра кратна 8 битам.
Бит переполнения буфера OV (Overrun), равный "1", регистрирует ошибку,
связанную с переполнением буфера FIFO приемника. Если установлен бит OV =
1, другие ошибки приема не регистрируются.
Буферный дескриптор передачи. Формат слова состояния дескриптора передачи
приведен на рис. 5.140.
Бит заполненного буфера R (Ready) устанавливается пользователем после
того, как он закончит подготовку в буфере данных для передачи по сети.
Этот бит постоянно анализируется FEC-контроллером для начала передачи
новых данных и сбрасывается (R := 0) после передачи всех данных из этого
буфера.
Биты Т01 и Т02 (Transmit Software Ownership) предназначены только для
программного обеспечения пользователя и не взаимодействуют с аппаратурой.
Бит последнего буфера W (Wrap), равный "1", сообщает FEC-контроллеру, что
текущий буфер - это последний буфер в таблице и после его обработки
необходимо переходить для работы к первому буферу BD в таблице буферных
дескрипторов.
Бит последнего буфера L (Last) используется в протоколах, где кадр данных
может занимать несколько буферов, для указания последнего буфера кадра
(если бит L = 1).
Если в слове состояния последнего буфера кадра (бит L = 1) установлен
битТС=1 (Тх CRC), то при передаче вычисляется контрольная сумма
содержимого кадра и она передается после последнего байта кадра. Если бит
ТС = 0, то передача заканчивается сразу после передачи последнего байта
кадра.
Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит
DEF = 1 (Defer Indication), то контроллер должен задержаться перед
передачей кадра. Этот бит не устанавливается, если при передаче
Предыдущая << 1 .. 365 366 367 368 369 370 < 371 > 372 373 374 375 376 377 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed