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
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
März 3/2025 Jg. 29Das moderne ERP-
Edge AI revolutioniert die Echtzeit
Embedded Systeme transparentüber d
On top können bedarfsgerecht branc
Graph- und KI-Trends 2025Bewährung
als 5 % [3] Energieverbrauchs vonLL
Einfache Integration in jedes Syste
Vielseitig, effizient, komfortabelD
Präzision im Taschenformatfür fer
Innovative Messlösungenfür die Qu
beschleunigt werden, insbesondere b
IoT Design-InEinfacher Zugangzu akt
Industrietauglicher 4G-LTE-Routermi
Radar basierten Präsenzsensorin Mo
Die Zukunft der VisualisierungIndus
Portfolio der MIPI-Vision-Komponent
IP66 wassergeschützterNVIDIA Jetso
Produkte und LieferantenBranchenBra
systerra computer GmbH ............
Janz Tec AG .......................
microSYST Systemelectronic. .......
SCIOPTA Systems GmbH. ............7
HY-LINE Technology GmbH. .........7
Solectrix GmbH ....................
Portwell KIOSK GmbH ...............
MC Technologies GmbH .............
demmel products gmbh. ............7
Kurz Industrie-Elektronik GmbH ....
Novitronic GmbH. ..................
Karl Kruse GmbH & Co. KG ..........
Hahn-Schickard ....................
BOE, CDMB Technics AGFORTEC Integra
IiBASE Technology Inc., TWFORTEC In
Prodigy Technovations, INDeVision S
FirmenverzeichnisABAaronn Electroni
DMB Technics Deutschland GmbHGewerb
ICO Innovative Computer GmbHZuckmay
NEXT SYSTEM Vertriebs GmbHStrohboga
TASKING Germany GmbHStreitfeldstr.
Der Rugged Computer RML A4AGX verf
Bild 1: Ein effektiver Ende-zu-Ende
CONNECTING THEEMBEDDED COMMUNITY11.
Laden...
Laden...