Komunikacja sieciowa z wykorzystaniem mikrokontrolerów Freescale Kinetis
Jednym z bloków funkcjonalnych wbudowanych w strukturę układów Freescale Kinetis jest moduł komunikacji sieciowej nazwany przez producenta jako ENET lub inaczej MAC-NET. Dzięki niemu, po dodaniu zewnętrznego ukladu PHY można stworzyć kompletne rozwiązanie dla komunikacji w standardzie Ethernet. Na rysunku 1 pokazano sposób budowy węzła sieciowego LAN (Local Area Network) wykorzystującego mikrokontroler Kinetis z modułem MAC-NET.
Rys. 1. Budowa podstawowego węzła sieciowego LAN z mikrokontrolerem Kinetis
Budowa modułu MAC
Moduł MAC-NET składa się z trzech głównych komponentów:
- Kontrolera MAC (Media Access Controller), który kontroluje bufory, rejestry, sterownik IEEE15888, interfejs MII (Media Independent Interface) i RMII (Reduced Media Independent Interface),
- Interfejsu MII/RMII służącego do komunikacji między kontrolerem MAC i zewnętrznym układem PHY,
- Sterownika IEEE1588 zarządzający znacznikami czasowymi
Wymienione komponenty tworzą razem moduł MAC-NET. Do poprawnej pracy moduł ten wymaga współpracy z innymi wewnętrznymi zasobami mikrokontrolera Kinetis. Ich wzajemne połączenie przedstawiono na rysunku 2.
Rys. 2. Połączenie modułu MAC-NET z innymi zasobami wewnątrz mikrokontrolera Kinetis
Cechy modułu MAC-NET
Do głównych cech modułu MAC-NET można zaliczyć:
- Kompatybilność z kontrolerem FEC obecnym w mikrokontrolerach Freescale Coldfire
- Duże możliwości warstwy sprzętowej, w tym:
- Zaimplementowane protokoły IPv4 oraz IPv6,
- Generowanie i sprawdzanie sumy kontrolnej protokołów IP, TCP, UDP i ICMP,
- Konfiguracja automatycznego odrzucania błędnych ramek,
- Dzielenie informacji ramek na 32-bitowe słowa w celu łatwego przetwarzania,
- Możliwość skorzystania z czasowej synchronizacji transmisji zgodnej ze standardem IEEE1588.
Działanie modułu MAC-NET
W pracy modułu MAC-NET wyróżnić można cztery aspekty działania:
- Inicjalizację – kroki niezbędne do wykonania w celu uruchomienia modułu MAC-NET,
- Zarządzanie interfejsem PHY – konfiguracja przygotowująca do pracy PHY,
- Sterowanie interfejsem MII,
- Sterowanie interfejsem RMII.
Inicjalizacja
Na inicjalizację modułu MAC-NET składają się następujące kroki:
- Włączenie sygnału zegarowego dla MAC-NET
- Skonfigurowanie buforów
- Zresetowanie kontrolera MAC
- Skonfigurowanie wyprowadzeń do pracy w trybie MII lub RMII
- Aktywowanie i wyzerowanie przerwań xmit, rx i przerwań od błędów. Ustawienie poziomów i priorytetów dla przerwań
- Oczytanie prędkości transmisji z układu PHY i ustawienie takich samych wartości dla modułu MAC-NET
- Skonfigurowanie adresu MAC
- Ustawienie maksymalnego rozmiaru pakietów
- Uruchomienie modułu MAC-NET
- Ustawienie modułu MAC-NET do gotowości odbioru danych