Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 81

Организация буфера FIFO

22.04.2016, 15:00. Показов 7411. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток Всем!

Подскажите пожалуйста, можно ли организовать буфер типа FIFO если на вход приходят 32 разрядные отсчеты с частотой 700 КГц, с выхода забираются для последующей обработки. Отсчеты поступают непрерывно а вот при выборке для обработки возможны разные задержки (случайные по времени), но в сумме не превышающие 1 секунду. Возможно ли такое организовать на STM или лучше посмотреть в сторону плисин.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2016, 15:00
Ответы с готовыми решениями:

STM32F4 SPI DMA FIFO. Ошибка FIFO, но передача происходит
Добрый день! Пытаюсь наладить передачу по SPI данных к дисплею с DMA. Передача работает, дисплей полностью закрашивается, но...

Организация очереди FIFO реляционно
У меня есть товар имеющий срок годности. Который я добавляю в базу. Как бы мне получше организовать так, чтобы товар который был первым...

Организация взаимодействия процессов через FIFO
Добрый день! Можете помочь выполнить данное задание, пожалуйста? 1. First получает со стандартного потока ввода список файлов...

15
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 81
22.04.2016, 17:36
а обработка тоже времени занимает, то надо как минимум двойной брать.
1 секунда это как раз с учетом задержек при выборке на обработку, в смысле, что данные поступают с одинаковой частотой и непрерывно а считываются с большей частотой но пачками (с разрывами) причем не одинаковой величины. Так что 1 сек это максимально ожидаемое время на подготовку к обработке, задержки между принимаемыми в процессе обработки и т.п., в реале будет меньше как раз 1,5 - 2 раза. А про плисины почему и уточнял, что есть вроде экземпляры с памятью на борту.
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
22.04.2016, 18:26
IMHO, тут не мк или "плисина" нужна, а что-то типа такого - http://www.cypress.com/products/ez-usb-fx2lp
0
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 488
22.04.2016, 18:34
А данные любые могут приходить? Например, если точно знаем, что не приходит 0x12345678 или 0x00000000 или 0xFFFFFFFF и т.п., то организовываем кольцевой буфер, заполняем его спец символом через memset. Делаем кольцевой DMA буфер, прерывания не используем. Просто смотрим, не сменился ли спец-символ, значит данные пришли. Дальше по обстоятельствам, memmove в временный массив, memset поверх того, что уже обработали спецсимволом.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
22.04.2016, 18:38
А про плисины почему и уточнял, что есть вроде экземпляры с памятью на борту.
память в любом случае будет внешняя.
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 81
22.04.2016, 19:13
А данные любые могут приходить?
Пока точно не знаю, но скорее всего да

память в любом случае будет внешняя.
Вот блин, я так и предполагал, но в душе надеялся. Придется наверно, либо в сторону Cypress смотреть, либо в сторону одноплатников.
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
22.04.2016, 19:47
Цитата Сообщение от tosiviw
Придется наверно, либо в сторону Cypress смотреть, либо в сторону одноплатников.
Только не либо, а и то, и другое вместе )
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
22.04.2016, 20:13
ну да, нынче для единичной поделки куда проще может оказаться взять готовый одноплатник с линуксом и какой-нибудь мелкий МК который эти 700кГц х 32бита ему в какой-нибудь USB или I2S (а может и в ethernet) сконвертирует и обратно.

хотя минимальный контроллер динамической памяти в мелкие cpld вполне влезет.

а данные прям так параллельной шиной в 32 разряда на 700кГц и приходят?
что как-то слишком мало Гц для такого большого количества параллельных битов, ног надо будет много.
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 81
22.04.2016, 22:27
а данные прям так параллельной шиной в 32 разряда на 700кГц и приходят?
что как-то слишком мало Гц для такого большого количества параллельных битов, ног надо будет много.
Да, так и приходят. Это телеметрия, поэтому большая частота не нужна (точнее такая задана).

память в любом случае будет внешняя
полазил по сайту Ottira, увидел там, что у Stratix 10 GX 500/SX 500 : FPGA Core M20K Blocks -2,196
M20K Mbits - 43
а надо что то около 30, хотя я может и ошибаюсь
0
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
22.04.2016, 22:44
Цитата Сообщение от tosiviw
полазил по сайту Ottira, увидел там, что у Stratix 10 GX 500/SX 500 : FPGA Core M20K Blocks -2,196
M20K Mbits - 43
а надо что то около 30, хотя я может и ошибаюсь
О чем вы здесь говорите, о скорости?
700 кГц обработает абсолютно любая cpld/fpga.

