www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernet Übertragun


Autor: Juergen2k (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe gerade begonnen mit einem neuen Projekt. Es geht darum Messwerte 
die im µC zwischengespeichert werden über Ethernet an den PC zu 
übertragen. Hardwaretechnisch steht schon alles.
µC Board mit 10Base-T Ethernet Anschluss

Nun meine Frage. Kann ich über Ethernet einfach mit dem TCP Protokoll 
eine Nachricht schicken die dann vom PC empfangen wird, oder muss man 
über den HAndshake eine Verbindungssession aufbauen?

Gruß

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TCP ist verbindungsorientiert, man muss also logischerweise eine 
Verbindung aufbauen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die gegenüber TCP einfachere Alternative, wenn in (im lokalen Netz eher 
selten) mal was verloren gehen darf, ist UDP. Damit wird einfach ein 
Frame zurechtgebaut und gesendet, egal ob er ankommt oder nicht.

Autor: Juergen2k (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JApp dann wäre wohl udp passender.... Zumindets einfacher.. Wobei so 
schwierig wird das mit TCP auch nicht sein oder?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tips für Doku: Wikipedia zu TCP, und dann die dortigen Weblinks zu den 
RFCs. Analog UDP. Entscheide selbst.

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein UDP-Paket zusammenzubauen ist vergleichsweise primitiv.
TCP dagegen ist schonmal deutlich komplexer und mit der ganzen 
Flußkontrolle ein ziemliches Monster. Möchte ich nicht wirklich selber 
implementieren müssen.

Wenn du so etwas wie Flußkontrolle in UDP haben möchtest, kannst du zu 
den Nutzdaten immer noch einen fortlaufenden Zähler hinzufügen, damit 
der Empfänger merkt, wenn mal ein Paket verlorengehen sollte.

Gerade wenn es nur darum geht gelegentlich mal Werte herauszusenden, 
würde ich definitiv auf UDP setzen.

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte USB-Igor (Tscheche, der ein USB-HID in einen AVR "geprügelt" 
hat)nicht sogar einen UDP-Stack in einen AVR gesteckt?

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die gute Igor mal sowas mit CAN machen würde...

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn die gute Igor mal sowas mit CAN machen würde...

Da wird es Probleme mit der Arbitrierung geben...
Kannst es ihm ja mal vorschlagen.

Autor: Juergen2k (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab mir heut Morgen mal den TCP durchgelesen. Ja ist schon etwas 
aufwendig. Vor allem da ja bei nem Heimnetzwerk wirklich nix verloren 
gehen sollte. :)
Das mit dem Zähler ist ne prima Idee!!! Das werd ich machen. Japp hört 
sich sehr gut an. Bin begeistert.
NAja kämpf grad noch etwas mit der Hardware rum. Will noch nicht so 
hundert pro laufen das Ethernet. Aber nunja -> that's life

Autor: Robert Schiebel (roberts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da ich mir auch schon den Kopf zerbreche, wie ich Daten möglichst 
schnell vom µC bzw. CPLD zum PC übertrage, finde ich UDP momentan auch 
am besten.
USB-480/Firewire400 ist mir einfach zu kompliziert.
Mit Beck-Ipc hab ich schon Erfahrungen gesammelt, da ist UDP auf der 
Beck bzw. PC seite total easy. Um die Geschwindigkeit zu erhöhen, greife 
ich die Idee vom Matthias Weißer (matthias) -> 
Beitrag "USB2.0 High-Speed"
auf. Prinzip: im FPGA wird der Ethernet/TCP Header mit UDP Daten (UDP 
Daten mit Zähler) gemacht, und mit einem Ethernet-Chip auf die Reise 
geschickt.
Ich hab blos null Ahnung, welche Eigenschaften der 10/100 Baustein haben 
soll. Nehme mal an, dass z.B. der Micrel KSZ8841 dafür geeignet ist.
Mit FPGA hab ich bisher noch nichts gemacht, denn den braucht man für 
CheckSum Berechnung. Also da brauche ich noch Unterstützung.
Die Kommunikation zum µC mache ich in meinem Projekt mit RS232, damit
würde ich den Paketverlust auch handle'n.
Falls sich jemand für meine PC-Socket Einbindung (in Pascal) 
interessiert? ich helfe gerne.
Gruß Robert


Autor: Robert Schiebel (roberts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will noch einige Details ergänzen.
Momentan sieht mein Prototyp-System so aus:


      2GByte NAND-Flash
            |
       ------------                ------------
       |   CPLD   |       8        |  PC      |
CMOS --| Xilinx   | -----/------>  | LPT-EPP  |
Sensor | XC2C256  |                |          |
       ------------                |          |
            |                      |          |
       ---------------             |          |
       |   µC        |             |          |
       | TI          | <-------->  | RS232    |
       | msp430f2013 |             |          |
       ---------------             ------------

Das soll auch erst mal so bleiben, bis halt alles getestet ist. Nur will 
ich, um die Datenrate zu erhöhen, die EPP Verbindung gegen Ethernet 
ersetzen. Statt dem CPLD müsste da ein FPGA mit Ethernet-Chip hin, das 
wäre dann ein zukunftsicheres Design. Und der Umstieg von 100MBit nach 
Giga-Bit sollte dann eher simpel sein.
Wunsch Datenraten:
100Base-T   5..8MByte
1000Base-T  30..60MByte

Mit EPP schaffe ich 1.2 MByte (gemessen).
Da ich absolut keinen Zeitdruck habe, weil priv. Projekt, wäre es super 
wenn mir jemand Tipps über div. Ethernet-Chips, auch Giga-Bit, geben 
könnte.
Danke, Gruß Robert















Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.dacomwest.de  da suchen nach : NON-PCI ETHERNET CHIPS
www.sparkfun.com

Autor: guro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt auch tcp-stacks speziell für microcontroller.
z.b. der hier: http://sourceforge.net/projects/opentcp/
auf 'nem freescale-S12 braucht der etwa 4k ROM.
der ram-bedarf ist etwa 1500 bytes (sende/empfangsbuffer und ein paar 
variablen) maximal. natürlich geht's auch mit viel weniger ram, weil man 
bei der tcp-verbindungsaufnahme die paketgrösse aushandeln kann 
(theoretisch bis runter zu 1 byte nutzdaten pro paket).

ach ja...
noch ein kleineres tcp findet ihr hier: http://www.sics.se/~adam/uip/
der tut's sogar auf 8-bittern. was kleineres gibt's nicht ;)

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Robert
Interessantes Projekt.
Ich hätte gerne Infos
zu dem EPP Mode. Hat man da einen seperaten
IRQ Händler, oder wird da gepollt ?
Wen das Master-LPT<->LPT bidir. mit IRQ-ACK, so wie LAPLINK EPP ect.
Also kein Zeichen overflow kommt.
Berichte mal ????
Gruss Holger


Autor: Robert Schiebel (roberts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Holger
schau mal auf http://www.geekhideout.com/iodll.shtml
diese IO DLL nehme ich momentan.
Weitere Infos zu Register und Anschluss:
http://www.beyondlogic.org/epp/epp.htm#1
Wie das mit IRQ geht, weiß ich nicht, eher mit ECP.
Ich nutze den EPP mode (im Bios muss der LPT auf EPP stehen).
Bei der DLL von www.geekhideout.com kann man auch 32Bit Zugriffe machen,
EPP unterstützt das voll und dann schaffst Du ca. 1.3MByte/s in oder 
out.
Wichtig: bei EPP gibts das /WAIT Signal für die HW-Flusskontrolle.
Wenn Du DataStrobe negierst (TTL Inverter) und auf /WAIT lötest, dann 
und nur dann ergibt das maximale Datenrate.

@guro
TCP/IP ist Softwaremäßig einfach zu langsam, da habe ich auch genügent 
Lösungen. Der Gag vom seiner (matthias) Idee ist, dass man gar keinen 
TCP-Stack hat, sondern den ganzen UDP TCP-Header vorgefertigt im FPGA 
hat, CheckSum aktualisiert und dann "blind" sendet. Vielleicht hat ja 
jemand schon sowas in dieser Art gemacht ?
Danke erst mal, ich schaue mich jetzt mal nach "NON-PCI ETHERNET CHIPS" 
um und werde am PC div. Tests machen.
Gruß Robert

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Robert

Vielen Dank für die LPT EPP Tips.
http://ulrichradig.de/
Holger Klabunde ist auch noch ne gute Info Adresse.
Holger Buss

Ich habe den Webserver von Ulrich Radig nachgebaut.
Der hat auch Einsteiger FPGA-XILINX Aps. zum nachbau.
Wichtig ist erst mal das man ne laufende selbsgebaute HW hast.

Mit dem PC SENDEN-EMPFANGEN habe ich mit bei Tuxgrapics den
PC C-Source geholt.

Ich habe noch nicht den auto-answer modus versucht.
Das soll wie ein Kettenbrief abgehen.

Datenschleuder Modus ??? .

http://www.fischl.de/thomas/elektronik/cpld/index.html

Guss Holger.

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.