Forum: Mikrocontroller und Digitale Elektronik Fragen zu WizNet5100 Hardware Stack


von Daniel F. (franken_3)


Lesenswert?

Hallo,

ich versuche mich seit einiger Zeit auf einem STM32F4 einen Software-IP 
Stack (lwIP) zum laufen zu bringen.
Bei meiner Recherche hab ich jetzt erfahren das es von SainSmart 
(WitNet5100 Chip) einen in Hardware ausgeführten Stack gibt.

Jetzt hätte ich da einige Fragen bevor ich mir so ein Gerät kaufe.

Ich stelle mir das so vor, das die ganze Arbeit des Stacks auf dem 
WitNet Chip ausgeführt wird und der Arbeitsspeicher des yC weitaus 
weniger belastet wird als bei Software? Stimmt das?

Ist es einfacher zu implementieren in Hardware? Weil lwIP (Software) 
halte ich für ein ziemlich komplexes Thema und auch wenn ich ein 
Beispielprojekt aus dem Netz zum laufen bekomme, weis ich eigentlich 
nicht genau was alles passiert?


Wie viele GPIO-Pins müssen für so einen HW-Stack freigehalten werden? 
Auf dem bild sind sehr viele Pins zu erkennen?

Kann ich es mir mit einem HW-Stack vorstellen, das ich so programmiere 
wie am PC mit Ports?

Danke schon mal, wenn ihr auch sonst interessante Hinweise für mich 
habt, gerne.

Hoffe ich kann mit dem HW-Stack effizient meinen yC ans LAN bringen.

Danke schon mal,

PS:

Sowas hier stelle ich mir vor:

http://www.sainsmart.com/arduino/arduino-components/communication/sainsmart-w5100-network-module-tcp-ip-ethernet-module-for-arduino.html

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> die ganze Arbeit des Stacks auf dem
> WitNet Chip ausgeführt wird und der
> Arbeitsspeicher des yC weitaus
> weniger belastet wird als bei Software? Stimmt das?

Jein. Der Arbeitsspeicher wird kaum entlastet, aber die Rechenleistung 
der CPU. Pufferspeicher enthalten auch die einfachen Ethernet 
Controller.

> Ist es einfacher zu implementieren in Hardware?

Der Wiznet Chip ist mit Sicherheit ein Mikrocontroller mit Firmware. Die 
Features entsprechen denen von lwIP. Ich bezweifle, dass man TCP/IP aus 
Logikgattern (ohne Programm) implementieren kann.

> Wie viele GPIO-Pins müssen für so einen HW-Stack freigehalten werden?
Das serielle SPI Interface braucht nur 4 Leitungen.

> Kann ich es mir mit einem HW-Stack vorstellen,
> das ich so programmiere wie am PC mit Ports?

Das kommt ganz darauf an, was du Dir unter Ports am PC vorstellst. Der 
Chip führt ein Programm aus, er macht also erheblich mehr, als einfache 
I/O Ports.

> Hoffe ich kann mit dem HW-Stack effizient meinen yC ans LAN bringen.

Was meinst du mit "effizient"?

Vergiss mal den Begriff HW-Stack, dieses Wort bedeutet alles und nichts. 
Nenne lieber einen konkreten Chip bei seinem Namen.

Um einen Mikrocontroller ans LAN anzuschließen, brauchst du nicht 
unbedingt einen TCP/IP Stack. Du kannst auch Ethernet Pakete übertragen, 
was auch alle aktuellen PC Betriebsysteme können.

TCP/IP wird erst nötig, wenn du in andere Netze routen willst. Dabei 
kannst du dich wiederum auf UDP Beschränken, was noch relativ primitiv 
ist.

von spess53 (Gast)


Lesenswert?

Hi

>Bei meiner Recherche hab ich jetzt erfahren das es von SainSmart
>(WitNet5100 Chip) einen in Hardware ausgeführten Stack gibt.

Saint Smart? Die Chips stammen von WizNet.

>Ist es einfacher zu implementieren in Hardware?

Ja.

>Wie viele GPIO-Pins müssen für so einen HW-Stack freigehalten werden?
>Auf dem bild sind sehr viele Pins zu erkennen?

Ein SPI und ein Interrupt-Pin.

>Hoffe ich kann mit dem HW-Stack effizient meinen yC ans LAN bringen.

Funktioniert bei mir auf einem AVR unter Assenbler.

MfG Spess

von dunno.. (Gast)


Lesenswert?

Daniel Eck schrieb:

> Kann ich es mir mit einem HW-Stack vorstellen, das ich so programmiere
> wie am PC mit Ports?

Du meinst Sockets, oder?
Dann jaein. Du musst dir erstmal einiges selbst stricken, aber die 
examples der Hersteller sind gut, und am Ende hast du sowas wie 
unix-sockets.
Ich habe allerdings den w5500 eingesetzt, da ist das SPI interface 
schöner.

