Forum: Mikrocontroller und Digitale Elektronik Was ist besser für einen UPNP client - IWIP, UIP oder FREERTOS TCP ?


von Peter (Gast)


Lesenswert?

Hallo.

Ich Plane gerade einen UPNP Client auf einem STM32F407 mit dem KS8721B.
Extern ist noch ein 512kB SRAM Baustein dran, falls der interne Speicher 
nicht reicht.

Die Hardware liegt hier seit Jahren rum und möchte nun endlich mal ins 
Heimische Netz.
Darauf läuft schon Freertos und alles was sonst so drauf ist, benutze 
ich schon lange.
Nur der Ethernetbereich habe ich erst jetzt zum weiter machen bestückt, 
kein Qualm oder andere Auffälligkeiten!

Es gibt nun einige Stacks die man mehmen könnte.
IWIP, UIP oder FREERTOS TCP fallen mir da als erstes ein.

Aber was ist eigentlich besser für einen UPNP client geeignet und warum 
oder auch warum nicht?

VG, Peter

von Harry L. (mysth)


Lesenswert?

Normalerweise braucht man kein UPnP sondern erstmal einen DHCP-Client.

von Stefan F. (Gast)


Lesenswert?

> IWIP, UIP oder FREERTOS TCP

Die sind prinzipiell alle gleich gut geeignet.

von Heiko (Gast)


Lesenswert?

UPNP ist harmful und sollte daher nicht genutzt werden. Wozu willst du 
also einen Client implementieren?

von Harry L. (mysth)


Lesenswert?

Heiko schrieb:
> UPNP ist harmful und sollte daher nicht genutzt werden. Wozu
> willst du
> also einen Client implementieren?

Ich denke, daß hier ein Missverständnis vorliegt.
Man könnte -wenn man es nicht besser weis- vermuten, daß die 
IP-Autokonfiguration (DHCP) eben eine Art Plug n Play wäre ;)

von Uli (Gast)


Lesenswert?

Ich denke das Peter die meisten Sachen schon verstanden hatte bevor er 
die Frage stellte, hoffe ich mal.

Ich denke mal das Du den Renderer meinst und nicht den Server oder 
Controlpoint. Das kauft man besser oder nimmt was wo man eine SSD/HD 
dran kriegt

Einen UPNP Client (Renderer) auf einem Cortex M4 zu machen sollte gehen.

Audio geht zumindest, Video würde ich bezweifelen das das geht.
Ich machen auf einem STM32F4 auch Audio allerdings von SD und nicht über 
Ethernet.

DHCP oder eine feste IP4 ist doch eigentlich Klar das man das brauch.
Auch UDP, sonst kann UPNP auch nicht arbeiten.
IP6 geht nicht! Würde ich an deiner Stelle nicht aktivieren!

Das man eine kleine HTTP Seite braucht um was beim UPNP Client 
einzustellen sollte auch klar sein. Und wenn nur der Status angezeigt 
wird.

Was willst Du als Client nehmen?
gmrender-resurrect oder an was hast Du gedacht?
Selber schreiben halte ich für sportlich und nicht wirklich nötig.

Auf deine Frage zu antworten: IWIP, UIP oder FREERTOS TCP?

Laut Doku können alle UDP! Sollten somit alle gehen.
Aber ich habe zu wenig Erfahrung damit um dir was zu empfehlen.

Uli

von Harry L. (mysth)


Lesenswert?

Uli schrieb:
> Ich denke mal das Du den Renderer meinst

DLNA ist nur eine Teilmenge von UPnP.
Viel gefährlicher ist z.B. -und das wird viel häufiger genutzt- die 
Möglichkeit via UPnP den Firewall des Router zu manipulieren.
Skype und viele Multiplayer-/Netwerk-Games nutzen das.
Der Alptraum eines jeden Netzwerk-Admin, und aus dem Grund tut man 
i.d.R. alles um UPnP im eigenen Netz zu unterbinden.

UPnP != DLNA

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

UPNP scheint häufig auch schlampig implementiert zu sein. Ich habe 
hjetzt den zweiten Drucker und den dritten WAN Router mit UPNP, dennoch 
funktioniert die Auto-Konfiguration der Drucker nicht.

Beim ESP8266/Arduino gibt es eine entsprechende Library, auch die 
funktioniert bei mir an zwei Routern nicht (den dritten habe nicht mehr 
ausprobiert).

von Peter (Gast)


Lesenswert?

Hätte ich besser sagen sollen das ich einen Audio Player bauen will der 
die Daten von meiner NAS bekommt und mit meinem IPAD gesteuert wird.

Jetzt aber zurück zum Thema da nun jeder wissen sollte was gemacht 
werden soll.

Welches System ist denn geeignet und was nicht?
Ich denke da auch an den Speicher, der ist nunmal recht begrenzt da.


JA ich wollte den gmrender-resurrect Code einbauen, unter LINUX auf 
meinem PI arbeitet der sehr gut.

VG, Peter

von Stefan F. (Gast)


Lesenswert?

> gmrender-resurrect

Dieses Stück Software ist für Linux entwickelt worden. Auf 
Mikrocontrollern im klassischen Sinn wird es niemals laufen.

Bleibe beim Raspberry Pi, sonst erfindest du das Rad neu.

von Peter (Gast)


Lesenswert?

Ich hätte da auch noch andere die ich nehmen kann.
Einige sind auch von Code einfacher wie gmrender-resurrect.
Nur den habe ich halt schon im einsatz und wenn es geht dann kommt der 
drauf.
Was es aber am Ende wird kann ich jetzt noch nicht zu 100% sagen.


Aber was ich jetzt sagen kann ist das meine Wahl auf "FreeRtos TCP" 
gefallen ist.
Es kann alles was ich brauche und FreeRtos habe ich sowieso schon drauf.
Da sollte es absolut keine Probleme geben mit dem einbauen.

Ausser das ich jetzt von heap_2.c wohl auf heap_5.c wechseln darf.

Nur wie ich dem Teil dann beibringe das ich 2 RAM Regionen (CCM und 
Extern) habe und der die ganzen TCP Daten gefälligst im 2. RAM Bereich 
(Extern) ablegen soll, habe ich noch nicht gefunden.

Aber vielleicht kann mir das hier ja jemand sagen.

VG, Peter

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.