Память внутри плис формируется из ресурсов lut, то есть от 1 до нескольких бит на lut, в зависимости от устройства плис.
Поэтому и написали, что память будет внешняя, потому что покупать самую большую плис, чтобы превратить ее в память, мягко говоря, бессмысленно. Можно взять Max2 на 570 ячеек в 144-ногом корпусе и одну микросхему SDROM нужного размера.

А вот дальше начинается самое интересное...

UP: Да, в stratix есть блоки памяти и их на ваши цели хватит.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
22.04.2016, 23:42
Цитата Сообщение от tosiviw
полазил по сайту Ottira, увидел там, что у Stratix 10 GX 500/SX 500 : FPGA Core M20K Blocks -2,196
M20K Mbits - 43
а надо что то около 30, хотя я может и ошибаюсь
да не, не ошибаетесь, только это здоровенная плисина в 1152 ногом bga корпусе, со встроенным многоядерным армом, гигабитными трансиверами и т.д... со стоимостью микросхемы, измеряемой в килобаксах.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
23.04.2016, 01:06
Цитата Сообщение от omtomtubo
Можно взять Max2 на 570 ячеек в 144-ногом корпусе и одну микросхему SDROM нужного размера.
А вот дальше начинается самое интересное...
за те 15$ что стоит epm570 можно найти кучу МК с готовым встроенным контроллером динамической памяти, и самое интересное закончится даже не начавшись.
надо будет только какой-нибудь сдвиговый регистр сгородить чтобы эти параллельные 32бита через какой-нибудь последовательный порт протащить в МК, или хотя бы до 8ми бит скукажить, а то ног может не хватить на два 32х разрядных параллельных интерфейса.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
23.04.2016, 01:23
Можно попробовать FIFO память приделать
Например AL460A (правда 16 разрядов), но зато быстро 2 байта записывает.
8М х 16
0
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 488
23.04.2016, 07:23
И посмотреть в сторону самодельных осциллографов.
Например, в схеме DSO203:
http://www.seeedstudyo.com/wiki/images/ ... ematic.pdf
применен STM32 + FPGA ICE65L04F-TVQ100C
http://www.fpga4fun.com/digitalscope_hdl1.html
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 81
23.04.2016, 11:00
Можно попробовать FIFO память приделать
Например AL460A (правда 16 разрядов), но зато быстро 2 байта записывает.
8М х 16
Вот это интересно, спасибо.
0
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
24.04.2016, 12:18
[QUOTE="tosiviw"][QUOTE="Цитата:[/QUOTE]
Можно попробовать FIFO память приделать
Например AL460A (правда 16 разрядов), но зато быстро 2 байта записывает.
8М х 16
Вот это интересно, спасибо.

А почему не сделать кольцевой буфер половинка которого как раз секунда? И прерывание ДМА по заполнениюполовины буфера. Заполнили работаем с половинкой.. Потом половинки меняются..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2016, 12:18
Помогаю со студенческими работами здесь

Ручная организация двойного буфера для UserControl
Как можно организовать двойной буфер для компонента UserControl? Я имею ввиду, чтобы прорисовывать какую-то часть действий в памяти, а...

Организация кольцевого буфера. Программная реализация монитора
Ребят помогите решить задание по параллельному программированию, завтра уже крайняк сдать надо: Организация кольцевого буфера....

Создать папку с именем из буфера и копировать файлы используя инфу буфера как маску
Может пригодится ... :coffee: 1) Создаст папку (по вашему пути) имя папки будет взято из буфера обмена. 2) Откроет папку (созданную)...

Копирование значения без буфера обмена + присвоение значения буфера переменной
Хочу уточнить тема была перенесена из раздела VBA Пишу прогу на Делфи и есть пару вопросов. Задача стоит как можно реже...

Организация функций , Обработка одномерных массивов , Организация процедур.
Помогите пожалуйста кто чем может до экзамена 3-4 дня осталось а без программирования не пускают к сессии Организация процедур. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru