Forum: Mikrocontroller und Digitale Elektronik Entwicklung ISA-Bus-Karte


von Stephan Müller (Gast)


Lesenswert?

hi,

ich hab mich bisher bisle in die thematik mit ISA Bus eingearbeitet..
aber ein wichtiges thema ist mir bisher zu kurz gekommen..
und zwar was es mit den Adressleitungen aufsich hat und wie man die
karte auf eine bestimmte IO Adresse einstellt ?

die adressleitungen sind doch da um von der CPU aus das device im IO
adressspeicher anzusprechen oder ?
also wenn die CPU den befehl "out ADDR, al" ausführt z.b.

aber warum dann bidirektional ?
kann ich mit hilfe dieser 20 leitungen auch auf das RAM zugreifen ?
aber das geht dann nur per DMA oder ?
warum sind es eigentlich genau 20 leitungen ?
und wie stell ich meine karte auf eine bestimmte IO adresse ein ?

vielleicht kann mich einer da bisle weiter aufklären
thx!

mfg

von Benedikt (Gast)


Lesenswert?

Es gibt IOWR, IORD (lesen und Schreiben an IO) und MEMWR, MEMRD (für
Speicher).
Nun nimmst du dir einen 8bit Vergleicher, hängst den an die Leitungen
A2-A9, den Ausgang davon  als CE und hast nun ein Gerät das Zugriff auf
einen Adressbereich von 4 Adressen aus einem Adressraum von 1024 hat
(bei den IO Adressen werden nur die 10 Leitungen verwendet.)

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Stephan

Du brauchst ein Buch mit dem Thema "Grundlagen der
Mikroprozessortechnik". da findest Du dann den Aufbau des Computers,
der aus Mikroprozessor, Speicher und Peripheriebausteinen besteht. Alle
diese Komponenten sind über den Bus miteinander verbunden. Der Bus
wiederum besteht aus den Teilen "DAtenbus", "Adressbus" und
"Steuerbus". der Adressbus selektiert Bauteile und Teile innerhalb
eines bauteils und der datenbus transportiert daten vom Mikroprozessor
und zum Mikroprozessor. Also dein 20 Bit Adressbus selektiert z.B.
einen RAM-Baustein und innerhalb des RAM-bausteins die Adresse 0000,
dort liest oder schreibt dann der Prozessor irgendwelche Daten oder
Befehle. Ob geschrieben oder gelesen wird entscheiden Leitungen vom
Prozessor (Read, Write). Je nachdem, welchen Prozessor man hat, wird
ein Zugriff auf Peripheriebauteile in I/O-Mapping oder in
Memory-Mapping unterschieden. Die Intel-Prozessoren verwenden
I/O-Mapping. das heißt, daß Memory und I/O über separate Befehle und
über separate Leitungen selektiert werden (Memory request, I/O
request). Der Adressbus selektiert dann wieder ein I/O-Bauteil und eine
bestimmte Zelle innerhalb des I/O-Bausteins.
Bidirektional heißt, daß gelesen und geschrieben werden kann, dafür ist
dann wieder die Read/Write - Leitung zuständig.

Ich hoffe, ich habe Dir ein bisschen weitergeholfen.

Gruß
Gerhard

von Peter D. (peda)


Lesenswert?

Wenn ich ins Museum einbreche, dann hole ich mir einen Munch, aber keine
uralt Hardware.

Aber damals hatten die Leute noch Zeit dicke Bücher darüber zu
schreiben, d.h. in der Bibliothek solltest Du fündig werden.

Eine komplette Busspezifikation kurz mal hier im Forum beschreiben zu
wollen, halte ich für witzlos.

Aber das ein 8086 nur 1MB adressieren konnte, daran kann ich mich noch
dunkel erinnern.


Peter

von Gerhard Gunzelmann (Gast)


Lesenswert?

Ganz so ist es nicht, die ISA-Spec ist - elektrisch - bei PC104 immer
noch gültig. Für einfache Steuerungsaufgaben ist so ein System ganz
brauchbar.

Gerhard

von Stephan Müller (Gast)


Lesenswert?

hi..

heisst das ich aktiviere einfach ein entsprechendes Bitmuster
auf den Adressleitungen von meiner Karte aus und habe somit meine
Basis IO adresse ?
z.b. 1101001011

thx!
mfg

von Gerhard Gunzelmann (Gast)


Lesenswert?

Vereinfacht: ja

out ADDR, al  bewirkt eine I/O-Adressierung, Adresse ist ADDR (kommt
also z.B. als 1101001011  auf den Adressbus und der Wert in al
erscheint auf dem Datenbus.


Gerhard

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.