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

 
 
> Частота прерываний под Linux'ом, реально достижимая
Alexashka
сообщение Jul 27 2012, 11:01
Сообщение #1


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Господа-товарищи программисты, если у кого опыт, поделитесь пожалуйста sm.gif с какой максимальной частотой реально можно обрабатывать прерывания под Линухом? Скажем частота 100кГц. Это много? Процессор AT91SAM9G45, тактовая 400МГц, память DDR2 (платка SK-AT91SAM9G45SK-AT91SAM9G45 от Starterkita)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TigerSHARC
сообщение Aug 11 2012, 12:43
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Господа, я надеюсь действующая полемика не относится к kernel space. Мне нужно писать драйвер АЦП и обрабатывать аппаратные прерывания с частотой в 100кГц. Но всё это на уровне ядра (в модуле ядра).
Думаю такое возможно, а иначе как работают действующие драйверы АЦП?
Тогда возникает вопрос для ТС: почему бы обработку прерываний не вынести в модуль ядра?

P.S. Возможно я чего-то не понимаю.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 11 2012, 23:13
Сообщение #3


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(TigerSHARC @ Aug 11 2012, 16:43) *
Господа, я надеюсь действующая полемика не относится к kernel space. Мне нужно писать драйвер АЦП и обрабатывать аппаратные прерывания с частотой в 100кГц. Но всё это на уровне ядра (в модуле ядра).
Думаю такое возможно, а иначе как работают действующие драйверы АЦП?
Тогда возникает вопрос для ТС: почему бы обработку прерываний не вынести в модуль ядра?

P.S. Возможно я чего-то не понимаю.

Если Вы про платы сбора данных типа NI то скорей всего там с АЦП работает ПЛИСина, которая является также буфером, тогда требования для процессора и ОС в основном касаются пропускной способности шины, задержки на реакцию уже не так важны.
То что касается Вашего вопроса ко мне, то тут все проще -никаких ядер у меня нет и ничего встраивать не нужно. Все обрабатывается обычным прерыванием, даже не стал заморачиваться с FIQ. Быстродействия хватает с лихвой. Я не понимаю почему нельзя сделать простой обработчик прерываний в ОС, который бы работал так как и задумано для прерывания- прерывал текущую задачу, отрабатывал и потом возвращался к прерванной задаче с минимальными издержками.
Я думаю Вам однозначно надо предусмотреть буфер на PLD или какомто малоногом контроллере, который будет заниматься лишь сбором данных с АЦП. Обмен между процами можно сделать по SDIO через DMA. Это у меня был как один из запасных вариантов.
Либо еще вариант -настроить проц на считывание АЦП через ДМА, используя 2 канала ДМА в режиме качелей. Но тут надо досконально знать железо и его особенности.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Aug 12 2012, 07:03
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(Alexashka @ Aug 12 2012, 03:13) *
Если Вы про платы сбора данных типа NI то скорей всего там с АЦП работает ПЛИСина, которая является также буфером, тогда требования для процессора и ОС в основном касаются пропускной способности шины, задержки на реакцию уже не так важны.
То что касается Вашего вопроса ко мне, то тут все проще -никаких ядер у меня нет и ничего встраивать не нужно. Все обрабатывается обычным прерыванием, даже не стал заморачиваться с FIQ. Быстродействия хватает с лихвой. Я не понимаю почему нельзя сделать простой обработчик прерываний в ОС, который бы работал так как и задумано для прерывания- прерывал текущую задачу, отрабатывал и потом возвращался к прерванной задаче с минимальными издержками.
Я думаю Вам однозначно надо предусмотреть буфер на PLD или какомто малоногом контроллере, который будет заниматься лишь сбором данных с АЦП. Обмен между процами можно сделать по SDIO через DMA. Это у меня был как один из запасных вариантов.
Либо еще вариант -настроить проц на считывание АЦП через ДМА, используя 2 канала ДМА в режиме качелей. Но тут надо досконально знать железо и его особенности.

Зачем буфер на PLD? если можно кольцевой буфер сделать в самом драйвере. В драйвере же считывать через DMA по SPI данные с АЦП.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 12 2012, 18:44
Сообщение #5


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(TigerSHARC @ Aug 12 2012, 11:03) *
Зачем буфер на PLD? если можно кольцевой буфер сделать в самом драйвере. В драйвере же считывать через DMA по SPI данные с АЦП.

а что за проц? и сколько Msample/s нужно захватывать?
Я всетаки считаю лучше уж иметь аппаратный буфер, а там пусть какая угодно операционка и стандартные драйвера...но очень интересно что у Вас с этим получится.
Go to the top of the page
 
+Quote Post
Dubov
сообщение Aug 13 2012, 04:59
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052



По-моему тоже можно непарится насчёт буфера и делать его в драйвере, если только частота невокая, порядка сотен килогерц

