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

 
 
7 страниц V  « < 3 4 5 6 7 >  
Reply to this topicStart new topic
> 3 ATMega8 к 1 COM-порту ПК
SasaVitebsk
сообщение Jan 9 2007, 01:13
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(WHALE @ Jan 8 2007, 22:59) *
Цитата(prottoss @ Jan 8 2007, 21:29) *

Цитата(Сергей Борщ @ Jan 9 2007, 01:20) *
В документе "имени prottossa" ...
Щаз лопну от гордости

prottoss Не надо,нам вас будет недоставать. smile.gif


И кто тогда будет поддерживать программатор Вашего имени, который я всем рекламирую. biggrin.gif
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 9 2007, 01:43
Сообщение #62


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Jan 8 2007, 20:54) *
ЗЫ: Как OpenGL может помочь, что то я не догоняю??? Это которая с Direct3D дружит? smile.gif

Возможно и может, надо глянуть в эту сторону (мысля очень интересная)
дело в том что у OpenGL должны быть очень шустрые таймеры(не помню уже, давно это было, да и не на PC), ему ведь 3D графику в реалтайме выводить надо.
А стандартные виндусовые таймеры нормально начинают работать от 10мс.

Некоторые пытаются использовать MMTIME, там вроде такт получается 1-3мс
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 9 2007, 03:55
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Jan 9 2007, 05:43) *
Цитата(prottoss @ Jan 8 2007, 20:54) *

ЗЫ: Как OpenGL может помочь, что то я не догоняю??? Это которая с Direct3D дружит? smile.gif

Возможно и может, надо глянуть в эту сторону (мысля очень интересная)
дело в том что у OpenGL должны быть очень шустрые таймеры(не помню уже, давно это было, да и не на PC), ему ведь 3D графику в реалтайме выводить надо.
А стандартные виндусовые таймеры нормально начинают работать от 10мс.

Некоторые пытаются использовать MMTIME, там вроде такт получается 1-3мс
Я некоторое время занимался программированием 3D графики, и, как человек икушенный в этом не легком деле, скажу Вам что OpenGL базируется на DirectX, DirecX создан для Windows и он не использует точных таймеров. Для сдерживания, допустим FPS, используется обычный софтверный тамер системы smile.gif Реалтайм для игрухи это 25 -50 ФПС.



ЗЫ: Представляю картину. Огромный зал с компьютерами, супер АСУ так сказать. Дядьки с умными лицами ставят Ваше ПО на систему удаленного управления объектами, бубны, торжественная музыка... Хлоп ... Аншлаг... Версия DirectX на Вашей системе устарела, требуется обновление ПО... biggrin.gif biggrin.gif biggrin.gif ... Ну а че, прально, и оператору хорошо, вечером мона Кваку новую погонять, хехе


--------------------
Go to the top of the page
 
+Quote Post
otrog
сообщение Jan 9 2007, 13:46
Сообщение #64


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Дабы не заморачиваться с микросекундными задержками в windows я использую протокол WAKE. В нем определение границ пакетов происходит по служебным байтам. Есть исходники и на мк и на компьютер, за что огромное спасибо Леониду Ивановичу.
К сожалению ссылка на протокол не работает. Если интересно могу выложить исходники здесь.

ПС WAKE открытый и бесплатный протокол, в отличие от MODBUS.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 9 2007, 13:57
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(otrog @ Jan 9 2007, 17:46) *
Дабы не заморачиваться с микросекундными задержками в windows я использую протокол WAKE. В нем определение границ пакетов происходит по служебным байтам. Есть исходники и на мк и на компьютер, за что огромное спасибо Леониду Ивановичу.
К сожалению ссылка на протокол не работает. Если интересно могу выложить исходники здесь.
ПС WAKE открытый и бесплатный протокол, в отличие от MODBUS.
Я не знаком с этим протоколом, но чувствую, что если есть служебные байты, значит данные скорее всего символами передаются (???), а это пахнет удвоением пакетов данных...



А в каком месте MODBUS закрытый протокол?????????????


--------------------
Go to the top of the page
 
