16‑портовый промышленный коммутатор Ethernet 10/100 на двух микросхемах Micrel KSZ8999

№ 2’2012
Когда возникает задача сделать собственный Ethernet-коммутатор в промышленном исполнении, разработчик начинает с поиска необходимых микросхем с расширенным температурным диапазоном. На начальном этапе нередко встает проблема: как достать небольшое количество компонентов для сборки макетов? Кроме того, производитель микросхемы может выставить ряд условий для предоставления документации. В результате разработчику трудно получить желаемый компонент и начать с ним работать. В статье дан пример разработки 16‑портового Ethernet-коммутатора 10/100 на двух микросхемах коммутаторов KSZ8999I фирмы Micrel.

Введение

Основные преимущества микросхем Ethernet производства фирмы Micrel (www.micrel.com) — это доступность самих микросхем и документации по ним, а также простота использования. Российские производители аппаратуры с Ethernet неоднократно заявляли, что, используя изделия под маркой Micrel, они получают ожидаемый необходимый набор функций за небольшие деньги.

Отличие коммутаторов Micrel от микросхем конкурентов — это встроенные трансиверы физического уровня (PHY). Такие интегрированные коммутаторы упрощают разработку и экономят место на печатной плате, так как нет необходимости соединять каждый трансивер с коммутатором (8–15 линий) и проводить линии тактирования с внешнего генератора на трансивер. На рис. 1 показана блок-схема коммутатора KSZ8999, а на рис. 2 — внешний вид этой микросхемы.

Блок-схема коммутатора KSZ8999 со встроенными трансиверами PHY

Рис. 1. Блок-схема коммутатора KSZ8999 со встроенными трансиверами PHY

Внешний вид микросхемы KSZ8999I

Рис. 2. Внешний вид микросхемы KSZ8999I

О микросхеме KSZ8999I

Микросхема KSZ8999I представляет собой неуправляемый 9-портовый коммутатор Ethernet 10/100. В арсенале разработчика — 8 портов со встроенными трансиверами PHY и блоками MAC (Media Access Control) плюс дополнительный 9-й порт MAC для связи с внешним MAC-устройством или трансивером.

Коммутатор необходимо конфигурировать каждый раз после сброса питания. Это делается следующими способами. Конфигурация считывается из внешнего ПЗУ или записывается процессором по двум проводам (сигналы данных и тактирования). Также можно некоторые режимы работы задавать аппаратно, подключая соответствующие выводы микросхемы к «земле» или к плюсу через резисторы. При снятии сигнала «сброс» микросхема определит, как к ней подключены резисторы, и эти значения автоматически запишутся во внутренние регистры управления.

При конфигурировании разработчик может задать следующие параметры работы порта:

  • Скорость каждого порта — 100 или 10 Мбит/с.
  • Дуплексный или полудуплексный режим каждого порта.
  • Число коллизий до отбраковки пакета.

А также:

  • ограничить число широковещательных пакетов;
  • отключить автоматическое согласование (Auto-negotiation) на каждом порту;
  • отключить механизм обратного давления в полудуплексном режиме;
  • отключить управление потоком данных;
  • отключить обновление таблицы MAC-адресов.

После конфигурации неуправляемый коммутатор делает всю работу сам. Вначале, когда сервер опрашивает всех абонентов сети, адреса абонентов и номера портов фиксируются в таблице МАС-адресов коммутатора. Далее таблица адресов периодически обновляется.

Работающий коммутатор получает пакет и передает его на другие порты. Пакет отбрасывается, если адрес назначения пакета не совпадает с адресами абонентов на конкретном порту. Широковещательные пакеты пропускаются всеми портами, кроме порта, откуда пришел пакет. При этом коммутатор проверяет и отбрасывает все «битые» пакеты.

После обнаружения коллизии коммутатор прекращает передачу и ожидает в течение короткого случайного интервала времени, а затем делает попытку передачи кадра. Разработчик имеет возможность увеличить длительность этого интервала с помощью параметра “back-off aggressiveness”.

Кроме того, в полудуплексном режиме микросхема применяет механизм обратного давления: в линию отправляется преамбула кадра Ethernet, и тем самым коммутатор «арендует» линию для себя на некоторое время. Опционально KSZ8999I может отбрасывать пакет при обнаружении коллизии 16 раз подряд.

Для защиты от широковещательного «шторма» микросхема KSZ8999I временно перестает рассылать пакеты для всех, если их количество за определенный промежуток времени занимает 5% от выбранной пропускной способности.

В коммутатор заложен ряд дополнительных функций:

  • генерация импульсов 125, 62,5, 25 или 10 МГц для стробирования данных;
  • автоматическое отключение внутренней схемы отдельного порта при отсоединении кабеля;
  • автоматическое согласование параметров сети (Auto-negotiation);
  • автоматическое определение прямого или перекрестного кабеля.

