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
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.)
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.