Forum: Mikrocontroller und Digitale Elektronik Daten von STM32 an PC. USB vs Ethernet?


von Stefan T. (Gast)


Lesenswert?

Hallo zusammen,

vorab: Ich bin kein Informatiker oder Elektrotecniker, kann aber 
Programmieren und habe eine hohe IT-Affinität (Naturwissenschaftler).

Bei uns am FG haben wir eine (eigenentwickeltes) Telemetriesystem einer 
Forschungseinrichtung mit einem relativ hohem Datendurchsatz (derzeit 1 
MBit/s, kann auf 8 MBit/s anwachsen) am laufen.

Nun möchten wir die Daten gerne (web-)visualisieren. Dafür muss ein 
Gateway entwickelt werden, der diese an einen PC (Windows) sendet. 
Bisher war ich eher auf Low-Level-Ebene im Embeded-Bereich unterwegs. 
Genutzt werden soll Hardware von STM (STM32Fxxx).

Sollte man dafür noch auf USB setzen oder lieber direkt auf IP setzen?
Was ist vom Implementierungsaufwand im Gerät einfacher zu handeln (ich 
habe weder Erfahrung mit TCP/IP noch USB-Stacks). Und wichtiger noch: 
Wie schwer ist die Implementierung eines USB Devices auf Windows? 
Fertige (kostenlose) Librarys würde ich nat einsetzen, für mehr ist 
aktuell leider kein Budget vorhanden.

Nochmal zusammen gefasst:

STM32Fx-Controller sendet Daten (1-8MBit/s) an Winddows-PC.
USB oder Ethernet?

Natürlich können wir ETler zu Rate ziehen. Vllt würde sich auch die 
Realisierung innerhalb einer studentischen Arbeit realisieren lassen. Es 
geht mir nur erstmal um eine Einschätzung.

von Stefan T. (Gast)


Lesenswert?

Ich hätte mich an melden bzw nicht im Zug schreiben sollen. Seht bitte 
über die vorhandenen Rechtschreib- und Grammatik-Fehler hinweg. :/

von foobar (Gast)


Lesenswert?

Von der Software-Seite aus kommt es darauf an, was der Entwickler gut 
kann - ich empfände Ethernet/IP einfacher, andere wohl USB.  Bei 
Ethernet kann man sich clientseitige Treiber meist sparen - UDP/TCP 
können inzw fast alle.

Andere Punkte:

USB ist eher für den direkten Anschluß an den Rechner geeignet, also 
Telemetriesystem in räumlicher Nähe zum Rechner/Laptop.  Lange Kabel 
sind da nichts.  Bei Ethernet kann sich das Telemetriesystem in einem 
anderen Raum/Stockwerk befinden, ohne Probleme zu bekommen.  Die 
galvanische Trennung der Geräte ist ein weiterer Vorteil von Ethernet.

Dann, was bietet der Mikrokontroller?  Nicht alle STM32 (eher wenige) 
haben einen eingebauten Ethernetkontroller - sind dann eher die etwas 
dickeren (u.a. auch, weil IP etwas mehr RAM benötigt).  Bei USB sieht es 
einfacher aus - breitere Palette und geringere Anforderungen.

von fchk (Gast)


Lesenswert?

Stefan T. schrieb:

> STM32Fx-Controller sendet Daten (1-8MBit/s) an Winddows-PC.
> USB oder Ethernet?

8 MBit/s an Nutzdaten gehen nicht mehr sicher über einen Full Speed USB 
Port - da sind die 12 MBit/s nämlich nur brutto. Wenn USB, dann braucht 
ihr High Speed USB (480 MBit/s), und das wiederum setzt Eure Auswahl an 
Controllern ein, weil nur wenige Typen High Speed USB haben und die, die 
es haben, oft noch einen externen PHY benötigen. Aufpassen!

10 MBit/s Ethernet wird ebenfalls eng. Damit scheidet für Euch die 
Möglichkeit aus, einen externen Ethernet-Controller wie Microchip 
ENC28J60 oder Micrel KSZ8851SNL per SPI an Eure vorhandene Hardware 
anzuschließen - das wird zu langsam. Ihr braucht dann unbedingt einen 
Controller mit eingebauter 10/100 MAC und externem PHY. IP brauchst auch 
RAM.

fchk

von $$$ (Gast)


Lesenswert?

> mit eingebauter 10/100 MAC und externem PHY.
Der PHY darf auch gern im Kaefer sein. Nur, ST kriegt es nicht hin.
Andere schon.
(Selbst bei den Evalboards verbaut ST gern PHYs von anderen
Herstellern..., obwohl sie ja zumindest den STE100 haetten.)

