Moduł sterowania przełącznikiem sieci Ethernet, czyli jak z niezarządzanego switcha zrobić zarządzany - MIKROKONTROLERY - PRZEŁĄCZNIKI ETHERNETOWE - SWITCHE - FTDI - SWITCH ETHERNETOWY - VLAN - EEPROM - SIEĆ ETHERNETOWA - REALTEK
Mouser Electronics Poland   Przedstawicielstwo Handlowe Paweł Rutkowski   Amper.pl sp. z o.o.  

Energetyka, Automatyka przemysłowa, Elektrotechnika

Dodaj firmę Ogłoszenia Poleć znajomemu Dodaj artykuł Newsletter RSS
strona główna ARTYKUŁY Automatyka Moduł sterowania przełącznikiem sieci Ethernet, czyli jak z niezarządzanego switcha zrobić zarządzany
drukuj stronę
poleć znajomemu

Moduł sterowania przełącznikiem sieci Ethernet, czyli jak z niezarządzanego switcha zrobić zarządzany

fot. Układ FT232RL firmy FTDI

W artykule przedstawiono konstrukcję dodatkowego modułu podłączanego do procesora wewnętrznego przełącznika, który umożliwia komunikację i prostą konfigurację urządzenia z poziomu konsoli dowolnego komputera. Opisano zagadnienia związane z działaniem przełącznika. Zaprezentowano moduł, jego konstrukcję, sposób działania i użytkowania menu konsolowego.

W dzisiejszym zinformatyzowanym świecie sieci komputerowe w swojej rozpiętości i zasięgu porównywane są wręcz do sieci energetycznej. Obecnie w budownictwie, zarówno mieszkaniowym jak i biurowym, przyjmuje się, że gniazdko energetyczne nie może istnieć bez gniazdka sieci ethernetowej, umożliwiającego podłączenie do sieci lokalnej lub dalej do sieci internetowej. Przełączniki sieciowe są elementami, bez których sieć logiczna w zasadzie nie może istnieć. Jako podstawowy element sieci logicznej, przełącznik może być zarówno prostym urządzeniem, jak i bardzo rozbudowanym, z możliwością szerokiej konfiguracji.

Choć wydawałoby się, że problem nie istnieje, wybór odpowiedniego przełącznika jest niekiedy wyjątkowo trudny, nie tyle z punktu widzenia możliwości co ceny danego modelu urządzenia. Ceny przełączników rosną zazwyczaj wykładniczo w stosunku do możliwości technicznych i konfiguracyjnych urządzenia. Co natomiast z sieciami, w których nie ma potrzeby zastosowania wyjątkowo rozbudowanego przełącznika? Kiedy istnieje potrzeba skorzystania z jednej konkretnej funkcjonalności urządzenia, a cena jest głównym czynnikiem wyboru?

W artykule przedstawiono konstrukcję dodatkowego modułu podłączanego do procesora wewnętrznego przełącznika, który umożliwia komunikację i prostą konfigurację urządzenia z poziomu konsoli dowolnego komputera. Przełącznik sieciowy połączony jest z komputerem poprzez łącze szeregowe i sterowany za pomocą prostego menu konsolowego. W pierwszym rozdziale opisano zagadnienia związane z działaniem przełącznika, podano opis komunikacji procesora z pamięcią zewnętrzną, zawierającą podstawowe dane konfiguracyjne. W następnym zawarte są informację dotyczące parametrów działania sieci zbudowanej na tym przełączniku, jakie możliwe są do konfiguracji. W ostatnim rozdziale zaprezentowany jest moduł, jego konstrukcja, sposób działania oraz sposób użytkowania menu konsolowego.

Opis budowy przełącznika sieci Ethernet od strony sprzętowej

Procesor wewnętrzny

Jako konstrukcje do badań i modyfikacji wybrano dość popularny 5-portowy model przełącznika sieci Ethernet firmy TP-LINK TL-SG1005D. Pierwsze testy wykonane zostały na wersji 3.x, natomiast program do obsługi modułu został przystosowany również do wersji 5.x urządzenia.

Rys. 1. Blokowy schemat funkcjonalny RTL8366

Rys. 1. Blokowy schemat funkcjonalny RTL8366

 

