Ethernet - пример стандартной технологии коммутации пакетов, страница 7

Для тестирования своей работоспособности некоторые передатчики могут регистрировать ошибку Heartbeat. Если установлен, бит НВС=1 в регистре режима PSMR (рис. 4), то передатчик через 20 битовых интервалов (2 мкс) после завершения передачи кадра данных зарегистрирует внутреннее воз­никновение коллизии, которая не связана с реальной коллизией в сети и предназначена для проверки работы передатчика. Если бит НВС=1, но через 2 мкс состояние heartbeat не зарегистрировано, то это значит, что контроллер работает некорректно, поэтому регистрируется ошибка, текущий буфер данных закрывается, в слове состояния буфера устанавливается бит ошибки НВ:= 1 и генерируется запрос на прерывание ТХЕ через регистр событий канала, конечно, если это прерывание не замаскировано.

Пользователь может управлять передачей при помощи команд STOP TRANSMIT, RESTART TRANSMIT, INIT TX PARAMETERS. Специальная команда GRACEFUL STOP TRANSMIT позволяет изменить порядок пере­дачи содержимого буферов или кадров, или при возникновении ошибки. При получении этой команды Ethernet-контроллер немедленно останавли­вается, если не было передачи, или если была передача кадра, то продолжа­ет передачу текущего кадра либо до ее успешного завершения, либо до воз­никновения ошибки коллизии.

3.5.1.3. Прием данных.

При приеме кадров Ethernet-контроллер работает независимо и автономно от центрального процессора и выполняет распознавание адреса станции, проверку контрольной суммы кадра, контроль длины кадра на предельное максимальное и минимальное значение, контролирует максимальное значе­ние размера данных, передаваемых по DMA-каналам.

После включения приемника в работу, если нет коллизий в канале и вы­ставлен активный сигнал RENA, то контроллер переходит в режим "охоты" или поиска кадра данных во входном потоке, ожидая получения символа SYN1, формат которого задан в регистре синхронизации DSR. Для Ethernet-контроллера в этот регистр записываются стандартные значения SYN1=0х55 и SYN2=0x05. Биты NIB в регистре режима PSMR определяют, через сколь­ко битов после установки активного сигнала RENA контроллер будет искать стартовый ограничитель во входном потоке. Обычно устанавливается значе­ние задержки, равное 22 битам. Начальный ограничитель имеет размер 1 байт фиксированного формата 0xD5. Значения задержек при приеме кадра приведены в табл..3.2.

Формат начального ограничителя и преамбулы включает повторяющиеся комбинации 1 и 0. Если при начале приема кадра между 14 и 21 битами об­наруживается комбинация 11 или 00, то текущий кадр отвергается. Если комбинация 11 или 00 встречается после приема 21 бита, но до начала приема начального ограничителя, то кадр тоже отбрасывается. Если приня­тый набор битов совпадает с содержимым регистра синхронизации, то режим "охоты" выключается и начинается прием кадра данных. При приеме кадра первым принимается LSB-бит.

Таблица 3.2. Значения задержек при приеме кадра.

Биты NIB

Задержка, бит

000

13

001

14

010

15

011

16

100

21

101

22

110

23

111

24

Первыми принимаются и распознаются 48 бит адреса получателя. Прием­ник может распознавать индивидуальный физический адрес станции, груп­повой (multicast) адрес и широковещательный (broadcast) адрес. Пока кон­троллер не проведет сравнение адреса, полученного в пакете, со своим адресом, заданным в ячейках памяти параметров, никакие данные не записываются в буферы данных.