Aufbau von Isa Karten(Bustreiber etc)

Gast #7523836
Lesenswert?

Wie ist z.B. eine solche ISA KArte aufgebaut? Es sind 3 große ICs verbaut, vermutlich LPT 1, LPT2 und COM 1 und 2 bzw 1-4

Dann wird ein Bustreiber benötigt oder werden dann je großem IC, ein Bustreiner benötigt, also 3x 4Bit Busreiber?

Oder handelt es sich um 8x 4Bit Busstreiber? Wozu dienen die kleinen Ics?

Angehängte Dateien:
#7523855
Lesenswert?

IBM hat mehrere Hardware Reference Manuals veröffentlicht, in denen auch die Schaltpläne solcher Karten (natürlich nur der IBM-Originale, nicht die abgebildete) enthalten sind.

https://www.minuszerodegrees.net/manuals/IBM_5150_Technical_Reference_6025005_AUG81.pdf

Das "Original", dem diese Karte zugrundeliegt, ist ab S. 2-123/142 beschrieben, Schaltplan ab S. D-48/355

Die abgebildete Karte enthält keine Bustreiber, sondern nur Pegelwandler für die serielle Schnittstelle, in Form von MC1488/1489 (bzw. der pinkompatiblen SN75188/75189). MC1489/SN75189 ist der Wandler von RS232-Pegel auf 5V-Pegel, MC1488/SN75188 ist hingegen der Wandler von 5V-Pegel auf den RS232-Pegel von +/- 12V. Anders als die später verbreiteten MAX232 erzeugt dieser Baustein die benötigte Spannung nicht selbst, sondern benötigt eine externe symmetrische Versorgungsspannung von +/- 12V. Die liegt auf dem ISA-Bus an und wird vom PC-Netzteil erzeugt.

Die acht Signalleitungen der seriellen Schnittstelle verteilen sich aber nicht gleichmäßig auf Ein- und Ausgänge, so daß für einen COM-Port nicht ein Paar 1488/1489 (mit jeweils vier Treibern bzw. Empfängern) genügt, sondern zwei 1489 erforderlich werden.

Auf der abgebildeten Karte sind nicht nur zwei serielle und eine Druckerschnittstelle verbaut, sondern auch ein "Gameport", für den ist die 15polige Buchse am Slotblech der Karte selbst vorhanden. Die beiden seriellen Schnittstellen sind am zusätzlichen Slotblech angeschlossen, eine davon mit dem mittlerweile seltenen standardkonformen DB-25-Stecker, die andere mit dem heute üblichen DE-9-Stecker.

#7523958
Lesenswert?

(prx) A. K. schrieb:

Auch bei den LPTs improvisierte man.

Ich kann mich beim besten Willen nicht daran erinnern, jemals ein Gerät gesehen zu haben (abgesehen von sehr kleinen Druckservern), das jemals einen Delta-Ribbon-Stecker als Ausgang für den Anschluss von Druckern verwendete.

Die Druckserver taten das auch nur, damit man sie direkt, ohne Kabel auf einen Drucker stecken konnte.

Delta-Ribbon-Steckverbinder gab es im PC-Bereich afaik für genau zwei Anwendungen: 50polig als SCSI-Anschluss bei 8-Bit-SCSI-Controllern wie dem berühmten 1542 von Adaptec, oder 24polig für GPIB/IEE488-Controller (die noch deutlich seltener waren als SCSI-Controller und eigentlich nur in Laborumgebungen auftraten).

#7523984
Lesenswert?

Max M. schrieb:

Mein Schneider CPC 6128 hatte so eine Buchse

Das ist dann die sehr seltene Ausnahme.

Du wirst große Freude gehabt haben, ein Druckerkabel dafür zu finden, denn 1985 waren bereits die üblichen PC-Druckerkabel (für DB-25) weit verbreitet.

Und vor dem IBM PC war sowieso alles mehr oder weniger individuell selbstgestrickt. Am Apple II hatte die Druckerschnittstellenkarte nur einen zweireihigen Pfostenfeldverbinder mit 20 Pins, der mit einem Flachbandkabel adaptiert wurde, der C64 hatte seinen "User Port" ...

Moderator Persönliche Seite #7524016
Lesenswert?

(prx) A. K. schrieb:

Auch bei den LPTs improvisierte man. Aus den dicken 36-poligen Centronics wurden DB-25.

Centronics wurde 1994 von IEEE 1284 abgelöst. Im Wikipedia-Artikel https://de.wikipedia.org/wiki/IEEE_1284 findet man die möglichen Kabel und Stecker - auch in Kombination, wie z.B. Centronics (36-polig) an dem einen Kabelende und DB-25 am anderen. Exotisches wie "Mini Centronics" ist auch noch dabei :-)

#7524029
Lesenswert?

Frank M. schrieb:

Exotisches wie "Mini Centronics" ist auch noch dabei

Hatte mein HP LaserJet 6P. Der hatte auch eine IrDA-Schnittstelle, um die Exotensammlung zu komplettieren. Ich hatte auch mal ein Notebook, das eine IrDA-Schnittstelle hatte. Und ja, wenn man das Notebook an die richtige Stelle vor den Drucker hielt, dann konnte man damit "wireless printing" veranstalten. Und das vor über zwei Jahrzehnten.

(Firma: 1984now) #7524037
Lesenswert?

Harald K. schrieb:

Vor allem, wo so wenige davon verfügbar waren, und obendrein Interruptsharing hardwaretechnisch unmöglich war.

