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

USB устройство и файловая система.

Добрый день всем.

 

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

 

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

 

Собственно вопрос:

Сложно ли сделать так, что бы с виндовой машины можно было:

1) Видеть выбранные потоки как "файлы".

2) Передавать команды выбора потоков, после чего список "файлов" должен будет измениться. При этом команда "выбор потока" может выполняться несколько минут.

3) С чем лучше бороться? Оптимизировать FAT или можно сделать дописку к виндам?

 

P.S.

Другие ОС типа Линукс не интересуют.

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


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

С чем лучше бороться?

Со своими самодельщицкими фантазиями :( прежде всего.

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


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

Не совсем понял про "потоки", но обычно когда желают использовать типовой картридер и стандартную поддержку в Windows, но при этом не хотят поддерживать FAT на МК, то организуют один большой файл на карточке средствами Windows и работают с ним на МК посекторной записью/чтением. На ПК, естественно, нужна программа, которая будет "расшифровывать" содержимое этого файла.

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


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

Со своими самодельщицкими фантазиями :( прежде всего.
Совет, наверное, хорош. Вот только последовать ему сложно. Хорошо Вам как человеку опытному и всеми уважаемому. Ваше мнение сразу становиться законом. Я пока что до таких высот не дорос. Поэтому мне приходиться придумывать как сделать так как требует начальство. Или же объективно рассказать почему так сделать нельзя.

 

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

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


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

Хотелось бы что бы данные видились как отдельные файлы
Извините, но полноценное использование файловой системы без использования FAT я себе как-то слабо представляю. :laughing:

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


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

как сделать так как требует начальство

Начальство обычно требует "что", а не "как". Так и начните с "что". А уж "как" додумаем.

 

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


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

Начальство обычно требует "что", а не "как". Так и начните с "что". А уж "как" додумаем.

1) Пакет - данные фиксированного формата и размера.

 

2) Приемник пакетов - нечто такое, что может генерировать (принимать извне) последовательность пакетов. Последовательность не ограничена в длине. Т.е. может быть 10 пакетов и затем перерыв, а может быть 100 или 1000. Признака "окончания" передачи - нет.

 

3) Устройство - хранилище данных из 8 приемников на SD карточке.

 

4) Пользователь - некто, кому можно просматривать содержимое пакетов (не зависимо того, с какого приёмника они получены). Пароль пользователя даёт возможность проверить контрольную сумму пакета. Сошлась - можно показать данные. Нет - так нет. Устройство не хранит паролей вообще. Надо вводить с виндовой машины.

 

5) Устройство используется для хранения телеметрии. Т.з. на устройство чрезвычайно противоречиво. Т.е. изделие - компромис между многими требованиями. Изменение оборудования не входит в мою компетенцию. Т.е. я могу предложить что-либо, но не факт, что это будет принято. Даже, скорее, наоборот :unsure:

 

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

Производительности процессора хватает с большим запасом. Хранить данные негде (т.е. расширение RAM - полумера).

 

Передача данных пользователю имеет несоизмеримо низший приоритет по сравнению с приёмом. Т.е. если устройство занято сохранением данных из источников, то запросы пользователя откладываются в долгий ящик.

 

Предложения а-ля "уменьшить число каналов" не рассматриваются (они и так известны).

 

Вроде бы все.

 

P.S. Несколько раз уточнял текст.

Изменено пользователем AnisimovSlava

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


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

Изменение оборудования не входит в мою компетенцию.

Когда поезд ушел, обычно суетиться уже поздно.

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

