enj28J60 Übertragungsgeschwindigkeit

OP #2338773
Lesenswert?

Hi,
ich möchte mir gerne ein Ethernet Interface bauen, das I2C/SPI/Can 
Datenverkehr über Ethernet weiterleitet.
Nun bin ich im Datenblatt des enj28670 auf einen vermeindlichen 
Widerspruch gestossen:
Laut Datenblatt unterstützt der Controller 10/100 und sogar Gigabit 
Ethernet, aber die SPI Ansteuerung läuft nur auf max 20 Mhz/s.
Wie sollen da Datenpakete über 100 Mhz verschickt werden können, wenn 
die Ansteuerung nur bis max 20 mhz arbeiten kann?
Oder verstehe ich da was falsch?
Grüße
Sylvia
OP #2338849
Lesenswert?

ich glaube ich habe da ein grundsätzliches Verständnisproblem:
Müssen die Register des ENJ28 nicht erst angesprochen werden, damit der 
Controller arbeitet? Man nehme an, es kommen über einen zweiten  SPI Bus 
Daten herein, die über Ethernet weitergeleitet werden sollen. Dann muss 
ich doch zuerst einmal dem ENJ über seine SPI Schnittstelle sagen "da 
sind Daten, leite sie weiter", dazu muss ich doch seine Register 
ansprechen, und sein AusgagnsFifo füllen.
Kann ich mir das so vorstellen:
- Die zu sendenden Daten kommen über eine 2. SPI Leitung herein
- Der Ansteuerungscontroller "lädt" die Daten in den FIFO des ENJ mit 
einer   geschwindigkeit von max 20 Mhz
- Der ENJ jagt dann die Daten mit max 1 GB Geschwindigkeit raus ins 
Ethernet?
#2338887
Lesenswert?

Sylvia H. schrieb:

> Müssen die Register des ENJ28 nicht erst angesprochen werden, damit der
> Controller arbeitet?

Ja.

> Man nehme an, es kommen über einen zweiten  SPI Bus
> Daten herein, die über Ethernet weitergeleitet werden sollen. Dann muss
> ich doch zuerst einmal dem ENJ über seine SPI Schnittstelle sagen "da
> sind Daten, leite sie weiter", dazu muss ich doch seine Register
> ansprechen, und sein AusgagnsFifo füllen.

Ja.

> - Der ENJ jagt dann die Daten mit max 1 GB Geschwindigkeit raus ins
> Ethernet?

Microchip schreibt "Integrated MAC and 10BASE-T PHY", was auf 10Mbps 
rausläuft, nicht 100 und nicht 1000.

Die 100/1000 im Datasheet beziehen sich auf das Gesamtnetz: "Fully 
Compatible with 10/100/1000Base-T Networks". Der ENC kann sich also mit 
100/1000er Stationen unterhalten, wenn wie üblich der Switch dazwischen 
vermittelt. Eine Binse.
OP #2338934
Lesenswert?

ich wollte nur mal grundsätzlich abklären, was alles mit dem ENC 
rauszuholen ist.
Im Moment soll er nur Daten, die von einem Sensor hereinkommen auf 
Ethernet weiterleiten. Der Sensor ist recht langsam, da reichen 10Mps 
dicke aus. Aber nichts desdo trotz kann man sich ja mal Gedanken darüber 
machen, was man noch alles mit der Ethernetschnittselle später 
vielleicht einmal anfangen kann...
#2338940
Lesenswert?

Sylvia H. schrieb:

> machen, was man noch alles mit der Ethernetschnittselle später
> vielleicht einmal anfangen kann...

Mit welchem Prozessorboliden wolltest du den armen ENC denn quälen? 
Kleinlinge wie AVR oder MSP430 sind beim Durchsatz auch nicht so der 
Bringer.

Ich habe an einer Stelle einen AVR, der per ENC ein Logfile aus einem 
Dataflash ins Netz pustet. Über uIP/UDP ungebremst reinblasend lande ich 
wenn ich mich recht erinnere irgendwo im Bereich 100-200kB/s, wobei hier 
allerdings die Daten über die gleiche SPI-Schnittstelle gemultiplext 
werden.
OP #2338946
Lesenswert?

entweder ein ATXMEGA (z.b.:128) oder den Cortex STM103, das steht noch 
nicht ganz fest.
Bevor ich mich festlegen darf muss ich erst abklären, was für ein SRAM 
der Ansteuerungscontroller liefern muss, damit eine größtmöglichste 
Übertragungsgeschwindigkeit aus dem ENC rauszuholen ist.
#2338957
Lesenswert?

