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

 
 
> Измеритель, как организовать программу?
Zelepuk
сообщение Jun 28 2012, 20:00
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Требуется разработать измеритель.
Аппаратная база: МК + внешний АЦП + дисплей
Задачи, которые нужно обрабатывать в программе:
1) принимать данные с АЦП через SPI по внешнему прерыванию и записывать в кольцевой буфер (частота дискретизации порядка 25кГц)
2) каждые 10 мс. производить обработку блока данных с АЦП по некоторому алгоритму;
3) усреднять данные полученные в п.2 каждые 3 секунды
4) записывать данные, полученные в п.3 на SD-карту (история)
5) обрабатывать запросы через Ethernet (задать время внутренних часов, считать данные с SD-карты, задать калибровочные коэффициенты для АЦП и пр.)
6) обновлять данные на дисплее каждые 3 секунды

Встал вопрос: как организовать программу?
вариант, который приходит на ум:
1)Суперлуп. В основном цикле которого производится опрос флагов( таких как "накопился буфер с АЦП" и пр.). Здесь так же работают прерывания: от АЦП - ложим отсчёт в буфер; от порта Ethernet - обрабатываем сообщения; от таймера - прошло 3 секунды и пора делать усреднение результатов.
2) По прерываниям от таймера делать переключение задач (каруселька)
Что лучше в данном случае и что ещё можно применить?

просто я "панически" боюсь таких терминов как "синхронизация потоков", "мьютексы", "семафоры" и прочее...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Jun 30 2012, 17:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Посмотрел как реализуется событийная (набор конечных автоматов вызываемых из кольцевого буфера). Впринципе не сложно.
Только вот что будет если например при записи на SD карту, произоёдет запрос по Ethernet на чтение из SD-карты?
Иними словами, чем в итоге отличается такой метод от ОСРВ? скорость пострадает? так как придётся ждать, пока произойдёт вызов соответствующей функции из кольцевого буфера?

Цитата(AlexandrY @ Jun 30 2012, 20:48) *
Как раз такой Satec я разбирал. Там внутри стоял довольно убогий по сегодняшним меркам 16-и битный микроконтроллер. Естественно там линукс рядом не лежал.
Да, одна микросхема от AD еще не все делает, к ней достаточно прикрутить STM32 за пару баксов и тогда будет полное удовольствие. biggrin.gif

И что тогда она будет уметь? Разве что выводить данные на дисплей и общаться с внешним миром. ADE7880 хоть и хорошее решение, но она суть чёрный ящик, который просто выдаёт вычисленные значения. А если я хочу THD тока узнать до 40-й гармоники? тут хоть STM62 biggrin.gif ставь, но если ADE7880 этого не умеет - то не умеет.

Цитата(sasamy @ Jun 29 2012, 20:26) *
можно использовать poll в юзерспейс, при известной частоте дискретизации заранее известно сколько измерений нужно для 10 мс, задать буфер на 20 мс - процесс автоматически будет активирован когда данные готовы для обработки.


простите, откуда вы взяли этот текст:
Each ring buffer typically has an event chrdev (similar to the more general ones above) to pass on
events such as buffer 50% full and an access chrdev via which the raw data it self may be read back.



Сообщение отредактировал Zelepuk - Jun 30 2012, 17:10
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jun 30 2012, 17:22
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Zelepuk @ Jun 30 2012, 21:10) *
простите, откуда вы взяли этот текст:


