Перейти к содержанию
    

ПЛИС + fat32

Есть задача: С одной стороны быстро писать данные во флеш-память, с другой стороны потом с какой угодно скоростью писать их в ПК.

С точки зрения переноса данных в ПК мне показалось предпочтительно (поправьте меня, если Вам кажется иначе) поставить USB-FLASH контроллер, например USB97C242 от SMSC... Предпочтительно потому что пользователю будет проще считывать эти данные в ПК и для этого не нужно никакое дополнительное ПО.

В связи с этим появились вопросы на которые четкого ответа не нашел...

 

1. Выдержка из datasheet на микросхему Flash памяти от Samsung: The device may include initial invalid blocks when first shipped. Additional invalid blocks may develop while being used. The number of valid blocks is presented with both cases of invalid blocks considered. Invalid blocks are defined as blocks that contain one or more bad bits. Do not erase or program factory-marked bad blocks.

То есть нужно где-то хранить карту памяти этих самых bad blocks....

2. На стандартных USB-FLASH устройствах по умолчанию flash отформатирована как fat16, но нормально работает и с fat32. Вопрос - проводится ли при форматировании проверка на bad блоки и помечаются ли они в таблице размещения файлов?

 

Ну и самый главный вопрос - как создавать/писать файлы на fat32 со стороны ПЛИС? Если кто уже занимался этой проблемой, подскажите пожалуйста что можно почитать именно по этому поводу?

 

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению FPGA совсем не подходит для работы с FAT32 :( Скорость получится очень незначительной, да и поддержка файловой системы превратится в кошмар. Для поддержки файловой системы нужен процессор. Можно встроенный в FPGA. Другим методом может быть предварительное форматирование устройства на назком уровне в формате FAT32 с расположением по фиксированным секторам таблицы ссылок на непрерывные файлы. Таким образом для пользователя карта памяти будет выглядеть как куча файлов и один файл ссылок. FPGA считывает файл ссылок из фиксированного места, пишет свою инфу в своем формате в заранее пресозданные файлы, а пользователь может их считывать потом в USB Mass Storage. Таким образом все существенно упрощается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 v_mirgorodsky За идею огромное спасибо.

Только сошлите все-таки куда-нибудь почитать? :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это просто идея, мы таким образом собиральсь решать свои проблемы с внешним сторажем. Потому с почитать сложно :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поскольку не известна пиковая скорость данных и их объем можно рассмотреть большее количество вариантов. Если необходимо для ввода данных в комп использовать его наружние интерфейсы (USB/FireWire/Ethernet) то тут без процессора не обойтись. При этом процессор может быть или железным (с уже встроенным нужным интерфейсом) или софтовым (в FPGA). В первом случае в FPGA нужно будет реализовать только интерфейс между внешними данными и железным процессором. Во втором случае все (кроме PHY выбранного интерфейса связи с компом) будет реализовано в FPGA. В обоих случаях ваше устойство будет всегда подключено к компу и передавать в него данные (например сразу на HDD). Более конкретный выбор - результат личных предпочтений и требований задачи...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если необходимо для ввода данных в комп использовать его наружние интерфейсы (USB/FireWire/Ethernet) то тут без процессора не обойтись.

Ранее я писал, что для ввода данных в комп мне хотелось бы использовать мост FLASH-USB. В основном это желание продиктовано тем, что при таком подходе не нужно нагружать пользователя доплонительным ПО - при подсоединении к компу флэшка моего устройства находится в системе как съемный флэш-диск с принятыми данными.

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

Вот как раз "всегда подключено" у меня не получится.

Есть два режима:

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с плис задолбаетесь отлаживать - дешевое и быстрое решение - usb 8051/arm от cypress/atmel с флешкой на spi (MMS/SD) - в инете готовых примеров до фига.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с плис задолбаетесь отлаживать - дешевое и быстрое решение - usb 8051/arm от cypress/atmel с флешкой на spi (MMS/SD) - в инете готовых примеров до фига.

Вы имеете ввиду микроконтроллер с USB?

А подскажите пожалуйста, какого объема флешку на SPI там можно адресовать? Мне нужно не менее 10, лучше 20 ГБайт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...