Ich habe mir ein wenig Gedanken über ACSI-SCSI Adaptoren und Brücken gemacht und möchte meine vorläufigen Überlegungen mitteilen.
Grundsätzlich gibt es zwei Arten. Brücken und Adaptoren
- Adaptoren können nur ein SCSI Gerät Adressieren und können darum einfacher Aufgebaut sein
- Brücken verbinden ASCI und SCSI Busse vollwertig und können mehrere SCSI-Geräte adressieren
Jede Variante kann nur für SCSI-1 sein oder darüber hinaus gehen.
SCSI-1 Kommandos sind nahezu identisch mit ACSI Kommandos.
Die einfachste Art ist ein Adapter für SCSI-1. Die höchste Komplexität hat eine Brücke, die neuere SCSI-Befehle unterstützt. Bei ihr müssten nicht nur Die Befehle "übersetzt" werden auch die fehlenden Bussignale müssten erzeugt werden. Zudem müsste sich der Adapter gegenüber den SCSI-Geräten als eigenes Gerät Ausgeben und aktiv am Bus agieren.
Unterschiede von ACSI und SCSI-1
Ein ACSI Kommando besteht aus 5 Byte, bei SCSI-1 aus 6 Byte. Das erste Byte bei ACSI ist die Geräteadresse und der Befehl. Das ist bei SCSI-1 auf zwei Byte verteilt. Das erste Byte ist die Geräteadresse, das zweite Der Befehl. Die Adresse ist anders als bei ACSI nicht binär kodiert, sondern entspricht einem Bit auf den Datenleitungen.
ACSI D7-D5 SCSI D7-D0
000 => 00000001
001 => 00000010
010 => 00000100
011 => 00001000
usw.
ACSI Befehle sind zu SCSI-1 Befehlen identisch (SCSI-1 Befehle sind nur zwischen 0x00 und 0x1A definiert also maximal 5 Bit breit) Die restlichen 4 Byte eines Kommandos sind identisch.
Das bedeutet ein einfacher Adapter muss das erste Bytes eines ACSI-Kommandos in ein Adressbyte und ein Befehlsbyte zerlegt werden.
ACSI und SCSI unterscheiden sich auch in den Signalleitungen nicht sehr. Laufen DMA-Aktionen ab (DMA-Read/Write) so gibt es keinen Unterschied (nur die Benennungen der Leitung sind unterschiedlich), Nur wenn Kommandos gesendet werden, muss der zeitliche Ablauf einiger Signale verändert werden. Zudem fehlt dem ACSI-Bus alle Signale um den Busmaster abzugeben. Das stellt bei passiven Geräten wie Massenspeichern (wie Festplatten oder CD-ROMs) kein Problem dar.
Ein ACSI zu SCSI-1 Adapter:
Erkennt ein Adapter, das er gemeint ist, sendet er auf dem SCSI-Bus ein Byte mit einer festen Geräteadresse (z.B ID0), dann tilgt er aus dem ersten ACSI-Byte die Adresse (setzen von Bit 5-7 auf 0) und sendet es nach. Die restlichen Bytes werden unverändert durch gereicht. Da die Timings am ASCI-bus Großzügig sind, ist das ohne weiteres machbar.
So verhalten sich die SCSI-Adaptoren wie sie z.B im MegaSTE verbaut sind.
Man kann eine einfache ACSI-SCSI-1 Brücke daraus machen, wenn anstatt einer festen SCSI-Adresse die Dekodierte ACSI-Adresse benutzt. Damit hätte man eine einfache Brücke.
Komplizierter wird es wenn SCSI-2 (und neuere) Befehle versendet werden sollen. Das Problem ist hier, das diese größer als 0x1F sind also mehr als 5Bit belegen. Damit lassen sich nicht mehr im ACSI-Kommando Byte-0 unterbringen.
Eine Lösung ist es zu wissen welche Geräte Hinter einer Brücke oder Adapter hängen und diese Speziell anzusteuern.
Dazu sucht man sich ein von SCSI-1 nicht verwendetes Kommando, welches auch von anderen ACSI-Geräten nicht in gebraucht wird. Und fragt damit jedes Gerät am Bus ab. Ein Gerät das eine "ordentliche" Antwort gibt muss hinter einem Adaper hängen, da der Adapter selber den Befehl erkannt und sinnvoll konvertiert hat.
Der Adapter sollte also wie folgt reagieren. Wenn dieser besondere Befehl auftaucht, dann soll er ihn in einen gültigen SCSI-Befehl wandeln und das entsprechende Gerät damit adressieren. Kommt eine Antwort leitet er sie weiter.
Das Wandeln kann auf verschiedene Arten geschehen. Er könnte statt dem ersten ASCI-Kommando-Byte eine SCSI-ID Senden. Oder er könnte sich darauf verlassen, dass die ID im Zweiten Kommandobyte enthalten ist und keinen Ersatz für das Byte generieren. Auf diese Weise ließen sich beliebige SCSI-Kommandos an die Gräte hinter dem Adapter senden.
Eine Andere Möglichkeit wäre es die Brücke mit einer eigenen Adresse als Gerät auf den ACSI-Bus zu legen. ACSI-Befehle würden gewandelt und an ein voreingestelltes Gerät am SCSI-Bus weitergereicht. Ein spezielles Kommando würde wie vorher schon ausgeführt transformiert und an den SCSI-Bus weiter gereicht. Der Vorteil wäre es, dass Diese Art von Brücke unabhängig vom ACSI-Bus wäre und zusätzlich 7 Geräte adressieren könnte.
Geräte von ICD setzen wohl auf das erste Konzept die von Steinberg auf das Zweite. Aber genau kann ich das nicht bestimmen.