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
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.
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
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 ;-)
>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
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)?
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
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
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.
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.
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 . . .
@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...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.