Восемь портов коммутатора могут работать по медному кабелю (10BASE-T, 100BASE-TX) или по оптическому волокну (100BASE-FX).

KSZ8999I поддерживает три системы приоритетов для обеспечения качества обслуживания (QoS). К примеру, разработчик может задать более высокий приоритет для пакетов с определенным адресом отправителя или адресом назначения.

Еще одна «способность» коммутатора — поддержка виртуальных локальных сетей VLAN (802.1q). С помощью конфигурации можно назначить VLAN определенным портам KSZ8999I, назначить приоритет по стандарту 802.1p.

Микросхема KSZ8999 выпускается в корпусе PQFP-208. Доступна версия как с коммерческим температурным диапазоном от 0 до +70 °C, так и с расширенным — от –40 до +85 °C (наименование такой микросхемы — KSZ8999I).

Потребляемая мощность чипа в режиме 100BASE-TX — 1,8 Вт (удельная мощность — 0,2 Вт на порт), напряжение питания — от 2 до 2,3 В.

Два режима 9-го порта KSZ8999I

Объединение двух коммутаторов KSZ8999I осуществляется по их девятому порту через интерфейс MII (Media Independent Interface). Стоит напомнить, что MII состоит из интерфейса данных и интерфейса управления. Для приема и передачи данных предусмотрены отдельные параллельные 4-битные шины — RXD [3…0] и TXD [3…0]. Все операции выполняются в синхронном режиме: передача ведется под отрицательные фронты импульсов синхронизации, а прием — под положительные фронты. Тактируются они сигналами TXC и RXC соответственно. Частота синхронизации — 25 МГц для операций 100 Мбит/c [25].

Девятый порт может работать в режиме MAC и в режиме PHY (соответственно режимы Forward MII и Reverse MII). В первом случае коммутатор предполагает присоединенное внешнее PHY-устройство (внешний трансивер), во втором — внешний MAC (например, процессор с MAC). Не лишним будет указать правильное подключение сигналов MII в этих двух режимах для нашего коммутатора и внешнего устройства. В таблице 1 приведены сигналы, когда девятый порт установлен в режим PHY, а в таблице 2 — когда девятый порт находится в MAC-режиме.

Таблица 1. Соединение 9-го порта PHY KSZ8999I и внешнего MAC

Сигналы MII 9-го порта KSZ8999I Сигналы MII внешнего MAC Описание
MTXEN MTXEN Разрешение передачи
MTXER MTXER Ошибка передачи
MTXD[3] MTXD3 Передача бит 3
MTXD[2] MTXD2 Передача бит 2
MTXD[1] MTXD1 Передача бит 1
MTXD[0] MTXD0 Передача бит 0
MTXC MTXC Синхронизация передачи
MCOL MCOL Обнаружение коллизии
MCRS MCRS Опрос несущей
MRXDV MRXDV Достоверный принятый пакет
Не исп. MRXER Ошибка приема
MRXD[3] MRXD3 Прием бит 3
MRXD[2] MRXD2 Прием бит 2
MRXD[1] MRXD1 Прием бит 1
MRXD[0] MRXD0 Прием бит 0
MRXC MRXC Синхронизация приема

Таблица 2. Соединение 9-го порта MAC KSZ8999I и внешнего PHY

Сигналы MII 9-го порта KSZ8999I Сигналы MII внешнего PHY Описание
MRXDV MTXEN Разрешение передачи
Не исп. MTXER Ошибка передачи
MRXD[3] MTXD3 Передача бит 3
MRXD[2] MTXD2 Передача бит 2
MRXD[1] MTXD1 Передача бит 1
MRXD[0] MTXD0 Передача бит 0
MTXC MTXC Синхронизация передачи
MCOL MCOL Обнаружение коллизии
MCRS MCRS Опрос несущей
MTXEN MRXDV Достоверный принятый пакет
MTXER MRXER Ошибка приема
MTXD[3] MRXD3 Прием бит 3
MTXD[2] MRXD2 Прием бит 2
MTXD[1] MRXD1 Прием бит 1
MTXD[0] MRXD0 Прием бит 0
MRXC MRXC Синхронизация приема

Стоит отметить следующие моменты относительно сигналов MII у коммутаторов:

  • В режиме PHY сигналы MTXC и MRXC — выходные, а в режиме MAC они входные.
  • Сигналы данных из одного коммутатора в другой передаются совместно с сигналами стробирования, поэтому не нужно тактировать прием и передачу.
  • Выходной сигнал MRXER не используется, потому что коммутатор отбрасывает все «битые» пакеты.
  • MTXC и MRXC, MCOL, MCRS — это всегда сигналы, поступающие от PHY к MAC.

