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

 
 
> Real time на Windows XP
Slovan
сообщение Sep 27 2012, 20:58
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 28-10-11
Пользователь №: 68 007



Добрый день!

Понимаю всю обсурдность вопроса... но стоит задача - обеспечить передачу UDP пакетов в сеть с жестким интервалом 10мс.
Система только виндоуз и ничего кроме виндоуз. (Причины: драйвера, ПО, просто лень разработчиков изучать другие системы)
В общем, уговорить перейти на что-то более адекватное у меня не получается.

Какие есть варианты?

Мультимедия таймер не обеспечивает необходимой точности.
http://www.intervalzero.com/ - вроде бы то, что нужно. Но непонятно, сколько времени уйдет на освоение и сколько вообще это будет стоить.

Если подключить к COM порту контроллер, который будет каждые 10мс посылать сигнал, и роботать по прерыванию - может это как-то улучшить ситуацию?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
juvf
сообщение Sep 28 2012, 01:06
Сообщение #2


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Slovan @ Sep 28 2012, 02:58) *
Если подключить к COM порту контроллер, который будет каждые 10мс посылать сигнал, и роботать по прерыванию - может это как-то улучшить ситуацию?
Нет, такое решение не улучшит. Какя разница кто будет источником прерывания - компорт или внутренний таймер? Если винде надо будет обслужить другую задачу, например перерисовать гуи, то она запросто предержить обработку прерывания от компорта. Но если городить внешний контроллер, так пусть он и передает эти UDP паеты сам.

Если на комп поставить голый линукс, то ситуация не лучше. Что для линукса, что для венды... чтоб получить жёсткие интервалы времени нужен бубен типа такого.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 28 2012, 04:00
Сообщение #3


Знающий
****

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



Цитата(juvf @ Sep 28 2012, 05:06) *
Если на комп поставить голый линукс, то ситуация не лучше.


Что такое голый линукс ? Это голый или не голый
http://www.redhat.com/products/mrg/realtime/
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 28 2012, 06:27
Сообщение #4


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(sasamy @ Sep 28 2012, 10:00) *
Что такое голый линукс ? Это голый или не голый
http://www.redhat.com/products/mrg/realtime/

это не голый.
Цитата
Технически MRG Realtime – это набор пакетов, превращающих стандартный Red Hat Enterprise Linux (RHEL) в ОС реального времени.

Можно поставить какойнить дебьян и руками настроить и/или доставить набор пакетов превращяющий дебьян в реалтайм.


Цитата
Ну если бы можно было поставить другую систему, то смотрели бы в первую очередь сторону QNX...

Цитата
В общем, уговорить перейти на что-то более адекватное у меня не получается.
я не предлагаю поставить др систему. Я про линукс сказал к тому, что дригие ос, а это линуксы, фрибсд, макОС.... это тоже не реалтайм и там тоже нужен бубен.
Да, совсем забыл про QNX. Могу сказать про QNX4.25 реалтаймовости она даст, но будут проблемы с дровами под современное железо. QNX6 ... ни чего не скажу, неуспел освоить.

А ДОС даст опрос по таймеру строго каждые 10 мс или строго каждую мс если паралельно будут крутиться ещё несколько мение приоритетных задач? Тоже есть пару проектов где хотелось-бы строгие интервалы иметь
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 28 2012, 08:28
Сообщение #5


Знающий
****

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



Цитата(juvf @ Sep 28 2012, 10:27) *
это не голый.
Можно поставить какойнить дебьян и руками настроить и/или доставить набор пакетов превращяющий дебьян в реалтайм.


Тогда нужно говорить не голый/одетый а про ванильное ядро. Ветка -rt одна из многих девелоперских веток и все что там стабильно и имеет применение со временем попадает в майнстрим
https://www.osadl.org/Realtime-Linux.projec...me-linux.0.html

юзерспейс остается тем-же, в этом изюминка подхода - realtime Linux не требует модификации кода юзерспейс, специальных драйверов и пакетов кроме утилиты для раздачи приоритетов (chrt), которая там и так есть.

Цитата(gerber @ Sep 28 2012, 10:58) *
Действительно, абсурдная постановка задачи. Первый же встретившийся на пути пакетов UDP роутер или даже Ethernet-свич сломает любой жёсткий интервал следования пакетов.


http://en.wikipedia.org/wiki/Precision_Tim...ssage_transport


Сообщение отредактировал sasamy - Sep 28 2012, 08:14
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 28 2012, 08:37
Сообщение #6


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(sasamy @ Sep 28 2012, 14:28) *
Тогда нужно говорить не голый/одетый а про ванильное ядро. Ветка -rt одна из многих девелоперских веток и все что там стабильно и имеет применение со временем попадает в майнстрим
https://www.osadl.org/Realtime-Linux.projec...me-linux.0.html

