www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernet und µC


Autor: EthernetNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gebhard Raich (geb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Gebhard Raich (geb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: EthernetNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ernie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kay I. (imperator)
Datum:

Bewertung
0 lesenswert
nicht 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/mculuminaryprodovervi...

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

Autor: Kay I. (imperator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin gerade nochmal über den Klassiger gestolpert:
http://shop.embedded-projects.net/index.php?module...

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

Autor: EthernetNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gebhard Raich (geb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: EthernetNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.