Инициализация коммутатора (рис. 5а):
1. Отключение привязки на портах 1 и 2 каждого коммутатора (Port Control Reg2.0 = 1).
2. Конфигурирование статичной таблицы MAC-адресов для пересылки пакетов, имеющих MAC-адрес получателя, равный MAC процессора на 3‑й порт.
3. Включение функции пересылки пакетов с неизвестным MAC-адресом (Reg14.7 = 1 и Reg14.2-0 = 011).
4. Отключение приема пакетов 2‑м портом (Port 1 Control Reg2.1 = 0).
5. Включение функции Link Interrupt (Reg187.1:0 = 1,1).
Переключение канала (рис. 5б):
I. Детектирование неисправности:
1. Весь трафик приходит на 1‑й порт, то есть проходит по часовой стрелке.
2. Связь между 1‑м и 2‑м коммутаторами рвется.
3. Коммутаторы 1 и 2 генерируют прерывание, запуск переключения.
II. Процедура переключения:
1. Чтение регистра прерывания (регистр 188).
2. Если обрыв связи на 1‑м порте, то необходимо послать широковещательное сообщение с целью уведомить все коммутаторы включить прием на 2‑м порте. Включить прием на 2‑м порте (Port 1 Control Reg2.1 =1). Записать 0xff в регистр 188 (очистить прерывания).
3. Если обрыв на 2‑м порте, нужно проигнорировать широковещательное сообщение о включении на нем приема и запустить диагностику неполадки.
Коммутаторы KSZ8863/73 имеют встроенную функцию диагностики LinkMD, которая может быть использована для определения и локализации проблемы — в данном примере коммутатором 1 [4, 5].
После того как проблема исправлена на линии, возникнет сигнал прерывания, который будет означать изменение статуса, то есть связь восстановлена. Необходимо считать регистр прерывания (Reg 188) и, если связь на 1 порте налажена, отправить широковещательное сообщение с командой выключения приема пакетов 2 портом.
Можно рассчитать задержку переключения:
ТΣ = Tпрерывания + Тчтение прерывания +Тшироковещ сообщения + Tвкл прием 2 порта,
где
Tпрерывания = 100 мкс (приблизительно, для этого примера);
Тчтение прерывания = 4,8 мкс при 5 МГц SPI (запись одного регистра = 3 байта при 5 МГц);
Тшироковещ сообщения = (n–1)7,7 мкс. Задержка от передачи коммутатором 2 до приема коммутатором n–1. Подразумевается 64‑байтный пакет.
Следовательно, нетрудно подсчитать суммарную задержку:
ТΣ = 100 мкс + 4,8 мкс + +(n–1)7,7 мкс + 4,8 мкс.
Для кольца из 16 узлов задержка составит примерно 225 мкс.
ЗаключениеКольцевая топология широко распространена в промышленных сетях передачи данных, однако строго запрещена в сети Ethernet, поскольку пакеты данных в ней будут бесконечно циркулировать по кругу, быстро сводя пропускную способность канала к нулю. Сложные высокоуровневые протоколы, такие как STP, могут быть использованы для кольцевой топологии и обеспечения резервирования, однако сложность и цена подобного подхода достаточно высока. В статье показан альтернативный, простой и более дешевый способ реализации
резервирования при помощи встроенной в коммутаторы KSZ8863 и KSZ8873 функции фильтрации пакетов по адресу отправителя.
Литература1. Ткаченко В. А., Касилов О. В., Рябик В. А. Компьютерные сети и телекоммуникации. Харьков, 2011.
2.
Understanding Rapid Spanning Tree Protocol (802.1w).
3. Micrel AN 109 — Unmanaged Ethernet Redundant Ring. www.microchip.com/
4.
Техническая документация KSZ8863.
5.
Техническая документация.