Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB Mass storage
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
antoha.by
Доброе утро/день/вечер.
Делаю USB устройство, подключал, передавал/получал данные, сделал как простую Mass storage "флэшку" т.е. данные хранились записывались во внутреннюю память.
Теперь возник вопрос: Как сделать эмуляцию этой самой "флэшки", т.е. чтобы данные не хранились во внутренней памяти и не записывались, а выдавались программно.
Привожу пример: При подключении usb mass storage устройства оно давала доступ на только чтение один файл, внутри которого хранилось, например, случайное число, которое было сгенерировано при включение, или текущая температура, полученная с датчика. Вообщем всё что угодно.
Для этого мне понадобится:
Сделать битовую копию какого-нибуть диска с определённой файловой системой (например FAT, чтобы читалось везде) на том диске зарание должен быть подготовлен файл, в который мы будем записывать данные.
Затем эту копию вшить в программу.
И теперь, то что мне и нужно, научить мой контроллер работать с Mass storage интерфейсом. т.е. получать от него все пакеты и правильно на них отвечать. т.е. если хост запросит этот файл, то контроллер должен подготовить ответ и вшить в него, то что нужно.
Проблема вот в чём, я незнаю как точно работает Mass storage интерфейс
я читал вот это: http://www.usb.org/developers/devclass_doc...massbulk_10.pdf
Да, там написано про дескрипторы, да там описана структура пакета, да там написано про то, что CSW Должен всегда идти после CBW
Но я так и не понял, как по этому пакету определить, что передавать хосту.
Если вас не затруднит, помогите мне разобратся с этим.
Для интересующихся:
Контроллер: PIC18F4550
Язык программирования: C18
hd44780
Вот тебе ещё документик.
Контроллеров со встроенным USB у меня нету, я когда-то колдовал на ATMega32, c микрухой PDIUSBD12D и SD картой, у меня даже что-то начало получаться, но я это забросил. Почему - не помню.

Вот ещё, на x51 - http://www.stericsson.com/technical_documents/CD00249262.pdf

С пиками не работаю, извини.
antoha.by
Спасибо за отклик.
Вообщем я понял, этот CBW обарачивает SCSI комманды, на которые спецификацию я уже нашёл, а так же случайно обнаружил что-то вроде библиотеки для работы с Mass storage от самого microchip, что облегчает мне задачу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.