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

 
 
> Система сбора данных, 60 дифференциальных каналов, дискретизация 500-2500гц
Клим
сообщение Aug 25 2010, 07:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Требуется система сбора данных в комп. Необходимо с частотой дискретизации до 2500гц получать аналоговые данные с ~60 дифференциальных каналов. Точности 12 бит вполне достаточно.
Есть куча решений в виде плат PCI/PCIex, но смущает размер буфера в 1-4к. Будут ли такие карточки обеспечивать непрерывный сбор данных под windows?
Пока нашел приличные платы от NI и Advantech, но хотелось бы подешевле.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DS
сообщение Aug 25 2010, 08:16
Сообщение #2


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Клим @ Aug 25 2010, 11:42) *
Требуется система сбора данных в комп. Необходимо с частотой дискретизации до 2500гц получать аналоговые данные с ~60 дифференциальных каналов. Точности 12 бит вполне достаточно.
Есть куча решений в виде плат PCI/PCIex, но смущает размер буфера в 1-4к. Будут ли такие карточки обеспечивать непрерывный сбор данных под windows?
Пока нашел приличные платы от NI и Advantech, но хотелось бы подешевле.


Если PCI master - при правильно написанных драйверах будут. Если режима master нет, то таже при правильно написанных драйверах можно придумать ситуацию, приводящую к потере данных.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Aug 25 2010, 08:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(DS @ Aug 25 2010, 12:16) *
Если режима master нет, то таже при правильно написанных драйверах можно придумать ситуацию, приводящую к потере данных.


При правильно написанных и при отсутствии в системе неправильно написанных - сложно придумать такую ситуацию.
Это ведь нужно, чтобы DPC находилось в очереди несколько миллисекунд.
Ну а задержка больше 10 микросекунд на транзакцию - это очень глубокая PCI шина.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
DS
сообщение Aug 25 2010, 08:39
Сообщение #4


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Oldring @ Aug 25 2010, 12:31) *
При правильно написанных и при отсутствии в системе неправильно написанных - сложно придумать такую ситуацию.
Это ведь нужно, чтобы DPC находилось в очереди несколько миллисекунд.
Ну а задержка больше 10 микросекунд на транзакцию - это очень глубокая PCI шина.


1.5 мс всего. Каналов то 60. А родной драйвер windows для com порта умудряется терять байты (очень иногда, но имеет место быть), уже на скорости 115200.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Aug 25 2010, 08:54
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(DS @ Aug 25 2010, 12:39) *
1.5 мс всего. Каналов то 60. А родной драйвер windows для com порта умудряется терять байты (очень иногда, но имеет место быть), уже на скорости 115200.



1/(60*2500*2/4)=13 микросекунд.

А если считывать сразу 128-битными родными для процессора типами, то еще в 4 раза больше.

У родной микросхемы компорта буфер всего 16 байт. Там реально меньше миллисекунды на обработку прерывания. Тоже в принципе достаточно, но первые драйвера от MS были сами очень кривыми. Посмотрите на примеры в старых DDK. Майкрософты не зря новую модель драйверов придумывали, так как правильно написать WDM драйвер с нуля довольно сложно..


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
DS
сообщение Aug 25 2010, 08:59
Сообщение #6


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Oldring @ Aug 25 2010, 12:54) *
1/(60*2500*2/4)=13 микросекунд.


Я считал, за какое время 4 Кбайтный буфер переполнится. Это то же время, за которое заполняется 16 байтный буфер com порта. А он в XP иногда теряет байты. Так что ситуации, когда не обслуживается прерывание в течении 1.5 мс точно есть.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Aug 25 2010, 09:16
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(DS @ Aug 25 2010, 12:59) *
Я считал, за какое время 4 Кбайтный буфер переполнится. Это то же время, за которое заполняется 16 байтный буфер com порта. А он в XP иногда теряет байты. Так что ситуации, когда не обслуживается прерывание в течении 1.5 мс точно есть.



1/(2500*60*2/4096) = 13 мс Это порядок разницы.
Причины необслуживания прерывания в течение более чем миллисекунды могут быть самыми разными. Например, ошибки в самом драйвере. Например, невовремя лочит новые буфера в памяти.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
DS
сообщение Aug 25 2010, 09:21
Сообщение #8


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Oldring @ Aug 25 2010, 13:16) *
1/(2500*60*2/4096) = 13 мс Это порядок разницы.
Причины необслуживания прерывания в течение более чем миллисекунды могут быть самыми разными. Например, ошибки в самом драйвере. Например, невовремя лочит новые буфера в памяти.