ну уж тогда нужно говорить "linux" и "realtime Linux". Даже на вашей ссылке в одном месте слово линукс
"Is realtime possible with Linux?" (даже в этом вопросе подрозумевается что обычный линукс не реалтаймовый), и на всем сайте они свой линукс называют "Realtime Linux".


Цитата
Дос-то однозадачный
досы то разные бывают..... я просто думал что FreeDOS-32 многозадачный. ашипся, пока тока в планах ввести многозадачность.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 28 2012, 08:51
Сообщение #7


Знающий
****

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



Цитата(juvf @ Sep 28 2012, 12:37) *
"Is realtime possible with Linux?" (даже в этом вопросе подрозумевается что обычный линукс не реалтаймовый)


и "необычный" не реалтаймовый (по крайней мере как это многие понимают на микроконтроллерах - точность до тактов) это игра слов, а детерминизм достаточный для задач ТС (10 мс) обеспечит даже ванильное ядро на х86 (HPET там давным давно есть на всех системах).

Сообщение отредактировал sasamy - Sep 28 2012, 08:53
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 28 2012, 09:44
Сообщение #8


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(sasamy @ Sep 28 2012, 14:51) *
a детерминизм достаточный для задач ТС (10 мс) обеспечит даже ванильное ядро на х86 (HPET там давным давно есть на всех системах).

при чем здесь детерминизм? ну будет таймер давать импульсы с точностью ±1*10^(-10000000000000000000000000000000) секунд. и что дальше..... примет обычный линукс это событие.... но у него там ещё к примеру 100 фоновых задач... сколько времени пройдет от импульса до выхода первого байта из порта? Если постучать бубном над приоритетами в линуксе, то можно назначить приоритет задаче отправляющей запрос (как в винде), но все равно, задача по отправке запроса получит больший слот времени, но не все 100% и время от прерывания до выхода первого байта запроса будет плавать.
На сколько плавать? вопрос хороший... простой линукс изкоропки... без х11, 1 задача раз в 10 мс опрашивает устройства, 4 "фоновых" задачи по тсп отдают инфу. так задержки между опросами иногда получаются больше 100 мс, да и при передачи пакета.... по спецификации модбуса если в пакете между байтами пауза больше 1,5 символа, то пакет бракуется. на линуксе 1 задача постоянно шлет пакеты на скорости 921600..... так там постояк паузы до 2-3 символов. А настроить приоритеты на линуксе, даже без реал тайма - пока руки не дошли.


Цитата
http://www.on-time.com/rtkernel-dos.htm
Знакомая штучка?
*ЗАПЕСАЛ*

Цитата(Slovan @ Sep 28 2012, 15:23) *
Хм... Ну роутеров у нас нет, только свичи. Большого потока данных не идет. Небольшое колебание 9-11мс допускается. Вроде не должно быть проблем.

а обычная винда какое колебание даёт? Измеряли?
Go to the top of the page
 
+Quote Post
Olej
сообщение Sep 28 2012, 21:50
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(juvf @ Sep 28 2012, 12:44) *
На сколько плавать? вопрос хороший... простой линукс изкоропки... без х11, 1 задача раз в 10 мс опрашивает устройства,


Откуда слухи? biggrin.gif
Таймслайс в ядрах 2.6 Linux из той самой вашей "изкоропки" - 1мс., и именно в таком временном масштабе будут происходить все процессы в Linux.


Цитата(gerber @ Sep 28 2012, 12:04) *
Возможность синхронизировать время по сети никак не гарантирует, что UDP пакеты дойдут до получателя строго с тем же интервалом, с каким вышли от отправителя.

Стандарт UDP вообще не гарантирует, что UDP пакеты вообще дойдут до получателя: стек IP вполне имеет право при высокой загруженности отправлять полученные дэйтаграммы в мусор без всяких реакции или уведомления.
ТС - читайте матчасть по IP, всё того же Р.Стивенса.
Не сможете вы ничего гарантировать при UDP!

P.S. TCP/IP Illustrated, 2nd Edition

Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 29 2012, 18:00
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Olej @ Sep 29 2012, 03:50) *
Не сможете вы ничего гарантировать при UDP!

если допустим +-1мс разброса вероятность потери можно сильно уменьшить, послав десяток другой пакетов вместо одного за эту самую 1мс.
а от TCP радости тут тоже не сильно много, то что пакет потерялся и его надо перепослать за 1мс можно и не понять.
то есть какой-нибудь свой простой протокол поверх UDP для контроля потерь может оказаться более подходящим для данной задачи.

