Módulo Wi-Fi transparente con entrada RMII

Necesito convertir un proyecto integrado conectado a Ethernet con conexión inalámbrica.

Estoy buscando un módulo de puente Wi-Fi de bajo costo (restricción principal, menos de USD $15) y la mayoría de código abierto/hardware posible, como Vonets.

Debe comportarse de forma transparente, redirigiendo todos los marcos de red (capa de transporte) a una pila de IP existente y ya estable implementada en el hardware ETH actual con una modificación mínima del firmware; si es posible, utilizando pines RMII existentes.

Mi primer intento fue con ESP8266, pero hay algunos desafíos muy dolorosos:

  • No podía simplemente cambiar el transceptor y el RJ-45 con él, porque su comunicación está basada en UART (algunas variantes de módulos admiten SPI). Para solucionar eso, intenté habilitar PPPoS para comunicar uC<->ESP8266, luego enviar datos a través de la pila IP integrada de ESP y reenviarlos al adaptador Wi-Fi y luego a Internet.

Sin embargo, aunque su puerto LwIP tenía PPP_SUPORT #define en el código fuente (que parece haberse agregado en una versión reciente v1.4.0 de marzo de 2016), no hay documentación sobre cómo habilitarlo y su uso. Además, el reenvío de IP tampoco parece ser compatible entre la interfaz virtual (por ejemplo, ppp0) y la interfaz "real" (por ejemplo, wlan0).

  1. ¿Sugiere algún otro hardware para hacer el trabajo de "puente Wi-Fi"? ¿Debería ESP32 (aún no lanzado en este momento) la solución para convertir señales RMII?
  2. En el caso de seguir usando ESP8266, ¿hay otro protocolo o forma de hacerlo transparente?
En primer lugar, una interfaz RMII es para una versión física de Ethernet. 802.11(a,b,g,n) es un estándar diferente con diferentes controladores. La capa física es diferente. Use un puente si realmente necesita tener el chip físico. Puente inalámbrico de Google, hay innumerables dispositivos disponibles. Sería mucho, mucho más fácil lograr que su proyecto funcione con ESP8266 a través de RS232 o SPI que implementar y depurar una pila TCP/IP. Si necesita un protocolo com diferente, use la versión arudino del ESP8266.

Respuestas (1)

Si bien es posible en principio, MII no se usa realmente para interconectar PHY inalámbricos, porque todas las pequeñas diferencias se suman.

  • 802.11 tiene diferentes espacios entre tramas para diferentes clases de tráfico para darle un esquema de prioridad crudo
  • MII solo transporta datagramas de usuario, por lo que la asociación y la autenticación deberían transportarse a través de MDIO.
  • La dirección MAC de destino en 802.11 es el siguiente salto inalámbrico, no la dirección del siguiente salto de enrutamiento, por lo que el paquete debe reescribirse, moviendo el siguiente salto de enrutamiento al primer campo de dirección auxiliar y agregando la dirección AP
  • ...

Entonces, básicamente, el PHY necesitaría replicar toda la lógica MAC de todos modos, y el esfuerzo de implementar la comunicación del canal lateral superaría los ahorros de reutilizar la interfaz MII.

Las razones principales para utilizar el controlador Ethernet MII integrado serían utilizar el filtro de multidifusión y la clasificación por tamaño de paquete en dispositivos con limitaciones de memoria. El filtro de multidifusión debe replicarse en el PHY, debido a la forma en que los paquetes de multidifusión se agregan a la baliza, y el clasificador de tamaño de paquete solo es relevante para dispositivos muy pequeños, donde una integración más estrecha y una huella más pequeña son aún más importantes que la facilidad de implementación. .