¿Qué es un buen microcontrolador para aplicaciones Ethernet?

¿Qué es un buen microcontrolador para hacer aplicaciones Ethernet? ¿O solo necesito una buena biblioteca de Ethernet para conectarme con un Ethernet MAC/PHY?

¿Puede decirnos qué solución eligió y su experiencia con ella?
Actualmente estoy usando la serie PIC18F97J60 y PIC32 con un ENCxxx. Funciona bien. El problema más grande es que solo tiene hasta SSLv3.0, que Firefox y Chrome acaban de eliminar. Microchip tiene soporte para muchos otros protocolos que uso: FTP, TFTP, SNTP, SNMP.
Es bueno saberlo: también es bueno saber la limitación de SSL, pero parece que todas las implementaciones de TLS "robustas" no son libres en general. ¡Gracias por compartir!

Respuestas (20)

Los PIC18 de Microchip con ethernet incorporado son excelentes para esto, solo agregue un magjack (u otro conector con imanes incorporados) y descargue su pila TCP/IP. Estarás haciendo ping a las cosas en poco tiempo. Para obtener más gruñido, el PIC24 y el PIC32 también tienen pilas TCP/IP diseñadas para ejecutarse con una de las partes SPI Ethernet MAC/PHY que ofrecen (ENC624J600 o ENC628J60).

ST también mejoró recientemente su línea STM32 basada en ARM Cortex para incluir Ethernet en el chip, pero necesitará un PHY externo y magnetismo. Es una opción si ya estás mirando el PIC32.

Tuve problemas con la pila de red de Microchip, así que escribí la mía y la puse a disposición de forma gratuita con el código fuente en embedinc.com/pic/dload.htm en la versión de herramientas de desarrollo de PIC. Tienes que adoptar el concepto de nuestro entorno de desarrollo PIC (también gratuito), pero de todos modos es una buena idea. Después de la instalación, busque archivos con "net" en sus nombres en el directorio SOURCE > PIC.

Con respecto a tener una pila de TCP/IP, hay tres proyectos que debe considerar:

Contiki es un sistema operativo de código abierto, altamente portátil y multitarea para sistemas integrados en red y redes de sensores inalámbricos con uso eficiente de la memoria. Contiki se ha utilizado en una variedad de proyectos, como monitoreo de incendios en túneles de carretera, detección de intrusos, monitoreo de agua en el Mar Báltico y en redes de vigilancia.

Contiki está diseñado para microcontroladores con pequeñas cantidades de memoria. Una configuración típica de Contiki es de 2 kilobytes de RAM y 40 kilobytes de ROM.

La pila uIP TCP/IP de código abierto proporciona conectividad TCP/IP a pequeños microcontroladores integrados de 8 bits, con interoperabilidad mantenida y cumplimiento de estándares RFC.

  • La pila lwIP TCP/IP :

    Mucho más rápido que uIP pero más difícil para empezar

Generalmente, Ethernet no está integrado en los microcontroladores. Primero necesita un conector que pueda convertir las señales de Ethernet en señales leídas por un microcontrolador (esto generalmente se llama 'magnético'). Luego, necesita una pila TCP/IP y, además, necesita DHCP, DNS y cualquier otro protocolo que desee utilizar. Entonces, el microcontrolador real que use no importa mucho. Si obtiene algo muy poderoso como un ARM con Linux ejecutándose en él, desarrollarlo sería muy simple, casi lo mismo que escribir una aplicación de red que se ejecuta en una PC de escritorio que ejecuta Linux. O podría optar por algo menos potente y más barato como un AVR o PIC.

Ethernet y TCP/IP pueden ser bastante complejos si desea implementar una pila completa de TCP/IP en el software. Una solución común es usar algo como el chip W5100 de Wiznet, que maneja todo el TCP/IP de bajo nivel por usted. Puede comprarlo en un módulo prefabricado que incluye el conector ethernet y todo a un precio bastante económico, alrededor de $20 por el módulo WIZ812MJ . Puede comunicarse con él usando solo SPI, por lo que no necesitará muchos pines de E/S en su microcontrolador.

Lantronix también proporciona algunos módulos más potentes que parecen incluso más sencillos de usar, pero son un poco más caros ($50-$100 según el modelo). Ver su XPort por ejemplo.