Сообщение отредактировал Dubov - Aug 13 2012, 06:51
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alexashka   Частота прерываний под Linux'ом   Jul 27 2012, 11:01
- - Lyubimov   Зависит от времени переключения контекста. Можете ...   Jul 31 2012, 12:49
|- - Alexashka   Цитата(Lyubimov @ Jul 31 2012, 16:49) А в...   Jul 31 2012, 13:48
|- - skyv   Цитата(Alexashka @ Jul 31 2012, 16:48) Во...   Aug 1 2012, 10:24
||- - Alexashka   Цитата(skyv @ Aug 1 2012, 14:24) Интересн...   Aug 1 2012, 14:12
||- - aaarrr   Цитата(Alexashka @ Aug 1 2012, 18:12) Вот...   Aug 1 2012, 14:33
|||- - Alexashka   Цитата(aaarrr @ Aug 1 2012, 18:33) Тактов...   Aug 1 2012, 23:05
||- - rudy_b   Цитата(Ruslan1 @ Aug 1 2012, 15:55) Укажи...   Aug 2 2012, 01:23
||- - demiurg_spb   2ТС: А вы RT-path накладывали при сборке Linux...   Aug 2 2012, 06:14
|- - rudy_b   Цитата(Alexashka @ Jul 31 2012, 16:48) .....   Aug 1 2012, 12:38
|- - Ruslan1   Цитата(rudy_b @ Aug 1 2012, 15:38) Ага, и...   Aug 1 2012, 12:55
|- - _Артём_   Цитата(rudy_b @ Aug 1 2012, 15:38) Если п...   Aug 1 2012, 13:03
- - Alexashka   Померял: 10 NOP'ов из внутренней SRAM выполняю...   Aug 3 2012, 12:14
|- - aaarrr   Цитата(Alexashka @ Aug 3 2012, 16:14) Пом...   Aug 3 2012, 12:40
||- - Alexashka   Цитата(aaarrr @ Aug 3 2012, 16:40) Естест...   Aug 6 2012, 19:29
||- - aaarrr   Цитата(Alexashka @ Aug 6 2012, 23:29) Мне...   Aug 6 2012, 20:52
|- - _Pasha   Цитата(Alexashka @ Aug 3 2012, 15:14) 10 ...   Aug 3 2012, 14:16
|- - aaarrr   Цитата(_Pasha @ Aug 3 2012, 18:16) Надо б...   Aug 3 2012, 14:42
- - Alexashka   Нашел интересную ссылочку, может кому пригодится.....   Aug 8 2012, 18:32
|- - rudy_b   Ага, это весьма похоже на правду. Т.е. задержка от...   Aug 9 2012, 12:58
|- - demiurg_spb   Ну почему-же? Вполне себе реалтайм, просто кому-то...   Aug 9 2012, 13:37
|- - Ruslan1   Извиняюсь, но мне кажется, что иногда (по моим наб...   Aug 9 2012, 19:04
|- - rudy_b   С одной стороны - так, с другой - не так. Ежели уж...   Aug 10 2012, 19:08
|- - R.A.K.   Цитата(rudy_b @ Aug 10 2012, 23:08) С одн...   Aug 10 2012, 19:46
|- - rudy_b   Цитата(R.A.K. @ Aug 10 2012, 22:46) ...Ре...   Aug 10 2012, 20:58
|- - R.A.K.   Цитата(rudy_b @ Aug 11 2012, 00:58) Да и ...   Aug 10 2012, 21:23
|- - rudy_b   Цитата(R.A.K. @ Aug 11 2012, 00:23) Так о...   Aug 11 2012, 14:25
- - jks   Разница между мягким и жестким реалтаймом не в джи...   Aug 11 2012, 12:33
|- - aaarrr   Цитата(Dubov @ Aug 13 2012, 08:59) По-мое...   Aug 13 2012, 07:27
|- - TigerSHARC   Цитата(aaarrr @ Aug 13 2012, 10:27) Сотни...   Aug 13 2012, 19:36
|- - aaarrr   Цитата(TigerSHARC @ Aug 13 2012, 23:36) м...   Aug 13 2012, 19:45
|- - Alexashka   Цитата(TigerSHARC @ Aug 13 2012, 23:36) П...   Aug 13 2012, 22:46
|- - sasamy   Цитата(Alexashka @ Aug 14 2012, 02:46) А ...   Aug 16 2012, 18:31
|- - TigerSHARC   Цитата(sasamy @ Aug 16 2012, 21:31) делае...   Aug 17 2012, 05:52
|- - sasamy   Цитата(TigerSHARC @ Aug 17 2012, 09:52) п...   Aug 17 2012, 06:29
- - TigerSHARC   Скачайте ванильное ядро Linux. Папка /drivers/stag...   Aug 14 2012, 05:50
|- - Alexashka   Цитата(TigerSHARC @ Aug 14 2012, 09:50) С...   Aug 15 2012, 19:35
- - TigerSHARC   Ничем не отличаются, те же самые прерывания. А гд...   Aug 16 2012, 07:29
|- - Alexashka   Цитата(TigerSHARC @ Aug 16 2012, 11:29) В...   Aug 16 2012, 15:45
- - TigerSHARC   Посмотрите вот этот аппарат: uake.ru Работает по L...   Aug 16 2012, 17:35
- - TigerSHARC   to sasamy: Интересный подход. Но если инженеры AD ...   Aug 17 2012, 13:03
|- - sasamy   Цитата(TigerSHARC @ Aug 17 2012, 17:03) 1...   Aug 17 2012, 13:34
|- - Alexashka   Цитата(sasamy @ Aug 17 2012, 17:34) 2) да...   Aug 17 2012, 14:16
|- - sasamy   Цитата(Alexashka @ Aug 17 2012, 18:16) Ту...   Aug 17 2012, 15:27
|- - Alexashka   Цитата(sasamy @ Aug 17 2012, 19:27) Делае...   Aug 17 2012, 19:20
|- - sasamy   Цитата(Alexashka @ Aug 17 2012, 23:20) Т....   Aug 17 2012, 21:01
- - TigerSHARC   sasamy предложил красивое решение, но если взять п...   Aug 17 2012, 20:18
- - TigerSHARC   Получается PDC настраивается один раз во время ини...   Aug 18 2012, 06:06
- - sasamy   Цитата(TigerSHARC @ Aug 18 2012, 10:06) B...   Aug 19 2012, 21:34


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:05
Рейтинг@Mail.ru


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