USB-накопитель светодиодная вспышка - PullRequest
3 голосов
/ 23 января 2009

Я недавно читал о приложении Arduino Hello World , и подумал про себя: «Интересно, смогу ли я сделать это с оборудованием, которое у меня есть сейчас».

Поскольку у меня нет Arduino, я взял флешку, которая лежала у меня в руках, и начал поискать информацию об этом. Я не нашел много полезной информации в этой области, поэтому сейчас я спрашиваю: могу ли я получить доступ к оборудованию USB-накопителя (например, к индикатору) и взаимодействовать с ним через некоторую среду программирования (я думал, что C # должен наверное есть какой нибудь способ это сделать)?

Также, по этой теме - кто-нибудь знает, какие команды используют USB-накопители? Например, устройства хранения SCSI имеют стандартизированный набор команд; Устройства ATA имеют аналогичный протокол. Как такие вещи, как простые команды чтения / записи, передаются на запоминающее устройство USB?

Ответы [ 5 ]

5 голосов
/ 23 января 2009

Несмотря на то, что протокол USB является довольно общим, периферийные устройства действительно специфичны для конкретной функции, и для правильной работы требуется какой-то драйвер устройства на хосте.

Хотя на флэш-накопителе USB установлен микроконтроллер, большинство USB-накопителей используют общий протокол. Вот почему вам не нужно устанавливать разные драйверы для каждого диска, который вы подключаете к Windows.

Я почти уверен, что в протоколе запоминающего устройства нет сообщения "Включить светодиод" :) И хотя у компании, которая внедрила USB-накопитель, действительно может быть специальная команда для этого (возможно, для отладки), я сомневаюсь, что она будет опубликована.

Хотя я не гуру в Windows, я считаю, что для прямого доступа к USB-стеку вам нужно написать собственный драйвер устройства и подключить его к ядру. Можете ли вы представить, может ли обычное приложение отправить команду «отформатировать все» на произвольное USB-устройство.

3 голосов
/ 25 января 2009

Вот ссылка на самодельную светодиодную лампу, управляемую USB, это немного больше работы, чем подключение USB-накопителя.

Если вы хотите включить подсветку на жестком диске USB, вам просто нужно записать данные в файл на этом накопителе, хотя я думаю, что некоторые накопители будут постоянно светиться, большинство из них просто загораются пока данные пишутся.

Так что, если ваш USB-накопитель смонтирован как F :, вы можете просто создать файл, например F: \ lights.txt, и записать в него несколько килограмм данных, затем стереть файл и начать заново.

Один недостаток заключается в том, что флеш-накопители со временем изнашиваются, и это изнашивает их. Вы также можете просто попробовать прочитать данные с диска.

Если вам нужен более точный контроль, вы можете приобрести такие устройства USB для сбора данных, как , эти , которые позволят вам управлять конкретным электрическим выходом, чтобы питать все, что вы хотите, включая лампочки или светодиоды. Первоначально они использовались учеными для измерения входных данных от лабораторного оборудования, я использовал такие вещи в своем классе физики в колледже, хотя в то время мы использовали RS-232.

1 голос
/ 25 января 2009

USB-накопители в Linux выглядят как SCSI-накопители, так что вы можете выполнять ЗАПРОС, ЧТЕНИЕ, ЗАПИСЬ и т. Д. Обычно производитель контроллера флеш-накопителя может иметь специфический для поставщика «черный ход», который неизвестен широкой публике.

1 голос
/ 23 января 2009

Я бы посмотрел здесь . Они используют что-то под названием Mass Storage.

0 голосов
/ 07 августа 2009

Вы можете управлять USB как порт RS232, надеюсь, эта ссылка MSDN поможет вам больше http://www.microsoft.com/downloads/details.aspx?FamilyID=075318ca-e4f1-4846-912c-b4ed37a1578b&DisplayLang=en

...