Объединение двух KSZ8999I

Для объединения двух коммутаторов по MII рекомендуется задать одинаковую конфигурацию. Для удобства в таблице 3 указаны необходимые контакты микросхемы и уровни напряжения. На рис. 3 показана схема соединения по MII. Номера, названия, тип и назначение контактов перечислены в документации на KSZ8999I [8].

Соединение контактов интерфейса MII двух KSZ8999I

Рис. 3. Соединение контактов интерфейса MII двух KSZ8999I

Таблица 3. Конфигурация контактов KSZ8999I для соединения по MII

Номер контакта Название контакта Тип контакта Номер порта Функция при программировании Функция при работе
120 MRXD[3] Opu 9 Задает скорость передачи 9-го порта: 1kpu = 100 Мбит/с MII, прием бит 3
121 MRXD[2] Opu 9 Задает дуплексный режим 9-го порта: 1kpu = дуплексный MII, прием бит 2
122 MRXD[1] Opu 9 Управление потоком: 1kpd = есть MII, прием бит 1
123 MRXD[0] Opu 9 1kpu = нормальный MII, прием бит 0
141 LED[6][3] Ipu/O 6 Задает агрессивность обратного давления: 1kpd = менее агрессивное LED индикатор 3
142 LED[6][2] Ipu/O 6 Задает число коллизий до отброса пакета: 1kpd = отбросить пакет после 16 коллизий LED индикатор 2
162 MIIS[1] Ipd 9 Выбор режима порта:
MIIS [1:0]
0 1 = Reverse MII
1 0 = Forward MII
Режим MII бит 1
163 MIIS[0] Ipd 9 Режим MII бит 0

Примечание. Opu — выходной контакт со встроенным притягиванием к высокому уровню. Ipu/O — входной контакт со встроенным притягиванием к высокому уровню во время сброса, иначе — выходной контакт. Ipd — входной контакт со встроенным притягиванием к низкому уровню. 1kpu — резистор 1 кОм, притягивающий к высокому уровню. 1kpd — резистор 1 кОм, притягивающий к низкому уровню.

Обратите внимание, что при подключении шины MRXD [3:0] с ее встроенными pull-up резисторами к шине MTXD [3:0] с pull-down резисторами получается неопределенный логический уровень (ближе к низкому уровню). В связи с этим нужно добавить внешние подтягивающие резисторы номиналом 1 кОм — по одному на каждую из четырех линий, итого — восемь резисторов (в обе стороны).

Как проверить? Испытать 16-портовый коммутатор на двух микросхемах KSZ8999I можно, например, соединив две отладочные платы KSZ8999-EVAL (рис. 4).

Отладка 16-портового коммутатора

Рис. 4. Отладка 16-портового коммутатора на двух платах KSZ8999-EVAL

Необходимо задать одинаковую конфигурацию KSZ8999I на обеих платах, за исключением противоположных режимов девятого порта — Forward MII и Reverse MII. Затем нужно соединить контакты разъемов MII с учетом вышеуказанных рекомендаций. Далее разработчику остается обеспечить питание обеих плат и подключить абонентов. 16-портовый коммутатор 10/100 готов!

Заключение

В статье приведен пример несложной и недорогой разработки коммутатора Ethernet 10/100 на микросхемах KSZ8999I. Основные преимущества такой разработки — во-первых, доступность (как компонентов на складе российского дистрибьютора, так и документации по ним), а во-вторых, невысокая стоимость таких компонентов. Плюс ко всему встроенные трансиверы PHY упрощают разработку изделий и экономят место на плате.

Литература

  1. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. СПб.: Питер, 2006.
  2. Каршенбойм И. Г. Внутриприборный интерфейс на микросхемах фирмы Micrel // Компоненты и технологии. 2009. № 5.
  3. Варианты организации Ethernet — http://www.eltech.spb.ru/micrel_ethernet.html
  4. Подключение трансивера Fast Ethernet к медному кабелю — http://www.eltech.spb.ru/micrel_ethernet.html?id=10
  5. Интерфейс MII — http://www.eltech.spb.ru/micrel_ethernet.html?id=11
  6. Общие рекомендации по размещению компонентов и дизайну PCB для устройств с Ethernet 10/100 PHY — http://www.eltech.spb.ru/micrel_ethernet.html?id=20
  7. Пример программирования контроллера, предоставленный фирмой «Метротек», — http://www.eltech.spb.ru/micrel_ethernet.html?id=19
  8. KS8999 Datasheet — http://www.micrel.com/_PDF/Ethernet/datasheets/ks8999.pdf

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *