Herzlich Willkommen beim beam-Verlag in Marburg, dem Fachverlag für anspruchsvolle Elektronik-Literatur.


Wir freuen uns, Sie auf unserem ePaper-Kiosk begrüßen zu können.

Aufrufe
vor 10 Monaten

3-2025

  • Weitere Details anzeigen
  • Electronic
  • Embedded
  • Cybersecurity
  • Kuenstliche intelligenz
  • Digitalisierung
  • Stromversorgung
  • Hmi
  • Industrielle kommunikation
  • Robotik
  • Qualitaetssicherung
  • Bildverarbeitung
  • Automatisierung
  • Sensorik
  • Mess und prueftechnik
  • Steuern regeln
  • Bedienen und visualisieren
  • Iiot
  • Industrie pc
  • Software
  • Sbc boards module
Fachzeitschrift für Industrielle Automation, Mess-, Steuer- und Regeltechnik

Bild 4: Ping-Ausgabe in

Bild 4: Ping-Ausgabe in der EingabeaufforderungDie lwIP-Architektur folgt einerTCP/IP-Modellstruktur. Das TCP/IP-Protokoll ist eine Kombinationaus verschiedenen Protokollenauf unterschiedlichen Schichten.TCP/IP wird normalerweise als ein4-Schichten-System betrachtet, wiein Bild 2 dargestellt.lwIP-ProjektEin lwIP-Projekt enthält stetseine Konfigurationsdatei namens„lwipopts.h“ und eine Standardkonfigurationsdateinamens „opt.h“.Die Datei „opt.h“ enthält alle Standard-Stack-Konfigurationenundihre Modulkonfigurationen, währenddie Datei „lwipopts.h“ dem Benutzerdie vollständige Konfigurationdes Stacks und seiner Module ermöglicht.Es ist zu beachten, dassdiese Datei nicht sämtliche möglichenlwIP-Optionen enthält. Wenneine Konfiguration also nicht in derDatei „lwipopts.h“ definiert ist, wirddie in der Datei „opt.h“ definierteStandardkonfiguration berücksichtigt.Dazu verfügt die lwIP-Bibliotheküber eine anwendungsspezifischeHeader-Datei namens „lwipcfg.h“.Die IP-Adresse des Controllers,Gateway-Adresse, Netzmaskeund MAC-Adresse sollten in derDatei „lwipcfg.h“ wie in Bild 3 definiertwerden.PlattformspezifischeAnpassungsschichtUm eine Verbindung zwischen lwIPund den zugrundeliegenden Hardwaretreibernherzustellen, ist eineplattformspezifische Anpassungsschichterforderlich. Zum Beispiel istbei der Implementierung des lwIP-Stacks für einen Mikrocontroller einspeziell angepasster Treiber erforderlich,um eine Brücke zwischendem lwIP-Stack und den Ethernet-MAC-Treibern des Mikrocontrollerszu schaffen.Dieser angepasste Treiber solltedie folgenden Funktionen umfassen:• Initialisierungsfunktion: DieseFunktion ist für die Initialisierungdes MAC verantwortlich. Sie isttreiberspezifisch für den Mikrocontroller.• Sendefunktion: Diese ermöglichtdie Übertragung von Daten,die vom TCP-Stack empfangenwurden, an den Ethernet-MAC-Treiber zur anschließenden weiterenÜbertragung.• Empfangsfunktion: Diese übernimmtdie Weiterleitung vonPaketen, die vom Ethernet-MAC-Treiber empfangen wurden, anden TCP-Stack.Für den ADI-Mikrocontroller gibtes einen angepassten Treiber imMaximSDK. Dieser Treiber arbeitetals Wrapper um.Beispiel PingDer „Ping“-Befehl ist ein einfachesTool zur Fehlerbehebung in Netzwerken.Er führt eine ICMP (InternetControl Message Protocol) Echoanforderungaus, indem er ein Signalan eine bestimmte IP-Adresse sendetund auf eine Antwort wartet.Wenn das Zielgerät diese Anfrageerhält, antwortet es mit einem Echo-Antwortpaket. In diesem Abschnittwird erklärt, wie ein grundlegenderPing-Test von einem Windows-PCzu einem Mikrocontroller durchgeführtwird, um deren Konnektivitätzu überprüfen. Es wird zudem erläutert,wie das Ping-Modul des Mikrocontrollerszur Kommunikation miteinem PC verwendet werden kann.Ping-DienstprogrammSo funktioniert das Ping-Dienstprogrammvon Windows:• Das Programm sendet vierDatenpakete an den Mikrocontrollerund wartet auf eine Antwort.• Der Mikrocontroller sendetdiese Datenpakete als sogenannte Echoantworten anden PC zurück.So führen Sie den Ping-Test durch:• Verbinden Sie den MikrocontrollerEVKIT über ein Ethernet-Kabel mit einem PC.• Öffnen Sie die Eingabeaufforderungund geben Sie „ping“ein und drücken Sie dieEingabetaste.Eine Antwort in der Eingabeaufforderung,wie sie in Bild 4 zu sehenist, deutet auf eine ordnungsgemäßeVerbindung zwischen dem PC unddem Mikrocontroller hin.Testen des Pingsvom MikrocontrollerBild 5: Ping-Ausgabe im seriellen TerminalDie Datei „lwIP_Ping“ ist das Ping-Beispiel für den MAX32570-Mikrocontroller.Es wird folgende Anleitungbereitgestellt:• Die IP-Adresse des Mikrocontrollerswird in der Datei„lwipcfg.h“ festgelegt.• Die IP-Adresse des Mikrocontrollersund des PCs solltenzum selben Netz gehören.• Die IP-Adresse des PCs sollteals Gateway-Adresse in derDatei „lwipcfg.h“ des Mikrocontrollersangegeben werden.• Verbinden Sie den PC und dasMAX32570 EVKIT über einEthernet-Kabel.• Führen Sie den Ping-Beispielcodeaus.• Öffnen Sie das serielle Terminalin Eclipse (Fenster-> Ansichtanzeigen -> Terminal). Wennder Ping erfolgreich war, zeigtdas Terminal ein Ergebnis an,wie in Bild 5 dargestellt.WiresharkDie Eingabeaufforderung zeigt nurPing-Statistiken an. Zur Anzeige dertatsächlich gesendeten Daten wirdein Tool namens Wireshark benötigt.Wireshark erfasst Pakete einerNetzwerkverbindung. Nach dem Öffnenvon Wireshark sollte die Ethernet-Optionausgewählt werden. Eswerden Einzelheiten wie die MAC-Adressen von Quelle und Ziel, dieIP-Adressen von Quelle und Ziel,das Kommunikationsprotokoll sowiezusätzlich die gesendeten Datenangezeigt.136 PC & Industrie 3/2025