Urządzenie bazuje na procesorach RTL8366RB firmy Realtek dla wersji 3.x oraz RTL8367 dla wersji 5.x. Oba procesory są przystosowane do pracy niezależnej, niezarządzanej, niewymagającej dodatkowego mikrokontrolera sterującego, dzięki czemu mają one zastosowanie w bardzo prostych urządzeniach sieciowych. Jednakże te same układy występują również w niektórych routerach i przełącznikach zarządzanych, a ich specyfikacja przedstawia możliwość sterowania nimi z zewnątrz za pomocą dowolnego układu nadrzędnego oraz pracy z wykorzystaniem zewnętrznej pamięci EEPROM.

Układy firmy Realtek umożliwiają budowę typowych przełączników 5-portowych, jak i routerów z jednym portem WAN. Obsługują sieć gigabitową oraz szereg standardów pracy sieci ethernet (QoS, 802.1Q, Storm Control, mirroring portów). Rysunek 1 przedstawia blokowy schemat wewnętrzny [3] rodziny układów RTL8366.

Współdziałanie z procesorem nadrzędnym i pamięcią

Podstawowe działanie przełącznika firmy TP-LINK polega na załadowaniu ustawień procesora dotyczących portów i włączenia odpowiednich modułów układu RTL poprzez przepisanie zawartości rejestrów zewnętrznej pamięci EEPROM do odpowiednich rejestrów konfiguracyjnych układu RTL. Zewnętrzna pamięć podłączona jest do interfejsu I2C głównego procesora RTL (sda/scl na rys. 1). Odpowiednie rejestry opisane są w dokumentacji [3].

Drugim sposobem pracy układów RTL jest sterowanie ich z poziomu nadrzędnego CPU, z wykorzystaniem dodatkowego systemu operacyjnego, jako narzędzia do komunikacji z użytkownikiem, tak jak to się dzieje w konfigurowalnych routerach. Sytuacje taką przedstawia rysunek 2. Nadrzędny procesor CPU podłączony jest do wewnętrznej magistrali GMII i pośredniczy w komunikacji na porcie WAN. Rysunek 3 przedstawia schemat blokowy urządzenia z uwzględnionym dodatkowym modułem sterowania. 

Rys. 2. Układ pracy z nadrzędnym CPU

Rys. 2. Układ pracy z nadrzędnym CPU

 

Rys. 3. Schemat blokowy urządzenia z modułem sterowania

Rys. 3. Schemat blokowy urządzenia z modułem sterowania


Najważniejszą funkcją układów RTL, wykorzystaną w module przedstawionym w niniejszym artykule, jest możliwość ustawienia i konfiguracji w zasadzie dowolnej ilości wirtualnych sieci VLAN zgodnie ze standardem 802.1Q oraz, co za tym idzie, przypisanie określonego portu przełącznika do konkretnej sieci VLAN. Funkcjonalność ta zawarta jest najczęściej w urządzeniach zarządzanych.

Więcej informacji na temat działania tych układów można oczywiście znaleźć w dokumentacji, jednakże dla układu RTL8367 nie jest ona ogólnie dostępna. Informacje wymagane do uruchomienia tego układu zostały „wyjęte” z kodów źródłowych oprogramowania Open Source [1,2] do routerów sieciowych.

Możliwości konfiguracji przełącznika z opisywanym modułem

Ustawienia portów

Parametry poszczególnych portów przełącznika, jakie można zmienić dzięki zastosowaniu modułu, to:

a) włączenie/wyłączenie każdego z portów,

b) ustalenie przynależności do odpowiedniej sieci VLAN na podstawie jej numeru.

c) ustalenie funkcji łącza trunkowego dla dowolnego portu z ustawieniem sieci VLAN działającym na tym porcie (łącze tagowane, nietagowane).

Możliwe jest odczytanie maksymalnej przepustowości portu (10 MiB, 100 MiB, 1 GiB) oraz wyżej wymienionych parametrów z bieżącej konfiguracji urządzenia i wyświetlenie ich na konsoli komputera.

Sieci VLAN

Możliwa jest konfiguracja tablicy sieci wirtualnych VLAN i dopasowania każdego portu przełącznika do konkretnej sieci oraz dowolny przydział ich numeracji. Istnieje możliwość ustalenia funkcji tagowania do wybranego portu utworzenia łącza trunkowego z drugim urządzeniem.