> Hoffe ich kann mit dem HW-Stack effizient meinen yC ans LAN bringen.

Kannst du deutlich einfacher als mit ner softwarelösung. Zusammen 
stecken a la arduino ist aber weit davon entfernt. Wenn du gern fertige 
Hardware willst, schau nach dem w550io, ist ein fertigmodul..

Gruß

von Daniel F. (franken_3)


Lesenswert?

Hi, danke für die schnellen Antworten.

Ich meinte oben natürlich Sockets, Sorry :D


Es hört sich in jedem Fall interessant an und ich werde wohl mir mal so 
ein teil bestellen. Wenn ich es schaffe UDP-Pakete zu versenden bin ich 
schon vollständig zu Frieden.

Danke nochmals.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Der W5100 ist der Chip den der Arduino EthernetShild hat. Die 
Entsprechende Library gibts also quasi fix und fertig frei Haus. Diese 
eignet sich in Verbindung mit dem Datenblatt hervorragend zum verstehen. 
Es gibt auch vom Hersteller diverse "Miniboards" mit diesem Chip.

von isidor (Gast)


Lesenswert?

Wenn man es etwas schneller haben möchte sollte man sich von
vorne herein überlegen die Parallel-Anbindung zu wählen.
Das wären dann 8 Bytes I/O, CS, RW und Addr0.

Denn das SPI Protokoll ist mit 3 Bytes Overhead pro Byte doch
sehr performance-schmälernd, zudem die SPI "nur" bis 10 Mhz
(grenzwertig) geht und diese Taktfrequenz oft auf den Controllern
nicht eingestellt werden kann.

Es gibt fertige W5100 Module die nur SPI können (Arduino-Familie),
andere haben auch Adressen und Datenleitungen direkt herausgeführt
(WIZ812).

von drama (Gast)


Lesenswert?

Geht mit dem Ding eigentlich noch immer kein IPv6? Ist dann wohl einer 
WitzNet...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

drama schrieb:
> IPv6 …  Ist … wohl ein… WitzNet …

Ist das eine Antwort auf die Frage des TO? Oder ein Troll-Post?

IPv6 verrät jedem im WAN, was ich im LAN habe. Das haben sich 
Datenkraken ausgedacht. Braucht der TO sowas? Ich z.B. nicht.

IPv6 is'n Witz, net?

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Daniel Eck schrieb:
> Jetzt hätte ich da einige Fragen bevor ich mir so ein Gerät kaufe.

Bevor Du was kaufst: Den ESP8266 kennst Du? Der ist keine Alternative?

von drama (Gast)


Lesenswert?

Torsten C. schrieb:
> Ist das eine Antwort auf die Frage des TO? Oder ein Troll-Post?
>

Indirekt. Ich hatte gerade nochmal versucht herauszufinden, ob sich bei 
der IPv6-Unterstützung bei WizNet was getan hat, was aber nicht der Fall 
ist. Für OP ist das eventuell ja relevant.

> IPv6 verrät jedem im WAN, was ich im LAN habe. Das haben sich
> Datenkraken ausgedacht. Braucht der TO sowas? Ich z.B. nicht.
>

Was meinst du damit genau? IPv6 verrät prinzipiell gar nichts, im 
Gegenteil, es macht das systematische Scannen von Netzwerken 
unpraktikabel. Um Sicherheit und Zugriffskontrolle muss man sich 
natürlich - wie auch bei IPv4 - kümmern.

> IPv6 is'n Witz, net?

Eher nicht. Die IPv4-Adressen sind einfach alle und gerade steigt die 
IPv6-Adoption radikal an. Bei vielen ISPs (z.B. Kabel Deutschland oder 
Unitymedia) gibt's mittlerweile nur noch Dual-Stack-Lite, also gar kein 
richtiges IPv4 mehr.

IPv6-Unterstützung ist mittlerweile einfach ein Muss.

von dunno.. (Gast)


Lesenswert?

isidor schrieb im Beitrag #3935665
> Denn das SPI Protokoll ist mit 3 Bytes Overhead pro Byte doch
> sehr performance-schmälernd, zudem die SPI "nur" bis 10 Mhz
> (grenzwertig) geht und diese Taktfrequenz oft auf den Controllern
> nicht eingestellt werden kann.

Daher mein Hinweis auf die w5500. Hier entfallen beide Beschränkungen, 
block transfers und 60 (80)MHz SPI, soweit ich mich recht erinner.


Ipv6 support ist klar so ne Sache: kann eigentlich nen Router/nat v6 
traffic nicht auch auf nen v4 client forwarden? Für mich stellt sich die 
Frage nicht, ist für iot aber sicher gut zu wissen?

von Daniel F. (franken_3)


Lesenswert?

Torsten C. schrieb:
> Den ESP8266 kennst Du?