Разброс в скорости SD карточек офигенный :(. При появлении сбоев на карте, таймауты непредсказуемы. Короче носитель выбран стремный. Каково качество написание неуспевающей писалки, правда,тоже ненизвестно. Вы-бы хоть суммарный поток данных огласили. В работе с FAT, тем более на 8 файлов, при возможности кэшировать сооственно FAT таблицу ничего особо тормозного нет. Только иметь FAT, если всовывать карточку напрямую в ридеры не планируется, совсем не обязательно. Динамически делить память между "файлами" горько надо? Как мне здесь USB в комплекте с эмуляцией диска не нравится :( - точно надо свой драйверок ваять. USB я-бы тоже предпочел Ethernet.

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


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

Гость @Ark

Только один вопрос к автору темы: устройство предполагает автономную работу или же оно постоянно подключено к "виндовой машине"?

 

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


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

Когда поезд ушел, обычно суетиться уже поздно.

Носитель выбран стремный.

Вопрос не в "поезде", а в том, что мой статус таков, что вопросы подобного уровня от меня не ждут (надеюсь пока что).

 

Разброс в скорости SD карточек офигенный :(. При появлении сбоев на карте, таймауты непредсказуемы.
При сбоях данные складываются в циклический буфер в памяти. Успеет карточка разобраться - хорошо. Не успеет - часть данных будет утеряна. Это документированное поведение.

 

Каково качество написание неуспевающей писалки, тоже неизвестно. Вы-бы хоть суммарный поток данных огласили.
Я уточню вопросы, если это принципиально. Сейчас не владею данными. Вопрос был принципиально другой.

 

В работе с FAT, тем более на 8 файлов, при возможности кэшировать сооственно FAT таблицу ничего особо тормозного нет.
Так файлов-то не 8. Он либо один один на весь носитель (как предложил Resident), либо каждый пакет - файл (т.е. их миллион).

 

Про кэширование думали. Это будет один из вариантов оптимизации FAT. Просто реализация другой файловой системы более эффективна в этом случае.

 

иметь FAT совсем не обязательно.
С этого всё и началось. Данные на карте в одном виде, а надо их представить в другом. Да еще и выборочно...

 

мне здесь USB в комплекте с эмуляцией диска не нравится. USB я-бы тоже предпочел Ethernet.
Сетка занята для коммуницирования с другим оборудованием (она - один из источников данных). Лезать туда со своими запрсами нельзя по Т.З. О втором контроллере речи (насколько я помню) не шло.

 

Только один вопрос к автору темы: устройство предполагает автономную работу или же оно постоянно подключено к "виндовой машине"?
Подключение к виндовой машине скорее исключение (для анализа сбоев), чем правило. А так - это тупое хранилище, которое живёт в труднодоступном месте где-либо. Данные циклически затираются после заполнения носителя. Объем современных карточек достаточен для Т.З.

 

В общем, насколько я понимаю, плохи дела...

Изменено пользователем AnisimovSlava

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


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

Гость @Ark
В общем, насколько я понимаю, плохи дела...

Это станет понятно, только когда Вы оцените максимальную скорость входного потока (все 8 каналов одновременно) и минимальную скорость записи на карточку, с учетом накладных расходов.

P.S. Я бы не связывался с FAT, и ориентировался на вариант предложенный Rezident-ом: складывать все пакеты в один файл последовательно, по мере их поступления. Возможно, снабдив их дополнительными атрибутами - номер канала, дата-время получения. Потом на компьютере все расшифруете.

 

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


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

Это станет понятно, только когда Вы оцените максимальную скорость входного потока (все 8 каналов одновременно) и минимальную скорость записи на карточку, с учетом накладных расходов.
Сегодня уже некому задавать вопросы. Только завтра.

 

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

 

P.S. Поправка: чтение образа _может_ занять длительное время если поток данных в этот момент большой. В другом случае чтение себе как чтение.

Изменено пользователем AnisimovSlava

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


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

Нарисовали бы Вы свой драйверочек маленький и тупенький и научили Ваш локальный процессор разбираться со структурой данных, чтобы не передавать в PC все что есть, работало бы гораздо эффективнее. Если в PC все равно должна быть Ваша программа расшифровки, то пусть через свой драйвер и работает. Вот если бы ВАм было нужно получать данные чисто средствами виндов, тогда, конечно, требовалась бы файловая система.

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


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

Написать драйвер виртуального диска под винду вполне реально.

 

Но лично я бы поискал карточку по-быстрее/подключился бы к ней по более толстому интерфейсу, и все-же использовал FAT. Неужели 10Мб/сек не хватает?

Можно и быстрее найти карточки.

 

Может у вас там CF подключается относительно несложно (по сравнению с написанием драйвера)? Там и 50Мб/сек легко найти.

 

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


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

Так файлов-то не 8. Он либо один один на весь носитель (как предложил Resident), либо каждый пакет - файл (т.е. их миллион).

К чему из одной крайности в другую кидаться? 8 независимо доступных пользователю источников. 8 файлов. Вот только когда начались еще и разговоры про "циклически затираются после заполнения носителя", то это сразу тянет самоделку и добавляет непредсказуемость процесса стирания.

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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