Forum: Mikrocontroller und Digitale Elektronik enj28J60 Übertragungsgeschwindigkeit


von Sylvia H. (sandy)


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

von cskulkw (Gast)


Lesenswert?

Naja, da sind die Zeitlücken in denen der Controller nichts sendet 
entsprechend lang.

Die Übetragungsfrequenz ist eine Sache. Der Zugriff auf die Register vom 
µC aus eine andere.

von Sylvia H. (sandy)


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?

von Sylvia H. (sandy)


Lesenswert?

sorry, natürlich rede ich vom ENC28J60
blöder Buchstabendreher.......

von (prx) A. K. (prx)


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.

von Sylvia H. (sandy)


Lesenswert?

warum nicht auf 1000?

von (prx) A. K. (prx)


Lesenswert?

Welchen Sinn sollte das haben? Aussedem steht der ENC mit 
Autonegotiation auf Kriegsfuss und ohne dies gibts weder sauberen 
Duplexmode noch (deshalb) Gigabit.

Vom erreichbaren Durchsatz her ist man mit 10Mbps ohnehin schon gut 
bedient. Weshalb also mehr?

von Sylvia H. (sandy)


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...

von (prx) A. K. (prx)


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.

von Sylvia H. (sandy)


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.

von (prx) A. K. (prx)


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.

von Sylvia H. (sandy)


Lesenswert?

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

von (prx) A. K. (prx)


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.

von test (Gast)


Lesenswert?

Also für wenig Daten
AVR - SPI - ENC28J20

für Druchsatz

z.b. ARM-core - MII / RMII - Ethernet PHY

von tom (Gast)


Lesenswert?

PIC gibts auch mit Ethernet drauf als Einchip-Lösung. Vielleicht wär das 
was wenns aufs Geld ankommt.

von Sylvia H. (sandy)


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?

von Sylvia H. (sandy)


Lesenswert?

tom schrieb:
> PIC gibts auch mit Ethernet drauf als Einchip-Lösung. Vielleicht wär das
> was wenns aufs Geld ankommt.


upps, hab den beitrag nicht bemerkt ...
es ist so, das ich aus Anpassungsgründen gezwungen bin, mich entweder 
auf den ATXMEGA 128 oder den Cortec STM107 zu verlassen, andere 
Controller sind nicht erlaubt

von (prx) A. K. (prx)


Lesenswert?

Sylvia H. schrieb:

> wie lautet die genaue Berechnungsweise um herauszufinden, mit welcher
> Geschwindigkeit der ENC diese Daten dann auf Ethernet herausbläst?

Menge an Daten summieren, Zeit messen, dividieren. ;-)

von (prx) A. K. (prx)


Lesenswert?

tom schrieb:

> PIC gibts auch mit Ethernet drauf als Einchip-Lösung. Vielleicht wär das
> was wenns aufs Geld ankommt.

Ulkigerweise sind zumindest im Einzelhandel PICs mit integrierter 
Peripherie nicht selten teurer als vergleichbare AVRs mit separater 
Microchip-Peripherie.

von Sylvia H. (sandy)


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?

von (prx) A. K. (prx)


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.

von Sylvia H. (sandy)


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.

von Stephan (Gast)


Lesenswert?

Hi Sylvia,
wenns etwas schneller sein soll schau dir doch auch mal die anderen Chip 
von Microchip an (ENC424J600/ENC624J600)!
Die haben auch einen größeren Buffer.

Stephan

von Klaus (Gast)


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

von (prx) A. K. (prx)


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?

von Arc N. (arc)


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 €

von Sylvia H. (sandy)


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.

von ttl (Gast)


Lesenswert?

den STM32F107 bekommt man doch schon weit unter 5 Euro !!! Scheint ja 
kein Bastelprojekt zu sein. Und zum Testen einfach ein Evalboord von ST, 
Keil oder Olimex, fertig ist.

von Volker S. (volkerschulz)


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

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.