а для синхронизации какой-нибудь 1588 не лучше подходит разве? ну или просто NTP.
зачем каждые 10мс с 10% точностью выдавать синхронизацию? по своим часам каждый эти 10мс отмерить не может? ну и иногда подводить их чтоб не разбегались.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Slovan   Real time на Windows XP   Sep 27 2012, 20:58
|- - _Pasha   Цитата(juvf @ Sep 28 2012, 09:27) А ДОС д...   Sep 28 2012, 08:07
|||- - sasamy   Цитата(juvf @ Sep 28 2012, 13:44) при чем...   Sep 28 2012, 09:55
|||- - _Pasha   Цитата(juvf @ Sep 28 2012, 12:44) *ЗАПЕСА...   Sep 28 2012, 10:30
||||- - AHTOXA   Цитата(_Pasha @ Sep 28 2012, 16:30) Я одн...   Sep 28 2012, 16:35
||||- - Konst_777   Цитата(Olej @ Sep 29 2012, 00:50) ... P.S...   Sep 29 2012, 17:04
||||- - Палыч   Цитата(Olej @ Sep 29 2012, 01:50) стек IP...   Sep 30 2012, 20:17
|||- - Slovan   Цитата(juvf @ Sep 28 2012, 13:44) а обычн...   Oct 1 2012, 11:05
|||- - Olej   Цитата(Slovan @ Oct 1 2012, 14:05) Колеба...   Oct 1 2012, 22:10
||||- - Slovan   Цитата(Olej @ Oct 2 2012, 02:10) P.S. поп...   Oct 2 2012, 06:53
|||- - juvf   Цитата(Slovan @ Oct 1 2012, 17:05) ~99.5%...   Oct 2 2012, 04:16
||||- - Olej   Цитата(juvf @ Oct 2 2012, 07:16) на венде...   Oct 2 2012, 07:02
||||- - sasamy   Цитата(Olej @ Oct 2 2012, 11:02) Вообще, ...   Oct 2 2012, 07:20
||||- - _Pasha   Цитата(Olej @ Oct 2 2012, 10:02) Вообще, ...   Oct 2 2012, 07:30
|||- - _pv   Цитата(Slovan @ Oct 1 2012, 17:05) Колеба...   Oct 2 2012, 07:09
||- - _Pasha   Цитата(juvf @ Sep 28 2012, 11:37) досы то...   Sep 28 2012, 09:13
|- - gerber   Цитата(sasamy @ Sep 28 2012, 12:28) http:...   Sep 28 2012, 09:04
|- - sasamy   Цитата(gerber @ Sep 28 2012, 13:04) Возмо...   Sep 28 2012, 09:33
|- - gerber   Цитата(sasamy @ Sep 28 2012, 13:33) Ну вс...   Sep 28 2012, 09:42
- - _Pasha   На DOS перейдите, чего уж там...   Sep 28 2012, 03:25
- - Slovan   ЦитатаЕсли на комп поставить голый линукс, то ситу...   Sep 28 2012, 05:24
- - gerber   Цитата(Slovan @ Sep 28 2012, 00:58) Поним...   Sep 28 2012, 06:58
|- - Slovan   Цитата(gerber @ Sep 28 2012, 10:58) Дейст...   Sep 28 2012, 09:23
|- - _pv   поднимите приоритет у процесса да посмотрите что п...   Sep 28 2012, 11:33
- - syoma   У MATLAB есть Real-time Windows Target. Мне кажетс...   Sep 28 2012, 10:05
- - _Pasha   Вот есть MIDI-RTP, RTP - протоколы. Они ведь повер...   Sep 29 2012, 18:33
|- - Палыч   Цитата(_Pasha @ Sep 29 2012, 22:33) Вот е...   Sep 30 2012, 22:16
|- - Olej   Цитата(_Pasha @ Sep 29 2012, 21:33) Вот е...   Oct 1 2012, 08:02
- - Slovan   Вот так выглядят тестовые программы: Для передачи...   Oct 2 2012, 12:06
- - Olej   Цитата(Slovan @ Oct 2 2012, 15:06) Самое ...   Oct 2 2012, 12:41
- - _pv   Цитата(Slovan @ Oct 2 2012, 18:06) Вот та...   Oct 2 2012, 13:37
- - _Pasha   Цитата(_pv @ Oct 2 2012, 16:37) оно конеч...   Oct 2 2012, 14:37
- - _pv   Цитата(_Pasha @ Oct 2 2012, 20:37) Тем бо...   Oct 2 2012, 14:52
- - Konst_777   Цитата(_pv @ Oct 2 2012, 17:52) Код... ...   Oct 2 2012, 17:17
|- - _Pasha   Цитата(Konst_777 @ Oct 2 2012, 20:17) Про...   Oct 2 2012, 17:41
- - Olej   Цитата(_pv @ Oct 2 2012, 17:52) и не очен...   Oct 2 2012, 22:05
- - Slovan   Цитата(_pv @ Oct 2 2012, 18:52) и не очен...   Oct 3 2012, 10:11


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

 


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


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