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

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

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

и они закрываются. Далее контроллер переходит к передаче следующего
кадра.
• Потеря несущей при передаче кадра (Carrier Sense Lost, CSL). Если при
передаче кадра не обнаружено коллизий, но исчезла несущая частота в
канале, то кадр передается до конца, повторных передач не будет, но в
слове состояния последнего буферного дескриптора кадра устанавливается
бит ошибки CSL := 1.
• Превышен предел повторных попыток передач (Retransmission Limits, RL).
При возник-
новении коллизии FEC-контроллер делает попытку автоматического повторного
доступа к сети. Число таких попыток ограничено. При превышении
установленного числа попыток передача текущего кадра прерывается, все не
переданные буферы закрываются, в слове состояния последнего не
переданного буфера устанавливается бит ошибки RL := 1. Далее контроллер
переходит к передаче следующего кадра.
• Поздняя коллизия (Late Collision, LC). Передача текущего кадра
прерывается, все не переданные буферы закрываются, в слове состояния
последнего не переданного буфера устанавливается бит ошибки LC:=1. Далее
контроллер переходит к передаче следующего кадра.
• Ошибка из-за самотестирования аппаратуры (Heartbeat, НВС). Через 20
битовых интер-
валов после успешного завершения передачи кадра передатчик для проверки
системы
641
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
регистрирует коллизию (которой на самом деле нет). Этот режим проверки
включается установкой бита НВС := 1 в регистре X_CNTRL. При возникновении
этой ошибки FEC закрывает буферы текущего передаваемого кадра (на самом
деле, если 20 интервалов назад был успешно передан кадр, то в данный
момент передатчик должен ожидать 96 интервалов до начала передачи
следующего кадра, и открытых буферов не должно быть), в слове состояния
текущего буферного дескриптора устанавливается бит ошибки НВ := 1 и
генерируется прерывание HBEER, если оно разрешено.
Прием кадра FEC-контроллером. Пользователь может настраивать режимы
работы блока приемника FEC-контроллера при программировании регистра
R_CNTRL (рис. 5.132).
0 27 28 29 30 31
Все "0". PROM MII_MODE DRT LOOP
Рис. 5.132. Формат регистра R_CNTRL
Если установлен бит PROM = 1 (Promiscuous), то сетевой контроллер будет
принимать все кадры, не проверяя совпадения адреса станции и адреса в
поле "получатель".
Бит MII_MODE определяет используемый режим внешнего интерфейса как для
приемника, так и для передатчика (0 - "7-проводной" режим, используется
только для режима 10 Мбит/с; 1 - режим МП-интерфейса).
FEC-контроллер поддерживает тестовые режимы внутренней и внешней петли.
Эти режимы программируются битами LOOP и DRT в регистре R_CNTRL (LOOP =
1, DRT = 0 -внутренняя петля, LOOP = 0 и DRT = 0 - внешняя петля). В
режимах петли FEC-контроллер работает в полнодуплексном режиме.
Бит DRT (Disable Receive on Transmit) определяет включение режима
полнодуплексной передачи. Если бит DRT = 0, то приемник и передатчик
работают независимо (полнодуплексный режим). Если же бит DRT = 1, то во
время передачи кадров приемник временно отключается (полудуплексный
режим).
Бит LOOP используется для тестирования аппаратуры. Если бит равен
единице, то будет включен режим внутренней петли и выход передатчика
внутри будет замкнут на вход приемника. Сигналы на внешние контакты
передатчика не поступают. Обратите внимание, что в режиме внутренней
петли бит DRT должен быть равен нулю.
Регистр R_DES_ACTIVE используется для индикации состояния обработки
таблицы дескрипторов приема. Регистр R_DES_ACTIVE (рис. 5.133)
сбрасывается при системном сбросе и при сбросе бита готовности FEC-
контроллера ETHER_EN = 0. После того как программное обеспечение
пользователя обработало очередной буферный дескриптор, т. е. считало из
него данные и установило бит Е := 1 (Empty) в его слове состояния,
необходимо записать в этот регистр любое значение. Бит R_DES_ACTIVE будет
установлен в "1", когда в этот регистр было записано какое-либо значение.
Если биты R_DES_ACTIVE = 1 и ETHER_EN = 1, то контроллер будет искать в
таблице дескрипторов приема незанятый буфер, чтобы принять в него данные
из сети. Этот бит сбрасывается контроллером, когда в таблице буферов
приема нет готовых свободных буферов.
Первым в байте принимаемых последовательных данных принимается LSB-бит.
Когда выставлен активный сигнал RX_DV, приемник вначале проверяет
корректность РА/ SFD-заголовка. Если заголовок правильный, то он будет
удален, а последующие данные
0 6 7 8 31
Все "0". R_DES_ACTIVE Все "0".
Рис. 5.133. Формат регистра R_DES_ACTIVE
642
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
будут обрабатываться приемником. Если же заголовок некорректный, то
следующий за ним кадр данных будет игнорирован.
При приеме кадры, которые не удовлетворяют по формату требованиям
стандарта 802.3, автоматически удаляются, но при этом регистрируются
соответствующие ошибки, например прием слишком длинного кадра.
При работе в последовательном режиме (данные поступают по линии RX_D0)
Предыдущая << 1 .. 361 362 363 364 365 366 < 367 > 368 369 370 371 372 373 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed