Доброе утро/день/вечер.
Делаю 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