Forum: Mikrocontroller und Digitale Elektronik PIC - IP-Steuerung mal etwas anders


von Tobias K. (babeck)


Lesenswert?

Hallo an Alle!

ich würde gerne eine simple Steuerung über LAN realisieren. Dabei müssen 
keine Daten gesendet, sondern nur empfangen werden.

Ich habe schon einiges zum TCP/IP-Stack gesehen. Da ich dabei noch nicht 
durchblicke habe ich mir überlegt, ob es nicht auch einfacher geht.

Ist es z.B. möchlich ein einfaches Skript zu schreiben, welches eine 
statische ip hat und einfach nur Ping-Anfragen an verschiedene Ports 
auswertet und je nach angepingtem Port dann etwas auslöst?

Das war nur ein grober Gedanke von mir, vielleicht gibt es ja noch 
andere, kleine Lösungen.

Wie gesagt bei den Daten reicht es, wenn es Pings sind.

Als PIC würde mir der 18F4550 gefallen. Ist damit diese einfache 
Steuerung trotz fehlendem Hardware Ethernet möglich ?

Wenn jemand schon so etwas hat oder mir programmieren kann würde ich 
mich freuen wenn er mir das geben oder verkaufen kann.

Danke für eure Hilfe!

Gruß Tobias

von Marc P. (marcvonwindscooting)


Lesenswert?

Hi Tobias,

ein Ping ist nicht so einfach wie du glaubst, denn du verwendest eine 
IP-Adresse f"ur den Empf"anger, was dann vorher ein ARP-Message 
erfordert um die Ethernet-Adresse des Empf"angers herauszukriegen und 
dazu muss dein Empf"anger ARP k"onnen. Und f"ur Ping muss er IP k"onnen, 
denn Ping ist ein ICMP Echo message, welches in einem IP-Paket steckt 
usw...usw....

Warum nicht einfach auf Ethernet aufsetzen?
Da gibt's Hardware-Adressen und mit denen kann man auch adressieren :-)
Ich hab k"urzlich einen IP-Stack (UDP) gebastelt und habe mich oft 
gefragt, was die V"ater des Internet damals geraucht haben. Zum Beispiel 
'Pseudo-Header'... (WTF?, OMG!)
Dabei ist Ethernet sooooo einfach und zuverl"assig und f"ur 
LAN-Kommunikation echt toll.

Ach und wenn ich schon mal dabei bin: uIP stellt f"ur mich so ziemlich 
die perverseste Art zu programmieren dar. Alles was Struktur und 
Sicherheit ins Programm bringt wurde bewusst weggelassen und von 'strict 
aliasing' hat der Herr Dunkels wohl nie was geh"ort. 
Wild-West-Programmierung mit Liebe zur Gefahr...tssss. Typisch 
Akademiker, der Stil erinnert mich irgendwie an das Framework ACE. Gute 
Ideen, Umsetzung: Autsch! Aua! Ach tut das weh....
Bei meinen "ublichen Compilereinstellungen bekomme ich mit uIP hunderte 
Fehler...
Danke, dass Du der Versuchung widerstehst diesen wiederlichen, kleinen 
Code-Fetzen zu verwenden!!

von Vatter (Gast)


Lesenswert?


von heinzhorst (Gast)


Lesenswert?

Vatter schrieb:
> für PICs ab PIC18 gibt es einen fertigen kostenlosen TCP/IP-Stack

Tobias Kurz schrieb:
> Als PIC würde mir der 18F4550 gefallen.

Vergiss den 18f4550. Der hat zu wenig Flash. Hab jetzt schon Einiges 
gemacht mit dem TCPIP Stack von Microchip. Hab ihn schon auf PIC18, 
PIC24 und PIC32 verwendet. Meine Erfahrung: Auf dem PIC18 sind 64K 
Programmspeicher dafür absolutes Minimum. Besser 128K. Der Stack von 
Microchip ist zwar robust und kann auch von Haus aus schon einen Menge. 
Aber er ist dadurch auch recht Fett geworden. Würde dem dir den 18F46K20 
empfehlen. Den gibts auch noch in DIL40, ist günstig und er hat 3,3V 
Betriebesspannung. Genaug wie der ENC28J60. Gehe jetzt mal davon aus, 
dass du den als Netzwerkchip verwenden willst. Dadurch vereinfacht sich 
der Aufbau der Stromversorgung, weil du nur 3,3V und keine 5V zusätzlich 
brauchst. Außerdem hat er einen internen EEPROM, in dem du die 
Netzwerkkonfiguration (IP-Adresse, etc.) ablegen kannst.

von Dirk F (Gast)


Lesenswert?

Hi Tobias,
also ich hab mal aus Faulheit einfach den XPORT von LANTRONIX an meinen 
18F4620 dran gehangen.
Er kommuniziert mit dem PIC über die UART.
Programm auf dem PC in Visual Basic geschrieben.
Ist super einfach, nachteil : Das Teil ist mit ca. 50 Euro sehr teuer.
Gruß Dirk

