wie man Ethernet mit PIC, PIC18F97J60, PIC32MX(795F512L), ENC624J600, LAN8720A implementiert

Mein Projekt ist eine Datenloggerplatine, die eine Art PIC montieren muss, um USB und Ethernet als Mittel zur Kommunikation mit der Platine bereitzustellen. Ich kann dieses System in zwei Produkte umwandeln, eine Low-End-Version, die 10 Mbit/s (10BaseT) bereitstellt, und eine Version mit mehr Funktionen, die 100 Mbit/s (100BaseT) bereitstellen muss, um LXI (LAN eXtension for Instrumentation) zu entsprechen.

Für die Low-End-Version, die ich verwende

PIC18F97J60

Dieser Teil bietet den Weg des geringsten Widerstands. Ich bekomme alles in einem Chip, einschließlich der PHY-Schicht. Ich muss nur Magnetics hinzufügen und den kostenlosen MICROCHIP TCP/IP-Stack in der Firmware verwenden, um die Arbeit zu erledigen. Dies bietet jedoch nur 10 Mbit/s (10BaseT) und das auf dieser Lösung basierende Produkt kann nicht LXI-kompatibel sein.

Für die funktionsreichere Version möchte ich ein geeignetes Mitglied von verwenden

PIC32MX

Beim PIC32MX konnte ich einen der folgenden PHYs verwenden

  1. LAN8720A/LAN8720Ai
  2. ENC424J600/624J600
  3. LAN9220, LAN9221 oder ähnlich

Was sind in wenigen Worten die Hauptunterschiede und Anwendungsfälle zwischen diesen PHYs?

Gibt es ein Mitglied der PIC32MX-Familie, das dem PIC18F97J60 entspricht, indem MAC und PHY alle in einem Chip integriert sind?

Ich danke Ihnen für Ihre Hilfe

Grüße

Es ist im Allgemeinen einfacher, einen Einplatinencomputer zu verwenden, auf dem ein vollständiges Betriebssystem ausgeführt wird (z. B. Himbeer-Pi, Beagle-Knochen), als Ethernet auf einem Mikro zum Laufen zu bringen. Die Verwendung eines abgespeckten, nicht standardmäßigen IP-Stacks ist im Allgemeinen etwas mühsam
Holen Sie sich einfach ein chipKIT MAX32 und das zugehörige Ethernet-Schild.
Danke für deine Vorschläge, Will und Majenko, ich werde sie im Hinterkopf behalten. Für dieses Projekt muss ich mich jedoch an ein vorhandenes Board halten, das mit einem PIC18F97J60 für die Low-End-Version und mit PIC32MX + einigen anderen PHYs oder einem PIC32MX mit integriertem MAC & PHY, falls vorhanden, entsprechend aufgerüstet wird.

Antworten (2)

Soweit ich weiß, gibt es keine 32-Bit-Versionen des PIC18F97J60-Chips. Ich glaube, Luminary Micro (jetzt TI) hatte einen, aber ich bin mir nicht sicher, ob sie noch verfügbar sind (ich glaube, ich habe irgendwo gelesen, dass sie EOL gegangen sind).

Die ENC424J600/624J600-Chips bieten MAC+PHY in 1 Chip und kommunizieren über SPI oder eine parallele Schnittstelle mit jedem Mikrocontroller. Sie müssen jedoch alle Rahmendaten über diese SPI/Parallel-Schnittstelle transportieren. Die SPI-Schnittstelle kann nur mit etwa 20 MHz betrieben werden, sodass der SRAM-Puffer bei mittlerem bis hohem Durchsatz überläuft. Es ist schön, dass der Chip in 100-Mbps-Netzwerken kommunizieren kann, aber er kann diese Datenrate nicht aufrechterhalten. Um dies zu vermeiden, könnten Sie die Schnittstelle parallel betreiben (die bis zu 80/160 Mbit / s zwischen MCU und Ethernet-Controller übertragen kann), aber das erfordert ein Dutzend oder mehr Verbindungen zwischen den Chips.

Der LAN9220-Chip sieht dem ENC624J600 sehr ähnlich, unterstützt aber nur parallel.

Ich würde vorschlagen, sich die "MII / RMII-Phy-Chips" anzusehen, wenn Sie einen der High-End-Chips der PIC32MX6xx- oder 7xx-Serie (oder ein alternatives ARM-Teil) angeben können. Dazu gehört der MAC-Controller im Mikrocontroller mit Frame-Puffer, die in Ihrem MCU-RAM zugewiesen sind. Sie benötigen nur einen günstigen externen PHY-Chip, der die MAC-Daten im Grunde in konforme Ethernet-Signale übersetzt. Das Beste daran ist, dass RMII/MII nicht exklusiv für Microchip ist. Viele ARM-Mikrocontroller unterstützen auch RMII/MII-Ethernet-Schnittstellen. Der größte Vorteil besteht darin, dass die wichtigsten Datenbewegungen alle von Hardware oder DMA abgewickelt werden. Sobald der Software-/Ethernet-Stack zu einem neuen Paket aufgefordert wird, befindet es sich bereits im MCU-RAM und ist bereit, verarbeitet zu werden. Dies ergibt einen sehr anständigen/guten Durchsatz und die niedrigste Latenz des Bündels.

MII besteht im Grunde aus zwei separaten 4-Bit-Datenbussen, die mit 25 MHz laufen. Sie binden sie einfach an die MCU und los geht's. RMII halbiert den 4-Bit-Bus auf 2 Bit (weniger Signale), läuft aber mit 50 MHz.

Der beste Weg, um den Unterschied zu erkennen, ist die Anzeige dieses Diagramms in der TCP/IP-Stack-Hilfe von Microchip. Ich kann nicht sagen, wo sich das in den neueren Versionen der MAL befindet, aber in v2012-10-15 ist es unter C:\Microchip Solutions v2012-10-15\Microchip\Help\TCPIP Stack Help.chm zu finden. Es gibt ein schönes Diagramm unter Release Notes->Stack Performance. Das MAL ist hier zu finden , einschließlich des Archivs.

Kurz gesagt, hier sind einige grundlegende maximale LAN-UDP-Durchsätze (KB/s).

PIC18F97J60 = 113

PIC32MX795F512L + ENC624J600 = 784

PIC32MX795F512L + DP83848 = 8449

Der DP83848 ist ein Phy von TI, der sich ähnlich wie der lan8720 verhalten wird.

Der Lan9220 scheint einer encj624-Serie in gewisser Weise gleichwertig zu sein, da es sich um einen Mac + Phy handelt, aber vielleicht viel schneller.

Alle pic32mx-Serien haben nur einen Mac. Lassen Sie sich dadurch nicht davon abhalten, eine separate Phy zu verwenden, da es logische Gründe dafür gibt, sie zu trennen. Die integrierten Mac+Phy-Kombinationen auf den PIC18 haben es beispielsweise nicht immer leicht, die FCC Teil 15-Abgasnormen zu erfüllen.

Der MAL-Stack von Microchip lässt sich gut mit guten Dokumenten verwenden. Wenn Sie bereits den PIC18F97J60 verwenden, wird es Ihnen wahrscheinlich nicht allzu schwer fallen, auf eine von MAL unterstützte Konfiguration zu aktualisieren.