Me encantaría ver una referencia confiable para el término "magnetismo", ya que nunca he oído hablar de él.
@Andrew No sé ningún diccionario técnico que lo tenga. Googleando encontrará varias referencias. Eso es justo a lo que he visto que se refiere. Básicamente, el objetivo de ellos es aislar su circuito de los otros dispositivos conectados a él a través de Ethernet. Similar a cómo MIDI usa aislamiento óptico.
Obtengo alrededor de medio millón de resultados más para "aislador de ethernet" que para "magnetismo de ethernet", pero entiendo lo que quiere decir ahora.
Hay una discusión sobre el origen y el uso del término en esta publicación de Hack A Day sobre acoplamiento capacitivo .
Estaba viendo una hoja de datos de un transceptor Ethernet (LAN8720A de Microchip), y esa sección se conoce como 'Mag' y 'Transformer'.

Los ARM son los microcontroladores del día y NXP tiene una amplia oferta de ellos. Esta página web enumera literalmente demasiados controladores Ethernet para mencionarlos todos aquí, a partir de esta fecha (2011-07-13):

17 dispositivos ARM7
2 dispositivos ARM9
16 dispositivos Cortex-M3

editar
Moví la discusión de las ventajas de ARM a esta respuesta .

que ventajas da la linea del brazo. Veo muchas otras respuestas que necesitan más detalles, la parte importante es que brinde una razón por la cual la línea es más que un enlace a la línea de controladores. ¡Solo te doy este comentario porque eres un usuario demasiado prolífico para no dar las mejores respuestas posibles!
@Kortuk - ¡Oh, eso es genial! No solo quieren muchas respuestas, ¡ahora también tienen que ser los mejores! ;-)

El kit XMOS XC-2 es una forma interesante de hacerlo. Todo se hace en software, excepto el PHY. El software debe ejecutarse en el chip XS1-L1 de $7.50.

Hombre, me estás interesando en los productos XMOS. Voy a tener que esforzarme mucho para resistirme a elegir ese kit de desarrollo. ¿Sabes si hay un RTOS disponible para ello?
Realmente no necesita un RTOS, debido a los hilos de hardware. Dicho esto, una o dos personas están trabajando en uno.
XMOS también hace una versión con dos conectores ethernet. Está diseñado para letreros LED de bits, pero no veo por qué no podrías hacer otras cosas. ¡Enrolle su propio enrutador! xmos.com/products/development-kits/xc-3-led-tile-kit

Microchip tiene una serie de microcontroladores Pic con capacidades Ethernet incorporadas, hay una lista aquí . También tienen una serie de páginas sobre soluciones de diseño para ethernet y sus productos aquí , que también incluye detalles de su pila TCP/IP completa (con MAC y PHY integrados).

Espero que esto ayude.

Muchos de los microcontroladores Luminary de TI (ARM Cortex-M3) tienen un MAC ethernet integrado. Necesita un cristal externo y ethernet PHY (conector + magnetos).

GCC y openOCD (parpadeo/depuración JTAG) los admiten bien y son bastante baratos en cantidad.

También tienen kits de desarrollo de hardware baratos...

http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254

Netduino plus es un buen microcontrolador de $60 para aplicaciones de ethernet. También puede aceptar la mayoría de los escudos Arduino si es necesario.

Dependiendo de qué tan fácil quiera hacer su vida, le recomendaría usar un MBED y comprar una placa de conexión magjack y ethernet (vea sparkfun) para conectar el cable y manejar el acondicionamiento de la señal. El modelo de soporte es el mbed NXP LPC1768.

Logré obtener un mbed enviando datos a mi servidor remoto (es decir, a través de Internet) en aproximadamente 2 horas desde un inicio permanente.

Depende de lo que quieras hacer con él. Lo principal a tener en cuenta es la cantidad de RAM (puede limitar el tamaño de los mensajes individuales) y, si desea publicar páginas web, la cantidad de almacenamiento disponible para eso. Uso un Arduino Duemilanova http://www.arduino.cc/ - microcontrolador ATMega328, 2Kbytes de RAM. Puede conectar una tarjeta SD si desea un almacenamiento significativo. El escudo de ethernet admitirá hasta 4 sesiones simultáneas. No espere poder publicar páginas complejas, pero funciona bien al cargarlo en Pachube, Twitter, etc.

