Forum: Mikrocontroller und Digitale Elektronik Ethernet und µC


von EthernetNeuling (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mich mit Ethernet an ein völlig neues Thema wagen, und hoffe 
daher auf etwas "Starthilfe".

Ziel ist es, von einem µC via UDP/IP Messdaten an einen Host zu senden. 
Dabei sollte eine Netto-Datenrate von min. 5 MBit erreicht werden 
können.  Der µC selbst ist noch nicht gesetzt, es geht aber um die 
Größenodnung jenseits 100 MIPS. Viel Peripherie ist nicht notwendig, 
einzig CAN und SPI muss er können.
Von komplexen Betriebssystemen würde ich gerne die Finger lassen, da der 
Einarbeitungsaufwand und die Auswirkungen auf meine µC-Firmware 
(Rechenoverhead, Latenz, Jitter) für mich überhaupt nicht abschätzbar 
sind. Gleichzeitig möchte ich aber auch keine umfangreichen Treiber 
und/oder Protokollstacks selbst schreiben.

Daher war die Überlegung, einen Interfacecontroller (ala XPORT, nur 
schneller) zu verwenden, der zugleich auch UDP und IP mit erledigt, und 
diesen via SPI an den µC anzubinden.

Mache ich hier schon den ersten Denkfehler, beispielsweise durch den 
Verzicht auf den Komfort eines RT-OS?
Falls nicht, könnt ihr mir irgendwelche Controller empfehlen?
Gibt es vielleicht noch ganz andere Lösungsansätze, die ich bislang 
übersehen habe?

Ich freue mich auf eure Anregungen und Kommentare.

Viele Grüße,
EthernetNeuling

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Schaue Dir doch mal den STM32 oder den LPC1768 an.

hier gehts zum Artikel vom STM32.

Kaufe Dir dann von diesen Prozessoren am besten ein Demo-Board mit 
Ethernet Schnittstelle. Achte darauf was für Demo-Codes dabei sind.

z.B. uIP TCP/IP Stack und Schaltplan.

Der STM32F107xx kann 72MHz, ab Ende diesen Jahres 120MHz.
Der LPC1768 kann 100MHz.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Hmmm... Ich würde da den Wiznet 5300 nehmen, da ist das ganze Protokoll 
schon implementiert. Ansteuern würd ich den aber nur über den Bus, SPI 
scheint mir doch schon recht knapp. Ich hab sowas mit einem ARM STR710 
gemacht, und hab einen Datendurchsatz von ca. 4MByte/s.

Grüße

von Joe (Gast)


Lesenswert?

wenns um zuverlässige datenübertragung geht is ethernet eh die falsche 
wahl....!!! und udp erst recht  hier kann ohne weiteres mal was abhanden 
kommen ;-)

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

>wenns um zuverlässige datenübertragung geht is ethernet eh die falsche
>wahl....!!! und udp erst recht  hier kann ohne weiteres mal was abhanden
>kommen ;-)

Udp ist kein sicheres Protokoll,da kann sicher was verlorengehen.
TCP/IP ist ein sicheres Protokoll, da kann nix verlorengehen oder falsch 
sein.
Ethernet hat sich bei mir als die problemloseste Art der 
Datenübertragung herausgestellt, wohl auch weil die Treiber im PC am 
besten mit dem Betriebssystem zusammenpassen.

Grüße

von EthernetNeuling (Gast)


Lesenswert?

Erstmal besten Dank für die raschen Antworten.

Ob UDP oder TCP ist noch nicht raus, im Moment hätte ich aber UDP 
aufgrund des geringeren Aufwands präferiert. Dass es hierbei zu doppelt 
zugestellten, verloren oder durcheinander gewürfelten Paketen kommen 
kann, ist mir bekannt. Datenverlust ist sporadisch nicht so schlimm, 
zumal ich verlorene Pakete in höheren Schichten zumindest detektieren 
kann. Hinzu kommt, dass ich die gesamte Topologie sowie die zu 
übertragenden Datenmengen bestimmen kann und sich Kollisionen und 
Routingprobleme daher (hoffentlich) grundlegend vermeiden lassen.

Gibt es sonst noch Vorschläge für einen Ethernet-Controller (nicht µC), 
oder gar einen ganz anderen Lösungsansatz (z.B. sehr simples RT-OS mit 
Treibern/Stacks)?

von Joe (Gast)


Lesenswert?

dafür kann es bei tcp unter umständen ewig dauern bis es sicher ankommt 
.... grade wenns um live messdaten gehen sollte eventuell auch 
unvorteilhaft

von Frank K. (fchk)


Lesenswert?

