|
STM32 и большой объем информации, что посоветуете? |
|
|
|
May 9 2013, 06:59
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
"По Т.З. девайс должен собирать информацию с датчика...и когда собранный лог достигнет размера в 32 Мб - нужно это все передать на ПК, и так далее по циклу." "Скорость ... около 64 байт в секунду"
Раз в 6 суток, скидывать инфу на комп. Можно хоть и через COM порт, можно через LAN. Но предпочтительней USB, так как COM уже на 98% ноутбуков умер как класс. Вопрос напрашивается про работу компа, все 6 суток он будет включен? Ежели нет, и придёт кто то его включить, то уже не трудно будет нажать кнопку на устройстве (запустить утилитку) для активации процесса передачи данных. Память выбранна достаточная, поэтому если писать по кругу, её хватит на долго. Но я бы предпочел совсем по другому делать. Применил бы microSD. Как советует Golikov A. отформатировал бы её, создал бы уйму 32 мегобайтных файла. Затем уже "удалив " их с файловой системы, (а удаление это всего лиш затирание первого указателя на цепочку), и уже своими средствами без участия ФАТ писал бы по цепочкам встёртый файл, а при его заполнении, востанавливал бы первый указатель, тем самым востанавливал бы файл в ФАТ. Ну а дальше по USB прикинулся бы масстораджем и скачивать этот файл.
|
|
|
|
|
May 9 2013, 11:51
|

Местный
  
Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266

|
Цитата(vlad_new @ May 8 2013, 23:32)  Звбавно. И куда Вы этот Lin прилепите? ... Извиняюсь...я имел в виду ОС Linux. to Golikov A. интересный вариант... но я , наверное, сделаю, чтобы файл создавался по правилам файловой системы с нуля, чтобы, если его удалят из операционки - stm32 сама бы его записала на nand. Кстати, а как решалась проблема битых секторов? Насколько я знаю, в ядре Linux, например, проверяется nand и помечаются битые сектора, а потом операционка их обходит как-то... Или это в example от ST уже учтено как-то?
|
|
|
|
|
May 9 2013, 12:45
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата(ADA007 @ May 9 2013, 15:51)  Извиняюсь...я имел в виду ОС Linux.
to Golikov A. интересный вариант... но я , наверное, сделаю, чтобы файл создавался по правилам файловой системы с нуля, чтобы, если его удалят из операционки - stm32 сама бы его записала на nand. Кстати, а как решалась проблема битых секторов? Насколько я знаю, в ядре Linux, например, проверяется nand и помечаются битые сектора, а потом операционка их обходит как-то... Или это в example от ST уже учтено как-то? Принто.  А на счет китайцев - отличная идея. Покупаете тиббу, подпаивете флешку, пару дней потратите на бэйсик и все готово. Готовая сетевая хрень за 30 баксов с веб сервером ftp,udp,tcp,dhcp, а при желании у них же и wi fi имеется. Взгляните туда. мож и делать то ничего не надо www.tibbo.com Или взять популярную разбери пи (не помню точно название) ее еще малинкой называют. PS: Я с этими игрушками уже играл, так что если заинтересует могу ответить на вопросы по тиббе.
Сообщение отредактировал vlad_new - May 9 2013, 13:08
|
|
|
|
|
May 9 2013, 16:18
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(ADA007 @ May 8 2013, 00:36)  По Т.З. девайс должен собирать информацию с датчика...и когда собранный лог достигнет размера в 32 Мб - нужно это все передать на ПК, и так далее по циклу. А почему именно раз в 6 дней собирать? Связь с PC появляется раз в 6 дней? Или связь постоянная, но возможно её пропадание и при этом надо обеспечить возможность накопления без связи до 6 дней? Если связь с PC периодическая, то кто инициирует сеансы связи? И почему FLASH? Возможны отключения питания? Как в таком случае планируете бороться с отключениями питания в момент записи на FLASH? Не боитесь порушить файловую систему, если таковая у вас будет использоваться? Если нет каких-то религиозных причин обязательности FS, то имхо - она избыточна. Храните как массив записей в ОЗУ (или, если необходима стойкость к отключениям, во FLASH). При хранении во FLASH за счёт формата хранения надо будет защититься от сбоев питания. По USB (можете хоть через CDC хоть напрямую - через эндпоинты) пускаете свой протокол связи (и синхронизации) с PC. Всё равно у вас на PC есть какое-то ПО, которое собирает эти данные, так что писать на PC всё равно придётся. А уж протокол будет зависеть от частоты сеансов связи с PC, от того, кто инициирует сеанс связи и т.п. У вас похоже обычная система сбора и передачи данных. Только требования к ней Вы изложили весьма поверхностно. И спрашиваете как её построить....
|
|
|
|
|
May 9 2013, 17:47
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
У меня была система сбора данных с гарантированным отсутствием потерь, лучше было дублирование данных чем потери. При том это была аккумуляторная система так что экономили даже на включении СД карты.
У нас стояла 1 мегобитная ФРАМКА в нее писали данные, когда накапливался размер нескольких кластеров СД карты, она включалась и данные туда заливались. После подтверждения записи, стирались из ФРАМки.
Каждый раз при инициализации СД карты я проверял ее номер сравнивал с запомненным в системе, проверял форматированность карты, заполненность и так далее... Так что система адекватная реагировала на замены карты, на карты без файла, и так далее...
Флэшку используют потому что это самый дешевый и удобный способ добавить в систему памяти. В оперативку уже ДДР2 не найдешь, а уж про старые СРАМы уже и не вспомнить....
|
|
|
|
|
May 9 2013, 19:26
|

Местный
  
Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266

|
Цитата(jcxz @ May 9 2013, 19:18)  У вас похоже обычная система сбора и передачи данных. Только требования к ней Вы изложили весьма поверхностно. И спрашиваете как её построить.... Да...так и есть...поверхностно, мало кто сразу дает четкое т.з. со всеми деталями. Многое приходится додумывать самому. В любом случае было очень интересно выслушать разные мнения... спасибо за ответы! Благодаря вашим замечаниям появилось много вопросов для уточнения...в общем картину я представил, а далее буду уточнять реализацию с заказчиком и работать над реализацией.
|
|
|
|
|
May 11 2013, 10:09
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(Methane @ May 9 2013, 06:23)  Тем более что если флешка смонтирована, то писать на нее другим нельзя. SD-карта есть просто память с контроллером. Какая часть этой памяти будет использована и под что, зависит от того драйвера, который направляет запросы чтения и записи блоков памяти в карту. Таким образом, можно создать две равные независимые области памяти на карте. В каждый момент времени для внешней программы/PC будет виден только один носитель, который будет иметь половинный размер карты. Получится, что если PC смонтирует носитель, фактически это будет означать, что запросы от PC будут перенаправляться лишь в ей доступную область карты: PC будет "владеть" областью монопольно. В это же время программа на STM32F будет общаться с другой половинкой карты. Нужно лишь обеспечить своего рода очередь к драйверу карты, если на STM32F используется какая-то ОС с вытеснением. Иначе все запросы могут обрабатываться синхронно (ну типа как в prototheads Адама Дункельса), и тема коллизий разрешится сама собой. Но тема connect USB, монтирования и последующего выброса носителя программой на PC остается: STM32F заполнил файл протокола, переключил области в драйвере карты, дал connect на USB, а сам продолжил писать в другую область карты. PC увидела носитель, смонтирована его, прочитала файл и размонтировала. И т.д.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|