Wenn ich mich richtig erinnere, war Interruptsharing spätestens ab AT sogar förmlich zwingend erforderlich, weil es zwei kaskadierte Interruptcontroller gab. Oder verwechsele ich das jetzt mit dem Amiga? Hab' kein Lust, nachzusehen.

Mein Gott, alles so verdammt lang her...

(Firma: 1984now) #7524086
Lesenswert?

Peter N. schrieb:

Amiga (68000er System) hatte eine vernünftige Interruptbehandlung. Alle Interrupts gingen auf die CPU, und diese mußte dann nachsehen, welche Peripherie den ausgelöst hatte.

Weiß ich echt nicht mehr, obwohl ich viele Jahre für Amiga programmiert habe.

Auf jeden Fall ist es sicherlich nicht sehr effizient, wenn die CPU nur einen einzigen Interrupteingang hat und Handler immer erst selber nachschauen müssen, wo einer herkam und erst dann entsprechend verzweigen können.

#7524111
Lesenswert?

Ob S. schrieb:

Wenn ich mich richtig erinnere, war Interruptsharing spätestens ab AT sogar förmlich zwingend erforderlich, weil es zwei kaskadierte Interruptcontroller gab.

Es gab zwar beim AT zwei kaskadierte Interruptcontroller (8259), aber Interruptsharing war dennoch nicht möglich, da die Signale auf dem ISA-Bus mit Totem-Pole-Treibern erzeugt wurden (und obendrein active-high-Pegel hatten).

Diesen Designfehler beim IBM PC haben sie hartnäckig durchgezogen.

Im Anhang der relevante Ausschnitt der seriellen Schnittstellenkarte des IBM PC, Seite D-48 bzw. 355 aus https://www.minuszerodegrees.net/manuals/IBM_5150_Technical_Reference_6025005_AUG81.pdf

Angehängte Dateien:
#7524122
Lesenswert?

Ob S. schrieb:

Peter N. schrieb:

Amiga (68000er System) hatte eine vernünftige Interruptbehandlung. Alle Interrupts gingen auf die CPU, und diese mußte dann nachsehen, welche Peripherie den ausgelöst hatte.

Weiß ich echt nicht mehr, obwohl ich viele Jahre für Amiga programmiert habe.

Auf jeden Fall ist es sicherlich nicht sehr effizient, wenn die CPU nur einen einzigen Interrupteingang hat und Handler immer erst selber nachschauen müssen, wo einer herkam und erst dann entsprechend verzweigen können.

Die 68000 hatte im Vollausbau priorisierte Interrupt Vektoren, die von der Quelle geliefert wurden. Nachsehen unnötig. Etwas vereinfacht waren die Autovektoren, immer noch 7 Vektoren für die 7 Prioritäten.

(Firma: 1984now) #7524134
Lesenswert?

Harald K. schrieb:

Es gab zwar beim AT zwei kaskadierte Interruptcontroller (8259), aber Interruptsharing war dennoch nicht möglich, da die Signale auf dem ISA-Bus mit Totem-Pole-Treibern erzeugt wurden (und obendrein active-high-Pegel hatten).

Ah, reine Frage der Betrachtungsweise, also, was genau man unter dem Begriff "Interruptsharing" versteht.

Ich verstehe das aus (überwiegend) Softwerkler-Sicht natürlich so, das Interruptsharing immer dann vorliegt, wenn ich mich in einem Handler um mehrere mögliche Quellen kümmern muss.

Du stelltest aber (wohl mehr aus Hardwerkler-Sicht) darauf ab, ob es für Devices möglich ist, sich ein physisches Interruptsignal zu teilen.

Und du vergaßt darüber hinaus, das sie das tätsachlich tun, wenn kaskadierte Interruptcontroller involviert sind. Sie sharen dann zwar nicht das Signal, mit dem sie selber arbeiten, aber spätestens das Signal, was der Interruptcontroller der untersten Ebene als Ausgangssignal produziert.

#7524152
Lesenswert?

Ob S. schrieb:

Sie sharen dann zwar nicht das Signal, mit dem sie selber arbeiten, aber spätestens das Signal, was der Interruptcontroller der untersten Ebene als Ausgangssignal produziert.

So korrekt diese Aussage auch ist, so sinnlos ist sie, wenn man die Verfügbarkeit nutzbarer Interruptleitungen /am ISA-Bus/ betrachtet.

Für ISA-Steckkarten ist nur "das Signal, mit dem sie selbst arbeiten" interessant.

(Firma: 1984now) #7524162
Lesenswert?

Harald K. schrieb:

Für ISA-Steckkarten ist nur "das Signal, mit dem sie selbst arbeiten" interessant.

Nein, natürlich nicht. Es ist auch immer von Bedeutung, was da weiter mit passiert, bis hin zur Ebene der Interrupthandler der Software. Ohne die zugehörige Software ist die Hardware nämlich praktisch immer absolut nutzlos.

Sonderfälle wie Watchdogs, die direkt RESET der CPU/MCU bedienen oder ähnliches mal außen vor. Also so ziemlich alles außer Not-AUS-Funktionalität braucht Software (und den entsprechenden Blickwinkel).

#7524224
Lesenswert?

Ob S. schrieb:

Es ist auch immer von Bedeutung, was da weiter mit passiert, bis hin zur Ebene der Interrupthandler der Software. Ohne die zugehörige Software ist die Hardware nämlich praktisch immer absolut nutzlos.

Was Du nicht sagst. Da wäre ich ja /nie/ draufgekommen.

Nur ist auch diese Betrachtung komplett sinnlos, wenn man eine Karte verwenden möchte, die einen Interrupt auslösen soll, aber keine freie Interruptleitung mehr verfügbar ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren