реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Nand Flash+c51, реализация интерфейса
Ankoc
сообщение May 6 2008, 12:14
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Имеем: 1.NandFlash от Samsung (напр. K9F1208)
2. ADuC841 от AD (51МК с АЦП )
Задача: кидать данные с АЦП во флеш при макимальной f дискр. АЦП.
Вопрос: как реализовать интерфейс м/у ними, дабы успевать обрабатывать данные с АЦП, при этом мк еще и несколько загружен другими задачами ?
примеры реализации, исходники особенно приветствуется smile.gif
Go to the top of the page
 
+Quote Post
Ankoc
сообщение May 7 2008, 10:11
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Цитата(Ankoc @ May 6 2008, 16:14) *
Имеем: 1.NandFlash от Samsung (напр. K9F1208)
2. ADuC841 от AD (51МК с АЦП )
Задача: кидать данные с АЦП во флеш при макимальной f дискр. АЦП.
Вопрос: как реализовать интерфейс м/у ними, дабы успевать обрабатывать данные с АЦП, при этом мк еще и несколько загружен другими задачами ?
примеры реализации, исходники особенно приветствуется smile.gif


С интерфейсом более менее разобрался, но теперь возник другой вопрос:
Нужно ли для данной задачи организовывать файловую систему?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 7 2008, 10:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Ankoc @ May 7 2008, 14:11) *
Нужно ли для данной задачи организовывать файловую систему?

А зачем? Другое дело, что у NAND не гарантируется целостность данных - вот это проблема, ибо ECC 51-й контроллер считать будет очень медленно.
Go to the top of the page
 
+Quote Post
r_dot
сообщение May 8 2008, 04:36
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Ankoc @ May 7 2008, 14:11) *
... Нужно ли для данной задачи организовывать файловую систему?


Собственно файловую систему - не обязательно. Чтобы полностью использовать ресурс 100000 циклов стирания/записи ячейки, можно просто записывать "по кругу", пропуская "BAD-блоки". Но всё равно ресурс устройства получится небольшим. Для данного применения - записи сигнала в реальном времени - флешки не очень подходят.
И ещё - при рассчёте темпа оцифровки нужно учитывать время на стирание блоков (2-5 мс на блок) - то есть считать частоту взятия сэмплов исходя из средней скорости записи во флешку + запас на "фоновые задачи" и предусмотреть буфер достаточного размера на время стирания.
А что ещё надо хорошо продумать - это как, куда и в каком темпе будут считываться данные. Как определять начало и конец записи. А если чтение надо делать одновременно с записью... 07.gif
Go to the top of the page
 
+Quote Post
Ankoc
сообщение May 9 2008, 07:53
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Цитата
Для данного применения - записи сигнала в реальном времени - флешки не очень подходят.

В таком случае куда тогда писать большие объёмы инф-ции с требуемой скоростью? анализ показал, что альтернативы флешу нет. Или я ошибаюсь?
Цитата
И ещё - при рассчёте темпа оцифровки нужно учитывать время на стирание блоков (2-5 мс на блок)

а вот это не совсем понятно. по своей сути флешка будет "одноразовой", т.е. записали-считали потом на комп и выкинули
Цитата
ибо ECC 51-й контроллер считать будет очень медленно.

здесь уже перешел на более производительный МК Silabs С8051F12X, думаю проблем быть не должно
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 9 2008, 11:11
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Ankoc @ May 9 2008, 11:53) *
В таком случае куда тогда писать большие объёмы инф-ции с требуемой скоростью? анализ показал, что альтернативы флешу нет. Или я ошибаюсь?

Давайте уточним: какой именно объем информации с какой именно скоростью нужно писать?
В любом случае потребуется приличное количество RAM для буферизации.

Цитата(Ankoc @ May 9 2008, 11:53) *
а вот это не совсем понятно. по своей сути флешка будет "одноразовой", т.е. записали-считали потом на комп и выкинули

Тогда можно стереть блоки заранее.

Цитата(Ankoc @ May 9 2008, 11:53) *
здесь уже перешел на более производительный МК Silabs С8051F12X, думаю проблем быть не должно

Более производительный МК не поможет, тут аппаратное ускорение нужно. Или писать только CRC, все же порча не очень вероятна.
Go to the top of the page
 
+Quote Post
r_dot
сообщение May 11 2008, 06:18
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Ankoc @ May 9 2008, 11:53) *
В таком случае куда тогда писать большие объёмы инф-ции с требуемой скоростью? анализ показал, что альтернативы флешу нет. Или я ошибаюсь?


Если непрерывно записывать со скоростью 100МB/s, гигабайтная флешка вылетит примерно через пару недель. Если по условию задачи это допустимо, то конечно, об альтернативе задумываться не стоит.
Go to the top of the page
 
+Quote Post
Ankoc
сообщение May 11 2008, 09:52
Сообщение #8





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Цитата
Давайте уточним: какой именно объем информации с какой именно скоростью нужно писать?В любом случае потребуется приличное количество RAM для буферизации.

пишем со скоростью 1 байт/мкс пока не заполнится флеш.
Цитата
Если непрерывно записывать со скоростью 100МB/s,

неужели такая скорость достижима?