Wenns darum geht und auch ein STM32 auf der Rechnung ist - weshalb dann 
überhaupt der ENC? Den STM gibts auch mit Ethernet drinne, und das ist 
vom Durchsatz her eine gänzlich andere Grössenordnung.

Jedenfalls ist der ENC die falsche Adresse, wenn Durchsatzmaximierung 
auf dem Fahrplan steht. Dafür ist der nicht gebaut.
#2338965
Lesenswert?

Na dann wollen wir mal hoffen, dass dir die kleinen Eigenheiten des ENC 
nicht die Suppe versalzen. Der kommt nämlich genau genommen weder mit 
Haldduplex noch mit Fullduplex problemlos klar, es sei denn der 
Switchport lässt sich manuell auf Fullduplex festnageln. Weshalb der 
eine Teil der Anwender auf den eigentlich nicht möglichen Duplexmode 
steht und die daraus resultierenden Probleme in Kauf nimmt, und die 
Anderen versuchen, mit dem Bug vom Halfduplex zurecht zu kommen.

Das muss kein grosses Problem sein. Aber wenn eine hohe kontinuierliche 
Datenrate gefragt ist, und danach klingt es, dann kann das eine Rolle 
spielen.
OP #2338997
Lesenswert?

oh weh, das sind ja schöne Aussichten.......
ich versuch mal damit zurecht zu kommen.
Was ich noch herausbekommen muss  ist:
Man nehme an, es kommen Daten mit einer Baudrate von 10 Mhz angetrödelt, 
und werden in den FIFO des ENC geladen. Wie kann ich herausfinden, bzw 
wie lautet die genaue Berechnungsweise um herauszufinden, mit welcher 
Geschwindigkeit der ENC diese Daten dann auf Ethernet herausbläst?
OP #2339038
Lesenswert?

A. K. schrieb:
> Menge an Daten summieren, Zeit messen, dividieren. ;-)


ok, das kann ich machen, wenn alles aufgebaut ist, und ich mit dem oszi 
alles beobachten kann.
Da ist nur das Problem: Ich habe noch nichts aufgebaut, und soll 
trotzdem ein Statement darüber abgeben, was für ein Durchsatz zu 
erwarten ist.
Ich habe folgende Theorie:
Wenn meine zu übertragende Daten mit einer gewissen Datenrate 
hereinkommen (z.b.: 10-20 Mhz/s) dann sendet der ENC mit der vorher von 
mir eingestellten Übertragungsrate von 100 Mhz/s die Daten ins Ethernet.
Ist das ok?
#2339044
Lesenswert?

Sylvia H. schrieb:

> hereinkommen (z.b.: 10-20 Mhz/s) dann sendet der ENC mit der vorher von
> mir eingestellten Übertragungsrate von 100 Mhz/s die Daten ins Ethernet.

Dass der ENC28J60 garantiert nie mit 100MHz oder 100Mbps ins Netz speist 
steht definitiv fest. Kann er nicht. Wurde oben aber schon angesprochen.

Normales Ethernet auf Switches ohne QOS ist für isochrone Übertragung 
nicht verlässlich, d.h. für kontinierliche Mindestdatenrate muss auch 
das Netz entsprechend ausgelegt sein.
OP #2339075
Lesenswert?

A. K. schrieb:
> Microchip schreibt "Integrated MAC and 10BASE-T PHY", was auf 10Mbps
> rausläuft, nicht 100 und nicht 1000.
>
> Die 100/1000 im Datasheet beziehen sich auf das Gesamtnetz: "Fully
> Compatible with 10/100/1000Base-T Networks". Der ENC kann sich also mit
> 100/1000er Stationen unterhalten, wenn wie üblich der Switch dazwischen
> vermittelt. Eine Binse.


entschuldige, da habe ich dich falsch verstanden.
Ich dachte, der ENC kann mit den 100/1000er Stationen "mithalten" also 
genauso schnell senden.
Dies ist wohl nicht der Fall.
Also kommen meine angenommenen Daten mit 10-20 Mhz/s für den ENC doch 
nicht angetrödelt, sondern angerauscht :)
Das Szenario wird also wie folgt sein:
Die Daten kommen am Ansteuerungscontroller an, er schreibt sie dem ENC 
ins 8 KB FIFO, dieser jagt sie dann mit 10Mps ins Netz. Was zu schnell 
kommt, muß im Ansteuerungscontroller gespeichert werden.
Gast #2339201
Lesenswert?