http://wiki.analog.com/software/linux/docs...iio?force_rev=1
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   Измеритель   Jun 28 2012, 20:00
- - _Артём_   Цитата(Zelepuk @ Jun 28 2012, 23:00) Что ...   Jun 28 2012, 20:26
|- - Zelepuk   Цитата(_Артём_ @ Jun 29 2012, 00:26) Отве...   Jun 28 2012, 20:40
|- - _Артём_   Цитата(Zelepuk @ Jun 28 2012, 23:40) Но, ...   Jun 28 2012, 20:59
|- - AlexandrY   Цитата(Zelepuk @ Jun 28 2012, 23:40) план...   Jun 30 2012, 09:26
|- - TigerSHARC   Цитата(AlexandrY @ Jun 30 2012, 13:26) Li...   Jun 30 2012, 13:29
||- - AlexandrY   Цитата(TigerSHARC @ Jun 30 2012, 16:29) Н...   Jun 30 2012, 14:29
||- - TigerSHARC   Цитата(AlexandrY @ Jun 30 2012, 18:29) Фу...   Jun 30 2012, 15:42
||- - sasamy   Цитата(TigerSHARC @ Jun 30 2012, 19:42) Я...   Jun 30 2012, 16:00
||- - AlexandrY   Цитата(TigerSHARC @ Jun 30 2012, 18:42) Я...   Jun 30 2012, 16:48
||- - sasamy   Цитата(AlexandrY @ Jun 30 2012, 20:48) Ка...   Jun 30 2012, 16:56
||- - TigerSHARC   Цитата(sasamy @ Jun 30 2012, 20:56) Посмо...   Jun 30 2012, 19:09
||- - sasamy   Цитата(TigerSHARC @ Jun 30 2012, 23:09) Д...   Jun 30 2012, 19:45
||- - AlexandrY   Цитата(sasamy @ Jun 30 2012, 22:45) Я бол...   Jun 30 2012, 20:35
|- - XVR   Цитата(AlexandrY @ Jun 30 2012, 13:26) Кс...   Jul 1 2012, 15:12
- - MrYuran   Цитата(Zelepuk @ Jun 29 2012, 00:00) прос...   Jun 29 2012, 04:36
- - Zelepuk   А сработает ли суперлуп как я писал выше? Опыта ра...   Jun 29 2012, 09:50
|- - sasamy   Цитата(Zelepuk @ Jun 29 2012, 13:50) Но в...   Jun 29 2012, 16:26
|- - TigerSHARC   Цитата(sasamy @ Jun 29 2012, 20:26) можно...   Jul 31 2012, 18:23
- - Lotor   Цитата(Zelepuk @ Jun 29 2012, 00:00) Вста...   Jun 29 2012, 09:56
|- - Zelepuk   Цитата(Lotor @ Jun 29 2012, 13:56) Если н...   Jun 29 2012, 16:21
|- - Lotor   Цитата(Zelepuk @ Jun 29 2012, 20:21) А ес...   Jul 2 2012, 04:43
|- - Zelepuk   Цитата(Lotor @ Jul 2 2012, 07:43) На счет...   Jul 2 2012, 04:50
||- - Lotor   Цитата(Zelepuk @ Jul 2 2012, 08:50) Желат...   Jul 2 2012, 05:10
|- - AlexandrY   Цитата(Lotor @ Jul 2 2012, 07:43) Вы чита...   Jul 2 2012, 06:15
|- - Lotor   Цитата(AlexandrY @ Jul 2 2012, 10:15) Что...   Jul 2 2012, 10:26
|- - AlexandrY   Цитата(Lotor @ Jul 2 2012, 13:26) Я об из...   Jul 2 2012, 11:11
|- - Lotor   Цитата(AlexandrY @ Jul 2 2012, 15:11) А з...   Jul 2 2012, 11:29
|- - AlexandrY   Цитата(Lotor @ Jul 2 2012, 14:29) Вы явно...   Jul 2 2012, 13:14
- - Aner   Как то с памятью у них бедно, STM32F303VC ...   Jun 30 2012, 21:02
- - Zelepuk   Но Linux для меня как-то роднее и проще. Опишу бол...   Jun 30 2012, 21:17
- - @Ark   Цитата(Zelepuk @ Jun 29 2012, 00:00) Треб...   Jul 2 2012, 09:33


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 16:59
Рейтинг@Mail.ru


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