Андрей Лебедев, руководитель группы по развитию бизнеса
Введение
Основные преимущества микросхем Ethernet производства фирмы Micrel (www.micrel.com) — это доступность самих микросхем и документации по ним, а также простота использования. Российские производители аппаратуры с Ethernet многократно заявляют, что под маркой Micrel они получают ожидаемый необходимый набор функций за небольшие деньги.
Отличие коммутаторов Micrel от микросхем конкурентов — это встроенные трансиверы физического уровня (PHY). Такие интегрированные коммутаторы упрощают разработку и экономят место на печатной плате, так как нет необходимости соединять каждый трансивер с коммутатором (8…15 линий), проводить линии тактирования с внешнего генератора на трансивер. На рис. 1 показана блок-схема микросхемы коммутатора KSZ8999, на рис. 2 — внешний вид.
Рис. 1. Блок-схема микросхемы коммутатора KSZ8999 со встроенными трансиверами PHY
Рис. 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
Обратите внимание: при подключении шины MRXD[3:0] с её встроенными pull-up резисторами к шине MTXD[3:0] с pull-down резисторами получается неопределённый логический уровень, ближе к низкому уровню.
В связи с этим требуется добавить внешние подтягивающие резисторы номиналом 1 кОм (по одному на каждую из четырёх линий), итого — восемь резисторов (в обе стороны).
Как проверить?
Испытать 16-портовый коммутатор на двух микросхемах KSZ8999I можно, например, соединив две отладочные платы KSZ8999-EVAL (рис. 4).
Рис. 4. Отладка 16-портового коммутатора на двух платах KSZ8999-EVAL
Необходимо задать одинаковую конфигурацию KSZ8999I на обеих платах, за исключением противоположных режимов девятого порта — Forward MII и Reverse MII. Затем нужно соединить контакты разъёмов MII с учётом вышеуказанных рекомендаций. Далее разработчику остаётся обеспечить питание обеих плат и подключить абонентов. 16-портовый коммутатор 10/100 готов!
Заключение
В статье приведён пример несложной и недорогой разработки коммутатора Ethernet 10/100 на микросхемах KSZ8999I. Основные преимущества такой разработки — во-первых, доступность (как компонентов на складе российского дистрибьютора, так и документации по ним), а во-вторых, невысокая стоимость таких компонентов. Плюс ко всему, встроенные трансиверы PHY упрощают разработку изделий и экономят место на плате.
Список документов
- Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. — СПб.: Питер
- Внутриприборный интерфейс на микросхемах фирмы Micrel. Каршенбойм И. Г. Компоненты и Технологии 5 '2009.
- Варианты организации Ethernet. href="/www.eltech.spb.ru/micrel_ethernet.html
- Подключение трансивера Fast Ethernet к медному кабелю. href="/www.eltech.spb.ru/micrel_ethernet.html?id=10
- Интерфейс MII. href="/www.eltech.spb.ru/micrel_ethernet.html?id=11
- Общие рекомендации по размещению компонентов и дизайну PCB для устройств с Ethernet 10/100 PHY. href="/www.eltech.spb.ru/micrel_ethernet.html?id=20
- Пример программирования контроллера, предоставленный фирмой «Метротек». href="/www.eltech.spb.ru/micrel_ethernet.html?id=19
- KS8999 Datasheet. href="/www.micrel.com/_PDF/Ethernet/datasheets/ks8999.pdf