cómo implementar Ethernet con PIC, PIC18F97J60, PIC32MX(795F512L), ENC624J600, LAN8720A

Mi proyecto es una placa de registro de datos que debe montar un PIC de algún tipo para proporcionar USB y Ethernet como medio para comunicarse con la placa. Puedo desarrollar este sistema en dos productos, una versión de gama baja que proporciona 10Mbps (10BaseT) y una más destacada que debe proporcionar 100Mbps (100BaseT) para cumplir con LXI (extensión LAN para instrumentación).

Para la versión de gama baja que uso

PIC18F97J60

Esta parte ofrece el camino de menor resistencia. Obtengo todo en un solo chip, incluida la capa PHY. Solo necesito agregar imanes y usar la pila MICROCHIP TCP/IP gratuita en el firmware para hacer el trabajo. Sin embargo, solo proporciona 10 Mbps (10BaseT) y el producto basado en esta solución no puede ser compatible con LXI.

Para la versión más destacada, quiero usar un miembro adecuado de

PIC32MX

Con el PIC32MX podría usar uno de los siguientes PHY

  1. LAN8720A/LAN8720Ai
  2. ENC424J600/624J600
  3. LAN9220, LAN9221 o similar

En pocas palabras, ¿cuáles son las principales diferencias y casos de uso entre estos PHY?

¿Hay algún miembro de la familia PIC32MX que sea equivalente al PIC18F97J60 al ofrecer MAC y PHY integrados en un solo chip?

gracias por su ayuda

Saludos

Por lo general, es más fácil usar una computadora de placa única que ejecute un sistema operativo completo (por ejemplo, raspberry pi, beagle bone) que hacer que Ethernet funcione bien en un micro. El uso de una pila de IP no estándar recortada generalmente es un poco molesto
Solo obtenga un chipKIT MAX32 y su escudo Ethernet asociado.
Gracias por tus sugerencias Will y Majenko las tendré en cuenta. Sin embargo, para este proyecto debo ceñirme a una placa existente que se actualizará adecuadamente con un PIC18F97J60 para la versión de gama baja y con PIC32MX + algunos otros PHY o un PIC32MX con MAC y PHY integrados, si existe.

Respuestas (2)

Que yo sepa, no hay versiones de 32 bits del chip PIC18F97J60. Creo que Luminary Micro (ahora TI) tenía uno, pero no estoy seguro de si todavía están disponibles (creo que leí en alguna parte que terminaron).

Los chips ENC424J600/624J600 proporcionan MAC+PHY en 1 chip y se comunican mediante SPI o interfaz paralela a cualquier microcontrolador. Sin embargo, debe transportar todos los datos del marco a través de esta interfaz paralela/SPI. La interfaz SPI solo puede funcionar a aproximadamente 20 MHz, por lo que el búfer SRAM se desbordará con un rendimiento medio a alto. Es bueno que el chip pueda comunicarse en redes de 100 Mbps, pero no puede mantener esa velocidad de datos. Para evitar esto, puede ejecutar la interfaz en paralelo (que puede transferir hasta 80/160 Mbps entre MCU y el controlador Ethernet), pero eso implicará una docena o más de conexiones entre los chips.

El chip LAN9220 se parece mucho al ENC624J600, pero solo admite paralelo.

Sugeriría buscar en los "chips MII/RMII Phy" si puede especificar uno de los chips de la serie PIC32MX6xx o 7xx de gama alta (o una parte ARM alternativa). Incluyen el controlador MAC dentro del microcontrolador, con búferes de trama asignados dentro de la RAM de su MCU. Solo necesita un chip PHY externo económico, que básicamente traduce los datos MAC a señales Ethernet compatibles. Lo mejor de todo es que RMII/MII no es exclusivo de Microchip. Muchos microcontroladores ARM también admiten interfaces ethernet RMII/MII. La mayor ventaja es que los principales movimientos de datos son manejados por hardware o DMA. Una vez que se le pregunta a la pila de software/ethernet acerca de un nuevo paquete, ya está en la RAM de la MCU lista para ser procesada. Esto produce un rendimiento muy decente/bueno y la latencia más baja del grupo.

MII es básicamente dos buses de datos separados de 4 bits que funcionan a 25 MHz. Simplemente los une a la MCU y listo. RMII reduce a la mitad el bus de 4 bits a 2 bits (menos señales), pero funciona a 50 MHz.

La mejor manera de ver la diferencia es ver este gráfico en la Ayuda de la pila TCP/IP de Microchip. No puedo decir dónde está esto en las versiones más nuevas de MAL, pero en v2012-10-15, se puede encontrar en C:\Microchip Solutions v2012-10-15\Microchip\Help\TCPIP Stack Help.chm. Hay un buen gráfico en Notas de la versión->Rendimiento de la pila. El MAL se puede encontrar aquí , incluidos los archivos.

En resumen, aquí hay algunos rendimientos máximos básicos de LAN UDP (Kbytes/seg).

PIC18F97J60 = 113

PIC32MX795F512L + ENC624J600 = 784

PIC32MX795F512L + DP83848 = 8449

El DP83848 es un phy de TI, que actuará de manera similar al lan8720.

El Lan9220 parece ser algo equivalente en acción a una serie encj624, ya que es un mac + phy, pero quizás mucho más rápido.

Todas las series pic32mx solo tienen una mac. No dejes que esto te disuada de usar un phy separado, ya que hay razones lógicas para tenerlos separados. Las combinaciones mac+phy integradas en los PIC18 no siempre cumplen fácilmente con los estándares de emisiones FCC parte 15, por ejemplo.

La pila MAL de microchip es agradable de usar con buenos documentos, si ya está usando el PIC18F97J60, probablemente no le resulte demasiado difícil actualizar a cualquier configuración compatible con MAL.