Forum: Mikrocontroller und Digitale Elektronik Aufbau von Isa Karten(Bustreiber etc)


von Max M. (Gast)


Angehängte Dateien:

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?

von Christian M. (christian_m280)


Lesenswert?

Max M. schrieb:
> Wozu dienen die kleinen Ics?

Steht ja drauf: 1489!

Gruss Chregu

von Rüdiger B. (rbruns)


Lesenswert?

Im Datenblatt ist das komplette Schaltbild deiner Karte enthalten:
https://pdf1.alldatasheet.com/datasheet-pdf/download/156146/WINBOND/W86C451.html

von Harald K. (kirnbichler)


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.

von Peter N. (alv)


Lesenswert?

Max M. schrieb:
> Oder handelt es sich um 8x 4Bit Busstreiber?
> Wozu dienen die kleinen Ics?

Was für Bustreiber?

Die großen ICs sind Portbausteine, die mit 8 Bit Datenbus an den ISA-Bus 
gehen.
Die kleinen ICs sind RS232-Pegelwandler oder dienen zur 
Adressdekodierung.

Einfachste Mikrocomputertechnik.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Waren das noch Zeiten, wo man die IRQs manuell per Jumper zuweisen 
mußte.

von Peter N. (alv)


Lesenswert?

Peter D. schrieb:
> Waren das noch Zeiten, wo man die IRQs manuell per Jumper zuweisen
> mußte.

Nicht zu vergessen, diese noch im Treiber richtig einzustellen...

von Harald K. (kirnbichler)


Lesenswert?

Peter D. schrieb:
> Waren das noch Zeiten, wo man die IRQs manuell per Jumper zuweisen
> mußte.

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

Früher war vielleicht einiges gut, aber auch vieles richtig beschissen.

von Peter N. (alv)


Lesenswert?

Harald K. schrieb:
> Vor allem, wo so wenige davon verfügbar waren

Das war der Grund, warum ich damals von Win98SE auf XP ungestiegen bin.
98SE kam mit den ganzen Interrupts des neuen PCs nicht mehr klar.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Max M. schrieb:
> vermutlich LPT 1, LPT2 und COM 1

Eher zweimal seriell und einmal parallel. "Richtige" RS232 hatten 
25polige Steckverbinder. 9polige wurden mit der IBM PS/2 eingeführt, 
aber gerade Modems hatten (zumindest die größeren) alle 25polig.

von (prx) A. K. (prx)


Lesenswert?

Auch bei den LPTs improvisierte man. Aus den dicken 36-poligen 
Centronics wurden DB-25. Da mussten aber nur Masseanschlüsse dran 
glauben.

von Harald K. (kirnbichler)


Lesenswert?

Peter N. schrieb:
> Das war der Grund, warum ich damals von Win98SE auf XP ungestiegen bin.

Das Betriebssystem hatte mit den Einschränkungen des ISA-Hardwaredesigns 
nun wirklich überhaupt nichts zu tun.

von Harald K. (kirnbichler)


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).

von Max M. (Gast)


Lesenswert?

Mein Schneider CPC 6128 hatte so eine Buchse und der Drucker das 
passende Gegenstück

von Harald K. (kirnbichler)


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" ...

von Frank M. (ukw) (Moderator) Benutzerseite


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 :-)

von Harald K. (kirnbichler)


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.

von Ob S. (Firma: 1984now) (observer)


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...

von Peter N. (alv)


Lesenswert?

Ob S. schrieb:
> Interruptcontroller gab. Oder verwechsele ich das jetzt mit dem Amiga?

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.

Keinerlei Beschränkung in der Anzahl der Interruptquellen.

von Ob S. (Firma: 1984now) (observer)


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.

von Harald K. (kirnbichler)


Angehängte Dateien:

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

von (prx) A. K. (prx)


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.

von Ob S. (Firma: 1984now) (observer)


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.

von Harald K. (kirnbichler)


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.

von Ob S. (Firma: 1984now) (observer)


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).

: Bearbeitet durch User
von Harald K. (kirnbichler)


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.

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.