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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Ethernet, и real-time
stoker
сообщение Oct 24 2008, 13:04
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Кто нибудь использовал Ethernet в приложениях реального времени?
Необходимо не более чем за 1мсек передавать 1024 байта на простейшее исполнительное устройство - CPU и несколько цапов. Прога в виндах расчитывает данные для цапов и посылает пакет на сетевую карту, главное чтобы пакеты не терялись и задержка не превышала 1мсек. Увидел в инете такой вот Real-Time контроллер: http://www.prosoft.ru/products/brands/hilscher/374263/
Кто нибудь работал с таким? Можно ли вообще для такой задачи использовать встроенный в материнку сетевой контроллер совместно с CS8900A например? Посоветуйте, может есть (не)стандартные решения?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 24 2008, 13:07
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


А как, простите, Вы в винде обеспечиваете отсутствие неконтролируемых задержек?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
stoker
сообщение Oct 24 2008, 13:22
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Цитата(Rst7 @ Oct 24 2008, 17:07) *
А как, простите, Вы в винде обеспечиваете отсутствие неконтролируемых задержек?

Буду слать в потоке. Пробовал с УСБ в балке получалось порядка 0,3мсек в лучшем случае, в худшем более 10. А изохорный даёт 2,5мсек. Поэтому и подумал про Ethernet. Да и драйвер к тому Real Time контроллеру поставляется под винды с компонентом.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 24 2008, 13:30
Сообщение #4


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



А если взять мышкой окошко и пошевелить? Никакой поток не поможет. Будете свой драйвер писать? Только толку, сетевые протоколы то не real-time в винде...

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

Ну и загруженность сети надо смотреть. Хотя, конечно, средняя скорость ~1МБайт/с - это вроде и не скорость...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
stoker
сообщение Oct 24 2008, 13:44
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Цитата(Rst7 @ Oct 24 2008, 17:30) *
А если взять мышкой окошко и пошевелить? Никакой поток не поможет. Будете свой драйвер писать?

Этого я больше всего и боюсь...


Цитата(Rst7 @ Oct 24 2008, 17:30) *
Только толку, сетевые протоколы то не real-time в винде...

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

Ну и загруженность сети надо смотреть. Хотя, конечно, средняя скорость ~1МБайт/с - это вроде и не скорость...

То что винда используется это к сожалению необходимость, как мне сказал програмист, алгоритм сложный и с ним справляется только топовый комп с 2-мя камнями. И скроее всего комп будет заточен только для прибора. В общем я пока оцениваю возможность передачи данных.
Хочу все же узнать, юзал ли кто Real time контроллеры? Стит ли их покупать?
Go to the top of the page
 
+Quote Post
vik0
сообщение Oct 24 2008, 17:32
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 27-07-08
Из: теплые края
Пользователь №: 39 233



Цитата(stoker @ Oct 24 2008, 16:44) *
Этого я больше всего и боюсь...
То что винда используется это к сожалению необходимость, как мне сказал програмист, алгоритм сложный и с ним справляется только топовый комп с 2-мя камнями.

А, простите, на "топовый комп с 2-мя камнями" становится только винда?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 24 2008, 20:22
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vik0 @ Oct 24 2008, 19:32) *
А, простите, на "топовый комп с 2-мя камнями" становится только винда?

А если, то, что поставить будет называться просто "Линукс", то сразу только от самого этого факта свершится чудо smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
dch
сообщение Oct 24 2008, 23:39
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



а какой отклик сейчас обеспечивает XP ? Там помоему не все так плохо, в NT4 таймер тикал раз в миллисекунду, другое дело что производительность Etherneta была около тысячи пакетов в секунду, правда тогда был ходовым 10 мегабитный Ethernet.
Go to the top of the page
 
+Quote Post
stoker
сообщение Oct 25 2008, 03:29
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Цитата(vik0 @ Oct 24 2008, 21:32) *
А, простите, на "топовый комп с 2-мя камнями" становится только винда?

Цитата(zltigo @ Oct 25 2008, 00:22) *
А если, то, что поставить будет называться просто "Линукс", то сразу только от самого этого факта свершится чудо smile.gif

К сожалению, у нас пока нет людей умеющих работать и программировать под Линукс, поэтому остаётся только винда.

Цитата(dch @ Oct 25 2008, 03:39) *
а какой отклик сейчас обеспечивает XP ? Там помоему не все так плохо, в NT4 таймер тикал раз в миллисекунду, другое дело что производительность Etherneta была около тысячи пакетов в секунду, правда тогда был ходовым 10 мегабитный Ethernet.

