Hallo, ich suche einen Mikrocontroller den ich für eine Datenübertragung via Ethernet verwenden kann. Ich frage mich nun, ob das unter den folgenden Rahmenbedingungen überhaupt möglich ist: - nur senden an PC - Datenabfrage an digitalen IO's - Datenrate > 24 MBit - kontinuierliche Übertragung - keine Zwischenspeicherung Kann man dafür einen Cortex M3 nehmen (ich habe hier ein Demo-Board mit STM32F107)? Gruß Peter
Laut http://www.nxp.com/documents/application_note/AN11053.pdf ist, sofern du mit einer paket size von 1500 leben kannst, unter realen Bedingungen mit DMA ca. 50 Mbit möglich. Im Endeffekt kommt es darauf an, wie schnell du deine Daten abfragen und in den Speicher packen kannst. Die Übertragung per DMA schafft locker volle 100 Mbit wenn der Controller sonst nichts zu tun hat. Die erzielbare Datenrate hängt einzig und allein davon ab, wie effizient deine Applikation arbeitet. Schieb deine Daten erstmal direkt in den Ram und schau, wieviel Zeit das braucht. Die reine Datenübertragung per Ethernet ist dank DMA ziemlich schnell. Achja: Reicht UDP oder muss es TCP (MitDatenkontrolle, sprich ein ACK vom PC sobald ein Paket komplett eingetroffen ist) sein?
Hier ftp://193.170.235.123/Lernbehelfe/PIC-Fortgeschritten/Microchip/Help/Sup plementary%20TCPIP%20Help/TCPIP%20Stack%20Performance.htm gibt es eine Tabelle, die die Performance des Microchip TCP/IP-Stacks auf verschiedenen PICs (8,16,32 Bit) wiedergibt. Der PIC32MX ist in etwa vergleichbar mit einem Cortex M3. Der dort MIPS-Kern hat geringfügig höhere Mips/MHz Werte als ein normaler Cortex M3, d.h. ist bei gleichem Takt ein paar Prozent schneller. Der Microchip Stack ist jedoch deutlich performanter als das üblicherweise auf anderen Architekturen verwendete uIP bzw lwip von Adam Dunkels. Jedenfalls siehst Du bei eimem 80 MHz PIC32MX795F512L mit dem internen MAC und externem PHY einen TCP-Durchsatz von 2543 kBytes/s, d.h. etwa 20 MBit/s. Das passt schon mal nicht, und da lwip nicht so performant wie der Microchip-Stack ist, wird das bei Dir erst recht nicht funktionieren. Bei UDP sind es 8449 kBytes/s oder 66 MBit/s. Das wird also problemlos passen, und hier ist der Einfluss des TCP/IP-Stacks auch gering, so dass das bei Dir auch funktionieren wird. Nur fehlt Dir dann eben die Funktionalität des TCP, d.h. Datensicherung, Schutz gegen Paketverluste und Flusskontrolle. fchk
Also mit einem STM32F4 hab ich mit TCP und dem LwIP schon 80 MBit erreicht. Vielleicht wird es durch den kleineren Ram und etwas weniger Takt etwas langsamer, aber deine Datenratenanforderung ist ja auch Faktor drei kleiner. @Frank: Ich glaube nicht, dass sich die Messergebnisse so einfach übertragen lassen auf einen F107. Selbst unter den Cortex M3 gibt es ja Unterschiede (ggfs. fehlt die CRC Berechnung in Hardware etc.) Liebe Grüße, Jan
Hughes schrieb: >> Datenrate > 24 MBit > > Das schafft jeder Mikrocontroller. Wohl kaum. Oder willst du darauf hinaus, daß der OP nicht in der Lage ist, Einheiten korrekt zu verwenden? Naja, da gebe ich dir Recht, wirklich schön ist das nicht.
> Naja, da gebe ich dir Recht, wirklich schön ist das nicht.
Diese Unsitte ist auf dem µCNet sehr verbreitet und sie stört mich.
Hallo Zusammen Ob Cortex-M3 oder Cortex-M4 macht der Prozessor wenig aus. Entscheidender ist, ob der EMAC die IP Prüfsummen automatisch berechnen kann und wie die Daten aufbereitet sind (UDP oder TCP). Folgendes vergleicht den Freescale K70 mit 120MHz Takt und Checksum Offloading (vergleichbar mit STM32F4) und einen Coldfire: http://www.utasker.com/docs/uTasker/uTaskerBenchmarks.PDF (Seite 7) Gruss Mark www.uTasker.com
>ich suche einen Mikrocontroller den ich für eine Datenübertragung via >Ethernet was hat das mit TCP/IP zu tun ? Ethernet Pakete schnüren und auf die Leitung geben benötigt kein TCP/IP, ebenso das empfangen Vielleicht braucht man ja gar kein routingfähiges Protokoll, das CPU Leistung frisst
Ja Ethernet ist nicht zwangsläufig Internet. Aber in den allermeisten Fällen meinen die Leute TCP/IP, wenn sie Ethernet schreiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.