|
Real time на Windows XP |
|
|
|
Sep 27 2012, 20:58
|
Группа: Участник
Сообщений: 10
Регистрация: 28-10-11
Пользователь №: 68 007

|
Добрый день! Понимаю всю обсурдность вопроса... но стоит задача - обеспечить передачу UDP пакетов в сеть с жестким интервалом 10мс. Система только виндоуз и ничего кроме виндоуз. (Причины: драйвера, ПО, просто лень разработчиков изучать другие системы) В общем, уговорить перейти на что-то более адекватное у меня не получается. Какие есть варианты? Мультимедия таймер не обеспечивает необходимой точности. http://www.intervalzero.com/ - вроде бы то, что нужно. Но непонятно, сколько времени уйдет на освоение и сколько вообще это будет стоить. Если подключить к COM порту контроллер, который будет каждые 10мс посылать сигнал, и роботать по прерыванию - может это как-то улучшить ситуацию?
|
|
|
|
|
 |
Ответов
|
Sep 28 2012, 01:06
|

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

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

Профессионал
    
Группа: Свой
Сообщений: 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 мс или строго каждую мс если паралельно будут крутиться ещё несколько мение приоритетных задач? Тоже есть пару проектов где хотелось-бы строгие интервалы иметь
|
|
|
|
|
Sep 28 2012, 08:28
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 28 2012, 08:37
|

Профессионал
    
Группа: Свой
Сообщений: 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 многозадачный. ашипся, пока тока в планах ввести многозадачность.
|
|
|
|
|
Sep 28 2012, 09:44
|

Профессионал
    
Группа: Свой
Сообщений: 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 символов. А настроить приоритеты на линуксе, даже без реал тайма - пока руки не дошли. Цитата *ЗАПЕСАЛ* Цитата(Slovan @ Sep 28 2012, 15:23)  Хм... Ну роутеров у нас нет, только свичи. Большого потока данных не идет. Небольшое колебание 9-11мс допускается. Вроде не должно быть проблем. а обычная винда какое колебание даёт? Измеряли?
|
|
|
|
|
Sep 28 2012, 21:50
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(juvf @ Sep 28 2012, 12:44)  На сколько плавать? вопрос хороший... простой линукс изкоропки... без х11, 1 задача раз в 10 мс опрашивает устройства, Откуда слухи? Таймслайс в ядрах 2.6 Linux из той самой вашей "изкоропки" - 1мс., и именно в таком временном масштабе будут происходить все процессы в Linux. Цитата(gerber @ Sep 28 2012, 12:04)  Возможность синхронизировать время по сети никак не гарантирует, что UDP пакеты дойдут до получателя строго с тем же интервалом, с каким вышли от отправителя. Стандарт UDP вообще не гарантирует, что UDP пакеты вообще дойдут до получателя: стек IP вполне имеет право при высокой загруженности отправлять полученные дэйтаграммы в мусор без всяких реакции или уведомления. ТС - читайте матчасть по IP, всё того же Р.Стивенса. Не сможете вы ничего гарантировать при UDP! P.S. TCP/IP Illustrated, 2nd Edition
|
|
|
|
|
Sep 29 2012, 18:00
|
Гуру
     
Группа: Свой
Сообщений: 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мс отмерить не может? ну и иногда подводить их чтоб не разбегались.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|