Микросхема 1923КХ028 представляет 16 – портовый коммутатор сетей протокола IEEE 802.3 Ethernet 10/100/1000 Мбит/с. Коммутатор предназначен для использования в устройствах локальной вычислительной сети для обеспечения коммутации оконечных устройств внутри сети на основе MAC адресов. Компания «Миландр» разработала демонстрационную плату «Evaluation Board for IC 1923KX028» для ознакомления с микросхемой 1923КХ028, а также исследования её работы. Основные начальные настройки для работы с платой представлены в документе «Quick Start 1923KX028». Мы же в данной статьей попробуем чуть расшить предоставленную документацию, а также соединить компьютеры в одну сеть с помощью данной платы и проверить соединение с помощью «Ping» запроса.
Режимы работы на плате устанавливаются с помощью переключателя SA2, который в свою очередь задает логическое состояние («0» или «1») на выводах MODE в соответствии:
1) MODE [3:0] = 0000 Режим управляемого коммутатора (SWITCH). Доступ по интерфейсу SPI-slave к регистрам PCI-E, регистрам SGMII.
2) MODE [3:0] = 0001 Режим управляемого коммутатора (SWITCH). Конфигурация 1923КХ028 по интерфейсу SPI-master из внешней памяти микросхемы Flash-памяти.
3) MODE [3:0] = 0010 Управляемого коммутатора (SWITCH). Доступ по интерфейсу SPI-slave к регистрам PCI-E, регистрам SGMII, регистрам ядра коммутатора.
4) MODE [3:0] = 0110 Режим неуправляемого коммутатора (HUB).
Остальные комбинации на выводах MODE зарезервированы. Протестируем плату в 3-х режимах, игнорируя режим 0001, поскольку на плате, которая оказалась в нашем распоряжении, микросхема памяти отсутствовала.
Прежде чем приступить к работе с платой, выполним настройку сетевых карт компьютеров, которые будем подключать к плате. Присвоим статические IP адреса компьютерам, чтобы они находились в одной подсети. Например, приведу настройки, которые использовали мы:
На данный момент для работы с отладочной платой для 1923КХ028 на всех подключаемых ПК должен быть выключен режим энергосберегающего Ethernet, который в ряде сетевых карт включен по умолчанию. Режим "Энергосберегающий Ethernet" может по-разному называться в зависимости от производителя сетевой карты, официальное название данного режима - Energy-Efficient Ethernet (EEE). Выключить данный режим можно в настройках сетевой карты:
В таком режиме реализуется архитектура сложной системы на базе 1923КХ028. HOST-процессор осуществляет по PCI-E управление и выполняет настройку микросхемы. Соответственно, для управления работой платы предусмотрен драйвер, разработанный для ОС Linux. Здесь необходимо внимательно ознакомиться с документом «Quick Start 1923KX028», чтобы выполнить установку драйвера и подготовить плату к работе. После того, как мы подготовили плату к работе, о чём свидетельствуют моргающие диоды на портах коммутатора, подключим наши ПК к плате.
После подключения компьютеров к соответствующим портам платы коммутатора, их MAC-адреса автоматически заносятся в таблицу коммутации. Чтобы убедиться в этом, откроем файл show, расположенный в директории /proc/basis/hash_tables/mac (о взаимодействии платы с файловой системой Linux подробно указано в «Quick Start 1923KX028»), и убедимся в этом:
При желании, записи в таблицу можно добавить с помощью файла «add» вручную. А удалить - с помощью файла «delete». Теперь можно открыть командную строку на одном компьютере и «запинговать» другой:
Чтобы узнать MAC-адреса компьютеров, можно ввести в командной строке:
ipconfig –all
Эти адреса можно сравнить с теми, что записались в MAC-таблицу коммутатора, и посмотреть, к какому порту подключён тот или иной ПК.
Настройку платы необходимо опять выполнить внимательно, следуя «Quick Start 1923KX028». Теперь у нас выставлен другой режим. В нём не требуется HOST-процессор, а инициализация и настройка микросхемы коммутатора осуществляются с помощью МК, установленного на плате. С помощью разъёма microUSB плата соединяется с компьютером, с которого будет отправлять команды для коммутатора. Эти команды отправляются на МК по UART, а тот в свою очередь осуществляет управление 1923КХ028 по SPI.
Подключаем несколько ПК по ethernet к плате. Для управления коммутатором подключаем один ПК к плате по microUSB и открываем любую терминальную программу (в данном случае использовалась программа Terminal v1.9b).
Настройки соединения и список команд для терминала приведён в «Quick Start 1923KX028». При использовании программы Putty команды можно вводить в явном виде, в Terminal – необходимо после команды добавить «$0A».
Например, команда справки:
help $0A
Добавим MAC-адреса подключенных к портам на плате ПК в таблицу коммутации. MAC – адреса можно узнать с помощью ipconfig –all, как было отмечено выше.
mac_table_add 1C:1B:0D:49:E2:09 1 0 7 0 $0A mac_table_add 7C:D3:0A:32:3A:30 1 0 3 0 $0A
Затем проверим добавленные нами записи командой:
mac_table_show $0A
Теперь можно смело посылать ping с одного из компьютеров и наблюдать ожидаемый результат.
Данный режим не описан в «Quick Start 1923KX028». Здесь всё просто. Единственное изменение, которое необходимо внести в конфигурацию платы – изменить переключать SA2 и выставить соответствующий режим (0110). Теперь включаем плату соединяем с компьютерами. Микросхема начинает работать как HUB, при этом скорость обмена задана 1 Гбит/c .
В неуправляемом режиме с помощью 1923КХ028 микроконтроллер настраивает Ethernet PHY трансиверы. Поскольку в этом режиме скорость строго должна быть равна 1 Гбит/с, то в настройках сетевых карт компьютеров необходимо убедиться, что выставлена именно эта скорость или режим Автосогласования.
Теперь можно «пинговать» компьютеры.