+Quote Post
GDI
сообщение Jan 9 2007, 14:13
Сообщение #66


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

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



в WAKE используется байт-стаффинг, так что удвоение получится если передавать данные, совпадающие со служебными символами...


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 9 2007, 14:31
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(GDI @ Jan 9 2007, 18:13) *
в WAKE используется байт-стаффинг, так что удвоение получится если передавать данные, совпадающие со служебными символами...
Это минус... Всю посылку придется сравнивать со служебными символами, а это опять потеря времени, за которое мы боремя


--------------------
Go to the top of the page
 
+Quote Post
GDI
сообщение Jan 9 2007, 15:01
Сообщение #68


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

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



не все так плохо.. smile.gif признаком стаффинга является один из 4х служебных символов, с ним и сравнивается каждый байт..
Прикрепленные файлы
Прикрепленный файл  wake.pdf ( 219.95 килобайт ) Кол-во скачиваний: 192
 


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
otrog
сообщение Jan 9 2007, 15:19
Сообщение #69


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Ссылка на WAKE
http://www.spetspribor.com/support/software/wake/wake.html
к сожалению не работает sad.gif , поэтому выложил сохраненную страницу со всеми файлами на ФТП
/upload/DOCs/WAKE.rar

байт-стаффинг конечно не очень хорошо, но жесткая времянка еще хуже(ИМХО).
А то что MODBUS закрытый может я и ошибся, но всякие там оговорки типа:
Цитата
After 30 days, the ActiveX Controls stop communicating and return a result indicating that trial has expired
мне не нравятся.

ПС
2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол smile.gif .


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 9 2007, 19:01
Сообщение #70


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Цитата
otrog: Выложил сохраненную страницу со всеми файлами на ФТП
/upload/DOCs/WAKE.rar
У меня к сожалению нет доступа к этому ФТП, может закинеш эти файлы мне на e-mail: labor@online.ua?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 9 2007, 19:15
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(otrog @ Jan 9 2007, 19:19) *
2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол smile.gif .
Мдя, после того, что я тут выложил, и Ваших слов некоторые точно подумают, что MODBUS придумал я smile.gif , хм....я уже подумываю о новой версии - PROTTOSSBUS, а че? звучит biggrin.gif ...

Зато на моем сайте есть достаточное количество информации, что бы разобраться в протоколе и начать продуктивно работать в этом направлении. Что касается исходников - я уже говорил выше - есть на http://modbus.org совершенно БЕЗВОЗМЕЗДНЫЕ готовые исходники (под PIC, но переделывается влет за неделю) и для клиента и для сервера. Все на Сях. Может быть выложу и свои - надо их причесать немного...


--------------------
Go to the top of the page
 
+Quote Post
otrog
сообщение Jan 10 2007, 10:54
Сообщение #72


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(li4 @ Jan 9 2007, 19:01) *
Цитата
otrog: Выложил сохраненную страницу со всеми файлами на ФТП
/upload/DOCs/WAKE.rar
У меня к сожалению нет доступа к этому ФТП, может закинеш эти файлы мне на e-mail: labor@online.ua?

Положил сюда:
http://rapidshare.com/files/11035544/WAKE.rar.html (1.8 Мб)


Цитата(prottoss @ Jan 9 2007, 19:15) *
Мдя, после того, что я тут выложил, и Ваших слов некоторые точно подумают, что MODBUS придумал я smile.gif , хм....я уже подумываю о новой версии - PROTTOSSBUS, а че? звучит biggrin.gif ...

Отличная идея biggrin.gif


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 10 2007, 13:42
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(prottoss @ Jan 9 2007, 20:15) *
Цитата(otrog @ Jan 9 2007, 19:19) *

2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол smile.gif .
Мдя, после того, что я тут выложил, и Ваших слов некоторые точно подумают, что MODBUS придумал я smile.gif , хм....я уже подумываю о новой версии - PROTTOSSBUS, а че? звучит biggrin.gif ...

