Usar ENC28J60 para comunicarse a través de Internet

1

He leído que podemos conectar un microcontrolador a la ethernet mediante el chip de interfaz ethernet ENC28J60, pero ¿puedo usar el mismo para conectar el controlador a internet? Lo he buscado en Google durante más de un mes y sentí que no existe una única explicación adecuada que cubra todas las partes de este concepto.

Tengo que saber cómo conectar el ENC28J60 con el controlador a través de SPI, y cómo configurar el IC ENC28J60, pero luego me encontré con algo que se llama una pila "TCP / IP". Ahora se supone que esto es un conjunto de protocolos de internet. Pero todo lo que quiero hacer es un servidor web simple, ¿no es UDP / IP y ARP suficientes para hacer esto? ¿Por qué necesitaré TCP?

    
pregunta Horrible Guy

2 respuestas

1

Puede usar el ENC28J60 a través de Internet, pero para acceder a su dispositivo desde un navegador web necesitará soporte TCP / IP, desde Artículo sobre el Protocolo de transferencia de hipertexto en Wikipedia:

  

HTTP es un protocolo de capa de aplicación diseñado dentro del marco de Internet Protocol Suite. Su definición supone un protocolo de capa de transporte confiable y subyacente, y el Protocolo de Control de Transmisión (TCP) se usa comúnmente.

El problema con UDP es que se clasifica como un protocolo no confiable, los paquetes pueden no llegar a todos y pueden llegar fuera de secuencia. Si diseña su propio protocolo, puede agregar su propia secuencia de paquetes y reconocimiento, pero eso no es parte de HTTP, por lo que no funcionaría con un navegador web estándar. Hay algunas opciones que se me ocurren:

  • Use UDP y en lugar de un navegador web, escriba una aplicación para PC o teléfono que envíe una solicitud al sensor de temperatura para obtener datos a los que pueda responder. Puede volver a intentarlo si el paquete se desvía y, por una simple temperatura, leer la secuencia del paquete no debería importar.

  • Haga algo como lo anterior en su PIC, pero use una PC o una placa de Linux incorporada como una Raspberry Pi con una pila TCP / IP completa para servir la última lectura de temperatura como una página web. Podría tener un proceso en segundo plano para sondear periódicamente la última lectura del dispositivo para su visualización.

  • Coloque una pila TCP / IP en el PIC junto con algo que responda directamente a las solicitudes HTTP GET. Si está utilizando un PIC18 o mejor, Microchip tiene un pila de TCP / IP para PIC18, PIC24, dsPIC & PIC32 y aunque no lo he utilizado personalmente, incluye un controlador ENC28J60.

Hay un libro bastante bueno (aunque antiguo) llamado TCP / IP Lean que entra en detalles al rodar tu propia pila TCP al tomar algunos accesos directos para que pueda caber en la huella de memoria más pequeña de dispositivos como un PIC16. Sin embargo, eso es bastante pesado, por lo que creo que es probable que su mejor disparo sea usar un PIC18 con una cantidad decente de FLASH / RAM y el uso de la pila TCP / IP de Microchip. Parece que hay bastantes tutoriales y videos de YouTube sobre su uso junto con el ENC28J60.

    
respondido por el PeterJ
0

En términos generales, un microcontrolador está muy poco potenciado para poder soportar los golpes que obtendría de una conexión directa a Internet. En caso de que quiera hacer esto, también tendría que implementar TCP / IP en el microcontrolador porque ese es el protocolo que se habla en Internet. Entonces, lo más probable es que no quiera conectar su microcontrolador a Internet de esa manera.

Lo que haría: comprar una caja SOHO Wifi AP / router, que sea capaz de ejecutar Linux, y que tenga un puerto host USB. Conecte esa caja a Internet, conecte el microcontrolador a la caja a través del puerto USB, con un adaptador serie USB de nivel TTL y ejecute el software interactuando con el microcontrolador en la caja. La parte TCP / IP es manejada por el sistema operativo (Linux), y la interfaz web es proporcionada por el software que se ejecuta en la caja. Y el microcontrolador solo tendría que manejar una conexión serie, que es mucho más fácil de programar.

Aunque podría usar el ENC28J60 para conectar su microcontrolador a la caja a través de una conexión LAN Ethernet, generalmente no tiene sentido hacerlo: la mayoría de los microcontroladores proporcionan una interfaz serial, y programar la interfaz serial en el microcontrolador es mucho más fácil que Programando la interfaz Ethernet.

Ejemplos para los componentes:

Enrutador SOHO: Asus WL-500gp , TP-Link WR1043ND

Distribución de Linux: OpenWRT

Adaptador serie USB de nivel TTL: Ebay

    
respondido por el Laszlo Valko

Lea otras preguntas en las etiquetas