Процесс передачи сообщения 5 страница

Содержимое регистра данных MII_DATA представляет собой кадр управления МП-интерфейса. В битах ST (Start of Frame Delimiter) указывается начальный ограничитель кадра управления (для корректного кадра указывается формат заполнителя ST := 01). В битах OP (Operation Code) указывается направление передачи данных (ОР = 10 чте­ние, ОР = 01 запись).Биты РА содержат адрес внешнего PHY-устройства, с которым производится обмен данными.

Процесс передачи сообщения 5 страница - student2.ru

Процесс передачи сообщения 5 страница - student2.ru

Контроллер МРС860Т может поддерживать до 32 вне­шних подключенных PHY-устройств. Биты RA определяют один из 32 регистров внутри PHY-устройства, с содержимым которого будут производиться действия. Биты ТА (Turn Around) задают режим инвертирования информации, для нормальной работы требуется за­писать в эти биты ТА := 10. Поле DATA содержит сами данные, которые необходимо записать или прочитать в/из указанного регистра. Все рекомендованные значения полей ST, ОР и ТА соответствуют требованиям стандарта 802.3.

Регистр MII_SPEED (рис. 5.138) используется для контроля тактовой частоты, кото­рая поступает на вывод MDC (МИ Clock). Появление тактовой частоты на этом выводе позволяет начать передачу/прием преамбулы и остального кадра данных.

Стандарт МИ позволяет «опускать» передачу преамбулы, если PHY-устройство этого не требует. Если установлен бит DIS_PREAMBLE = 1, то при обмене будет выдаваться преамбула из 32 «единиц». Если бит равен нулю, то преамбула не выдается.

Содержимое поля MII_SPEED определяет частоту тактового сигнала на контакте MDC. MDC-частота вычисляется как [(системная 4acTOTa)/(MII_SPEEDx2)]. Если в поле MII_SPEED = 0, то на контакте MDC будет «логический нуль». Программируемая частота должна быть не более 2,5 МГц, как определено Mil-спецификацией IEEE.

Формат буферного дескриптора FEC-контроллера. Для обеспечения более гибко­го управления буферы данных FEC-контроллера и связанные с ними буферные дескрип­торы расположены во внешней памяти. Буферные дескрипторы FEC-контроллера так же, как и буферные дескрипторы других коммуникационных каналов, организованы в таблицу и имеют аналогичный формат, который состоит из четырех слов. Последний дескриптор в таблице имеет в слове состояния установленный бит W = 1 (Wrap).

Готовность буфера передачи и приема к обмену контролируется по состоянию бита готовности R = 1 (Ready) и бита незанятости Е = 1 (Empty) в слове состояния дескрипто­ра. Дополнительно программное обеспечение устанавливает биты X_DES_ACTIVE и R_DES_ACTIVE в одноименных регистрах, чтобы уведомить FEC-контроллер, что дан­ные для передачи в буферах подготовлены или буферы для приема освобождены. Пос­ле окончания работы с буфером аппаратное обеспечение сбрасывает биты R и Е, чтобы пользователь мог начать обработку их содержимого.

Буферный дескриптор приема. Формат слова состояния дескриптора приема при­веден на рис. 5.139.

Бит пустого буфера Е (Empty) устанавливается в «1» пользователем после того, как он обработал данные из этого буфера, и буфер можно использовать для приема новых данных. Бит Е := 0 записывает слово состояния FEC-контроллера после заполнения бу­фера данными из сети.

Биты RO1 и RO2 (Receive Software Ownership) предназначены только для программ­ного обеспечения пользователя и не взаимодействуют с аппаратурой.

Бит последнего буфера W (Wrap), равный единице, сообщает FEC-контроллеру, что текущий буфер - это последний буфер в таблице и после его обработки необходимо переходить для работы к первому буферу BD в таблице буферных дескрипторов

Процесс передачи сообщения 5 страница - student2.ru

Бит последнего буфера 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) после передачи всех данных из этого буфера.

Биты ТО1 и ТО2 (Transmit Software Ownership) предназначены только для программ­ного обеспечения пользователя и не взаимодействуют с аппаратурой.

Бит последнего буфера W (Wrap), равный «1», сообщает FEC-контроллеру, что теку­щий буфер -это последний буфер в таблице и после его обработки необходимо перехо­дить для работы к первому буферу BD в таблице буферных дескрипторов.

Бит последнего буфера L (Last) используется в протоколах, где кадр данных может занимать несколько буферов, для указания последнего буфера кадра (если бит L = 1).

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит ТС=1 (Тх CRC), то при передаче вычисляется контрольная сумма содержимого кадра и она пере­дается после последнего байта кадра. Если бит ТС = 0, то передача заканчивается сразу после передачи последнего байта кадра.

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит DEF = 1 (Defer Indication), то контроллер должен задержаться перед передачей кадра. Этот бит не устанавливается, если при передаче обнаружена коллизия.

Процесс передачи сообщения 5 страница - student2.ru

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит НВ = 1 (Heartbeat Error), то при процедуре тестирования аппаратура не выставила активный сигнал на линию «коллизия», т. е. произошел сбой в работе аппаратуры. Этот бит уста­навливается, только если в регистре состояния X_CNTRL установлен бит НВС = 1.

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит LC = 1 (Lata Collision), то обнаружена ошибка «поздняя коллизия», которая регистрируется пос­ле корректной передачи более чем 56 байт кадра (размер окна коллизий), и контроллер прервал передачу.

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит RL = 1 (Retransmission Limit), то контроллер превысил установленный предел числа повторных попыток выхода в сеть из-за коллизий. Текущее число повторных попыток выхода в сеть регистрируется в битах RC (Retry Count).

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит незапол­нения буфера UN (Underrun), равный «1», то регистрируется ошибка, которая возникает при передаче кадра данных, занимающего несколько буферов, когда передатчик пере­дал всю информацию из буфера FIFO, а новые данные для передачи еще не поступили по каналамSDMA. Передача кадра останавливается, и к нему добавляется некоррект­ная контрольная сумма.

Если в слове состояния последнего буфера кадра (бит L = 1) установлен бит CSL (Carrier Sence Lost), то при передаче кадра была обнаружена потеря несущей частоты, т. е. нарушена кодировка данных (например, манчестерское кодирование), но коллизия не обнаружена.

Наши рекомендации