von Tobias K. (babeck)


Lesenswert?

Danke erstmal an alle für die Beiträge.

Werde mich dann einfach mal in die Materie einarbeiten. Mal sehen wo ich 
lande ;)

Gibt es irgendwo gute Hilfen für TCP/IP in C ?

Dirk F schrieb:
> Das Teil ist mit ca. 50 Euro sehr teuer.

Ja das stimmt 50EUR sind schon nicht wenig. Wenn ich das aber anderst 
nicht hinbekomme muss ich es mal so versuchen. -> Danke!

von Frank K. (fchk)


Lesenswert?

Tobias Kurz schrieb:

> Als PIC würde mir der 18F4550 gefallen. Ist damit diese einfache
> Steuerung trotz fehlendem Hardware Ethernet möglich ?

Wieso nimmst Du nicht den PIC18F67J60? Der ist dafür vorgesehen und 
enthält alles notwendige.

fchk

von Jens (Gast)


Lesenswert?

Frank K. schrieb:
> Wieso nimmst Du nicht den PIC18F67J60?

Vielleicht, weil er keine TQFP-Gehäuse verarbeiten kann...

von Tobias K. (babeck)


Lesenswert?

Jens schrieb:
> Vielleicht, weil er keine TQFP-Gehäuse verarbeiten kann...

Stimmt!

Hat jemand schon Erfahrungen gemacht mit TCP/IP auf dem 18F4550?

von Carsten S. (dg3ycs)


Lesenswert?

Tobias Kurz schrieb:
> Jens schrieb:
>> Vielleicht, weil er keine TQFP-Gehäuse verarbeiten kann...
>
> Stimmt!
>
> Hat jemand schon Erfahrungen gemacht mit TCP/IP auf dem 18F4550?

TCP-IP auf dem 18F4550 ist -zumindest solange ein großer Teil der 
Verarbeitung im µC erfolgen soll- wie oben schon geschrieben Blödsinn.

Und wenn man ein kpl. externes Modul (und nicht nur den ENC) verwenden 
will das nur noch über RS232 arbeitet ist es kein TCP-IP mehr auf dem µC 
sondern nur noch RS232. Ds würde zwar dann problemlos auf dem 18F4550 
gehen, sogar neben USB. HAt aber nichts mehr mit Programmentwicklung für 
Netzwerkanwendungen im eigendlichen Sinn zu tun.

Der 18F4550 ist ein für USB ausgestatteter µC. Das hindert zwar nicht 
grundsätzlich daran mit hilfe des ENC doch LAN damit zu realisieren, 
allerding wird es hinsichtlich der REssourcen schon recht eng. Komplexe 
Funktionen haben dann gar keinen Platz mehr, schon gar nicht der USB 
Stack!

Da der F4550 aufgrund seiner USB Funktionalität als "Spezialist" aber 
etwas teurer ist als das "Basismodell" ohne USB transceiver - Er aber 
keinesfalls in de rLAge ist, auch unter nutzung des ENC, USB und TCPIP 
gleichzeitig zu nutzen, ist das rausgeworfenes Geld um dann noch 
Kopfstand zu machen. DAS werden wohl nicht wirklich viele in de 
rrealität so durchziehen.

Daher hole dir einen der "general Purpose" PICs, vorzugsweise gleich mi 
etwas mehr speicher, und realisiere es mit diesem und den ENC - Wobei du 
auch mit mehr Speicher sicher noch günstiger Wegkommst als bei 
verwendung des F4550 - Oder nehme gleich einen der Pics mit Ethernet "on 
Chip".
Zudem hast du dann gleich (glaube) 3 IOs mehr, die beim F4550 fest mit 
USB Funktionen belegt sind.

(Natürlich ist mir klar das man manchmal -wie ich auch gerade mit dem 
F2550- eine Idee hat oder einen Vorversuch machen möchte und dann 
trotzdem einen µC nimmt den man gerade da hat auch wenn der 1,50Eur. 
billigere locker reichen würde.
Wenn es kein Einzelstück werden soll zumindest um während der Wartezeit 
auf die Lieferung bereits erste Ergebnisse zu bekommen. Aber bei so 
komplexen Dingen wie TCP-IP in Kombination mit dem 18F4550 wrd die liste 
derjenigen die diesen "missbrauch" wirklich über das Stadium der ersten 
Vortests hinaus bis zu funtkionierendne Anwendungen getrieben haben sehr 
stark gegen "Null" tendieren)

Daher währe es ein großer Glückfall wenn dir beim Krampfhaften 
FEsthalten an dieser Auswahl speziell zu F4550 und TCPIP jemand zum 
Erfolg mit dieser Kombination führende Tips geben könnte.

Gruß
Carsten

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.