Hi, Danke für den Hinweis, aber in meinem aktuellen Projekt bin ich 
schon an einer Kabelgebundenen Lösung interessiert.
Ist aber sehr gut zu Wissen das es auch was Drahtloses gibt.

Nun wegem dem SPI, ich muss die Daten nicht mit besonders hoher 
Geschwindigkeit übertragen, es geht eher darum einige Variablen im yC zu 
ändern (zumindest als Anfang).

Denke mal das ich mit ein paar KB/s auskommen kann. Wichtiger ist es 
mir, das die Prozessorlast nicht zu hoch wird und das ich nicht zu viel 
Arbeitsspeicher verbrate.

Danke für die Hinweise.

PS: IPV6 ist aktuell für mich kein Thema ;)

von Joachim Wülbeck (Gast)


Lesenswert?

Ich melde mich mal ganz offiziell von WIZnet aus. Keine Werbung, nur zur 
Info.
Hier schwirren immer mal so Gerüchte, z.B.:
"
Der Wiznet Chip ist mit Sicherheit ein Mikrocontroller mit Firmware. Die
Features entsprechen denen von lwIP. Ich bezweifle, dass man TCP/IP aus
Logikgattern (ohne Programm) implementieren kann.
"
Doch, man kann ! und das schon seit 2001 - W3100A (RIP).
Und, nein in den W3x00 und W5x00 Chips ist kein Controller - keine 
einzige Zeile Code wird da in irgendeiner Weise ausgeführt.
Ja, das ist 100% pure Gatter Logic = Hardware !
+ z.B. 32k Dual Ported RAM als RX/TX Buffer inclusive (beim W5200, 
W5500)
(Dieser Buffer kann als 'externer' Speicher missbraucht werden...)

Das TCP/IP Protocol (IPv4) ist ein sehr statischer Handshake und 
Zustandsgraph (Socket-Status) und die Pakete lassen sich auch durch 
Gatter-Logiken zerlegen und aufbauen ...
=>
a) das Zeitkritische wird der übergeordneten MCU abgenommen (offload)
b) es werden keine Interrups mehr benötigt => kein OS ...
c) das macht unangreifbare Internet-Applikationen möglich, z.B. 
Zugangskontrolle, Kartenleser, Geldautomaten, ... Kaffeemaschine ;-)
=>
z.B. der W5500 erreicht am SPI I/F (42MHz Clock) echte 17Mbps 
bidirektional und 13 Mbps unidirektional.
James Kim - Blog:
https://javakys.wordpress.com/2014/10/29/the-second-trial-on-enhancing-the-throughput-of-w5500/
" To conclude, W5500 can achieve the throughput over than 13Mbps under 
42MHz SPI Clock.. "
Und, James und ich geben uns damit noch nicht zufrieden. Da sind noch 
lange Lücken = Pausen im SPI Datenstrom. Wir optimieren weiter.
Und der W5500 unterstützt SPI Takte bis 80MHz wir brauchen nur mal den 
andere MCU Plattform. Der SPI-Takt und die MCU sind der Bottleneck !

Und, Beweis folgt auf den Fuß, unser neuer W7500 = hardwired TCP/IP + M0 
MCU ! schafft mit seinen 48MHz (interne Clock) sogar nochmehr und 
schaufelt echte 35 Mbps übers Netz:
Unser Chip Design Ingenieur Roy dokumentiert das in seinem Blog:
https://embeddist.wordpress.com/2015/02/17/firewall-soc-with-tcpip-offload-engine-for-internet-of-things/

"This means that Cortex-M does not have to handle the flooding packet 
even under Network attack. Further, because the TCP / IP stack 
processing is performed in TOE, it is possible to save the amount of 
memory for TCP/IP communications." (TOE = TCP/IP Offload Engine)
Werbung: Ich denke mit 35 MBps ist das der Ethernet-Durchsatzrekord für 
so einen kleinen M0 ! Der W7500 kommt Ende Mai.

Grüße,
Joachim Wülbeck, WIZnet Europe GmbH

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Joachim Wülbeck schrieb:
> Joachim Wülbeck, WIZnet Europe GmbH

Hi Joachim! Cool und danke, dass Du Dich hier gemeldet hast!

Daniel Frank schrieb:
> in meinem aktuellen Projekt bin ich
> schon an einer Kabelgebundenen Lösung interessiert.
> Ist aber sehr gut zu Wissen das es auch was Drahtloses gibt.

Das Thema ESP8266 ist hier also Off-Topic! Vielleicht rechtfertigt das 
einen separaten Thread: "IoT: WIZnet vs. ESP8266"?

Ich bin sicher, ich bin nicht der einzige hier, der es ggf. gern wissen 
würde, falls er mit dem ESP8266 "auf dem Holzweg" ist.

: Bearbeitet durch User
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.