|
Serial-over-Ethernet, (существует ли общепринятый стандарт?) |
|
|
|
 |
Ответов
|
Dec 26 2017, 18:25
|

Группа: Участник
Сообщений: 6
Регистрация: 24-09-15
Из: Украина, exSU
Пользователь №: 88 529

|
Нужна помощь!
Есть Raspberry Pi 3, на нём pppd через GPRS-модем (скорость приёма-передачи - хорошо если 30-40 килобод), преобразователь USB-COM (подключен к некоему устройству на скорости 115200) и ser2net. На другом конце TCP-соединения - комп под Windows, на нём HW VSP (бесплатный однопортовый) и программа, которая умеет обмениваться пакетами с упомянутым устройством через COM-порт. Проблема: как только размер отправляемого c компа пакета превышает три-четыре десятка байт, как в связке HWVSP-TCP-ser2net начинаются неприятности - пакет принимается на другом конце в два приёма: приходит начало пакета, а после паузы в три-четыре сотни миллисекунд - остальное. Устройство, натурально, расценивает этот таймаут как недопустимо большой и отбрасывает обе половинки пакета. Опытным путём удалось установить, что допустимый интервал между байтами пакета - в пределах 20-30 миллисекунд, максимальный размер пакета - 255 байт, а программа не отправляет следующий пакет, пока не получит ответ на предыдущий либо пока не истечёт таймаут (а у программы он довольно длительный - десятки секунд). Соответственно, вопрос: либо что можно сделать, чтобы пакеты не рвались при их передаче через TCP, либо какую софтинку применить на Windows-стороне, чтобы изображала из себя COM-порт и передавала данные UDP-пакетами?
|
|
|
|
|
Jan 6 2018, 06:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(Рыжий Тигра @ Dec 26 2017, 21:25)  Нужна помощь!
Есть Raspberry Pi 3, на нём pppd через GPRS-модем (скорость приёма-передачи - хорошо если 30-40 килобод), преобразователь USB-COM (подключен к некоему устройству на скорости 115200) и ser2net. На другом конце TCP-соединения - комп под Windows, на нём HW VSP (бесплатный однопортовый) и программа, которая умеет обмениваться пакетами с упомянутым устройством через COM-порт. Проблема: как только размер отправляемого c компа пакета превышает три-четыре десятка байт, как в связке HWVSP-TCP-ser2net начинаются неприятности - пакет принимается на другом конце в два приёма: приходит начало пакета, а после паузы в три-четыре сотни миллисекунд - остальное. Устройство, натурально, расценивает этот таймаут как недопустимо большой и отбрасывает обе половинки пакета. Опытным путём удалось установить, что допустимый интервал между байтами пакета - в пределах 20-30 миллисекунд, максимальный размер пакета - 255 байт, а программа не отправляет следующий пакет, пока не получит ответ на предыдущий либо пока не истечёт таймаут (а у программы он довольно длительный - десятки секунд). Соответственно, вопрос: либо что можно сделать, чтобы пакеты не рвались при их передаче через TCP, либо какую софтинку применить на Windows-стороне, чтобы изображала из себя COM-порт и передавала данные UDP-пакетами? Вы собрали из готовых кусков или что-то сами писали? Условие, стимулирующее начало передачи пакета настолько неоднозначное и есть много взаимоисключающих критериев, что надо в каждом случае индивидуально отлаживать. Если сами писали код, то не помешает после записи сделать вызов int fsync(int fd);
|
|
|
|
Сообщений в этой теме
Doka Serial-over-Ethernet Jan 5 2011, 08:10 rx3apf Цитата(Doka @ Jan 5 2011, 14:10) что нужн... Jan 5 2011, 15:45 Doka >> Можно глянуть, как работает мост IP-UART ... Jan 5 2011, 18:45 rx3apf Цитата(Doka @ Jan 6 2011, 00:45) однако, ... Jan 5 2011, 19:32 khach А как же тогда скорость задавать, линии квитирован... Jan 5 2011, 21:02 rx3apf Цитата(khach @ Jan 6 2011, 03:02) А как ж... Jan 5 2011, 21:08 khach Flow control вроде реализован в Stellaris® Serial-... Jan 5 2011, 21:30 Doka Цитата(khach @ Jan 6 2011, 03:30) Flow co... Jan 6 2011, 16:26  rx3apf Цитата(Doka @ Jan 6 2011, 22:26) этот воо... Jan 6 2011, 17:02 sasamy Цитата(Doka @ Jan 5 2011, 14:10) что нужн... Jan 6 2011, 21:31 Ostrov Очень, очень давно успешно использовался ser2net ... Jan 9 2011, 03:25 Doka Цитата(Ostrov @ Jan 9 2011, 09:25) Очень,... Jan 10 2011, 08:35  Ostrov Цитата(Doka @ Jan 10 2011, 14:35) вот это... Jan 11 2011, 04:32 Reanimator++ Чет не соображу, каким образом происходит ограниче... Jan 17 2011, 10:14 VslavX Цитата(Reanimator++ @ Jan 17 2011, ... Jan 17 2011, 11:39 TobyBar Цитата(Doka @ Jan 5 2011, 09:10) что нужн... Feb 27 2017, 12:43 svss Путаете LAN-connected COM-port и
SOL (serial over ... Jun 5 2017, 09:44 Tarbal Я бы сделал так.
1. Посылать сериальные пакеты че... Jun 18 2017, 23:57 _Thomas_ Цитата(Рыжий Тигра @ Dec 26 2017, 19:25) ... Jan 8 2018, 13:30 Студент заборстроительного Что ваяяете если не секрет?
Хотите сделать свой ве... Dec 27 2017, 16:26 Рыжий Тигра Студент заборстроительного, ситуация ещё хуже - уж... Dec 27 2017, 17:35  Студент заборстроительного Цитата(Рыжий Тигра @ Dec 27 2017, 20:35) ... Dec 27 2017, 18:52   Рыжий Тигра Студент заборстроительного, взаимно. Торгуй лучше ... Dec 27 2017, 20:58 smart_pic В программе HWVSP-TCP-ser2net есть настройки, можн... Jan 7 2018, 09:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|