¿Cómo interactúa la pila TCP/IP con los componentes Wifi?

Estoy tratando de hacer la transición más allá de Arduino y estoy tratando de aprender a usar un RTOS (como FreeRTOS) para conectarme a la web a través de Wifi. Parece que FreeRTOS, ZentriOS y otros RTOS proporcionan pilas de TCP/IP. Corrígeme si me equivoco, pero me parece que esta pila TCP/IP proporciona la API para interactuar con el mundo exterior a través de Ethernet o Wifi. ¿Es el controlador Wifi lo que interconecta la pila TCP/IP con el propio módulo Wifi? ¿El controlador Wifi implementa interfaces TCP/IP estándar? ¿O es el trabajo de los desarrolladores de firmware descubrir cómo interactuar una pila TCP/IP con el controlador wifi?

Deberías aprender sobre las Siete Capas del modelo OSI

Respuestas (1)

La pila TCP/IP está diseñada para ser lo más genérica posible, por lo que las aplicaciones pueden interactuar con varios protocolos de enlace de datos como 802.3 (Ethernet), 802.11 (Wi-Fi), PPP (protocolo punto a punto) y así sucesivamente sin necesidad de saber qué tipo de enlace están usando ..

TCP/IP comprende en realidad varias capas de protocolos, p.

 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, ... 

(La capa superior a menudo se divide en tres capas separadas, estoy simplificando un poco las cosas).

Por lo tanto, será el nivel inferior donde la pila debe interactuar con el controlador para su módulo Wi-Fi específico.

Dado que esto es a nivel de byte, habrá un número limitado de funciones que deben implementarse. Siguen un modelo de controlador de dispositivo de E/S bastante estándar, es decir

Open function
Close function
Send function
Receive function
IO Control function
Get PhysicalAddress function
Interrupt service routine (ISR) callback

por lo que debería ser bastante simple casar la interfaz de la pila con un módulo en particular.

Vea aquí un ejemplo con más detalles para un sistema operativo en particular.

Algunos módulos Wi-Fi, como el ESP8266 , vienen con una pila de TCP/IP incorporada, ya que TCP/IP puede ser una carga para un pequeño microcontrolador. Se accede a través de comandos AT, como un módulo celular o un módulo Bluetooth.

¿La capa física de la capa 1 y los controladores Wifi tienen un conjunto acordado de API de modo que cualquier controlador Wifi interactúe con una pila TCP/IP? ¿O depende de los ingenieros de firmware conectar la capa física con los controladores Wifi si están utilizando un nuevo componente Wifi?
@ Inc1982 He agregado un poco más a mi respuesta. La interfaz debe ser más o menos la misma que la de cualquier controlador de dispositivo de E/S, por ejemplo, abrir, cerrar, enviar, recibir, etc. Bastante simple para escribir cualquier rutina de "pegamento" entre la pila y el controlador según sea necesario.