Implementacja protokołu PTP IEEE 1588 V2 na mikrokontrolerze Kinetis K60
Demo IEEE1588
W tej części opisano sposoby budowy aplikacji demo1588 z wykorzystaniem zestawu TWR-K60N512 i oprogramowania demonstracyjnego.
Konfiguracja sprzętu i ustawienia zworek
Następujące części zestawu TWR-K60N512-KIT muszą zostać użyte i połączone ze sobą w celu utworzenia platformy sprzętowej:
- Płytka mikrokontrolera TWR-K60N512 w wersji C
- Płytka szeregowa TWR-SER
- Płytki łączące – główna i pomocnicza
Zgodnie z opisem zawartym w instrukcji Getting Stated with Freescale MQX RTOS, należy sprawdzić ustawienia następujących zworek, by zapewnić poprawne działanie dema:
Tab. 4. Ustawienia zworek TWR-K60N512 w wersji C
J6 – na pozycji 2-3 | Zegar procesora jest pobierany z płytki TWR_SER |
Tab. 5. Ustawienia zworek na płytce TWR-SER
CLK_SEL 3-4 | |
CLKIN-SEL 2-3 | Zegar procesora jest pobierany z PHY |
ETH-CONFIG J12 9-10 | Wybór trybu komunikacji RMII |
Demo może zostać skonfigurowane w sposób, gdzie dwie płytki są połączone bezpośrednio z użyciem skrętki Ethernet. Jest to prosty tryb połączenia, używany często do oceny dokładności systemu i ogólnej wydajności. Konfiguracja bezpośrednia wykorzystująca dwa moduły TWR-K60N512-KIT została zilustrowana na rysunku 15. Aplikację można obsługiwać tylko za pomocą konsoli szeregowej.
Rysunek 16 pokazuje inne ujęcie dema, które składa się z dwóch lub więcej modułów TWR-K60N512-KIT. Switch / Hub Ethernet zapewnia połączenia między wszystkimi płytkami. Węzeł podrzędny może być obsługiwany za pomocą konsoli szeregowej lub konsoli Telnet, a także przeglądarki internetowej Internet Explorer lub aplikacji IXXAT PTPManager. Użytkownik może także śledzić komunikację za pośrednictwem protokołu IEEE 1588 między jego węzłami dowolnym programem analizującym protokoły sieci, np. WireShark.
Także inne płytki testowe ze wsparciem IEEE1588 mogą zostać wykorzystane w aplikacji demonstracyjnej, by powiększyć sieć IEEE 1588. Są to następujące płytki ColdFire i PowerQUICC:
- ColdFire M5234BCC
- ColdFire M52259EVB
- ColdFire TWR-MCF54418 KIT
- PowerQUICC MPC8360MDS
- PowerQUICC MPC8313E-RDB
- i.MX28 Evaluation Kit
Rys. 15. Konfiguracja demonstracyjna punkt-punkt
Rys. 16. Demo zostało rozszerzone o dodatkowe węzły IEEE1588
Pomiar synchronizacji zegarów
Pomiaru synchronizacji zegarów można dokonać za pomocą sygnałów PPS (Pulse-Per-Second) generowanych przez mikrokontroler Kinetis K60. Sygnały te są wytwarzane bezpośrednio przez czasomierz (domyślnie ENET0_TMR) i przekazywane do rejestrów portu GPIO PTC18. Wyprowadzenie GPIO jest podłączone do nóżki J9-21 pierwszej płytki systemu TWR-ELEV.
By zmierzyć i porównać sygnały PPS pochodzące z różnych płytek, należy dołączyć sondę oscyloskopu do wyprowadzenia J9-21 pierwszej płytki TWR-ELEV. Rysunek 17 przedstawia pomiar synchronizacji za pomocą oscyloskopu.
By zbadać dokładność synchronizacji zegarów, przeprowadzono test z użyciem zestawów TWR-K60N512-KIT podłączonych bezpośrednio. W tabeli 6 znajdują się parametry konfiguracji stosu IXXAT 1588 użyte do testów:
Tab. 6. Konfiguracja stosu 1588 użyta do pomiaru dokładności synchronizacji zegarów
Konfiguracja 1588 | Wartość |
Podstawowy typ zegara | Zwykły zegar |
Struktura pomiaru opóźnienia | Bezpośredni |
Praca jednokrokowa | Nie |
Opóźnienie zgłoszenia | 2 sekundy |
Opóźnienie wiadomości synchronizacyjnej | 0,25 sekundy |
Opóźnienie zgłoszenia żądania | 0,25 sekundy |
Użyty filtr | Minimalny |
Rozmiar okna filtru | 6 |
Okres pomiaru | pół godziny |