Arduino как USB Mass Storage

forester
Offline
Зарегистрирован: 27.04.2011

Стоит следующая специфичная задача. Есть пром.оборудование которое пишет свои логи в на юсб-флешку. Для сбора данных приходится вынимать в конце дня карту и сливать руками данные на комп.

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

Насколько реальна поставленная задача и в какую сторону копать?

Насколько я понимаю если перепрошить ATmega8U2, то можно его заставить представится необходимым устройством, но каким образом дальше все реализовать затрудняюсь. Был ли у кого-то подобный опыт?

Modular
Offline
Зарегистрирован: 05.03.2011

 Тут рыть надо в сторону LUFA, на контроллерах где за USB отвечает atmega8u2 чип, таких как UNO, с помощью этой библиотеки можно эмулировать любой USB устройство в том числе mass storage насколько я понимаю.

Modular
Offline
Зарегистрирован: 05.03.2011

 Вот здесь http://hunt.net.nz/users/darran/ есть примеры как заставить arduino UNO работать как мышь, MIDI девайс или как клавиатуру. Mass storage нет, но сама идея таже

kikia99
Offline
Зарегистрирован: 22.03.2011

задача немного мутновата расписанна  но насколько я понял проще писать ардуиной тогда уд на сд карту а по команде скидывать все по радиоканалу  или реализовывать схему моста юсб лан и проклыдывать сеть  тут все зависит от условий финансовых ну и быстродействия  а так стандартная схема ардуино сди карта и зиг би   а вообще на рынке много конвектеров юсб рс485  юсб ком  ну и тд 

Modular
Offline
Зарегистрирован: 05.03.2011

 Так я так понимаю товарищу надо чтобы ардуино определялся устройством как mass storage

forester
Offline
Зарегистрирован: 27.04.2011

Да именно так. Просто устройстово которое скидывает логи, умеет только работать с флешкой и писать на нее поэтому единственный вариант это либо подключить флешку сразу и к прибору и к ардуино и через "лобовой" разрыв цепи юсб давать доступ либо тому, либо другому. Но в этом случае придется реализовывать в ардуине юсб-хаб (кажется так называется когда устройство является ведущим), но с этим гемора не меньше.

Второй вариант это то что я писал выше, что бы ардуино сам представилмя как mass storage и выступал чем-то вроде контроллера в флешке, а самой памятью была бы sd-карта.

Modular спасибо за ссылку, буду изучать. Хотя HID и UMS все ж немного поразному функционируют, а гугление по LUFA+arduino дает кучу статей, где говорится что можно все что угодно, но увы ни одной реализации.

Спасибо всем за участие.

kikia99
Offline
Зарегистрирован: 22.03.2011

http://microsin.ru/

http://habrahabr.ru/blogs/arduino/107825/

 

так оно наверно проще 

bakulev
Offline
Зарегистрирован: 30.06.2011

Уважаемый forester!

Передо мной стоит подобная задача. Хотелось бы узнать как Вы решили Вашу задачу.

forester
Offline
Зарегистрирован: 27.04.2011

До практического решения задачи к сожалению пока не дошло, но изучив мат.часть могу сказать что эмуляция юсб вешь достаточно муторная и не быстрая. Одно описание протокола листов на 30 насколько я помню.

Но было найдено интересное решение, есть такая штука уже снятая с производства но на ебее есть в достаточных объемах ну и при больших тиражах на алибабе всегда можно партию заказать. Называется SD plus:

Это сд карта с одного краю и юсб с другого. То есть для решения задачи нужно просто реализовать переключатель (реле) и либо давать прямую дорогу устройству которое хочет флешку или обрубать у него доступ к оной и с другого краю читать данные через стандартный сд-шилд.

Если мой вариант подойдет, буду рад почитать об вашей истории реализации.

bakulev
Offline
Зарегистрирован: 30.06.2011

Да, действительно, хорошая идея. И сравнительно легко реализуемая.

Благодарю!

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

 а если так - соеденить СД карту вместе с устройством записывающим и ардуино одновремено, самой ардуиной постоянно ничего не считывать, дальше раз там в 30минут ардуино выключает "логгер" и считывает быстро данные с карты??? и по юсб уже дальше отдаёт в комп

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Или вообще на реле многовыводное повесить карту и когда надо переключать карту между устройствами? Я же не думаю что секундное отключение логгера испортит малину 

forester
Offline
Зарегистрирован: 27.04.2011

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

lfway
Offline
Зарегистрирован: 09.01.2015

Всем привет!

Была ли решена задача?