> IP brauchst auch RAM.
Das aber auf alle Faelle.

von Stefan T. (Gast)


Lesenswert?

Vielen Dank für eure Einschätzungen. Ich werde mir dann wohl mal ein 
paar Beispiele anschauen. Für Ethernet gibt's da natürlich mehrere, USB 
wäre sonst mein Fav.

foobar schrieb:
> Von der Software-Seite aus kommt es darauf an, was der Entwickler gut
> kann - ich empfände Ethernet/IP einfacher, andere wohl USB.

bisher weder das eine, noch das andere. Leider!

foobar schrieb:
> Dann, was bietet der Mikrokontroller?

Wir haben von ST einige Boards geschenkt bekommen. Wahrscheinlich würde 
ich einen Cortex M7 wählen, ggf noch ein externes RAM bei Bedarf.

fchk schrieb:
> 8 MBit/s an Nutzdaten gehen nicht mehr sicher über einen Full Speed USB
> Port - da sind die 12 MBit/s nämlich nur brutto.
Das ist natürlich ein berechtigter Einwand.

Es soll schon ein interner Controller verwendet werden.

von fchk (Gast)


Lesenswert?

>> Dann, was bietet der Mikrokontroller?
>
> Wir haben von ST einige Boards geschenkt bekommen. Wahrscheinlich würde
> ich einen Cortex M7 wählen, ggf noch ein externes RAM bei Bedarf.

Aha, deswegen also ST.

Wenn Du ansonsten eine Alternative brauchst:

https://www.microchip.com/wwwproducts/en/PIC32MZ2048EFH144

und dazu das Board

https://www.microchip.com/DevelopmentTools/ProductDetails/DM320007

Da hast Du 100 MBit Ethernet, High Speed USB Host/Device/OTG, 2M Flash, 
512k RAM und sonst auch alles, was Du brauchst. Dazu sehr gute 
Softwareunterstützung.

fchk

von Christopher J. (christopher_j23)


Lesenswert?

Die STM32F7 haben nur eine FS-PHY integriert, d.h. bei den Nucleo-Boards 
wird entsprechend nur die USB-FS auf die Buchse herausgeführt. Da 
müsstet ihr euch dann noch eine externe PHY und eine Buchse dazubauen. 
Sollte aber eigentlich kein großes Problem darstellen. Die Nucleo-Boards 
sind sehr gut auf Lochraster zu setzen, was bei euch sicher Sinn macht, 
da ich mal von Stückzahl 1 ausgehe. PHY und Buchse müsstet ihr dann eben 
auf eine kleine Adapterplatine setzen. Ethernet sollte hingegen mit den 
Nucleo-144 Boards out-of-the-box kein Problem sein, z.B. mit dem F746ZG.

An eurer Stelle würde ich auch noch eine embedded-Linux Lösung mit 
beispielsweise Beaglebone Black in Betracht ziehen. Da habt ihr 
jedenfalls überhaupt keine Probleme wegen Durchsatz oder Speicher und 
ihr könntet mitunter Teile der Software in High-Level-Sprachen wie Java, 
Python oder Go schreiben. Die Hardware-Konfiguration beim BBB ist aber 
leider nicht ganz trivial (GPIO-Mux und co.), was es bei den STM32 
jedoch auch nicht ist. Erst recht nicht, wenn man damit noch nie 
gearbeitet hat. Das müsst ihr halt abwägen, womit eure Leute besser 
zurechtkommen.

PS: Die F7-Discovery-Boards haben die HS-PHY mit an Bord, nebst SDRAM 
und co. Leider ist da oft die Peripherie auf dem Board im Weg, wenn es 
darum geht eigene Peripherie anzuschließen. Das müsste man vorher 
abklären ob es geht.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich taet's ganz klar mit IP loesen, nicht mit USB. Auf IP kann ich von 
allen moeglichen Sprachen in allen moeglichen Betriebssystem aus per 
Socket o.ae. zugreifen. Mit Wireshark prima gucken, was auf der Leitung 
ist.
Bei USB siehts mit so uebergreifenden Standards eher truebe aus.

Gruss
WK

von Stefan T. (Gast)


Lesenswert?

fchk schrieb:
> Wenn Du ansonsten eine Alternative brauchst:
> https://www.microchip.com/wwwproducts/en/PIC32MZ2048EFH144
> und dazu das Board
> https://www.microchip.com/DevelopmentTools/ProductDetails/DM320007

