- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коэффициент внутреннего увеличения частоты
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Режимы использования контактов
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Типы пакетов подтверждений
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Память основных параметров usb-контроллера
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3. Поддержка протоколов в коммуникационных контроллерах
- •Выбор источника тактирования канала
- •Режимы работы tdm-каналов
- •Режимы работы блока tsa
- •Характеристики временных каналов
- •Назначение сигналов idl-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации приемника
- •Назначение сигналов gci-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации
- •Поддержка протоколов в коммуникационных контроллерах
- •Типы сообщений м-канала для s/t-трансивера мс145574
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Память общих параметров всех логических каналов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •3 4 6 7 Рис. 5.100. Регистр событий scce и
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Конфигурации контроллеров мрс860мн
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Использование дробных стоп-битов
- •Тип контроля в сети
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Размер синхросимволов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Команды u-кадров
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3.5. Доступ к сетям ethernet
- •Коммуникационные микроконтроллеры и системы на их основе
- •Значения задержек при приеме кадра
- •Поддержка протоколов в коммуникационных контроллерах
Значения задержек при приеме кадра
Бит NIB |
Задержка, бит |
Бит NIB |
Задержка, бит |
000 |
13 |
100 |
21 |
001 |
14 |
101 |
22 |
010 |
15 |
110 |
23 |
011 |
16 |
111 |
24 |
628
Поддержка протоколов в коммуникационных контроллерах
При приеме нового кадра вначале проверяется бит I/G (Individual/Group) в поле адреса приемника. Если это индивидуальный адрес (бит I/G = 0), то, проверяя физический адрес, контроллер сравнивает его с единственным адресом, указанным в 48-битной ячейке PADDR1 памяти параметров, если бит IAM = 0 в регистре PSMR. Если же бит IAM = 1, то специальная хэш-таблица индивидуальных адресов в ячейках IADDR1-IADDR4 используется для сравнения и распознавания группового адреса.
Если это групповой адрес (бит I/G = 1), то вначале контроллер проверяет, является ли адрес широковещательным. Широковещательный адрес представляет собой код, состоящий только из единицы. Если прием широковещательных адресов разрешен (бит BRO = О в регистре PSMR), то кадр принимается. Если же бит BRO = 1, то все кадры с широковещательными адресами отбрасываются, даже если установлен бит PRO = 1.
Если сравнение адреса прошло успешно, то начинается прием кадра, независимо от значения сигнала на контакте RRJCT (Reject). Если это групповой, но не широковещательный адрес, то производится сравнение адреса с использованием хэш-таблицы групповых адресов в ячейках GADDR1-GADDR4.
Если проверка адреса прошла неудачно и в регистре режима PSMR установлен бит PRO = 0, т. е. проверка адреса должна была выполняться для всех кадров, то кадр отбрасывается. Если же бит PRO = 1, то кадры принимаются без проверки адреса, если сигнал на контакте RRJCT пассивный, и отбрасываются, если сигнал RRJCT активный. При этом в слове состояния последнего буфера приема кадра устанавливается бит признака М (Miss). Если бит М = 1, то кадр был принят без контроля адреса, а если бит М = 0, то кадр был принят после проверки совпадения поля адреса получателя и адреса станции.
Если внешняя САМ-память используется при сравнении адресов, то следует установить режим без проверки совпадения адресов (promiscuous), установив бит PRO = 1, и тогда кадр может быть отброшен, если от САМ-памяти будет выставлен активный сигнал rrjct во время приема кадра. Если САМ-память используется для хранения адресов, которые должны быть отброшены, а не приняты, то сигнал на контакте rrjct для САМ-памяти должен быть инвертирован.
Если сравнение адресов закончилось успешно, то контроллер проверяет бит незанятости Е в слове состояния следующего буфера в таблице RxBD, и если буфер свободен (бит Е = 1), то прием данных производится в этот буфер. Если при приеме кадра обнаружена коллизия, то текущий буфер может быть использован для приема нового кадра. Когда буфер заполнен, то контроллер сбрасывает бит Е := 0 и, если в слове состояния установлен бит прерывания 1 = 1, генерирует запрос на прерывание.
Если длина принимаемого кадра превышает размер буфера приема, то контроллер проверяет незанятость следующего буфера в таблице RxBD и, если буфер не занят, продолжает прием кадра в новый буфер. Максимальная длина приемного буфера задается пользователем в ячейке MRBLR протокол-независимой памяти параметров SCC-контрол-лера. При работе с Ethernet-протоколом рекомендуется в эту ячейку записывать значение не меньше 64 байт.
По окончании приема кадра, когда сигнал несущей станет пассивным, подсчитывается контрольная сумма принятого кадра и кадр сохраняется в буфере.
При приеме кадра Ethernet-контроллер постоянно проверяет длину кадра на максимальное и минимальное значение. Максимальная длина кадра данных (или число байт между начальным ограничителем и концом кадра) задается в ячейке MFLR памяти параметров и по стандарту 802,3 она равна 1518 байт. Если получен кадр, длина которого превышает значение MFLR, то излишек кадра отбрасывается, а 1518 байт кадра записываются в буфер. В слове состояния последнего буфера устанавливается бит LG := 1 (LonG). При этом длина кадра, записанная в ячейку длины последнего буферного дескриптора, является длиной реально принятого кадра. Специальный вычитающий счетчик
629
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
в ячейке DMA_CNT контролирует, сколько байт кадра передано в буфер памяти. Минимальная длина кадра данных задается в ячейке MINFLR памяти параметров, и по стандарту 802,3 она равна 64 байтам. Если получен кадр, длина которого меньше значения MINFLR и бит RCH = 0 в регистре режима PSMR, то этот кадр отбрасывается и в слове состояния последнего буферного дескриптора текущего кадра устанавливается бит SH := 1 (SHort), если же бит RCH = 1, то кадр будет принят.
Пользователь может управлять процессом записи байтов кадра в буферы памяти по системной шине. Для этого предназначены ячейки MAXD1, MAXD2. Ячейка MAXD1 используется, если сравнение адресов прошло успешно, а ячейка MAXD2 - в режиме без проверки совпадения адресов (promiscuous mode). Пользователь имеет возможность остановить запись данных в память при передаче установленного в этих ячейках числа байт, и остаток кадра будет отброшен. Затем контроллер дождется окончания приема всего кадра, или пока не будет принято MFLR байт кадра, и заполнит в слове состояния буфера биты статуса принятого кадра и длину реально принятого кадра. Если такая остановка не требуется, то при инициализации в эти ячейки заносится значение 1518 байт. Эти ячейки могут быть использованы для контроля состояния сети, например, для приема только заголовков пакета, содержащих адресное поле, для проверки работающих в сети станций.
После завершения приема кадра, и если бит SIP в регистре PSMR установлен в «1», то байт информации (этот байт называется tag-байт) с контактов 23-16 параллельного порта В будет добавлен в последний буфер кадра. Если эти контакты настроены как выходы, то байт данных читается из регистра PBDAT. Если кадр данных отбрасывается, то и tag-байт тоже отбрасывается. Далее контроллер устанавливает в слове состояния буфера бит последнего буфера L := 1, заполняет биты состояния принятого кадра и сбрасывает бит незанятости Е := 0. Затем контроллер генерирует маскируемое прерывание, которое сообщает процессору, что кадр данных принят и находится в памяти, и переходит к ожиданию приема следующего кадра данных.
Для временного хранения принятой информации каждый Ethernet-контроллер имеет внутренние буферы FIFO. Данные из FIFO по SDMA-каналам под управлением RISC-контроллера начинают передаваться в соответствующие буферы памяти. Если RISC-контроллер не успевает очищать ячейки FIFO для приема новой информации из сети, и в момент прихода новой порции данных все ячейки FIFO окажутся занятыми, то возникает ошибка переполнения буферов overrun. При этом контроллер будет вынужден записать новые данные поверх старых, что приведет к потере информации. Далее текущий буфер закрывается, в его слове состояния устанавливается бит ошибки переполнения OV := 1 и через регистр событий генерируется, если оно разрешено, RXF-прерывание к центральному процессору и увеличивается счетчик потерянных кадров в ячейке DISFC памяти параметров. После вышеуказанных действий контроллер переходит в режим «охоты» и ожидает новый кадр данных.
Если при приеме правильного кадра данных нет свободных буферов в памяти для сохранения информации, то кадр будет потерян. Признаком этой ошибки является установка бита ошибки занятости BSY := 1 в регистре событий Ethernet-контроллера и увеличение счетчика потерянных кадров в ячейке DISFC памяти параметров.
Если Ethernet-контроллер принял кадр данных с длиной, не кратной 8 битам, то вначале он проверяет контрольную сумму кадра, и если будет обнаружена ошибка проверки CRC суммы, то регистрируется ошибка принятия невыравненного кадра, устанавливается бит ошибки NO := 1 в слове состояния BD и увеличивается счетчик принятых, некратных 8, кадров в ячейке ALEC памяти параметров. Если же ошибка проверки CRC не регистрируется, то продолжается обычный прием кадров.
Если при приеме кадра данных контроллер обнаруживает ошибку проверки CRC контрольной суммы, то текущий буфер закрывается, устанавливается бит ошибки CRC := 1
630
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
в его слове состояния, устанавливается бит RXF-прерывания в регистре событий и увеличивается счетчик CRC ошибок в ячейке CRCEC памяти параметров. После приема кадра с ошибкой проверки CRC суммы приемник переходит в режим поиска нового кадра.
Пользователь может также управлять процессом приема кадра при помощи команд ENTER HUNT MODE и INIT RX PARAMETERS. Команда CLOSE RxBD при работе с Ethernet-контроллером не применяется.
Проверка адресов с помощью САМ-памяти. САМ-память (контекстно-адресуемая или ассоциативная память) предназначена для сравнения адресов станции и адреса получателя в пакете. Ethernet-контроллер может подключаться к внешней контекстно-адресуемой САМ-памяти двумя способами: через последовательный интерфейс и/или через системную шину. Для включения того или иного режима пользователь должен просто разрешить работу с определенными внешними контактами и аппаратно подключить внешние схемы блока памяти. Если при работе пользователь отключит выбранные контакты контроллера, то текущи^ кадр может быть потерян.
При работе с внешней САМ-памятью можно также использовать внутреннюю логику выработки сигналов CS блока системной интеграции.
При работе с последовательным интерфейсом после распознавания начального ог раничителя контроллер выставляет сигнал начала приема rstrt = 0 (receive start). Этот сигнал выставляется только на один битовый интервал во время приема второго бита адреса назначения.
Логические схемы САМ-памяти используют комбинацию сигналов RSTRT , RXD, RCLK для записи в память полей кадра и для генерации сигнала «записи» к микросхеме САМ-памяти для начала сравнения адреса. Сигнал RENA от микросхемы EEST может быть использован для прекращения сравнения адресов, если при приеме кадра обнаружено состояние коллизии.
После окончания сравнения адреса кадра и, если текущий кадр должен быть отбро-шен, логика САМ-памяти вырабатывает активный сигнал «отмена приема» RRJC = О (receive reject). Получив этот сигнал, контроллер прекращает прием кадра в системную память, и текущий буфер будет подготовлен для приема нового кадра данных. Поэтому сигнал rrjc должен быть выставлен до момента завершения приема кадра. Если сравнение адресов прошло успешно, то сигнал RRJC не выставляется.
Дополнительно логика САМ-памяти может выставлять дополнительную служебную информацию на линии РВ23-РВ16 параллельного порта В. Этот tag-байт выставляется на линии РВ23-РВ16 не раньше, чем закончится прием кадра без коллизий, и будет сброшен сигнал RENA. Если в регистре режима PSMR Ethernet-контроллера установлен бит SIP = 1, то этот дополнительный байт данных (tag-байт) контроллер сохранит в последнем буфере памяти принятого кадра данных. Tag-байт удерживается на линиях порта В, пока коммуникационный контроллер сигналом на линиях SDACK2 -SDACK1 не подтвердит, что tag-байт записан в память. Длина tag-байта не включается в общую длину принятого кадра, которую контроллер записывает в поле длины последнего буферного дескриптора RxBD.
В режиме параллельного интерфейса во время записи кадра данных в память, т. е. каждый цикл шины данных коммуникационный контроллер выставляет сигналы подтверждения SDMA-доступа SDACK2 -SDACK1 . Отметим, что эти сигналы не используются при работе контроллера канала с другими коммуникационными протоколами. САМ-логика использует эти сигналы для разрешения записи данных в САМ-память одновременно с записью их в системную память контроллера. Преимущество этого способа состоит в том, что запись в САМ-память данных производится по системной шине в параллельном виде.
Сигналы SDACK2 -SDACK1 выставляются в течение всех циклов шины при записи кадра данных в буфер памяти. Одна комбинация сигналов SDACK2 -SDACK1 определя-
631