Да, прошу прощения, обсчитался в уме. Это, кончено, резко снижает вероятность потери данных. Но тем не менее, если нужна надежность, я бы не стал закладываться и на 13 мс - именно из-за возможного наличия кривизны в других драйверах. По моему опыту, ошибка "переполнение буфера" исчезает полностью, если его хватает больше, чем на 100, а лучше 500 мс. Если меньше 100 мс, то при эксплуатации разными людьми на разных компьютерах иногда кто-то нарывается на переполнение.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Aug 25 2010, 09:24
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(DS @ Aug 25 2010, 13:21) *
Да, прошу прощения, обсчитался в уме. Это, кончено, резко снижает вероятность потери данных. Но тем не менее, если нужна надежность, я бы не стал закладываться и на 13 мс - именно из-за возможного наличия кривизны в других драйверах.


Мастер с буфером 4К от этого всё равно не спасет. Инициирует обмен мастера всё равно ЦП, указав место в памяти, куда именно складировать данные.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
DS
сообщение Aug 25 2010, 09:26
Сообщение #10


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Oldring @ Aug 25 2010, 13:24) *
Мастер с буфером 4К от этого всё равно не спасет. Инициирует обмен мастера всё равно ЦП, указав место в памяти, куда именно складировать данные.


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


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Aug 25 2010, 09:32
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(DS @ Aug 25 2010, 13:26) *
Ну так при разумном подходе ему можно назначить мегабайтный, например, буфер. Еще лучше, если кольцевой.



Кольцевидность буфера не имет отношения к вероятности потери данных.

Возможность назначения мегабайтного буфера зависит от способностей аппаратного мастера. В любом случае, даже если аппаратный мастер позволяет использовать очередь пересылок, инициируемых по событию на плате без вмешательства ЦП, это существенно усложнит его настройку по сравнению с классическим описанным в учебниках для драйверописателей использованием DMA.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Клим   Система сбора данных   Aug 25 2010, 07:42
|- - DS   Цитата(Oldring @ Aug 25 2010, 13:32) Коль...   Aug 25 2010, 09:47
|- - Oldring   Цитата(DS @ Aug 25 2010, 13:47) Косвенно ...   Aug 25 2010, 09:53
|- - DS   Цитата(Oldring @ Aug 25 2010, 13:53) Не и...   Aug 25 2010, 09:57
|- - Oldring   Цитата(DS @ Aug 25 2010, 13:57) Если начи...   Aug 25 2010, 10:04
- - DS   А откуда ограничение на 4 Кбайта ? В PLX, например...   Aug 25 2010, 10:27
|- - Oldring   Цитата(DS @ Aug 25 2010, 14:27) А откуда ...   Aug 25 2010, 10:35
- - DS   Так память на плате для DMA обычно вообще прозрачн...   Aug 25 2010, 10:43
|- - Oldring   Цитата(DS @ Aug 25 2010, 14:43) Для реали...   Aug 25 2010, 10:55
|- - DS   Цитата(Oldring @ Aug 25 2010, 14:49) Допу...   Aug 25 2010, 10:55
|- - Oldring   Цитата(DS @ Aug 25 2010, 14:55) Прерывани...   Aug 25 2010, 11:05
|- - DS   Цитата(Oldring @ Aug 25 2010, 15:03) Что,...   Aug 25 2010, 11:08
|- - Oldring   Цитата(DS @ Aug 25 2010, 15:08) В любом с...   Aug 25 2010, 11:13
- - DS   Вроде мы тут уже с разных сторон рассмотрели, что ...   Aug 25 2010, 11:15
|- - Oldring   Цитата(DS @ Aug 25 2010, 15:15) Вроде мы ...   Aug 25 2010, 11:27
- - DS   Ну и названий же их тоже нет. Так что ответить нев...   Aug 25 2010, 11:32
|- - Клим   Цитата(DS @ Aug 25 2010, 14:32) Ну и назв...   Aug 26 2010, 06:49
- - DS   Судя по описаниям, все подходят. NI получше смотри...   Sep 1 2010, 17:30


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:39
Рейтинг@Mail.ru


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