Я правда не спец в высоком программировании, но кажись порядка 16 мсек. это реакция на события виндой. (могу правда и ошибаться). Другое дело если делать поток. В потоке если что то делать, то вроде все происходит гораздо быстрее, но жутко не синхронно, как уже говорилось, шевеление окна мышой тормозило поток. Наверное как то можно повесить поток на отдельное ядро, тока пока непонятно как это сделать.
Проверял через queryperformancecounter. Оказалось что драйверы устройств имеют в большинстве приличный отклик, например драйвер для FTDI имел отклик порядка 0,35мсек. У CyUSB до 0,15мсек доходило. Думается у Etherneta может быть и быстрее. Остаётся заставить винду работать быстрее.
В инете видел что для реал тайм приложений есть надстройка для виндов - INtime 3.0, кто нибудь работал?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2008, 07:50
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(stoker @ Oct 25 2008, 05:29) *
К сожалению, у нас пока нет людей умеющих работать и программировать под Линукс, поэтому остаётся только винда.

Вы ничего не поняли sad.gif. Не сожалейте - ничего принципиально не изменится. Либо для Win, либо Linux так или иначе придется пробовать заниматься программированием сильнозоаточенных под Вашу задачу "драйверов". Поскольку любые приложения по любому идут лесом.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Aprox
сообщение Oct 25 2008, 13:44
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(stoker @ Oct 24 2008, 16:44) *
Цитата
Единственный способ - это заранее посылать пакеты из под винды, накапливать их в устройстве. А устройство должно говорить большому брату что у него близок к заполнению буфер, надо остановиться, и, соответственно, обратная ситуация. Т.е. отсчет миллисекундных тиков и точную выдачу берет на себя само устройство.

То что винда используется это к сожалению необходимость, как мне сказал програмист, алгоритм сложный и с ним справляется только топовый комп с 2-мя камнями. И скроее всего комп будет заточен только для прибора. В общем я пока оцениваю возможность передачи данных.
Хочу все же узнать, юзал ли кто Real time контроллеры? Стит ли их покупать?

Советую прислушаться к словам Rst7. Ни в виндах, ни в линуксе вы не победите отсутствие реального времени и не добьетесь равномерной посылки пакетов. Выход- на приемной стороне делать буфер пакетов и уже оттуда выгребать равномерно на ЦАПы. Потребуется обратная связь на ПК в виде старт/cтоп управляющих пакетов по тому-же самому Ethernet.
Go to the top of the page
 
+Quote Post
stoker
сообщение Oct 25 2008, 18:32
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Цитата(Aprox @ Oct 25 2008, 17:44) *
Советую прислушаться к словам Rst7. Ни в виндах, ни в линуксе вы не победите отсутствие реального времени и не добьетесь равномерной посылки пакетов. Выход- на приемной стороне делать буфер пакетов и уже оттуда выгребать равномерно на ЦАПы. Потребуется обратная связь на ПК в виде старт/cтоп управляющих пакетов по тому-же самому Ethernet.

Равномерной посылки мне добиваться и не нужно, главное обеспечить критерий: вермя м/у 2 пакетами < 1мс. Точной синхронизацией будет заниматься сам прибор.
Go to the top of the page
 
+Quote Post
Alex11
сообщение Oct 25 2008, 20:02
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Ну не гарантирует Вам в винде никто время между двумя пакетами < 1ms, можно надеятся, что 40 пакетов будут отправлены за время, существенно меньше 40 ms. Гарантировать можно, что 1000 пакетов отправятся быстрее 1000 ms.
Go to the top of the page
 
+Quote Post
net
сообщение Oct 25 2008, 20:28
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473



Цитата(Alex11 @ Oct 26 2008, 00:02) *
Ну не гарантирует Вам в винде никто время между двумя пакетами < 1ms, можно надеятся, что 40 пакетов будут отправлены за время, существенно меньше 40 ms. Гарантировать можно, что 1000 пакетов отправятся быстрее 1000 ms.


ну не совсем так - для виды есть надстройка реал тайм гарантирующая доставки и время реакции - но это деньги и довольно приличные

но в целом вы правы
надо искать какоето другое решение для решения поставленной задачи с учетом ваших ресурсов
но надо уточнять постановку задачи
потому как просто пакеты отсылать это не задача или ее можно решить промежуточным железом которое будет это делать с необходимой точностью
Go to the top of the page
 
+Quote Post
dch
сообщение Oct 26 2008, 09:06
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(stoker @ Oct 25 2008, 06:29) *
драйвер для FTDI имел отклик порядка 0,35мсек. У CyUSB до 0,15мсек доходило.

обычно так и пытаются сделать, оптимально конечно читать ацп прямо драйвером Ethernet-а :-)

Сообщение отредактировал dch - Oct 26 2008, 09:07
Go to the top of the page
 
+Quote Post

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

 


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


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