Зато на моем сайте есть достаточное количество информации, что бы разобраться в протоколе и начать продуктивно работать в этом направлении. Что касается исходников - я уже говорил выше - есть на http://modbus.org совершенно БЕЗВОЗМЕЗДНЫЕ готовые исходники (под PIC, но переделывается влет за неделю) и для клиента и для сервера. Все на Сях. Может быть выложу и свои - надо их причесать немного...


Это замечательно, может кому то понадобитсся именно полный MODBUS. Я, правда достаточно давно, реализовывал его на ASM51. В принципе с точки зрения микроконтроллера ничего сложного нет. Но для меня немного нафталином попахивает.

А вот с точки зрения PC, всё не так просто. Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень.

Всё идейно важное, - на мой взгляд из первого уровня (как я бы сказал) из MODBUS взял тот же WAKE. А для меня красивым протоколом на втором уровне является X-modem. Я исследовал для себя. Он даёт самую высокую скорость при ошибках в линии. Очень идея красивая. Правда я делал адаптивные размеры пакетов и анализировал статистику.

Интересно было бы повозится с LIN и с CAN. Чтобы самому составить своё собственное мнение.

А вообще интересно наблюдать, что все более-менее современные протоколы в конечном итоге приближаются к сетевым.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 11 2007, 01:04
Сообщение #74


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SasaVitebsk @ Jan 10 2007, 13:42) *
Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень.

Разве идея MODBUS это не master-slave (запрос-ответ)?
Насколько помню там тупо до ужаса.
Посылаешь пакет, ставишь тайм-аут (отфонарный) ~100ms, если в ответ что-то пришло - хорошо, считаешь CRC, 0 - отлично, проверяешь код функции, совпал - значит ответ на наш запрос, ну а дальше парсишь сообщение.
Слейву еще проще. Получил команду - отправил незамедлительно ответ.

Где там задержки в 1.5 символа-то?

фунции modbus драйвера:

Код
void mb_SendPacket(U8 *pData, U8 size)
{
  while (size--)
    uq_PutChar( *pData++ );
}


void mb_PutMessage(PModbusDesc pDesc)
{
    pDesc->CRC = mb_crc16( (U8 *)pDesc, sizeof(*pDesc) - 2 );
    mb_SendPacket( (U8 *)pDesc, sizeof(*pDesc));
}

U8 mb_GetMessage(U8 *pStorage, U8 *retsize, U8 maxsize)
{
  U32  tempclock = Kernel_GetClock() + 100; // 100 ms timeout
  U8   temp;
  *retsize = 0;
  do
  {
     if ( (uq_GetChar(&temp)) && (*retsize < maxsize))
     {
        pStorage[(*retsize)++] = temp;
     }
     Kernel_idle();
   } while (Kernel_GetClock() < tempclock);
  
   return ((*retsize) == 0) ?  FAILED : SUCCESS;
}
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 11 2007, 02:22
Сообщение #75


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(defunct @ Jan 11 2007, 01:04) *
Слейву еще проще. Получил команду - отправил незамедлительно ответ.

Не, незамедлительно нельзя!
по стандарту нужно выдержать интервал не менее 4 длительностей байта
Цитата
Посылаешь пакет, ставишь тайм-аут (отфонарный) ~100ms, если в ответ что-то пришло - хорошо

если ставить слишком большие таймауты, то это очень плохим образом может сказаться
на производительности линии, если она слегка шумит
Цитата
Где там задержки в 1.5 символа-то?

По стандарту нужно чтобы каждый принимаемый байт попадал в фрейм
длительностью 1,5 байта на данной скорости.
Правда эту часть стандарта обычно никто не контролирует строго.
Главное это чтобы межбайтовые промежутки не превышали межпакетные.
Ну и контролировать можно только со стороны слейва.
Если слейв микроконтроллер то это сделать легко, а вот если PC под Win да и еще скорость
приличная, то тогда легче сразу повеситься smile.gif

Когда мастер PC под Win то существует проблема обрезания длинных пакетов:
Цитата(SasaVitebsk @ Jan 10 2007, 13:42) *
Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень.

Кстати SasaVitebsk какая у Вас скорость ?
Удалось ли победить обрезание пакетов ?
Go to the top of the page
 
+Quote Post

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

 


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


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