Tablice numeracji wirtualnych sieci można odczytać w wygodny sposób na konsoli komputera. W związku ze sposobem działania modułu jako elementu dodatkowego, istnieje możliwość zapisania bieżącej konfiguracji sieci VLAN, w celu załadowania jej po ponownym uruchomieniu urządzenia.

Parametry i funkcje diagnostyczne

Oprócz zmiany podstawowych parametrów dotyczących funkcjonowania sieci możliwe jest również uzyskanie szeregu informacji diagnostycznych dotyczących działania procesora i modułu. Należą do nich:

a) uzyskanie zrzutu zawartości zewnętrznej pamięci EEPROM służącej do wstępnej konfiguracji urządzenia po włączeniu zasilania,

b) uzyskanie zrzutu zawartości wewnętrznej pamięci procesora – czyli uzyskanie wartości rejestrów konfiguracyjnych w określonym ich zakresie,

c) ustawienie dowolnej wartości powyższych rejestrów i dowolnej komórki pamięci EEPROM,

d) zapis i odczyt całkowitej konfiguracji modułu dodatkowego.

 

Parametry dodatkowe

Dodatkowymi funkcjami, jakie nie zostały zaimplementowane w aktualnej wersji oprogramowania są: możliwość zmiany wielkości pojedynczej ramki transmisji sieci (w tym ramki Jumbo), ustalenie maksymalnej przepustowości łącza dla każdego z portów przełącznika, obsługa kolejkowania jakości usług (Quality of Service), odczyt tablicy adresów MAC podłączonych urządzeń, klonowanie portów w celach nasłuchu, czy chociażby zmiana sposobu wyświetlania informacji na diodach obudowy urządzenia.

Wszystkie powyższe funkcje możliwe są do prostej implementacji, dzięki ustawianiu odpowiednich wartości rejestrów konfiguracyjnych głównego procesora RTL.

Moduł sterowania, konstrukcja i obsługa

Konstrukcja modułu

Zbudowany moduł do zarządzanej obsługi przełącznika składa się z prostego mikrokontrolera ATmega88. Wygląd modułu na uniwersalnej płytce drukowanej, dla wersji 5.x przełącznika firmy TP-LINK przedstawia rysunek 4. Mikrokontroler połączony jest z głównym procesorem RTL za pomocą magistrali SMI, która elektrycznie jest zbieżna z implementacja interfejsu I2C.

Rys. 4. Moduł dla wersji 5.x

Rys. 4. Moduł dla wersji 5.x

 

Moduł, zgodnie w rysunkiem 4, u dołu posiada złącze pinowe, którym włączony jest w płytę główną urządzenia. Po lewej stronie widoczne jest wielozłącze, którym w wygodny sposób wyprowadzone są za zewnątrz obudowy dwa interfejsy: RS232 do komunikacji z komputerem oraz ISP do programowania samego mikrokontrolera ATmega.

Całość konstrukcji, po wyjęciu z obudowy urządzenia, dla wersji 3.x przełącznika przedstawia rysunek 5. Dla wersji 3.x moduł nie posiada stosownego złącza SMI, występują za to bezpośrednio przylutowane przewody magistrali.

Wygląd panelu przedniego przełącznika w wersji 5.x z zamontowanym modułem przedstawia rysunek 6. Po lewej stronie u góry widoczne jest wspomniane wyżej wielozłącze do komunikacji.

Po włączeniu zasilania następuje normalna procedura ładowania podstawowych ustawień przełącznika z zewnętrznej pamięci EEPROM, następnie po odpowiednim czasie oprogramowanie zawarte w mikrokontrolerze przejmuje kontrole nad urządzeniem.

Rys. 5. Moduł w urządzeniu wersji 3.x

Rys. 5. Moduł w urządzeniu wersji 3.x

Rys. 6. Przełącznik w wersji 5.x z widocznym złączem

Rys. 6. Przełącznik w wersji 5.x z widocznym złączem

 

Oprogramowanie mikrokontrolera

Koncepcja sterowania przełącznikiem i konstrukcja modułu oparta jest na pomyśle przedstawionym na stronie [4]. Pierwotna koncepcja opierała się tylko na wersji 3.x przełącznika, dość rozbudowanym objętościowo programie mikrokontrolera i posiadała podstawową implementację obsługi procesora RTL. Opisywany moduł posiada: rozszerzone oprogramowanie, dostosowane do wersji 5.x przełącznika, który bazuje na innym, lecz zbieżnym, procesorze RTL8367, dodane kilka dodatkowych funkcji komunikacyjnych i testujących oraz mniejszy wynikowy kod gotowego wsadu mikrokontrolera.

