Forum: Mikrocontroller und Digitale Elektronik uC an SCSI


von Benedikt (Gast)


Lesenswert?

Ich habe einige Z53C8003 SCSI Interface ICs rumliegen, und kam daher auf
die Idee mittels SCSI Daten von einem uC an den PC zu übertragen.

Hardwaremäßig ist das ganze also kein Problem, von der Softwareseite
auf dem uC warscheinlich auch nicht, aber wie sieht es auf der PC Seite
aus ?
Normale SCSI Laufwerke benötigen ja keinen zusätzlichen Treiber und
werden direkt von DOS bzw. Windows unterstützt.

Wie sieht es aber aus, wenn ich etwas eigenes an den Bus hänge, wie
kann ich da die Daten übertragen ?

Oder erstmal eine andere Frage:
Lohnt sich der Aufwand überhaupt, oder ist das ganze viel zu
kompliziert ?

von A.K. (Gast)


Lesenswert?

Was die Komplexität im µC angeht - wenn der PC-Controller noch mit
targets aus der SCSI-1 Ära klarkommt, dann ist das nicht so schlimm.
Und er sollte es eigentlich. Alles was SCSI komplex macht ist optional,
wie beispielsweise die message phase und disconnect/reconnect und
dergleichen. Was bleibt ist dann minimales SCSI aus der CCS
(pre-SCSI-1) Ära. Jedenfalls am Anfang. Optimieren kann man später.
Allerdings ist so nicht mehr als ~3MB/sec rauszuholen - viel mehr wird
der µC aber wohl auch nicht verkraften.

Im PC wiederum ist das völlig harmlos. Per ASPI kommt man von
Anwendungsebene her an alle Devices ran. Je nachdem wer den
ASPI-Treiber liefert, kann damit ohenhin jeder beliebig unberechtigte
Anwender jede vorhandene Festplatte löschen (mein Kenntnisstand anno
WinNT4, Symbios vs Adaptec). Den ASPI-Treiber muss man evtl.
nachinstallieren, der ist aber unabhängig vom Adapter-Treiber. Und wenn
Du das target von der device class her als Band- oder Disk-Laufwerk
tarnst (nur halt evtl. removable und not ready), sollte auch der
Gerätemanager brav nicken. Wenn nicht, musst Du halt mit dem niedlichen
Fragezeichen leben.

von Marko B. (Gast)


Lesenswert?

Es gibt vier Klassen von SCSI-Geräten:

o SCSI disk (Festplatte)
o SCSI CD-ROM
o SCSI tape (Streamer)
o SCSI generic (alles andere, z.B. Scanner)

Für die ersten drei sollte das Betriebssystem die Treiber liefern. Für
letztere mußt Du eigene Schreiben.

Der Controller heißt übrigens Z53C80, kompatibel zum NCR53C80, und für
diesen gibts Treiber als Source (Linux usw.).

von Hans (Gast)


Lesenswert?

hmm das ist eine gute idee mit scsi..an die hab ich noch garnicht
gedacht...

hat einer eine ahnung ob es diese chips noch gibt ..weil billige scsi
controller gibts anscheinend (laut geizhals ;)

wäre eine geile, einfache idee schnell daten in einen pc zu
schaufeln... st hat zwar einen scsi controller aber der scheint mir 1.
überladen und 2. schlecht dokumentiert zu sein....

wäre daran sehr interessiert..vor allem wenn man bedenkt, dass man
damit ein grosses pc-speicherscope-problem in den griff bekommen könnte
G

73

von Marko B. (Gast)


Lesenswert?

Hans: das Problem ist nur, daß man dann schon einen größeren Aufwand
betreiben muß, um hohe Datenraten zu erreichen. Der NCR/Z53C80 schafft
z.B. maximal 3MB/s. Aktuelle Controllerchips sind für Bastler kaum
verfügbar, Datenblätter schon gar nicht.

von Hans (Gast)


Lesenswert?

gut dann steht man hier also auch vor dem gleichen problem wie bei allen
anderen schnellen schnittstelen...

entweder einfache hardware und langsam oder komplizierte hardware und
dafür schnell...

ich werd mich einfach mal mit vhdl bzw verilog beschäftigen müssen,
damit ich dram an so einen netten arm dranbekomme um in den genuss von
ethernet und fertiger api zu kommen....

73

von Benedikt (Gast)


Lesenswert?

Wenn ich das richtig verstehe, ist SCSI z.B. im Vergleich zu USB recht
einfach.
Wenn ich es schaffe, dass der PC beim Booten den uC am SCSI Bus
erkennt, dann weiß ich das ich auf dem richtigen Weg bin...
Die Hardware muss relativ einfach sein, denn in dem Scanner aus dem ich
das IC ausgebaut habe, war außer einem 8051 und dem Z53C80 nicht
wirklich viel drin...

von Rahul (Gast)


Lesenswert?

Moin,
beim Lesen dieses Threads kam mir die Idee, vorhandene SCSI-Geräte
(ZIP, Festplatten) über deren Schnittstelle als Speichermedium zu
betreiben; sprich einen Host bauen, der irgendwelche Daten auf den
Dingern abspeichern kann.

Geht sowas? Ich hab mich noch nicht wirklich doll mit dem Thema
beschäftigt, aber aus anderen Threads geht hervor, dass ATA(PI)-Sachen
auf SCSI basieren.

Gruß Rahul

von A.K. (Gast)


Lesenswert?

Also andersrum als Benedict vorhat - µC als Host und diverse übrig
gebliebene SCSI-Devices als Speichermedien? Das ist auch nicht
schwierig.

Wenn's einfach sein darf und kurze Kabel hat, dann ist dafür
möglicherweise noch nicht einmal ein Host-Adapter notwendig, die Ports
eines AVR könnten reichen. Der bringt's zwar nicht zur Treiberleistung
für einen voll abgeschlossenen SCSI-Bus, aber für einen Meter oder so
geht's m.E. auch mit dezenterem Abschluss. Und ein 16MHz AVR müsste
auch die Arbitration-Phase in Software hinbekommen.

Es gab mal einen Billigst-Adapter von Seagate, ST-01, der war nichts
anderes als ein bischen Logik für die Arbitrierung sowie ein
Parallel-Port mit Treibern für den SCSI-Bus. Für das Teil hatte ich mal
einen OS/2-Treiber geschrieben.

Bloss was ATAPI in dem Zusammenhang soll verstehe ich nicht. Richtig
ist freilich, dass ATAPI letztlich nichts anderes ist, als
SCSI-Kommandos über ATA.

von Rahul (Gast)


Lesenswert?

Da hab ich wohl Software und Hardware durcheinandergebracht.
Wohl wegen des Protokolls.
Wie gesagt, wirklich beschäftigt habe ich mich noch nicht damit.

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.