Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с USB <=> FlashDisk.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
JS1
Сделал контроллер занимающийся сбором информации
Есть необходимость скидывания информации на FlashDisk (с поддержкой Plug&Play) в виде файлов и папок, что бы потом слить эти файлы и папки на PC.
Ядро на котором сделан контроллер не имеет USB, посоветовали использовать
микруху ISP1362
В USB и Fat16, Fat32, Plug&Play, не шарю, помогите плиз кто что знает.
Наработки, исходники, советы и ссылки на интересующую меня информацию всё приветствуется.
olefil
Да это будет сложновато. Суть конечно проста. Необходимо определится с протоколом по которому будете работать. Я когда год назад это делал ничего толкового не нашел. Есть протокол работы USB дисковода еще какие-то но про flash я ничего не нашел. Вроде ка у CYPRESS есть исходники такого устройства. Я например взял flash и просто просканировал всю ее структуру команд, после чего реализовал на своем контроллере. (Кстати есть вопрос про philips'овский контроллер я его сегодня заказываю, как он вообще работает если вы с ним работали). По сути я исходников дать не могу, так как эти устройства мы продаем, но подсказать чего конкретное можно без проблем.
На счет FAT лучше брать 16 - это проще (вот ссылка на один из вариантов описания, я сам не каких документов не скачивал просто скопировал первые 512 байт после форматирования в Windows со своей флеш, а далее методом проб и ошибок сделал таблицы и простую файловую систему http://home.teleport.com/~brainy/fat16.htm). Plug&Play windows сам разберется (как впрочем и Linux, даже под DOS будет подключатся без проблем, если конечно же дрова есть).
P.S. Вроде я тут по словам в форуме встречал людей, которые - это делали. С миру по нитке может и поможем поднять устройство. Могу сказать так, незная ничего об этом протоколе я запустил его за 3 дня, а полностью работающее устройство получил за 2 недели. (Кстати я работаю над такими заказми давольно часто, так что если есть интерес это можно обсудить).
JS1
С philips-ом я не работал, просто посоветовали т.к. он поддерживает On-The-Go.
Plug&Play должен быть реализован в моём контроллере для определения FlashDisk-а, как сделать не знаю, может кто подскажет.
У меня есть подозрения что для различных FlashDisk-ов (PenDrive) нужно писать свои разные дрова поддержки так ли это подскажите?
olefil
Это не так елси работаете с ОС поддерживающей PnP. Дрова в Windows поддерживают практически все варианты Mass Storage Device (MSD) именно по этому протокулу вам и надо работать. На счет OTG зачем он в системе сбора информации?
JS1
Мой контроллер является самостоятельным устройством не подключенным к PC или системе АСУТП. FlashDisk будет являться средством переноса накопленной информации на PC. Поэтому контроллер должен независимо от PC поддерживать работу с FlashDisk-ом, записывать на него инфу в виде файлов и папок, что б потом на PC можно было с ними работать. Для реализации этой функции как мне объяснили и надо OTG.
Может я и заблуждаюсь, тогда объясните мне плиз к чему стремиться для реализации это фенкции.
olefil
Я просто не очень понял изначально задачу. Похоже, что вы хотите подключить обычную USB-флеш для закачки на нее информации. Возможен вариант, что у вас уже есть память на устройстве и ее просто по USB надо слить на PC - это другой разговор.
JS1
Вот именно я хочу подключить обычную Флэш-usb к своему контроллеру и с соблюдением "правил" её файловой системы слить на неё инфу в виде файлов, с возможностью создания папок... полноценная работа с диском. Что б потом воткнув её в PC работать нормальными файлами.
JS1
Кто чем может помогите.
Наработки, исходники, ссылки на интересующую меня инфу, всё приветствуется.
olefil
Идея ясна. Действительно OTG - это то, что вам надо. Я точно не в курсе чего там с ISP1362 работать начну с ним только недели через две но по Pdf вроде все не плохо. Для того, чтобы работать с флэш дисками вам придется реализовать два основных протокола общения: 1 - с применением Interrupt линии; 2 - Bulk режим. Как точно они там называются я не помню. Но точно знаю, что 1 более не рекомендован для использования. Хотя отмечу, что на нем дофига флешей сделано. Рекомендую, так как это ваше устройство, использовать флэш типа Pen Drive (как вы это отметили), она работает по одной Bulk линии и по ней передает команды и данные.
Для начала вам придется написать драйвер для USB контроллера. Если с этим проблем не возникнет, далее написать или где-то скачть UHCI или OHCI контроллер (имеется ввиду программу), повидимому убрав из него операцинно зависимый код (хотя если у вас на "вычислителе" ОС стоит, то для нее возможно все уже есть) вы сможете получить управление вашим USB каналом. Далее надо где - то надыбать протокол общения с флеш устройством. И по управлять им (например, угробить его файловую систему или, что-то в этом роде). Вам обязательно потребуется уметь работать с FAT16 и FAT32 - это не очень сложно программы в инете я где-то видел. Основное действие - это определить размер диска, прочитать файловую систему, создать новый файл (папку) и закачть данные (это самое простое действие). --Извеняюсь за ошибки постоянно отвлекают--
Незнаю насколько принципиально использовать любую флеш, я бы посаветовал использовать флеш уже с готовой файловой ситемой и просто лить по определенным адресам информацию (если конечно это возможно).
Кстати похоже для реализации вашей задачи можно использовать просто хост контроллер типа SL811HS. Он позволит управлять флешью без проблем и ног у него поменьше, да кстати и проги под него есть все - это точно сам недавно с ним работал. Просто OTG нужен для задач где устройство иногда становится перефирией, а в вашем случае вроде это не так.
one_man_show
Осмелюсь предложить альтернативный вариант, который сам использую сейчас. В моем устройстве необходимо иметь съемный флэшь-носитель и обеспечить совместимость по файловой системе с РС. Я взял CompactFLASH + файловую систему от LLC (FAT12/16). Есть исходники указанной файловой системы на нашем FTP.
В чем преимущество?
1. Интерфейс CompactFLASH и с программной и с аппаратной точки зрения проще, чем USB.
2. Есть исходники файловой системы, которые можно включать в проект своего МК или портировать под него.
3. Нет необходимости реализовывать USB-Host smile.gif
4. CompactFLASH дешевле USB-FLASH biggrin.gif

P.S. Вместо CompactFLASh можно с успехом и теми же преимуществами взять MMC или SD
olefil
Да это так, он дешевле и возможно проще, но присутсвие этого интерфейса во всех PC по умолчанию не наблюдается. Хотя есть переходники ... на USB к примеру.
JS1
Уважаемый olefil, можно поподробней о работе с контроллер SL811HS
Как посредством данного контроллера работать с флэш?
olefil
Этот контроллер построен по спецификации OTG, а соответсвенно может быть как оконечным устроством, так и хостом. Программа для работы с контроллером существует (в плане драйвер ввода-вывода). Эта прога лежит на сайте cypress'а и работает вроде как полностью (я просто перепачил некоторые вещи, которые были не удовлетворительны с точки зрения моего девайса). Кароче после запуска тех текстов вы можете подконектить любое устройство и скачать его дескрипторы. Далее после того, как вы разобрались, что устройство подсоединенное к SL811HS - это флеш, вы можете работать с ней как с флешью по соответсвующему ей протоколу. Принципиально все! На счет схемы подключения у них там примеры в pdf есть, собирал ровно по ним все работает, проблем не было. Единственная проблем с SL811HS - это то, что он Iso линию только на 240 байт держит, а все остальное просто здорово, ну или близко к этому.
Z0Rk
По данной теме есть очень интересный контроллер ALi M5637 (M5636).
Цитата
ALi's M5637 USB2.0 On-The-Go (OTG) IDE device controller provides a single-chip solution for USB 2.0-based IDE device application with On-The-Go capability. With built-in USB 2.0 PHY and OTG circuitry, M5637 also integrates an advanced host controller & peripheral controller with bi-directional ping-pong buffers for maximized USB2.0 throughput operation.

Other than the embedded general IDE controller with PIO, DMA and UDMA transfer protocol to support IDE based devices, as CD/DVD-ROM, CD/DVD-RW, Hard-Disk and Compact Flash (CF) devices, ALi M5637 also embeds a powerful 8-bit MCU engine to handle the operations among the USB host, peripheral, OTG and IDE controllers.

Augmented with built-in SRAM memory buffer and optional external DRAM support, M5637 provides excellent system design flexibility and yet cost-effective solution to enable feature differentiation for various state-of-the-art mobile applications, such as USB2.0-to-IDE Bridge or mobile rack applications with capabilities of data copy, exchange, information sharing, or even CD/DVD playback and record support, etc.
olefil
А сколько он стоит и как программируется.
mitayd
А никто не пробовал использовать SL811HS с микроконтроллером серии AT89C51
Jools
Цитата(olefil @ Mar 1 2005, 14:50) *
Дрова в Windows поддерживают практически все варианты Mass Storage Device (MSD) именно по этому протокулу вам и надо работать.


1111493779.gif А где взять этот протокол? Может есть какие-то исходники?
Ned
Цитата(Jools @ Mar 20 2006, 09:40) *
Цитата(olefil @ Mar 1 2005, 14:50) *

Дрова в Windows поддерживают практически все варианты Mass Storage Device (MSD) именно по этому протокулу вам и надо работать.


1111493779.gif А где взять этот протокол? Может есть какие-то исходники?

www.usb.org
Mirabella
Уважаемые коллеги, так насколько реально использовать флэшку в своих устройствах?
Имеется ли у кого опыт её "автономного" использования?
rezident
Цитата(Mirabella @ Sep 20 2006, 13:05) *
Уважаемые коллеги, так насколько реально использовать флэшку в своих устройствах?
Имеется ли у кого опыт её "автономного" использования?

Вполне реально. Некто AVR на форумах Телесистем и Сахары уже устал "рекламировать" этот способ smile.gif
http://www.ghielectronics.com/details.php?...&flash=true
Alex B._
это интереснее
http://www.efo.ru/doc/Ftdi/Ftdi.pl?747
http://www.vinculum.com/
Doka
Цитата(rezident @ Sep 20 2006, 23:41) *
Цитата(Mirabella @ Sep 20 2006, 13:05) *
Уважаемые коллеги, так насколько реально использовать флэшку в своих устройствах?
Имеется ли у кого опыт её "автономного" использования?

Вполне реально. Некто AVR на форумах Телесистем и Сахары уже устал "рекламировать" этот способ smile.gif
http://www.ghielectronics.com/details.php?...&flash=true

там, как я понимаю, всё на LPC2103 крутится?
притом декларирована поддержка "USB devices", учитывая что в LPC2103 не то что хоста, а даже функции USB аппаратно нету(
ну USB функцию сделал поляк программно на AVR. low speed - поэтому скорость не фонтан. а чего же ожидать от программной реализации usb-host'а??
Doka
Цитата(Alex B._ @ Sep 21 2006, 01:15) *

ну раз пошла такая пьянка, то упомяну еще один хост :)
от CYPRESS - CY7C67300. Поиском по форуму можно зацепить некоторые темы, касаемые его.
Тока начинаю с ним работать, но по опыту работы с FX2 - неожиданностей возникнуть не должно.
У CYPRESS есть КИТ на основе реф.дизайна для MSD + как всегда доступные для скачивания в исходниках аппликухи к нему.
Докучи есть дрова начиная с вин и кончая линуксовыми.
притом всё это, включая среду разработки Эклипс, скачивается с сайта CYPRESS одним архивом.
ЗЫ: поддержка намного лучше ,чем у всяких там FTDI & Philips (ISP1362)
Alex B._
>> а чего же ожидать от программной реализации
невнимательно читаете - в качестве хоста MAX3421E

>> от CYPRESS - CY7C67300
да, в общем то же самое. Но - стоногий корпус не в плюс, а по цене примерно то же самое, если учесть, что с чего-то нужно грузиться.
Лично для меня новый чип FTDI выглядит более привлекательно - планка освоения гораздо ниже - типа plug-and-play - запаял и играйся. Естественно, если мы говорим о работе с usb-flash - если подразумевается работа с другой device-периферией нужен нормальный хост. Но я так думаю, что в скором времени от FTDI появятся и новые прошивки и API.
Doka
Цитата(Alex B._ @ Sep 22 2006, 00:33) *
>> а чего же ожидать от программной реализации
невнимательно читаете - в качестве хоста MAX3421E
ну я по-англикански ни бельмеса - поэтому не читал, а рассматривал картинки =)

Цитата(Alex B._ @ Sep 22 2006, 00:33) *
>> от CYPRESS - CY7C67300
да, в общем то же самое. Но - стоногий корпус не в плюс, а по цене примерно то же самое, если учесть, что с чего-то нужно грузиться.
Лично для меня новый чип FTDI выглядит более привлекательно - планка освоения гораздо ниже - типа plug-and-play - запаял и играйся. Естественно, если мы говорим о работе с usb-flash - если подразумевается работа с другой device-периферией нужен нормальный хост. Но я так думаю, что в скором времени от FTDI появятся и новые прошивки и API.
тут действительно: если нужно что-то заточенное строго под usb-flash - то, возможно, у FTDI есть доп.очки.
Но если аппетит прийдет во время еды и захочется большей гибкости, то из хостов одинаковой стоимости наверное стоит предпочесть того, кто обладает лучшей поддержкой разработчика - ведь это тоже составляющая конечной стоимости изделия, но только с др. стороны ;-)
Alex B._
>> Но если аппетит прийдет во время еды и захочется
>> большей гибкос
Ага, главное определиться - шашечки или ехать.

>>лучшей поддержкой разработчика
Да куда уж лучше. Прошивка есть, доступ к файловой системе через ASCII комманды, прошивка загружается на раз... Правда с FTDI до этого дела не имел, слышал проблемы у них были с дровами и т. д., но сейчас, говорят, все нормально. В общем пока меня сложно склонить к нормальному хосту - не нужен он мне =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.