Oprogramowanie mikrokontrolera przed kompilacją umożliwia wybór odpowiedniego procesora RTL oraz portów, na których będzie pracować magistrala SMI. Kompletna lista zmian i modyfikacji zawarta jest w pliku README zawartym razem z kodami źródłowymi umieszczonymi na stronie [5].

Fragment kodu programu w środowisku ECLIPSE odpowiadający za funkcję odczytu parametrów wybranego portu przełącznika przedstawia rysunek 7. Odczytywana jest zawartość odpowiedniego rejestru konfiguracyjnego procesora RTL, następnie na podstawie odpowiedniego położenia bitów w tym rejestrze wysyłana jest informacja o konfiguracji portu poprzez UART mikrokontrolera, wraz z całą składnią tekstową dotyczącą ustawień. 

Rys. 7. Fragment kodu programu

Rys. 7. Fragment kodu programu

 

Komunikacja z komputerem

Komunikacja modułu z komputerem odbywa się po interfejsie RS232. Od strony mikrokontrolera jest to UART, natomiast po stronie komputera, dla wygody połączenia, jest to układ FT232RL firmy FTDI, służący jako przejście między RS232 i USB. Podczas konstruowania modułu sterowania przełącznika układ FT232RL wykorzystany został również jako programator mikrokontrolera ATmega. Układ FT wraz z płytką i okablowaniem przedstawia rysunek 8. 

Rys. 8. FT232RL

Rys. 8. FT232RL

 

Menu konsolowe

Menu konsolowe zrealizowane zostało programowo, poprzez wysyłanie odpowiednich komunikatów przez mikrokontroler na łączu RS232 oraz oczekiwanie na odpowiednią komendę znakową z poziomu komputera. Jako terminal konsolowy wykorzystany został popularny program PuTTY.

Po włączeniu zasilania lub naciśnięciu dowolnego klawisza klawiatury w terminalu pojawia się menu główne, przedstawione na rysunku 9. Odpowiednie podmenu wybiera się naciskając klawisze reprezentujące cyfry od 1 do 7, 0 to klawisz powrotu do menu znajdującego się wyżej.

Rys. 9. Menu główne

Rys. 9. Menu główne

Podmenu „General settings” zawiera opcję włączenia/wyłączenia możliwości pracy wirtualnych sieci VLAN. Przy wyłączonej tej opcji urządzenie zachowuje się jak niezarządzany klasyczny przełącznik. Druga opcja to resetowanie ustawień VLAN do jednej sieci o numerze 1.

Podmenu „Per-port settings” zawiera opcję włączenia/wyłączenia parametrów poszczególnych portów. Po wyborze odpowiedniego numeru portu możliwe jest przypisanie go do wybranej sieci VLAN identyfikowanej numerem oraz znacznikiem tagowania, dodanie lub usunięcie go z tablicy sieci VLAN.

Rys. 10. Podmenu General settings

Rys. 10. Podmenu General settings

 

Rys. 11. Podmenu Per-port settings

Rys. 11. Podmenu Per-port settings

 

Podmenu „Info” zawiera funkcję wyświetlenia informacji o połączeniach wszystkich portów oraz funkcję wyświetlania przypisania portów do sieci VLAN i tablicy numerów sieci VLAN.

Rys. 12. Podmenu Info

Rys. 12. Podmenu Info

Podmenu „Debug” zawiera funkcję wyświetlenia zawartości zewnętrznej pamięci EEPROM zawartej w przełączniku, zawartości wybranych rejestrów konfiguracyjnych procesora RTL. Oprócz tego w tym podmenu możliwe jest ustawienie zawartości rejestrów i pamięci oraz programowe zresetowanie procesora.

Podmenu „Save config” i „Load config” zawiera funkcję zapisu i odczytu bieżących ustawień tablicy VLAN do nieulotnej pamięci zawartej w mikrokontrolerze ATmega. Ustawienia te są automatycznie ładowane po włączeniu zasilania urządzenia.

 

Rys. 13. Podmenu Debug

Rys. 13. Podmenu Debug

Rys. 14. Podmenu Save config

Rys. 14. Podmenu Save config

