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

Андрей Лебедев, руководитель группы по развитию бизнеса

Введение

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

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

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

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

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

Рис. 2. Внешний вид микросхемы 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 °С, так и с расширенным от -40 до +85 °С (наименование KSZ8999I).

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

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

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

Девятый порт может работать в режиме 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].

Таблица 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 кОм, притягивающий к низкому уровню

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

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

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

В связи с этим требуется добавить внешние подтягивающие резисторы номиналом 1 кОм (по одному на каждую из четырёх линий), итого — восемь резисторов (в обе стороны).

Как проверить?

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

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

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

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

Заключение

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

Список документов

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