stalknr 0 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба Доброе время суток уважаемые форумчане. появилась интересная задачка. некий станок гонит поток данных по RS232 со скоростью 115200 бод/сек. Необходимо устройство которое примит эту информация сложит ее на к себе в энергонезависимую память (предположительно SD карта). а после окончания работы устройство может перегнать запомненую информацию в ПК типа ноутбук. Уважаемые форумчане большая просьба помочь идеями и опытом в разработке. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба Несложное устройство, но есть некоторые тонкости: 1. SD-карта на запись может "курить" порядка 200мс. Все это время Вам нужно буферезировать трафик. На вскидку получается, что 115200 б/с -> 11520 Б/с -> ~44мс на 512 байт (сектор). Т.е. для буферизации нужно не менее 5 секторов (по 512 байт) - почти 2/3 всей RAM меги. 2. Записав гиг или два логов очень тяжело переносить их на комп (по последовательному каналу). Тут лучше заранее отформатировать карту (FAT), записать на нее файл data.txt, найти первый кластер этого файла и писать начиная с него. После снятия логов файл вычитывается обычным карт-ридером, и очень быстро. 3. Карту лучше брать новейшую. Бытые, отремапленные сектора могут серьезно мешать. 4. Если во время логирования пропадет питание, то необходимо найти место окончания предыдущего. Для этого файл можно заполнить каким-нить фиксированным заполнителем (например, 0xCC). При старте двоичным поиском найти первый сектор содержащий в начале, скажем 16 заполнителей и продолжать логить начиная с этого сектора. 5. Средняя скорость записи менее 2мс на сектор, т.е. можно писать до 22 потоков (115200) или на каждый символ навешивать до 21 байта обвязки (штамп времени и т.п., переход в текстовый вид), но в этом случае и RAM памяти нужно в 22 раза больше. Я делал аналогичное устройство и на LPC2468, и на STM32F103T8. Вот пример лога: #014 .963 81 .964 02 .965 F0 #013 .978 81 .979 03 .981 F0 #013 .994 81 .995 04 .996 F0 +067887 #014 .010 81 .011 05 .012 F0 #013 .025 81 .026 01 .027 F0 #014 .041 81 .042 02 .043 F0 #014 .057 81 , где #XXX - простой на шине в мс (от 10 до 999) ! - простой на шине более 999мс .XXX - счетчик миллисекунд +XXXXX - счетчик секунд Протокол текстовый, выровненный на 8 байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба некий станок гонит поток данных по RS232 со скоростью 115200 бод/сек. Необходимо устройство которое примит эту информация сложит ее к себе в энергонезависимую память (предположительно SD карта). А сколько данных требуется хранить и как долго? Если МК планируется ATmega с небольшим количеством RAM, то есть DataFlash - (AT45DBxx) много проще в обращении чем SD, не имеет таких длительных задержек, и плюс ко всему надежнее. Средняя скорость посекторной записи AT45 ~50KB/sec (теоретически минимальная - 13KB/s, но на практике ниже 57KB/s не встречал), что подходит для вашей задачи (>10KB/s), плюс у нее есть два SRAM буфера по 528 байт в которые можно писать без задержек, т.е. можно обойтись очень небольшим количеством памяти на стороне МК для ее обслуживания. Вопрос только хватит ли объема DF для вашей задачи, - порядок объема DF - сотни-килобайт / единицы мегабайт (2 / 4 / 8Mb ..). Для работы с SD я бы рекомендовал сменить МК на ARM с 16-64KB набортной RAM, потому как в SD помимо прочих нюансов есть еще такое явление как bad блоки, а значит нужна FS которая умеет эти bad'ы скрывать/восстанавливать, а FS любит память... Ставить внешнюю память для Меги (сама мега, защелка, МС памяти + сопутсвующая рассыпуха и место на плате) будет дороже чем поставить ARM сразу с большим объемом RAM внутри. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 1 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба ...потому как в SD помимо прочих нюансов есть еще такое явление как bad блоки, а значит нужна FS которая умеет эти bad'ы скрывать/восстанавливать, а FS любит память... Чего-чего? До сих пор считал, что все бэды маскируются резервными блоками силами самой SD карты, если это невозможно (все резервные блоки выбраны) и карта репортит ошибку - ей пора на помойку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stalknr 0 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба А сколько данных требуется хранить и как долго? Размер данных до сотни мегабайт. Время хранения чем дольше тем лучше. Лучше чтоб для хранения не нужна была электроэнергия. Может кто посоветует уже готовые устройства такого типа. Или на худой конец kit с помощью которого этот девайс можно реализовать. А если вместо SD карты использовать обычную флешку. Кто нибудь организовывал связь между ATmega и USB флешкой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба Или на худой конец kit с помощью которого этот девайс можно реализовать. Да каждый второй kit на ARM содержит все, что нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stalknr 0 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба zltigo я бы предпочел киты на AVR желательно семейства Mega. Ну просто я только с этими контроллерами пока работал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба я только с этими контроллерами пока работал. Работать нужно не с теми с которыми работал, а с теми, которые оптимальны. Переключайтесь. Объемы RAM, для буферов, как минимум скоростной SPI а то и SDC для SD и до кучи USB контроллер есть джентельменский набор многих ARM контроллеров ценой от пяти баксов. Вот такая реальность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
predator 0 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба с USB- флешкой это ARM с операционной системой и драйвером нужны. на мой взгляд эффективнее всего будет контроллер с HI speed USB (для подключения к компу) и UART для получения тех самых данных, а для накопления данных микросхему из той самой флешки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба эффективнее всего будет контроллер с HI speed USB зачем??? :07: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
predator 0 10 июля, 2010 Опубликовано 10 июля, 2010 · Жалоба чтобы потом в ЭВМ сливать пару сотен мегабайт Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
predator 0 11 июля, 2010 Опубликовано 11 июля, 2010 · Жалоба Hi Usb совсем не редкость CY7c68013 например или многие ARM9, а обьем данных Размер данных до сотни мегабайт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stalknr 0 11 июля, 2010 Опубликовано 11 июля, 2010 · Жалоба Господа помогите выбрать кит для этого устройства. Требования к киту: 1) Ядро контроллер семейства Mega или XMega; 2) Порт RS232 для принятия информации со станка; 3) возможность подключения SD карты; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 11 июля, 2010 Опубликовано 11 июля, 2010 · Жалоба Ради интереса взгляните на http://starterkit.ru/html/index.php?name=s...p=view&id=5 (и цену). При этом Вы получаете и RS-232, и SD-карту, и буфер RAM (96k + 32M), и USB-функция/хост (можно на флешку писать), и Ethernet (удаленный сбор логов по сети), и удобство 32-битника! Что такого есть в Mege, чего нет в этом кристале?! - писать все равно будете на C; - новую периферию (SD-card) придется осваивать в любом случае. Гораздо проще, эффективнее и интереснее делать логер не на Меге. Если будут сложности с новой архитектурой, то на форуме Вам помогут. Кстати, могу поделиться исходниками логера как раз для LPC2478. Меги хорошие камни, но не для таких задач (хотя сделать можно). Японская мудрость гласит: "всему свое место". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stalknr 0 11 июля, 2010 Опубликовано 11 июля, 2010 · Жалоба adnega к сожалению я не знаком с армами вообще. и как к ним подступится даже не знаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться