Ich habe einen USB zu Ide Adapter , leider wird nur der USB Treiber angezeigt,nicht die pysikalischen Adressen,gibt es ein Programm,welches den Adressraum anzeigt,welches ein USB Gerät nutzt ? MFG F.H.
Es benutzt keine physikalischen Adressen, daher können die auch nicht angezeigt werden. Nur in sehr seltenen Ausnahmefällen werden physikalische Adressen auf ein USB-Gerät abgebildet, so etwas macht beispielsweise der Selbstbau USB-Parallelportadapter von Henrik Haftmann (dessen Gerätetreiber fängt I/O-Zugriffe auf die Adressen der Parallelschnittstelle ab). Was hast Du vor?
Moin,ich möchte die Leitungen eventuell auch physikalisch nutzen,also per Adresse ansprechen,zum Beispiel eine Leitung eischalten,siehst Du da ne Möglichkeit ?
Nein, da gibt es keine Möglichkeit. Die gibt es übrigens auch nicht bei USB-Parallelport-Adaptern, mit Ausnahme des von mit erwähnten Selbstbauprojektes von H. Haftmann*. Das verhält sich weitestgehend genau so wie eine "echte" Druckerschnittstelle. Übrigens lässt auch die normale IDE-Schnittstelle keine Zugriffe zu, die definiert einzelne Leitungen auf bestimmte Pegel legen; die IDE-Schnittstelle ist nichts anderes als ein (recht kastrierter) Prozessorbus, mit Adress- und Datenleitungen und noch etwas Steuerungskram drumherum. Um an irgendwelchen Leitungen zu wackeln, empfiehlt sich ein FT245/FT232 im Bit-Bang-Modus (nicht per VCP-Treiber, aber mit den FTDI-DLLs zu erreichen). *) http://www-user.tu-chemnitz.de/~omat/bastelecke/Rund%20um%20den%20PC/USB2LPT/
Moin,jede Schnittstelle lässt Lese ,bzw. Schreibzugiffe zu , sofern die Adressen bekannt sind, wenn zum Beispiel ein Ide Gerät am Bus hängt, wird es ja auch gemultiplext angeprochen, leider gibt es ja vermehrt nur Teiber oder DLL's ,dessen Funktion nicht bekannt sind,aber im Grunde wird die Orginalfunktion,also der Direktzugriff nur emuliert,oder liege ich da falsch ?
Hallo, das stimmte aber nur solange, wie die Hardware keine eigene Intelligenz mitbrachte. Wenn z.B. der I/O-Baustein am Parallel-Port nur die Möglichkeit bietet, ein Byte in ein Register zu schreiben und dann automatisch intern das Timing für die Quittungsleitungen erzeugt, kannst Du garnichts machen... Warum sollte ein USB-IDE-Adapter dem Host irgendwelche physikalischen Adressen seines Prozessors mitteilen? Es würde doch über die serielle USB-Verbindung sowieso keinem nutzen. Der Treiber sagt dem Adapter doch sowieso nicht: "jetzt lege die Daten an D0-D15 des IDE, jetzt setze CS auf L, jetzt setze WR auf L,...". Wann sollte da das Byte auf der Platte sein? Der Treiber schickt den Bufferinhalt, das Kommando schreib den Kram mal in Sektor 1345 der Platte. Wie der Kram da hin kommt (Steuerbyte anlegen, LBA-Adresse senden, Sektor-Write senden usw.), erledigt doch sowieso die Intelligenz des USB-IDE-Adapters. Gruß aus Berlin Michael
Ich weiß nicht so ganz, worauf Du da hinauswillst oder was Du Dir da im einzelnen vorstellst, nur musst Du schon zwischen einer Busschnittstelle wie der IDE-Schnittstelle und so etwas wie dem Parallelport unterscheiden. Das hat mit Treiberarchitekturen, DLLs oder ähnlichem erst mal gar nichts zu tun. Während es durch geeignete Programmierung der Parallelporthardware durchaus möglich ist, beispielsweise ein bestimmtes Bitmuster dauerhaft an den Datenleitungen anzulegen, ist das bei der IDE-"Schnittstelle" rein physikalisch ein Ding der Unmöglichkeit, genauso, wie es beim ISA- oder auch PCI-Bus nicht möglich ist, einzelne Leitungen "anzusprechen". Bei Zugriffen auf IDE-Geräte wird auch von der Windows-Treiberarchitektur nichts emuliert, sondern der Treiber führt sehr wohl I/O-Zugriffe auf die Hardware-I/O-Adressen der Schnittstelle aus; Anwendungsprogramme greifen auf diese I/O-Adressen sowieso nicht zu. Eine Emulation findet unter Windows nur dann statt, wenn DOS-Programme vermeintlich direkte Hardwarezugriffe auf Standardhardwarekomponenten der PC-Architektur (Schnittstellen, Interruptcontroller, Timerbausteine, DMA-Controller etc.) durchführen - in diesen Fällen wird dem DOS-Programm nur vorgegaukelt, es würde direkt mit der Hardware kommunizieren. Aber auch das hat nichts mit Deinem Wunsch > ich möchte die Leitungen eventuell auch physikalisch nutzen, > also per Adresse ansprechen,zum Beispiel eine Leitung eischalten zu tun. Du musst Dich von der Vorstellung trennen, daß Schnittstellen in PCs mit Portleitungen von Microcontrollern vergleichbar wären.
Du musst Dich von der Vorstellung trennen, daß Schnittstellen in PCs mit Portleitungen von Microcontrollern vergleichbar wären. Moin,von dieser Vorstellung würde ich mich nur unschwer trennen,denn, wenn ein Bus oder eine Leitung pysikalisch da ist kann man das auch nutzen, im Grunde ist ein PC ja nix anderes als ein etwas grösserer Micro, leider werden die Funktionen lediglich versteckt,und müssen mühselig herausgefunden werden,mfg F.H.
Es ist ein USB-Gerät, es hängt am USB-Controller. Dann fang mal mit den Addressen des USB-Controllers an :D
Genau,wenn die verwendeten DLL'`s hierfür offenliegen würden,hätte man ja die Möglichkeit auf seine Hardware problemlos zuzugreifen,die Datenbreite der Prozessoren nimmt stetig zu, aber eine Hardware, wie z.B. eine diekte 32 oder 64 Bit Parallelschnittstelle gibt es nicht.F.H.
Mann bist Du stur. Glaub Rufus doch. Wenn Deine USB2IDE-Bridge nicht gestattet einzelne Leitungen zu setzen, kannst Du das vergessen. Der PC sagt nur: Ich hab da einen Datenblock für die Platte. Der soll nach xxxxx. Die Bridge setzt das intern um um die IDE-Platte zu bedienen und antwortet dem PC. DU KOMMST NICHTMAL IN DEI NÄHE DER IDE-LEITUNGEN ! Grüße, Freakazoid
USB mass storage Protokolle verwenden SCSI Kommandos, die von der USB2IDE Bridge dann in IDE Zugriffe umgesetzt werden. Der IDE (auch ATA) Bus ist dabei, wie schon erwähnt, ein Prozessorbus - das ATA steht für AT attachment, also ein Anhang an den ISA Bus der AT Rechner. Und ein Prozessor-Bus ist nun mal kein GPIO Interface - du kannst zwar über GPIO ein Bus Protokoll emulieren (-> langsam), aber eben nicht andersrum. Auch ein 64-bit Prozessor hat, sofern er noch über P-ATA (parallel ATA, also "IDE") Schnittstellen verfügt, einen 16-bit breiten Bus vom Controller zur Festplatte. Ausserdem geht der Trend nicht zu breiteren Bussen sondern zu seriellen Bussen mit nur wenigen Datenleitungen, siehe USB, PCI-E und S-ATA. Zum Thema eigene Treiber: Kaum zu glauben, aber sowas gibt es :-P Mittlerweile 15 Jahre alt, erfreut sich steigender Beliebtheit, nennt sich Linux, und du findest für (fast) jedes Gerät Treiber im Quellcode. Gruesse, Dominic
Besorg dir von TI einen USB-Controller als Sample (TUSBxxx), die haben einen 8051 integriert, da kannst du dann deine Leitungen setzen. Da gibt's auch einen, der eine integrierte ATA(PI)-Schnittstelle hat (TUSB6250). Hat halt 80 Pins, also löten solltest dazu schon können. Nochmal zu den Datenleitungen von einem BUS: Bei einem Bus gibt es im Normalfall HARDWARE, die die BUS-Zugriffe steuert. Wie auf den Datenleitungen des BUSses schlussendlich rumgeklimpert wird interessiert nur die Hardware und was die damit macht kann der steuernde Proz eben NICHT bestimmen. Der kann sich nur darum kümmern, dass die Daten bis zum BUS-Treiber und von da wieder zurück gelangen.
Irgendwie habe ich mich wohl unklar ausgedrückt,also noch einmal: Angenommen , ich kaufe mir einen USB Chip,diesen Chip kann ich natürlich mit der beiliegenden Software ansprechen,Port für Port Jetzt kaufe ich mir einen USB - Ide Adapter, den kann ich nur nicht ansprechen,weil, Protokoll unbekannt,meine Frage war lediglich ,kennt jemand eine Möglichkeit diesen per USB anzusprechen. Ich denke,ich habe eine Lösung gefunden.
> Angenommen , ich kaufe mir einen USB Chip,diesen Chip kann ich > natürlich mit der beiliegenden Software ansprechen,Port für Port Was ist ein USB-Chip? Ein USB-Controller, der am yC/PC-Bus hängt? Ein Chip, welcher per USB angebunden wird (z.B. USB2IDE, USB2RS232, ...)? Ein ...? > Jetzt kaufe ich mir einen USB - Ide Adapter, den kann ich nur nicht > ansprechen,weil, Protokoll unbekannt Protokoll wird wohl SCSI über USB sein. Ist im Datenblatt bestimmt beschrieben. Wenn es so unbekannt wäre, müßte jede USB2IDE-Bridge den eigenen Treiber mitbringen. Microsoft liefert aber einen 'Universaltreiber' mit. > Ich denke,ich habe eine Lösung gefunden. Okay. Welche? Würde mich jetzt ein wenig interessieren. Grüße, Freakazoid
Das Protokoll ist in der Spezifikation der "USB Mass Storage Device Class" beschrieben. Das wird nicht nur von USB-IDE-Adaptern, sondern auch von USB-Kartenlesern und USB-"Sticks" verwendet. Auch USB-SCSI-Adapter (wie der alte Adaptec USB Connect 2000) verwenden dieses Protokoll. "Port für Port" lässt sich aber auch damit nichts ansprechen. Auch an einer nicht über USB angeschlossenen IDE-"Schnittstelle" lässt sich nichts "Port für Port" ansprechen, ebensowenig, wie es bei einem PCI-Slot möglich ist, die einzelnen Leitungen "Port für Port" anzusprechen. Wenn das verwendete USB-Protokoll bekannt ist, dann kann unter Umgehung eines Devicetreibers mit libusb bzw. dessen Win32-Portierung mit dem Gerät kommuniziert werden - aber auch hier nicht "Port für Port". Um mich nochmal zu zitieren: Du musst Dich von der Vorstellung trennen, daß Schnittstellen in PCs mit Portleitungen von Microcontrollern vergleichbar wären. Deine Antwort darauf zeigt, daß Dir an entscheidenden Stellen Grundlagenkenntnisse zu fehlen scheinen: Moin,von dieser Vorstellung würde ich mich nur unschwer trennen,denn, wenn ein Bus oder eine Leitung pysikalisch da ist kann man das auch nutzen, im Grunde ist ein PC ja nix anderes als ein etwas grösserer Micro, leider werden die Funktionen lediglich versteckt, und müssen mühselig herausgefunden werden,mfg F.H. Nein. Bei busorientierten Architekturen (da muss man gar keinen PC für hernehmen, jeder Mikroprozessor ohne integrierte Peripherie genügt vollends) ist ein programmgesteuerter Zugriff auf einzelne Leitungen des Busses nicht möglich. Da ist nichts verborgen oder mühselig herauszufinden, das ist einfach nur ein anderes Funktionsprinzip. Sieh Dir beispielsweise mal an, wie ein 8080, Z80 oder 6502 mit der Außenwelt kommuniziert. Da werden nur Adressen auf einen Adressbus gelegt, mit ein paar Steuerleitungen herumgewackelt und Daten auf den Datenbus gelegt oder von diesem gelesen. Was anderes geschieht nicht. Und die Funktion bestimmter Peripheriebausteine ist festgelegt und nicht frei programmierbar - ein VGA-Anschluss lässt sich nicht durch irgendwelche Ports dazu bringen, irgendetwas anderes zu machen.
Rufus das wäre aber doch ein Ausweg aus der "kein Parrallelport" Missere! Einfach nen Programmer für den bei Notebooks meist vorhandenen VGA Ausgang und los kann das lustige programmieren gehen. Man muß nur rausfinden wo die Funktion versteckt ist um einzelne "ports" des VGA Ausgangs zu setzen oder einzulesen LOL
und man bräuchte auch einen USB-RS232-Umsetzer mehr, da man den VGA-Ausgang auch noch als serielle Schnittstelle benutzen kann. ;)
Logisch! hat ja auch viel mehr pins als son popeliger LTP könnte man glatt als µC Ersatz verwenden!!!!!!!!!!!!!!!!!! :D
Naja,wer Ahnung hat, kann problemlos die VGA Signale decodieren und als Steuerbus verwenden,aber das wäre ein neues Thema,aber da bei dem eigentlichem Thema schon nichts rausgekommen ist,verläuft wohl auch dieses im Sande,mfg F.H.
Die VGA Signale sind analog - klar kannst du die dekodieren (genau das mache ich im Moment, da weder meine Grafikkarte noch mein Monitor sich auf digitale DVI Signale verstehen), aber zur aktuellen Diskussion trägt das nur soweit bei, wie dich die Teilnehmer auf die Schippe nehmen wollen. Gruss, Dominic (nich mehr ganz nüchtern, meints aber trotzdem so)
Moin Dominic,von meiner Seite sollte auch nur ein Witz sein,aber durch die Unwissenheit hier nehmen sich die meisten Teilnehmer ja schon selbst auf die Schippe
Auf dem VGA-Interface gibt es sehr wohl auch digitale Signale. Ist Dir noch nicht aufgefallen, dass Dein PC Hersteller und Typ Deines Monitors weiß? So weit ich weiß, ist es eine I2C auf Pins 12 (SDA) und 15 (SCL).
Noe. Der VGA Standard kannte noch kein DDC, das wurde erst mit VESA VGA eingeführt ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.