Forum: Mikrocontroller und Digitale Elektronik Ethernet mit Cortex M3 - wie schnell?


von Peter (Gast)


Lesenswert?

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

von Jan S. (jevermeister)


Lesenswert?

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?

von Frank K. (fchk)


Lesenswert?

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

von Jan B. (berge)


Lesenswert?

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

von Hughes (Gast)


Lesenswert?

> Datenrate > 24 MBit

Das schafft jeder Mikrocontroller.

von c-hater (Gast)


Lesenswert?

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.

von Hughes (Gast)


Lesenswert?

>  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.

von Mark B. (Firma: M.J.Butcher Consulting) (utasker)


Lesenswert?

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

von ISO Layer vs IP-Protokoll (Gast)


Lesenswert?

>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

von ISO Layer vs IP-Protokoll (Gast)


Lesenswert?

Ethernet != Internet

haben alle schon netbios vergessen ?

von stefanus (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.