Para una solución más poderosa, busque Marvell Plug

Sugeriría usar el ENC28J60 junto con uno de los microcontroladores pic 18 porque el microchip ofrece una pila TCP/IP para esta combinación y debería haber mucha información disponible a través de Google sobre cómo implementar esto.

echa un vistazo a tuxgraphics para una buena solución.

¿Usando un micro AVR con un Microchip MAC/PHY? ¿Que sigue? ¿Gatos y perros viviendo juntos? :)
Tengo uno de estos - funciona bien. Viene como un kit con todas las piezas de montaje en superficie presoldadas. Las fuentes uIP y el controlador ethernet vienen con él.

Hay muchos proyectos que utilizan ENC28J60 y ATMEL Cips. La mayoría de ellos están bien documentados y usan C o BASCOM. También puede comprar kits completos para empezar. Yo solo tengo un kit de este tipo y aprendí mucho sobre la programación de los foros.

El nanode es de código abierto y solo se envían £ 22 / $ 40. Acabo de comprar dos para el monitoreo ambiental/energético del hogar a través de pachube.

Lanzamiento de 30 segundos desde el sitio:

Nanode es una placa similar a Arduino de código abierto que tiene conectividad web incorporada. Se conecta a una variedad de interfaces inalámbricas, cableadas y ethernet. Le permite desarrollar sensores y sistemas de control basados ​​en la web, lo que le brinda acceso web a seis líneas de sensores analógicos y seis líneas de E/S digitales. Es un kit fácil de construirlo usted mismo. Nanode fue diseñado con Hacking en mente.

Probé la pila de microchips con la tarjeta de desarrollo picdem.net 2 y no quedé nada satisfecho, no está optimizado ni bien documentado.

Creo que la mejor solución en el mercado ahora es Wiznet que tiene el primer chip de hardware TCP/IP basado en Ethernet que ahorra mucho tiempo y le brinda más eficiencia.

Este enlace da todas las soluciones disponibles y las compara:

http://retired.beyondlogic.org/etherip/ip.htm

Qué excelente resumen.
También tuve malas experiencias con la pila de red de Microchip, así que escribí la mía. Se incluye en la versión de herramientas de desarrollo de PIC en [url] embedinc.com/pic/dload.htm[/url] . Se ejecuta en un PIC 18, puede controlar el ENC28J60 externo o el MAC/PHY interno, está bien comentado, es fácil de configurar y se diseñó para ocupar poco espacio.

Llego tarde a la fiesta aquí pero recomiendo el TI Stellaris EK-LM3S6965. Es una pieza ARM Cortex M3 con controlador Ethernet incorporado que incluye PHY. Para la creación de prototipos, utilicé su kit de evaluación, que tiene un conector Ethernet, una pequeña pantalla OLED (ideal para la depuración y la interfaz de usuario básica), ranura para tarjeta SD, altavoz, botones, LED y conexiones para conectar cosas a los periféricos del micro. No describió su aplicación (es decir, busca producir decenas de miles de algo o un proyecto de pasatiempo único), pero el precio es razonable (~ $ 70 para la placa de desarrollo, $ 12-15 en pequeñas cantidades solo por los chips) , vienen con un conjunto correcto de bibliotecas de desarrollo si desea hacer su propio firmware o puede ejecutar FreeRTOS (requirió un poco de portabilidad debido a revoluciones de hardware menores entre la revisión de mi placa y las cosas en la distribución de FreeRTOS) y eLua. Puede usar uIP o lwIP para TCP/IP.

