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

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

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

переданного буфера установлен бит прерывания I = 1, то будет выработан
запрос на прерывание.
Если во время передачи кадра данных обнаруживается коллизия, то
контроллер выполняет специальную процедуру остановки, возвращается к
первому буферу кадра и через некоторый интервал времени делает попытку
повторной передачи. Для каждого переданного кадра данных в слове
состояния последнего буфера кадра устанавливаются биты RC, значения
которых определяют, сколько повторных попыток потребовалось, чтобы
успешно закончить передачу текущего кадра. Общее число повторных попыток
передачи задается в ячейке RET_LIM (стандартное значение 15). При начале
передачи контроллер сохраняет первые 5-8 байт передаваемого кадра во
внутренней памяти в ячейках TBUFx xxx, поэтому при повторной передаче не
требуется дополнительная загрузка этих данных из буферов данных.
Единственное ограничение состоит в том, что первый буфер кадра должен
иметь длину не менее 9 байт. Текущее значение числа повторных передач
подсчитывается в ячейке RET_CNT, и если число повторов превысило значение
RETJJM, то генерируется ТХЕ-запрос на прерывание в регистре событий,
устанавливается бит ошибки RL := 1 в слове состояния буферного
дескриптора, передача данных из буфера останавливается и буфер
закрывается. Продолжение передачи возможно после получения контроллером
команды RESTART TRANSMIT.
Ячейка Р_Рег памяти параметров предназначена для определения "степени
активности" станции после обнаружения состояния коллизии. В нормальном
режиме в эту ячейку заносится код 0x0000 и выполняется стандартный
алгоритм расчета следующего момента выхода станции в сеть для повторной
передачи. Если же в эту ячейку записан код от 1 до 9, то данный код будет
добавлен к счетчику тайм-аута ожидания, и станция выйдет в сеть через
большее время. Таким образом, значение "9" предназначено для менее
активных станций. Пользователю также предоставляется возможность
управлять временем выхода станции в сеть для повторной передачи через бит
STB (Stop Backoff Timer) в регистре режима Ethernet-контроллера. Если бит
STB = 0, то счетчик времени работает в обычном режиме. Если же бит STB =
1, то счетчик будет останавливаться всякий раз, когда в канале будет
активным сигнал несущей частоты.
Если во время передачи обнаруживается ошибка незаполнения буфера
underrun, которая возникает, если при передаче мультибуферных кадров
данный центральный процессор не успел подготовить для передачи новые
буферы, содержащие данные текущего кадра, а данные из последнего
подготовленного буфера уже переданы в сеть, то Ethernet-контроллер
прерывает текущую передачу, передает 32 "1" бита, которые позволят
определить другим станциям CRC ошибку, закрывает буфер, устанавливает бит
ошибки UN := 1 в слове состояния BD и генерирует, если разрешено, ТХЕ-
прерывание через регистр событий SCC-канала. После получения команды
возобновления передачи RESTART TRANSMIT контроллер продолжает дальнейшую
передачу.
При передаче Ethernet-контроллер постоянно контролирует наличие сигнала
несущей частоты. Если этот сигнал будет сброшен, но состояние коллизии не
будет зафиксировано, то генерируется ошибка потери несущей частоты.
Признаком этой ошибки будет установка бита CSL = 1 в слове состояния
текущего BD. Передача кадра будет продолжена в нормальном режиме.
62 7
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Для тестирования своей работоспособности некоторые передатчики могут
регистрировать ошибку Heartbeat. Если установлен бит НВС = 1 в регистре
режима PSMR, то передатчик через 20 битовых интервалов (2 мкс) после
завершения передачи кадра данных зарегистрирует внутреннее возникновение
коллизии, которая не связана с реальной коллизией в сети и предназначена
для проверки работы передатчика. Если бит НВС = 1, но через 2 мкс
состояние heartbeat не зарегистрировано, то это значит, что контроллер
работает некорректно, поэтому регистрируется ошибка, текущий буфер данных
закрывается, в слове состояния буфера устанавливается бит ошибки НВ := 1
и генерируется запрос на прерывание ТХЕ через регистр событий канала,
конечно, если это прерывание не замаскировано.
Пользователь может управлять передачей при помощи команд STOP TRANSMIT,
RESTART TRANSMIT, INIT TX PARAMETERS. Специальная команда GRACEFUL STOP
TRANSMIT позволяет изменить порядок передачи содержимого буферов или
кадров или при возникновении ошибки. При получении этой команды Ethernet-
контроллер немедленно останавливается, если не было передачи, или если
была передача кадра, то продолжает передачу текущего кадра либо до ее
успешного завершения, либо до возникновения ошибки коллизии.
Прием данных. При приеме кадров Ethernet-контроллер работает независимо и
автономно от центрального процессора и выполняет распознавание адреса
станции, проверку контрольной суммы кадра, контроль длины кадра на
предельное максимальное и минимальное значение, контролирует максимальное
Предыдущая << 1 .. 351 352 353 354 355 356 < 357 > 358 359 360 361 362 363 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed