PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spezifikationen für NE2000 Netzwerkkarten



Mehto
11.01.2006, 21:53
Hallo,

ich hab denächst mal wieder verücktes vor ;-)
Und zwar möchte ich eine NE2000 kompatible Netzwerkkarte mit Assembler und einem AVR ansteuern. (und wenn das dann gut klappt ein langsames aufbauen weiterer Protokolle wie TCP/IP und http, das wird aber noch dauern)

Leider ist Google bei den Informationen etwas spärlich...
Das einzige was ich zum ansteuern so einer Netzwerkkarte gefunden hab ist eine recht gute Dokumentation eines NE2000 Treiber Projekts (http://www4.informatik.uni-erlangen.de/Lehre/WS03/V_AKBP2/Projects/NE2000/Ausarbeitung-NE2000.pdf) (.pdf)
Und zwei Datenblätter, einmal das für den Chip RTL8019AS von Realtek (ftp://202.65.194.18/cn/nic/rtl8019as/spec-8019as.pdf) und einen für den Chip von den Netzwerkkarten die ich hab AT/Lantic DP83905 (http://www.national.com/ds.cgi/DP/DP83905.pdf) (beides .pdf)

In den Datenblättern steht zwar das wichtigste zum ansteuern, aber bei so einem Komplexem Verfahren und Fachausdrücken haperts bei meinem Englisch doch ein bisschen :-(
In dem Treiber-Projekt wurde die Ansteuerung und initialisierung recht gut erklärt, aber viele Details fehlt halt leider doch.

Meine Frage ist jetzt ob jemand noch gute Quellen oder Internetseiten über die Anstuerung einer NE2000 kompatiblen Netzwerkkarte kennt? (auch auf Englisch)
Irgendwie find ich bei Google nicht mehr, selbst bei mir in der Stadtbibliothek gibts kein Buch drüber, da fängts erst beim TCP/IP Protokoll an :-(



Vieleicht könnt ihr mir auch direkt helfen: 8-[
Im ganzen wären da noch folgende Fragen:

- für was ist der "Remote DMA Port" (Adresse 0x10-0x17)?
- für was ist der "Reset Port" (Adresse 0x18-0x1F)? (es gibt doch einen Resetpin, wiso dann soviele Register?)

- wie kann ich die Daten in den Ringpuffer schreiben und lesen?
- für was ist der loopback Modus der wären der Initialition gesetzt werden muss?

Den Rest glaub ich halbwegs verstanden zu haben.
Wäre super wenn ihr mir ein wenig weiterhelfen könntet.


Gruß,
Mehto

linux_80
11.01.2006, 23:22
Hallo,
hast Du schon die Seite von
http://www.ulrichradig.de/
angeguckt, da ist ein Webserver mit Realtek 8019 Chipsatz.

izaseba
11.01.2006, 23:39
und hier (http://www.mikrocontroller.com/)ist ein Mega32 mit einer RTL8019 Karte als Webserver im Einsatz.

Gruß Sebastian

Mehto
12.01.2006, 06:35
Hi,

ja, das Projekt vom Ulrich kenn ich natürlich, dort steht aber leider auch nichts näheres zur Ansteuerung :-(

Den Chipsatz den ich benutz ist genauso wie der von Realtek NE2000 kompatible. Also von der Ansteuerung gleich.
Aber aus dem Quellcode von Ulrichs Webserver kann ich leider nichts zu den oben gestellten Fragen finden :-(

Gruß,
Mehto

Mehto
12.01.2006, 18:20
Die wichtigste Frage die mich beschäftigt ist wie ich den eigentlich in den Ringpuffer schreibe...

Es scheint da ja Remote DMA Ports (Adresse 0x10-0x17) zu geben, aber wie funktiioniert das?

Sind die Write und Read-befehle im Commandregister für die Lese/schreibvorgönge für den Puffer?

Geht das vieleicht so das man im Command-Register z.B. Read aktiviert und dann die nächsten 8Byte vom Ringpuffer-pointern aus dem Puffer in den DMA Registern stehen?

Ich wäre für jede Hilfe dankbar... :cry:

Gruß,
Mehto

12.01.2006, 19:57
Frag doch einfach mal den Uli,
ich denke, daß er Dir helfen kann...
Gruß Sebastian

Kaiser-F
09.03.2006, 15:00
Hallo Metho,

schon was rausgefunden? Ich fange auchgerade mit NE2000 an, und stehe auch vor diesen Fragen.

Wäre toll wenndu deine Errungenschaften hier ausbreiten könntest

Mehto
09.03.2006, 15:07
Hi,

ja ich hab mich damit noch ne weile beschäftigt, dann aber wieder aufgegeben.
Ich hatte für erstmal vor eine Netzwerkkarte mit Assembler anzusteuern und danach und nach Internetprotukolle aufzubauen

Das es aber schon verschiedene Projekte von anderen gibt (z.B. das von Ulrich Radig) lohnt sich das nur wenn man das unbedingt mal selber gemacht haben möchte.
Werd mir irgendwann den Webserver von Mikrocontroller.net mal noch fertig nachbauen, eigentlich fehlt nur noch die richtige Netzwerkkarte (meine funktioneiren nicht :-( )

Aber ich kahm jetzt auch zu ein paar Embedded Systeme, die haben einen Netzwerkcontroller schon on Board und sind sehr leistungsfähig. Werd mich erstmal mit denen beschäftigen.

Sollte ich irgendwann nochmal Lust bekommen eine Netzwerkkarte selber anzusteuern und es zu Ende machen werd ich mich natürlich melden.

Hier sind die Links die ich gesammelt habe:

(Das Treiber Projekt)
http://www4.informatik.uni-erlangen.de/Lehre/WS03/V_AKBP2/Projects/NE2000/Ausarbeitung-NE2000.pdf

ftp://202.65.194.18/cn/nic/rtl8019as/spec-8019as.pdf
http://www.national.com/ds.cgi/DP/DP83905.pdf

http://www.national.com/an/AN/AN-874.pdf

Gruß,
Mehto

Kaiser-F
09.03.2006, 19:34
Konstruieren gerade mein Realtek Board :-)

Was ich noch wissen möchte... hab das noch nicht so ganz gerafft mit dem ISA Port.

Für was ist am Realtek Chip Host Adress gut?

Also die Pins SA0 bis SA19... wozu das?

Mehto
09.03.2006, 20:29
Hi,

ich glaub das sind die Adresseingänge für den ISA Bus.
Normal "fühlt" sich die Karte glaub ich bei der adresse 0x300 angesprochen, weiß es aber nicht mehr auswändig, schau mal auf der Seute von Ulrich Radig.

Brauchen tust du von den Adresspins glaub ich nur 3 Stück :-)

Gruß,
Mehto

Kaiser-F
10.03.2006, 08:06
hm jo ( Sitz grad in der Schule und der Lehrer Stresst )

Ulrich nimmt 5 her....

Mal schaun, Danke!

Kaiser-F
10.03.2006, 16:35
Stimmt...

Mit der Host-Adresse werden die Einzelnen Teilnehmer Angesprochen.
Wie eine Enable Leitung (zB bei LCDs),nur eben 19Bit breit..

Standardmäßig ist die Adresse des RTL8019AS 0x300,(Hex 300).

Das gibt Binär: 1100000000.

Theoretisch würde nun Eine Leitung auch genüren.

Man verbindet also Bit 8und9 mit 5V, Bit 0 mit den mC, und den Rest (1-7, 10-19) mit GND.

Wird nun Bit0 High gesetzt, so entsteht die Adresse Hex: 0x301, wird die GND gelegt, so hat man Hex: 0x300.

Also würde Theoretisch eine Leitung nach SA genügen.

Ulrich hat wohl 5 Leitungen, um für größere Projekte offen zu bleiben...

Mehto
10.03.2006, 17:34
Hallo,

keider stimmt das nicht ganz :-(

Die Adresse fängt bei 0x300 an.
Du brauchst die Adresse nämlich auch um Register schreiben und lesen zu können. (z.B. 0x309 für jenes und 0x30E für dieses Register.
Bei den registern gibt es übrigens mehrere "Seiten" dadurch spaart man eigentlich auch nochmal pins.

Die 5 Pins werden aber leider nötig sein :-(

Gruß,
Mehto

Kaiser-F
11.03.2006, 18:20
Achsoo....

Diese werden dann also genutzt um die Register des Chips anzusteuern...

Register 0x000 ist dann also bei Host Address 0x300...

Kaiser-F
13.03.2006, 14:58
So, hab mir jetzt mal mein eigenes Realtek-Board gebastelt.
( Gleich mit dem ersten versuch mit Lötstopplaminat, kann ich nur empfehlen :-) )

http://www.sir-kaiser.de/upload/Realtek-Board01.JPG

http://www.sir-kaiser.de/upload/Realtek-Board02.JPG

Fehlen nur noch 4Chip Kondensatoren 10nF und das 20MHz Quarz...
Dürfte Mittwoch da sein, bin schon scharf aufs Programmieren :-) :-)

Mehto
13.03.2006, 16:57
Hey!

Das sieht ja verdammt gut aus! *neid*

Was durftest du für die Platine blechen? Oder hast du die selber gemacht? :shock:

Wirklich, sehr schön! Vorallem sieht das ganze sehr anschaulich aus.

Wie steuerst du den Controller an? (welcher µC, welche Programmiersprache)

Gruß,
Mehto

Kaiser-F
13.03.2006, 17:27
Die Platine ist selbst gemacht... :-) *freu* Danke für das Lob^^

Ansteuern tuh ich es mit einem meiner µC Boards... ATMega32....

Ich werd das Programm Controller unabhängig gestalten, mit C.

Ich halt euch am Laufenden...

Kaiser-F
12.12.2006, 00:05
Hallo Leute,

ich steh so am Rande des Durchbruchts...

Wisst Ihr ein Programm, quasi wie ein Terminalprogramm, nur für Ethernet?
Damit ich überwachen kann, was mein Testaufbau da veranstaltet???

Das wäre echt super hilfreich!

camrob
12.12.2006, 05:40
Hi,
um zu sehen was auf dem Netztwerk los ist, kannst Du den Netzwerk Protocol Analyzer "Wireshark" benutzen http://www.wireshark.org/.
Gruß
camrob

Kaiser-F
13.12.2006, 23:58
Hallo camrob!

Nettes Tool, genau wonach ich gesucht habe!

Vielen Dank!