mikrocontroller.net

Forum: PC-Programmierung USB 2.0 Festplattengehäuse -> integrierter Festplattencontroller


Autor: Unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
wüsste jemand von Euch, wie ich unter Linux ein externes USB 2.0 IDE 
Festplattengehäuse.....besser gesagt den integrierten Controller 
ansprechen kann?

Selbst ansteuern wird wahrscheinlich schwer, aber die verbauten 
Festplatten, ob sie per LBA oder CHS angesprochen werden, haben ja 
Befehle, die in verschiedene Register geschrieben werden und dann 
entweder Daten gelesen/geschrieben werden beim Datenbus.

Eigendlich müsste ich nur wissen, mit was für einer Bibliothek "dachte 
da an libusb 1.0" ich die Befehle und Daten schreiben kann.
Natürlich unter c/c++ programmieren


Cu Unbekannt

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Linux unterstützt von sich aus die USB-Standardgeräteklasse "USB Mass 
Storage Device" - und das ist die Geräteklasse, die von 
USB-zu-IDE-Bridges verwendet wird.

Die Kommunikation mit der Platte selbst bleibt Dir verborgen, die wird 
von der internen Firmware der USB-IDE-Bridge abgewickelt und auf das 
MSD-Protokoll umgesetzt.

Was hast Du nun genau vor, was möchstes Du erreichen?

Autor: Unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz vergessen zu sagen.....ich will die Pins des Controllers für andere 
Zwecke nutzen

Autor: Unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was möchte ich erreichen?
Es gibt USB to seriell Modelle....diese sind aber total langsam.....wenn 
ich den Controller im USB Festplattengehäuse ansprechen könnte, wäre 
dies doch die einfachste, kostengünstigste Lösung mit viel mehr 
Geschwindigkeit..

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannt schrieb:
> Ganz vergessen zu sagen.....ich will die Pins des Controllers für andere
> Zwecke nutzen

Vergiss es. No way. Dazu müsstest Du die Firmware der USB-IDE-Bridge 
ändern.

Autor: Unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso verändern???

Du hattest selbst folgendes geschrieben:
Linux unterstützt von sich aus die USB-Standardgeräteklasse "USB Mass
Storage Device" - und das ist die Geräteklasse, die von
USB-zu-IDE-Bridges verwendet wird.

ist schon klar, das ich jede einzelne Pins nur durch Änderung der 
Firmware im Controller ansteuern kann....

Aber es müsste doch möglich sein, die Standartbefehle, die jeder von den 
Controllern beherbergt zu benutzen. Diese werden ja dann an den Pins des 
Controllers ausgegeben und somit wird ja auch die Festplatte 
angesteuert.

Ich meine damit die Befehle die zur Ansteuerung der IDE Festplatte 
genutzt werden. Diese werden ja in die Register geschrieben....und 
soviel ich weis, kann der Datenbus dann lesen oder schreiben.

Das müsste 100 % möglich sein, nur wie?

Und wenn ja dann die Befehle an den Pins des Controllers anliegen, kann 
ich ja einen Mikrocontroller hinten dranschalten, der wiederum andere 
Zwecke erfüllt.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, das geht so nicht. Die Befehle die über USB Mass Storage gehen, 
sind schon ziemlich abstrahiert und auf Datenträger zugeschnitten. Du 
könntest höchstens ein ATA-Slave nachbauen (mit CPLD oder FPGA), den an 
den Controller klemmen und dann darüber kommunizieren. Unter Windows 
geht das auf jeden Fall, CreateFile(...) kann auch BlockDevices auf 
niedriger Ebene öffnen.

Aber wieso so kompliziert? Es gibt doch USB 2.0 HighSpeed Controller, 
wie den Cypress FX2 und den FTDI FT2232H, die machen das viel einfacher 
mit passendem API und erlauben 40MB/s Übertragungsrate....

Autor: Unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, das ich mal auf die schnelle ein paar Grafiken zeichnen 
werde, sonst wird es nix. Es ist auch schwer zu erklären. In max. 2 
Stunden sind die Grafiken dann auf meinem Server

Warum so kompliziert?
Ich denke mal, dass dies die beste Lösung wäre, da mir hierdurch noch 
ein schönes Gehäuse für die Elektronik zur Verfügung steht.
Und so teuer sind diese USB 2.0 IDE Gehäuse nicht.

@Christian R. könntest du mir ein gutes Tutorial nennen, bei dem es 
erklärt wird, was du mir vorgeschlagen hast?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannt schrieb:
> Aber es müsste doch möglich sein, die Standartbefehle, die jeder von den
> Controllern beherbergt zu benutzen. Diese werden ja dann an den Pins des
> Controllers ausgegeben und somit wird ja auch die Festplatte
> angesteuert.

Ist es nicht. Das Protokoll sieht Operationen auf Sektorebene vor, d.h. 
es werden immer größere Informationsblöcke übertragen. Daß da 
irgendwelche Register der Festplatte angesteuert werden, ist zwar 
korrekt, darum aber kümmert sich der in der USB-IDE-Bridge enthaltene 
Controller. Auf USB-Protokoll-Ebene werden ganze Datenblöcke übertragen, 
und nicht sehr viel mehr anderes.

Ich habe aber den Verdacht, daß Du Dich mit Deinem Vorhaben verrennst, 
weil Du von einer falschen Prämisse ausgehst:

Unbekannt schrieb:
> Es gibt USB to seriell Modelle....diese sind aber total langsam.

Genau das sind sie nicht, wenn man sie für den Zweck nutzt, für den sie 
vorgesehen sind. Serielle Datenübertragung, kein "bitbanging". Wenn das 
serielle Protokoll mit ausreichend großen Datenblöcken operiert, hat so 
ein USB-Seriell-Adapter keine Probleme damit, effektive 
Datenübertragungsraten im (niedrigen einstelligen) MBit-Bereich zu 
erreichen.

Wenn Du an irgendwelchen Pins wackeln willst, weil Du was ganz anderes 
anstellen möchtest als serielle Datenübertragung, dann ist die Nutzung 
einer USB-Seriell-Bridge ein Designfehler, der aber nicht der 
USB-Seriell-Bridge vorzuwerfen ist. Möglicherweise sind hier die 
softwareseitig identisch anzusteuernden parallelen Varianten (FT245) 
schon genügend, vielleicht lässt sich Dein Pinwackeln aber auch mit der 
MPSSE des FT2232 erschlagen.

Also: Was willst Du eigentlich erreichen? Was möchtest Du ansteuern?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannt schrieb:
> @Christian R. könntest du mir ein gutes Tutorial nennen, bei dem es
> erklärt wird, was du mir vorgeschlagen hast?

Tutorial kenn ich keins. Einfach hier im Forum lesen, die beiden Chips 
tauchen regelmäßig auf. Beim FTDI hast du den Vorteil, dass du keine 
Firmware schreiben musst, der FX2 will eine Firmware für den 
integrierten 8051, ist aber auch recht simpel,,gibts von Cypress jede 
Menge Beispiele.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.