Forum: Mikrocontroller und Digitale Elektronik ethernet lpcxpresso


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Klausc127 (Gast)


Lesenswert?

Hallo,
mein LPCxpresso lpc1769 angeschlossen über ethernet an einen PC mit 
windows XP soll folgendes tun:
file auf dem PC lesen (Dateiname bekannt), gelesen Daten verarbeiten
file auf dem PC löschen
file auf dem PC schreiben mit berechneten Daten
Zustand des Boards auf dem PC z.B. im Browser darstellen

Wie kann ich so etwas realisieren?
Bin für jeden Hinweis dankbar

Danke im Voraus
Klaus

von Albert .. (albert-k)


Lesenswert?

Wenn du Ethernet verwenden willst wäre folgende Methode Möglich:
Programmieren einen einfachen Server auf dem Rechner der auf Requests 
(am besten nutzt du für die Übertragung TCP) von deinem Board reagiert 
und bei erhalt des Requests den Inhalt der Datei versendet.
Der lpcxpresso empfängt dann das Packet (ggf. auch die einzelteile und 
fügt sie zusammen, sollte aber bereits der TCP/IP Stack erledigen) und 
verarbeitet nun die empfangenen Daten. Daraufhin eifnach ein weiteres 
TCP Frame an den Rechner mit den Ergebnissen schicken. Der Rechner 
löscht dann die Datei und erzeugt die neue mit den nun neuen Daten 
darin.
Das schwierigste wird es sein den Server auf dem Rechner zu erstellen 
und sich zu überlegen wie du "request Data" und "update Data" im TCP 
Frame unterscheidest.
Da wirst du dir ein eifnaches Proprietäres Protokoll ausdenken das du 
dann in die TCP Frames einbettest. Das kann dan sehr eifnach erweitert 
werden für Statusanfragen/-rückmeldungen.

Andere Möglichkeit wäre das ganze über USB zu erledigen. Da würde sich 
der lpcxpresso dann als HID Device am Rechner anmelden (dafür gibt es 
einen On-Chip USb HID treiber der sehr eifnach zu verwenden ist) und mit 
einem eifnachen programm über USB mit dem rechner kommunizieren (bei HID 
Devices ist das sehr eifnach). Rest ist dann genau gleich.
zu der USb Variante könnte ich dir auch die wichtigsten Zeilen Code für 
den lpcxpresso und auf dem Windows XP zusenden. Ist wirklich nicht 
schwer.

von Klaus H. (klausc127)


Lesenswert?

Hallo Albert,
vielen Dank für Deine Antwort.
Ich denke das mit dem TCP habe ich verstanden. Ich habe gelesen, dass 
UDP weniger Overhead verursacht, was bei zeitkritischen Anwendungen von 
Vorteil sein kann.
Welche SW auf lpcxpresso könnte ich denn für TCP bzw UDP einsetzen? 
Etwas aus dem Beispielbereich?
re USB:
Das ist ein interessanter Vorschlag. Die Kabellänge könnte ein Problem 
sein, muss ich prüfen.
Zur Entscheidungsfindung wäre es sehr schön, wenn Du mir die wichtigsten 
Zeilen Code schicken könntest.

Vielen Dank im Voraus
Klaus

von Albert .. (albert-k)


Lesenswert?

Hi
sry das ich erst jetzt antworte:
Das Problem an UDP wird sein das dabei natürlich auch Packete verloren 
gehen können. UDP ist zwar besser für Real-Time Anwendungen geeignet und 
hat nen kleineren Overhead, aber es garantiert die übermittlung eines 
packetes nicht. TCP garantiert die Übermittlung eines packetes. Wenn das 
natürlich für deine Anwendung nicht wichtig ist kannst du auch UDP 
verwenden.

Mit der lpcXpresso IDE ist auch eine Portierung von uIP als TCP/IP Stack 
für die LPC17xx mitgeliefert worden. Im Zip Ordner RDB1768Cmsis2.zip im 
Ordner 
Installationsordner_von_LPCXpresso\lpcxpresso\Examples\NXP\LPC1000\LPC17 
xx  findest du im Projekt RDBCMSIS2_uIP den fertigen uIP Stack und auch 
seine grundlegende Verwendung. Siehe zu besserem Verstädnis folgende 
Application note AN10845 Porting uIP1.0 to LPC1700
http://www.nxp.com/documents/application_note/AN10845.pdf

Ein anderer möglicher TCP Stack findet sich im Projekt 
LPCX176x_cmsis2_EasyWeb im ZIP Ordner LPCX176x_cmsis2.zip

Den Beispielcode für USB sende ich dir auch mal per Mail zu.

von Klaus H. (klausc127)


Lesenswert?

Hallo Albert,
vielen Dank für die Antwort besonders auch für den Link.
 Das mit der Datensicherheit ist schon ein Punkt. Müsste ich wohl mit 
checksum oder sonstwie absichern. Zumindest für kritische Daten ist dann 
wohl TCP besser.
Über die USB - Teile würde ich mich freuen.
Danke im Voraus
Klaus

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.