Ich versuche, über Arduino hinauszugehen, und ich versuche zu lernen, wie man ein RTOS (wie FreeRTOS) verwendet, um sich über WLAN mit dem Internet zu verbinden. Es scheint, dass FreeRTOS und ZentriOS und andere RTOS TCP/IP-Stacks bereitstellen. Korrigieren Sie mich, wenn ich falsch liege, aber es scheint mir, dass dieser TCP/IP-Stack die API für die Interaktion mit der Außenwelt entweder über Ethernet oder WLAN bereitstellt. Ist der WLAN-Treiber die Schnittstelle zwischen dem TCP/IP-Stack und dem WLAN-Modul selbst? Implementiert der WLAN-Treiber standardmäßige TCP/IP-Schnittstellen? Oder ist es die Aufgabe der Firmware-Entwickler, herauszufinden, wie ein TCP/IP-Stack mit dem WLAN-Treiber interagiert?
Der TCP/IP-Stack ist so generisch wie möglich konzipiert, sodass Anwendungen mit verschiedenen Datenverbindungsprotokollen wie 802.3 (Ethernet), 802.11 (Wi-Fi), PPP (Punkt-zu-Punkt-Protokoll) usw. interagieren können, ohne dies zu müssen wissen, welche Art von Link sie verwenden.
TCP/IP umfasst eigentlich mehrere Protokollschichten, z
5. Application DNS, FTP, HTTP, IMAP, POP3, SMTP, SSH, Telnet, SSL, ...
4. Transport TCP, UDP, ...
3. Network IP (IPv4, IPv6), ICMP, ARP, ...
2. Data Link 802.3 (Ethernet), 802.11 (Wi-Fi), PPP, ...
1. Physical Ethernet (NIC), Wireless (NIC), Cat 5/RJ-45, ...
(Die oberste Schicht ist oft in drei separate Schichten unterteilt, ich vereinfache die Dinge ein wenig.)
Es ist also die unterste Ebene, auf der der Stack mit dem Treiber für Ihr spezifisches Wi-Fi-Modul verbunden werden muss.
Da dies auf Byte-Ebene ist, gibt es eine begrenzte Anzahl von Funktionen, die implementiert werden müssen. Sie folgen einem ziemlich standardmäßigen I/O-Gerätetreibermodell, dh
Open function
Close function
Send function
Receive function
IO Control function
Get PhysicalAddress function
Interrupt service routine (ISR) callback
Es sollte also ziemlich einfach sein, die Stack-Schnittstelle mit einem bestimmten Modul zu verheiraten.
Siehe hier für ein Beispiel mit mehr Details für ein bestimmtes Betriebssystem.
Einige Wi-Fi-Module, wie das ESP8266 , verfügen über einen integrierten TCP/IP-Stack, da TCP/IP einen kleinen Mikrocontroller belasten kann. Der Zugriff erfolgt über AT-Befehle, ähnlich wie bei einem Zellmodul oder Bluetooth-Modul.
Eugen Sch.