EthernetNeuling schrieb:

> Gibt es sonst noch Vorschläge für einen Ethernet-Controller (nicht µC),
> oder gar einen ganz anderen Lösungsansatz (z.B. sehr simples RT-OS mit
> Treibern/Stacks)?

Es gibt Leute, die hängen einen Ethernet PHY an ein FPGA und blasen so 
ihre Daten raus. Das geht dann bis Gigabit Ethernet. Ein Beispiel dafür 
ist das USRP2 unter http://gnuradio.org/redmine/wiki/gnuradio/USRP2

fchk

von Ernie (Gast)


Lesenswert?

was wird auf der gegenseite zu deinem µC sein?

standard ehternet oder industrial ethernet? weil du schreibst oben etwas 
von can-bus? willst du can (open) over ethernet realisieren?
weil das klingt nach industrial ethernet und da wird es mit einem FPGA 
schon nicht mehr so lustig. dort kommen dann ggf. komerzielle tcp stacks 
zum einsatz und die kosten geld. zudem noch lizenzgebühren die an die 
unterschiedlichen nutzerorganisationen. ebenso müssen mac adressen 
gekauft werden. usw...
es gibt allerdings firmen die fertige modulsysteme anbieten mit 
entsprechenden softwaretreibern.

von Kay I. (imperator)


Lesenswert?

Moin!

von TI (Luminary) gibt es noch einen Cortex-M3 - Controller mit 
integriertem MAC & PHY!

Für eine Ethernet-Applikation braucht man also nur noch den uC, und eine 
Ethernet-Buchse mit integrierten Magnetics.

Stellaris-Famile:
http://focus.ti.com/mcu/docs/mculuminaryprodoverview.tsp?sectionId=95&tabId=2486&familyId=1755&DCMP=Luminary&HQS=Other+OT+stellaris

Natürlich lassen sich die Herren nicht lumpen und legen recht gute 
Beispiel-Software dazu.

von Kay I. (imperator)


Lesenswert?

Bin gerade nochmal über den Klassiger gestolpert:
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=89

das sollte Deine anforderungen ziemlich genau treffen:
- Ethernet über SPI
- Geschwindigkeit ?
- TCP/IP-Stack gibts fertig

dazu gibt es ja auch schon reichlich Threads in diesem Forum . . .

von EthernetNeuling (Gast)


Lesenswert?

@Ernie
CANopen ist nicht geplant. Über CAN fahren wir ein eigenes Protokoll für 
die Messdatenübertragung, welches wir künftig auch über UDP/IP auf 
Ethernet übertragen möchten.

@Gebhard Raich
Der Wiznet W5300 sieht sehr vielversprechend aus. Fast schon zu 
vielversprechend, wenn man sich die Leistungsdaten zu dem Preis ansieht. 
Was sagen denn die Erfahrungswerte: ist der Controller unkompliziert 
oder muss man mit vielen Bugs, Macken, etc. rechnen?


Insgesamt scheint die zentrale Frage zu sein, ob für UDP/IP ein eigener 
Protokollcontroller (XPORT, WIZnet) sinnvoll ist, oder ob ein reiner 
Transceiver (Controller-Peripherie oder ext. ala ENC...) genügt...

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Ich hab den W5300 schon seit 2 Jahren in einigen Duzend Geräten im 
Einsatz,bis jetzt ist mir noch kein Problem aufgefallen. Das Teil ist 
schon fast so einfach wie eine serielle Schnittstelle zu programmieren.

Grüße

von EthernetNeuling (Gast)


Lesenswert?

Hallo zusammen,

nachdem das Projekt erstmal einige Monate in der Versenkung verschwunden 
ist (dynamische Priorisierung im Projektmanagement :-( ), konnte ich nun 
erste Erfahrungen mit dem W5300 sammeln.

Am PMP eines PCI32 komme ich beim Versand von UDP-Paketen auf ca. 30 
MBit/s (netto). Von der Datenrate absolut ausreichend, allerdings gibt 
es zwei Wermutstropfen (und damit verbundene Fragen):

1.) Kein DHCP.

=> Hat das schonmal wer aufgesetzt oder muß ich es selbst 
implementieren?

2.) Der Zugriff auf die TX-FIFO bei Anbindung mit einem 8 Bit Datenbus.

=> Der ständige abwechselnde Zugriff auf high-byte und low-byte ist sehr 
ineffizient, vor allem weil ich deshalb auf den DMA verzichten muss.
=> Geht das einfacher, oder ist es eine Macke des Controllers, mit der 
ich leben muss?

Viele Grüße,
EthernetNeuling

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.