Rys. 15. Podmenu Show Realtek chip name

Rys. 15. Podmenu Show Realtek chip name

 

Podmenu „Show Realtek chip name” zawiera funkcję wyświetlającą typ procesora RTL oraz jego wersję zawartą w przełączniku.

Menu konsolowe jest wygodnym sposobem komunikacji z urządzeniem. Jest w miarę intuicyjne, proste w obsłudze i w implementacji w programie mikrokontrolera oraz nie wymaga rozbudowanego oprogramowania na komputer. Moduł z punktu widzenia konfiguracji jest niezależny od systemu operacyjnego komputera, komunikacja może odbywać się zarówno z systemu Windows, jak i Linux.

Podsumowanie

Zaprezentowany moduł jest prostą implementacją obsługi zarządzania przełącznikiem sieci Ethernet. Niewątpliwą zaletą jest prostota konstrukcji i realizacji oraz możliwość rozbudowy funkcjonalnej, ograniczonej w zasadzie dostępnością do rejestrów konfiguracyjnych procesora RTL oraz pamięciami FLASH i EEPROM samego mikrokontrolera. Obsługa za pomocą konsoli terminalowej jest intuicyjna i rzeczowa.

Podstawową wadą tego rozwiązania, jaką można zarzucić, jest brak możliwości sterowania przełącznikiem zdalnie poprzez sieć. Istnieje możliwość zbudowania takiej komunikacji na układach pośredniczących między mikrokontrolerem a siecią Ethernet, jednakże takie rozwiązanie podnosi koszt realizacji i zbliża rozwiązanie to gotowych realizacji przełączników dostępnych w sprzedaży.

Nieocenionym również jest fakt zdobycia wiedzy i doświadczenia przy badaniu możliwości realizacji konstrukcji oraz przy pisaniu programu do mikrokontrolera, szczególnie że cały projekt można zaliczyć do grupy działań technologicznych ogólnie nazwanych „REVERSE ENGINEERING”.

Koszt realizacji całego przedsięwzięcia to cena przełącznika TL-SG1005D (około 60 zł) oraz koszt modułu (około 10-15 zł). Całkowity koszt jest znacznie niższy niż cena przełączników zarządzanych.

 

LITERATURA:

[1] http://dev.openwrt.org/browser/trunk/target/linux/generic/files/drivers/net/phy [link aktualny na dzień 25.04.2014]

[2] http://code.google.com/p/rt-n56u/source/browse/trunk/linux-3.0.x/drivers/net/rtl8367/ [link aktualny na dzień 25.04.2014]

[3] http://realtek.info/pdf/rtl8366_8369_datasheet_1-1.pdf [link aktualny na dzień 25.04.2014]

[4] http://spritesmods.com/?art=rtl8366sb [link aktualny na dzień 25.04.2014]

[5] http://bercik.wel.wat.edu.pl/switch_hack_by_Bercik.zip [link aktualny na dzień 25.04.2014]

[6] Kardaś M., Mikrokontrolery AVR. Język C – podstawy programowania, ATNEL, Szczecin 2013 

REKLAMA

Otrzymuj wiadomości z rynku elektrotechniki i informacje o nowościach produktowych bezpośrednio na swój adres e-mail.

Zapisz się
Administratorem danych osobowych jest Media Pakiet Sp. z o.o. z siedzibą w Białymstoku, adres: 15-617 Białystok ul. Nowosielska 50, @: biuro@elektroonline.pl. W Polityce Prywatności Administrator informuje o celu, okresie i podstawach prawnych przetwarzania danych osobowych, a także o prawach jakie przysługują osobom, których przetwarzane dane osobowe dotyczą, podmiotom którym Administrator może powierzyć do przetwarzania dane osobowe, oraz o zasadach zautomatyzowanego przetwarzania danych osobowych.
Komentarze (0)
Dodaj komentarz:  
Twój pseudonim: Zaloguj
Twój komentarz:
dodaj komentarz
Stowarzyszenie Elektryków Polskich
Stowarzyszenie Elektryków Polskich
ul. Świętokrzyska 14, Warszawa
tel.  +48 22 5564-302
fax.  +48 22 5564-301
$nbsp;
REKLAMA
Nasze serwisy:
elektrykapradnietyka.com
przegladelektryczny.pl
rynekelektroniki.pl
automatykairobotyka.pl
budowainfo.pl