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
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.
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?
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.
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?
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...
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.
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.
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.
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
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.
PIC gibts auch mit Ethernet drauf als Einchip-Lösung. Vielleicht wär das was wenns aufs Geld ankommt.
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?
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
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. ;-)
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.
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?
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.
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.
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
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
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?
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 €
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.