En comparación con las ofertas populares para aficionados como AVR/Arduino y PIC, el Cortex M3 es una pieza de 32 bits, funciona a 50 MHz, el 6965 tiene muchas características de E/S, en mi opinión, por el dinero, es simplemente increíble la cantidad de potencia informática y cómo muchas características que puede obtener de algo tan pequeño y barato. Sin embargo, es bastante crudo en el lado del desarrollo y debe saber C (bueno, a menos que ejecute eLua). Soy un desarrollador de software de oficio y hago mi desarrollo ARM en una Mac, por lo que no tengo miedo de las configuraciones de cadena de herramientas aterradoras/incómodas y usé Make + arm-eabi-gcc + OpenOCD para la depuración, pero si eres un chico de Windows tal vez el paquete Code Composer Studio sería una buena apuesta. Utilicé Code Composer IDE de TI para un divertido proyecto experimental MSP430 y estuvo bien para mí y tenía un flujo de trabajo más fácil que mi configuración OSX/ARM.

Divulgación completa, en realidad no he diseñado una PCB alrededor de este chip que usa el controlador Ethernet, pero hice una placa que no usaba Ethernet y tuve una buena experiencia con eso, y he creado proyectos habilitados para Ethernet usando la junta de evaluación.

Echa un vistazo a la placa de evaluación/paquetes de herramientas aquí

ACTUALIZACIÓN Sep 2013

Parece que estas piezas ya no se recomiendan para nuevos diseños. No parece haber reemplazos obvios.

ACTUALIZACIÓN noviembre 2013

Ahora hay un TM4C129XNCZAD que es nominalmente un reemplazo para la parte anterior: tiene MAC + PHY integrado, aunque no es compatible con pines; sin embargo , muchas personas son reacias a usarlo después de los problemas/confusión sobre la interrupción/disponibilidad de la vida temprana de LM3S .

Puede que no sea 100 % lo que está preguntando esta pregunta, pero para proyectos en los que las series de producción son bastante pequeñas, he comenzado a ver personas que incorporan placas preconstruidas como la frambuesa pi. Esto tiene muchas ventajas:

  1. El precio no es mucho más alto que el de una de las CPU de gama alta con ethernet (al menos para volúmenes bajos), y te saltas una gran cantidad de problemas de diseño/prueba/mensajería.
  2. El raspberry PI ya está probado por CE/EMC, por lo que elimina una gran cantidad de incertidumbre (de lo contrario, los relojes rápidos y de ethernet pueden generar un montón de problemas de EMC). Todavía tiene que probar su producto final, pero al menos hay un área completa que realmente no debería causar una falla.
  3. Obtiene mucho más gruñido y una pila TCP / IP de grado de servidor adecuada si usa Linux, etc. ¡Ninguna de estas cosas del tipo "solo se permite una conexión activa"!

Como digo, no es para todos, pero para algunos proyectos puede ser una buena opción.

Hay algunas opciones en términos de la placa exacta utilizada:

  1. frambuesa pi
  2. Beaglebone negro - tiene flash integrado
  3. STM32F4DISCOVERY con placas de expansión

Puede usar casi cualquier MCU con el controlador Wiznet W5500 MAC + PHY incorporado , está controlado por SPI. Las ventajas son: tiene una pila de red incorporada, búferes Tx/Rx, requiere un mínimo de pines MCU, programación simplificada.

Acabo de encontrar otra opción interesante: AX88796C de ASIX, también tiene MAC + PHY , 10\100Mbps Ethernet y una opción de interfaz SPI de hasta 40MHz, por lo que se ve muy bien para cualquier MCU basado en ARM.

ACTUALIZACIÓN: Netduino 3 ya está usando este chip, aquí hay detalles interesantes:

http://forums.netduino.com/index.php?/topic/12117-deep-dive-on-asix-ax88796c-netduino-3-ethernets-fancy-new-networking-chip/

Si tiene alguna experiencia con el firmware, recomendaría la placa STM32F4Discovery con la placa STM32F4DIS-EXT. Recientemente usé esto para crear una página web de configuración para mi dispositivo y fue bastante fácil. Hay un proyecto de ejemplo de lwIP disponible en línea y si busca en Google "makefsdata", encontrará mucha información sobre cómo generar los archivos necesarios para sus propios archivos HTML. Envíame un mensaje si necesitas más información.

Me gusta el módulo ethernet Openpicus FlyportPro (25 EUR) para ese propósito. Simplemente agregue un conector ethernet con imanes y cree su firmware usando su pila TCP/IP. También tienen una implementación de TLS:

http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html

Hice un proyecto usando la Ethernet Flyport 'clásica' y hasta ahora ha sido sólido como una roca.