При приеме нового кадра вначале проверяется бит I/G (Individual/Group) в поле адреса приемника. Если это индивидуальный адрес (бит I/G=0), то проверяя физический адрес, контроллер сравнивает его с единственным адресом, указанным в 48-битной ячейке PADDR1 памяти параметров, если бит IАМ=0 в регистре PSMR. Если же бит IАМ=1, то специальная хэш-таблица индивидуальных адресов в ячейках IADDR1—IADDR4 используется для сравнения и распознавания группового адреса.
Если это групповой адрес (бит I/G=1), то вначале контроллер проверяет, является ли адрес широковещательным. Широковещательный адрес представляет собой код, состоящий только из 1. Если прием широковещательных адресов разрешен (бит BRO=0 в регистре PSMR), то кадр принимается. Если же бит BRO=1, то все кадры с широковещательными адресами отбрасываются, даже если установлен бит PRO=1.
Если сравнение адреса прошло успешно, то начинается прием кадра, независимо от значения сигнала на контакте RRJCT. Если это групповой, но не широковещательный адрес, то производится сравнение адреса с использованием хэш-таблицы групповых адресов в ячейках GADDR1—GADDR4.
Если проверка адреса прошла неудачно, и если в регистре режима PSMR установлен, бит PRO=0, то проверка адреса должна была выполняться для всех кадров и поэтому кадр отбрасывается. Если же бит PRO=1, то кадры принимаются без проверки адреса, если сигнал на контакте RRJCT пассивный, и отбрасываются, если сигнал RRJCT активный. При этом в слове состояния последнего буфера приема кадра устанавливается бит признака М(Miss). Если бит М=1, то кадр был принят без контроля адреса, а если бит М=0, то кадр был принят после проверки совпадения поля адреса получателя и адреса станции.
Если внешняя САМ-память используется при сравнении адресов, то следует установить режим без проверки совпадения адресов (promiscuous), установив бит PRO=1, и тогда кадр может быть отброшен, если от САМ-памяти будет выставлен активный сигнал RRJCT во время приема кадра. Если САМ-память используется для хранения адресов, которые должны быть отброшены, а не приняты, то сигнал для на контакте RRJCT для САМ-памяти должен быть инвертирован.
Если сравнение адресов закончилось успешно, то контроллер проверяет бит незанятости Е в слове состояния следующего буфера в таблице RxBD, и если буфер свободен (бит Е=1), то прием данных производится в этот буфер, Если при приеме кадра обнаружена коллизия, то текущий буфер может быть использован для приема нового кадра. Когда буфер заполнен, то контроллер сбрасывает бит Е:= 0 и, если в слове состояния установлен бит прерывания I=1, генерирует запрос на прерывание.
Если длина принимаемого кадра превышает размер буфера приема, то контроллер проверяет не занятость следующего буфера в таблице RxBD и, если буфер не занят, продолжает прием кадра в новый буфер. Максимальная длина приемного буфера задается пользователем в ячейке MRBLR протокол независимой памяти параметров SCC-контроллера. При работе с Ethernet-протоколом рекомендуется в эту ячейку записывать значение не меньше 64 байт.
По окончании приема кадра, когда сигнал несущей станет пассивным, подсчитывается контрольная сумма принятого кадра и кадр сохраняется в буфере.
При приеме кадра Ethernet-контроллер постоянно проверяет длину кадра на максимальное и минимальное значение. Максимальная длина кадра данных (или число байт между начальным ограничителем и концом кадра) задается в ячейке MFLR памяти параметров и по стандарту 802.3 она равна 1518 байт. Если получен кадр, длина которого превышает значение MFLR, то излишек кадра отбрасывается, а 1518 байт кадра записываются в буфер. В слове состояния последнего буфера устанавливается бит LG:= 1 (LonG). При этом длина кадра, записанная в ячейку длины последнего буферного дескриптора, является длиной реально принятого кадра. Специальный вычитающий счетчик в ячейке DMACNT контролирует, сколько байт кадра передано в буфер памяти. Минимальная длина кадра данных задается в ячейке MINFLR памяти параметров, и по стандарту 802.3 она равна 64 байтам. Если получен кадр, длина которого меньше значения MINFLR и бит RCH=0 в регистре режима PSMR, то этот кадр отбрасывается и в слове состояния последнего буферного дескриптора текущего кадра устанавливается бит SH:=1 (SHort), если же бит RCH=1, то кадр будет принят.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.