Sylvia H. schrieb:
> Die Daten kommen am Ansteuerungscontroller an, er schreibt sie dem ENC
> ins 8 KB FIFO, dieser jagt sie dann mit 10Mps ins Netz. Was zu schnell
> kommt, muß im Ansteuerungscontroller gespeichert werden.

Nein. Das RAM im ENC ist auch kein FIFO sondern ein "packet buffer". Via 
Ethernet werden Pakete verschickt, keine Einzeldaten. Du schreibst also 
den "packet header" und deine Daten in den ENC und löst "Abschicken" 
aus. Der ENC berechnet dann die Prüfsumme, klebt die an das Ende des 
Pakets, und versucht es zu versenden.

MfG Klaus
#2339209
Lesenswert?

Wenn du eine Möglichkeit suchst, Daten direkt als Stream zu versenden, 
dann schau dir lieber die Wiznet-Chips oder -Module an. Erspart sehr 
viel von der Software. Da hier der Durchsatz wichtig ist wäre eine 
paralleler Busanschluss zu empfehlen, deren SPI ist eine ziemliche 
Durchsatzbremse.

Da kannst du es auch mit den heissgeliebten 100Mbps versuchen. Der 
TCP/IP-Layer ist dort im Chip drin, d.h. eine TCP-Verbindung wird 
tatsächlich zum Datenstrom und der interne Speicher zum FIFO.

http://www.watterott.com/de/WIZnet

Und komm bitte nicht wieder mit "2€ zu teuer". Wieviele Millionen willst 
denn davon verkaufen, damit sich die in ungeeignete Lösungen investierte 
Arbeitzeit auszahlt? Oder läufst du unter Kostenstelle "eh da" und es 
eilt nicht so?
#2339278
Lesenswert?

Sylvia H. schrieb:
> weil der stm103 kein Ethernet kann, sondern nur der stm107 (Kosten ca 16
> €), und dieser auch noch einen Transceiver (Kosten ca 7 €) braucht. Dies
> wird insgesammt zu teuer

Wenn das zu teuer ist, sollte man vielleicht zuerst den Lieferanten 
wechseln
Digi-Key, Einzelstücke: günstigster STM32F107 ~ 9 €, Phy z.B. KSZ8041RNL 
(nur RMII) 1.52 €
oder gleich einen Controller mit integriertem Phy nehmen:
LM3S6100 (integrierter 10/100 MAC+Phy) ~ 9 €
PIC18F66J60 (integrierter 10 MAC+Phy) ~ 4 €
OP #2342079
Lesenswert?

Arc Net schrieb:
> LM3S6100 (integrierter 10/100 MAC+Phy) ~ 9 €
> PIC18F66J60 (integrierter 10 MAC+Phy) ~ 4 €

A. K. schrieb:
> Wenn du eine Möglichkeit suchst, Daten direkt als Stream zu versenden,
> dann schau dir lieber die Wiznet-Chips oder -Module an.

danke für die Anregungen, ich habe mir die Controller sehr interessiert 
angeschaut. Leider bin ich durch interne Vorgaben gezwungen, bei dem ENC 
zu bleiben.
Danke aber nochmal für eure schnellen Antworten, das hat mir sehr 
geholfen. Ich habe nun ein besseres Verständnis für die 
Einsatzmöglichkeiten des ENC.
#2342092
Lesenswert?

Sylvia H. schrieb:
> Hi,
> ich möchte mir gerne ein Ethernet Interface bauen, das I2C/SPI/Can
> Datenverkehr über Ethernet weiterleitet.
> Nun bin ich im Datenblatt des enj28670 auf einen vermeindlichen
> Widerspruch gestossen:
> Laut Datenblatt unterstützt der Controller 10/100 und sogar Gigabit
> Ethernet, aber die SPI Ansteuerung läuft nur auf max 20 Mhz/s.
> Wie sollen da Datenpakete über 100 Mhz verschickt werden können, wenn
> die Ansteuerung nur bis max 20 mhz arbeiten kann?

Im Datenblatt steht uebrigens auch ganz eindeutig:

"Supports One 10Base-T Port with Automatic
Polarity Detection and Correction"

Volker

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren