3 Stimmen

USB-Laufwerk LED-Blitz

Ich habe vor kurzem über die Hello World Anwendung des Arduino gelesen und dachte mir, "Ich frage mich, ob ich das mit der Hardware, die ich gerade besitze, auch machen kann."

Da ich kein Arduino habe, habe ich mir einen USB-Flash-Laufwerk geschnappt, den ich herumliegen hatte, und angefangen, nach Informationen darüber zu googeln. In diesem Bereich habe ich nicht viele hilfreiche Informationen gefunden, daher frage ich jetzt hier: Ist es möglich, auf die Hardware eines USB-Laufwerks zuzugreifen (z.B. die LED) und mit ihr über eine Programmierumgebung zu interagieren (ich dachte, dass C# wahrscheinlich einen Weg haben sollte, dies zu tun)?

Außerdem, im Zusammenhang mit diesem Thema - weiß jemand, welche Art von Befehlen USB-Laufwerke verwenden? Zum Beispiel verfügen SCSI-Speichergeräte über einen standardisierten Befehlssatz; ATA-Geräte verfügen über ein ähnliches Protokoll. Wie werden einfache Lese-/Schreibbefehle an ein USB-Speichergerät gesendet?

5voto

Benoit Punkte 36144

Obwohl das USB-Protokoll ziemlich allgemein ist, sind die Peripheriegeräte wirklich funktionsspezifisch und benötigen irgendeine Art von Gerätetreiber am Host, um ordnungsgemäß zu funktionieren.

Während ein USB-Flash-Laufwerk einen Mikrocontroller darauf hat, folgen die meisten USB-Speichergeräte einem gemeinsamen Protokoll. Deshalb müssen Sie keinen anderen Gerätetreiber installieren, wenn Sie ein Laufwerk an Windows anschließen.

Ich bin mir ziemlich sicher, dass das Massenspeicherprotokoll keine "LED einschalten" Nachricht hat :) Und während das Unternehmen, das das USB-Laufwerk implementiert hat, tatsächlich einen speziellen Befehl dafür haben könnte (vielleicht zum Debuggen), würde ich bezweifeln, dass er veröffentlicht wird.

Obwohl ich kein Guru in Windows bin, glaube ich, dass Sie Ihren eigenen Gerätetreiber schreiben und ihn im Kernel laden müssten, um direkt auf den USB-Stack zuzugreifen. Können Sie sich vorstellen, ob eine normale Anwendung den Befehl "Alles formatieren" an ein beliebiges USB-Gerät senden könnte.

3voto

Chad Okere Punkte 4532

Hier ist ein Link zu einer selbst gebauten USB-gesteuerten LED-Lampe, es ist ein wenig mehr Arbeit als einfach einen USB-Stick anzuschließen.

Wenn du das Licht an einem USB-Festplattenlaufwerk einschalten möchtest, musst du nur Daten auf einer Datei auf diesem Laufwerk schreiben, obwohl ich denke, dass einige Laufwerke das Licht die ganze Zeit anlassen, die meisten leuchten nur auf, während Daten geschrieben werden.

Also, wenn dein USB-Laufwerk als F: gemounted ist, kannst du einfach eine Datei wie F:\lights.txt erstellen und ein paar k Daten darauf schreiben, dann die Datei löschen und von vorne beginnen.

Ein Nachteil ist, dass Flash-Laufwerke nach einer Weile verschleißen, und dies wird es verschleißen. Du könntest auch versuchen, Daten von dem Laufwerk zu lesen.

Wenn du präzisere Kontrolle möchtest, kannst du USB-Datenerfassungsgeräte wie diese bekommen, die es dir ermöglichen, eine spezifische elektrische Ausgabe zu steuern, um damit zu versorgen, was auch immer du möchtest, einschließlich Glühbirnen oder LEDs. Sie werden ursprünglich von Wissenschaftlern verwendet, um Eingaben von Laborequipment zu messen. Ich habe so etwas in meinem Physikunterricht an der Universität verwendet, obwohl wir damals RS-232 verwendet haben.

1voto

Daniel A. White Punkte 180762

Ich würde hier nachsehen. Sie verwenden etwas namens Massenspeicher.

1voto

switchmode Punkte 175

USB-Laufwerke in Linux sehen aus wie SCSI-Laufwerke, daher können Sie INQUIRY, LESEN, SCHREIBEN usw. durchführen. Normalerweise hat der Controller-Hersteller des Flash-Laufwerks möglicherweise eine herstellerspezifische "Hintertür", die der Öffentlichkeit unbekannt ist.

0voto

Sie können USB wie einen RS232-Port steuern. Hoffentlich hilft Ihnen dieser MSDN-Link mehr http://www.microsoft.com/downloads/details.aspx?FamilyID=075318ca-e4f1-4846-912c-b4ed37a1578b&DisplayLang=en

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X