Im MaximSDK veranschaulichtdie Quelldatei „lwIP TCP“, wie TCP-Funktionen innerhalb der lwIP-Bibliothekverwendet werden. In diesemSzenario fungiert der Mikrocontrollerals TCP-Server und wartet aufeine Client-Anfrage. Die vom Clientgesendeten Daten werden als Echozurückgesendet. Die Quelldateiender Anwendung „tcpecho_raw.c“sollten für das TCP-Echoserver-Beispiel verwendet werden. FührenSie die folgenden Schritte aus, umden TCP-Echo-Server zu erstellen.Bild 6: Ping-Datenpaket in WiresharkDiese Informationen werden inWireshark wie in Bild 6 dargestellt.Wie im Beispiel gezeigt, werdendie Daten 0x00, 0x01 ... bis 0x1Fgesendet. Was aber, wenn derBenutzer die gesendeten Datenändern möchte?Ändern der vomMicrocontroller Pinggesendeten DatenDie mit dem Ping zu sendendenDaten werden in der Datei „ping.c“festgelegt. Die Datei „Ping.c“ istdas Ping-Sendemodul. Die Größeder zu sendenden Daten wird über„PING_DATA_SIZE“ in der Datei„ping.c“ festgelegt. Die Datengrößeist auf 32 Byte festgelegt, wie inBild 7 dargestellt.Die zu sendenden Daten werdenebenfalls in der Datei „ping.c“ definiert.Der zusätzliche Datenpufferwird wie in Bild 8 gezeigt mit Datengefüllt: „0x00, 0x01, 0x02...bis 0x1F“.Je nach Anwendung kann derDatenpuffer in der Datei „ping.c“angepasst werden, wenn der Benutzerdie Daten ändern möchte. InBild 9 wird beispielsweise gezeigt,wie alle 32 Bytes der Daten zu „0x01,0x01...0x01“ geändert werden.Die geänderte „ping.c“-Datei liefertin Wireshark Ergebnisse wie inBild 10 dargestellt. Die Daten werdenanschließend mit den neuenParametern aktualisiert.TCP-Echo-ServerBild 7: Größe des Ping-DatenpaketsIn den Ping-Beispielen wird ICMPverwendet, um die Reaktionsfähigkeiteines Zielsystems zu ermitteln.Es sendet dem gewünschten Empfängerunter Verwendung von Standarddateneine Echoanforderungüber das Netz. Wenn die Zieladressediese Anfrage erhält, antwortetsie mit einem Echo-Antwortpaket.Wenn Benutzer benutzerdefinierteDaten von einem Gerät zu einemanderen senden möchten, verwendensie das TCP-Protokoll für dieDatenübertragung. Der Echo-Dienstist eine Standard-TCP-Funktion,die hauptsächlich dazu dient, dieErreichbarkeit zu prüfen und Routing-Problemezu erkennen. Beidiesem Dienst werden ein Serverund ein Client über TCP verbunden.Wenn der Server eine Nachrichtvon einem Client erhält, sendeter dieselbe Nachricht zurück.Einrichtungdes TCP-Echo-Servers:• Erstellen Sie einen Socket.• Binden Sie den Socket an dieangegebene Portnummer.• Nach dem Binden wartet derSocket auf eingehende Verbindungen.Wenn eine Verbindungangefordert wird, akzeptiert erdie Anfrage vom Client-Gerät.Der Server empfängt daraufhinDaten vom Client. Schließlichsendet er dieselben Datenzurück.Bild 11 zeigt einen Codeausschnitt,der einen Überblick über die Strukturder Firmware gibt, die Teil derHauptfunktion ist. Die Funktion config_emacinitialisiert den EMAC, währenddie Funktion MXC_ETH_Initden lwIP-Stack initialisiert.Nach der Initialisierung des EMACund des lwIP-Stacks wird der TCP-Echo-Server mit tcpecho_raw_initinitialisiert. Die Initialisierungsstrukturdes Echo-Servers ist in Bild 12dargestellt.Bild 8: Ping-DatenpaketBild 9: Geändertes Ping-Datenpaket.Bild 10: Geändertes Ping-Datenpaket in Wireshark.Bild 11: Codeausschnitt mit Überblick überdie Struktur der FirmwarePC & Industrie 3/2025 137

hf-praxis

PC & Industrie

© beam-Verlag Dipl.-Ing. Reinhard Birchel