Das sieht sehr gut aus, Danke. Würde ich wahrscheinlich auch gern 
versuchen, dennoch versorgt uns STM ganz gut mit Hardware und Software. 
Deswegen würde ich denen ungern vor den Kopf Stoßen. Wir brauchen auch 
ein paar CAN und UART (RS485) Schnittstellen.

Christopher J. schrieb:
> Die STM32F7 haben nur eine FS-PHY integriert, d.h. bei den Nucleo-Boards
> wird entsprechend nur die USB-FS auf die Buchse herausgeführt.

Das ist leider wahr. Und bei vielen Nucleos ist ein obligatorischer 
HS-Pin mit EINER LED(!!!!) beschaltet. Gab's denn nicht genug andere 
Pins (bei 120 I/O?!?!?)

Christopher J. schrieb:
> Die Nucleo-Boards
> sind sehr gut auf Lochraster zu setzen, was bei euch sicher Sinn macht

Ich traue mich es ja gar nicht zu sagen, aber so läuft das bei uns idR. 
Teilweise lassen wir aber auch custom PCBs fertigen, meist jedoch mit 
einem Nucleo auf dem Rücken.

Christopher J. schrieb:
> An eurer Stelle würde ich auch noch eine embedded-Linux Lösung mit
> beispielsweise Beaglebone Black in Betracht ziehen.

Es werden hauptsächlich Studenten daran werkeln und mit den STMs sind 
wir bisher ganz gut gefahren. Ich würde das ganze wirklich gerne näher 
beschreiben, aber geht leider nicht.
Das BBB schaue ich mir gerne mal genauer an, wichtig sind natürlich 
deren BUS-Fähigkeiten. Daran ist der RPi nämlich gescheitert.

Dergute W. schrieb:
> Bei USB siehts mit so uebergreifenden Standards eher truebe aus.

Das spricht neben der Leitungslänge definitiv für Ethernet

von Christopher J. (christopher_j23)


Lesenswert?

Stefan T. schrieb:
> Christopher J. schrieb:
>> Die Nucleo-Boards
>> sind sehr gut auf Lochraster zu setzen, was bei euch sicher Sinn macht
>
> Ich traue mich es ja gar nicht zu sagen, aber so läuft das bei uns idR.
> Teilweise lassen wir aber auch custom PCBs fertigen, meist jedoch mit
> einem Nucleo auf dem Rücken.

Da ist doch auch nichts verwerfliches dran. Wichtig ist doch immer nur, 
dass es am Ende funktioniert und Aufwand und Nutzen in einem 
vernünftigen Verhältnis stehen.

Stefan T. schrieb:
> Christopher J. schrieb:
>> An eurer Stelle würde ich auch noch eine embedded-Linux Lösung mit
>> beispielsweise Beaglebone Black in Betracht ziehen.
>
> Es werden hauptsächlich Studenten daran werkeln und mit den STMs sind
> wir bisher ganz gut gefahren.

Wenn ihr mit den STMs gut gefahren seid, dann würde ich vermutlich auch 
einen solchen nehmen. Hörte sich für mich erst so an, als ob ihr da noch 
nichts mit gemacht hättet aber das war wohl ein Missverständnis und nur 
auf USB/Ethernet bezogen.

von H.Joachim S. (crazyhorse)


Lesenswert?

Stefan T. schrieb:
> Nun möchten wir die Daten gerne (web-)visualisieren.

Wenn das das eigentliche Ziel ist: ihr werdet ja kaum diese Datenmengen 
tatsächlich anzeigen können. Vorverarbeitung auf dem MC-System und damit 
wahrscheinlich drastisch Reduktion der Datenmenge?

Aber ansonsten: klar Ethernet.

von fchk (Gast)


Lesenswert?

Stefan T. schrieb:

> Deswegen würde ich denen ungern vor den Kopf Stoßen. Wir brauchen auch
> ein paar CAN und UART (RS485) Schnittstellen.

Dann denke daran, dass einige der STM32 Controller nur entweder CAN 
oder USB können, weil beide Einheiten das selbe (nicht das gleiche!) 
Dual-Port RAM benutzen.

Schon scheiße, dass Ihr Euch so einengen lasst. STM macht das nicht zum 
Spaß, sondern das ist Marketing, damit die Studenten STM-Erfahrung haben 
und dann in ihren Jobs auch diese Chips eindesignen. Das ist knallhart 
kalkuliert.

Ihr müsst sehen, ob Ihr dieses Spiel mitspielen wollt. Woanders gibts 
auch nette Lösungen

fchk

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.