может кто нибудь встречал/сам делал подобные проекты в сети. Киньте ссылочкой ну хотя бы в общих чертах дающую представление о способе решения моей задачи (времени в обрез, и если делать всё с нуля, боюсь будет слишом долго)?
Спасибо всем откликнувшимся!
Go to the top of the page
 
+Quote Post
Linker
сообщение May 11 2008, 12:25
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105



Цитата(Ankoc @ May 6 2008, 19:14) *
Имеем: 1.NandFlash от Samsung (напр. K9F1208)
2. ADuC841 от AD (51МК с АЦП )
Задача: кидать данные с АЦП во флеш при макимальной f дискр. АЦП.
Вопрос: как реализовать интерфейс м/у ними, дабы успевать обрабатывать данные с АЦП, при этом мк еще и несколько загружен другими задачами ?
примеры реализации, исходники особенно приветствуется smile.gif

Для обеспечения работы АЦП ADuC841 с максимальной скоростью (2,4мкс) необходимо организовать работу в режиме DMA. При этом идет запись непосредственно во внешнюю память объемом до 16Мбайт. Перед записью данных от АЦП эту память необходимо разметить особым способом. Потом эти данные необходимо переписать во флэш. В режиме DMA ADuC может выполнять другие операции, но внешняя память будет не доступна, пока не закончится ее заполнение. Следовательно Вы можете использовать максимальную производительность (420Ksps) только кусочно. Тэк шта скорости непрерывной записи 1 байт/мкс на ADuC841 Вы никак не добъетесь.

Сообщение отредактировал Linker - May 11 2008, 13:22


--------------------
Я здесь и сейчас...
Go to the top of the page
 
+Quote Post
Ankoc
сообщение May 11 2008, 17:15
Сообщение #10





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Цитата
Тэк шта скорости непрерывной записи 1 байт/мкс на ADuC841 Вы никак не добъетесь.

спасибо за ответ но я это уже понял, поэтому и перешел на другой тип МК
Go to the top of the page
 
+Quote Post
r_dot
сообщение May 12 2008, 05:41
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Ankoc @ May 11 2008, 13:52) *
неужели такая скорость достижима?


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


Цитата(Ankoc @ May 11 2008, 13:52) *
... в общих чертах ... представление о способе решения моей задачи ...
пишем со скоростью 1 байт/мкс пока не заполнится флеш.


В задаче не все условия заданы. Если задано только передать в комп данные с АЦП любым способом, то скорость 1 МБ/с вполне вменяема для USB2. Исходя из назначения устройства можно сразу в комп заливать? Тогда АЦП + FIFO + контроллер и всё программирование - на компе. Это быстрее и проще отладить. Да и скорость можно ещё вытянуть.
Go to the top of the page
 
+Quote Post
Ankoc
сообщение May 12 2008, 09:51
Сообщение #12





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-05
Пользователь №: 5 714



Цитата
Исходя из назначения устройства можно сразу в комп заливать?

Нет, устройство автономное (в общем случае "черный ящик"), сначала идёт запись в энергонезависимую память, после чего прибор подкл. к компу куда и сливаются данные из флеш для последующей обработки
Go to the top of the page
 
+Quote Post
kst
сообщение May 12 2008, 10:48
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Тоже интересуюсь подобной тематикой - задача практически аналогичная, только связка ПЛИС + Flash.

Вопрос:
А не существует ли в природе специализированных контроллеров для флеш-чипов или флеш-карт?

Больно уж здорово было бы - поставил, и не паришься...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 12 2008, 11:25
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kst @ May 12 2008, 14:48) *
А не существует ли в природе специализированных контроллеров для флеш-чипов или флеш-карт?

Существуют, но не в stand-alone виде. Можно взять карточку с мозгами - SD, CF, MMC...
Go to the top of the page
 
+Quote Post
kst
сообщение May 12 2008, 12:35
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



*пошел читать про SD, CF, MMC...*

А под stand-alone вы что здесь понимаете?
Я имел в виду компонент - микросхемку. Я сейчас плату разрабатываю, пока есть возможность пополнить перечень элементов.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 12 2008, 12:48
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kst @ May 12 2008, 16:35) *
Я имел в виду компонент - микросхемку. Я сейчас плату разрабатываю, пока есть возможность пополнить перечень элементов.

Я тоже имел в виду микросхемку. Может проще процессор с контроллерами NAND, SD, CF добавить? Он может заодно логику загружать, еще какие-нибудь полезности делать.

На ПЛИС, ИМХО, проще всего будет работать с голой NAND-flash.
Go to the top of the page
 
+Quote Post
kst
сообщение May 12 2008, 14:08
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



В работе с голой NAND меня пугает управление bad-блоками. Остальное не так страшно...
Хотелось бы не использовать процессорные узлы, хотя таковые можно реализовать в самой ПЛИС. Вот был бы какой-нибудь простенький контроллер, который бы сам все разруливал... было бы здорово...
Мне нужно всего-то - сначала загнать поток данных (~10 МБит/сек) во флеш, а потом, после окончания записи, считать оттуда все (скорость при чтении не важна).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 12 2008, 14:17
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ставьте процессор (LPC2378, например) - будет и SD/MMC и USB с Ethernet'ом, а ПЛИС вешается на внешнюю шину.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 02:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016