Перейти к содержанию
    

UART мост через сотовую сеть

Здравствуйте .

Подскажите, знающие люди, на основе чего реализовать UART удлинитель на скорости 115200 через сеть ? Объем данных  для передачи по 128 byte за один сеанс связи  в каждом направлении но с задержкой запрос - ответ не более 100 mc. Периодичность сеансов раз в 10 минут .

Понятно что не напрямую между модулями  а через сервер , скорее всего по TCP . MQTT не подходит из за медлительности . По крайней мере то что тестировалось на публичных бесплатных платформах такой  как HiveMQ с  SIM7000 в 4G сети  дает задержку межу отправкой пакета от сервера до прихода к модулю и обратно к серверу минимум 1 сек. 

Какой собственно порядок действий должен быть ? Мне нужно арендовать сервер + статический IP где то территориально близко , затем установить там TCP сервер и уже по такой схеме  коненктить модули через этот TCP ? Всё это для того что бы минимизировать временные задержки при передачи .  Как то же реализуют малые значения пинга на игровых серверах . 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, Simkin сказал:

Здравствуйте .

Подскажите, знающие люди, на основе чего реализовать UART удлинитель на скорости 115200 через сеть ? Объем данных  для передачи по 128 byte за один сеанс связи  в каждом направлении но с задержкой запрос - ответ не более 100 mc. Периодичность сеансов раз в 10 минут .

Для передачи 256 байт на скорости 115200 нужно минимум 22 мс. Если будет обертка из АТ-команд и промежуточный МК-шлюз, то будет еще медленнее, т.к. сначала данные нужно загрузить в шлюз, а потом ответ от GSM-модуля через шлюз получить.

22 минуты назад, Simkin сказал:

Понятно что не напрямую между модулями  а через сервер , скорее всего по TCP . MQTT не подходит из за медлительности . По крайней мере то что тестировалось на публичных бесплатных платформах такой  как HiveMQ с  SIM7000 в 4G сети  дает задержку межу отправкой пакета от сервера до прихода к модулю и обратно к серверу минимум 1 сек. 

У меня быстрее чем 5 секунд устанавливать соединение не получалось (bgs2t). Иногда 30 секунд.

22 минуты назад, Simkin сказал:

Какой собственно порядок действий должен быть ? Мне нужно арендовать сервер + статический IP где то территориально близко , затем установить там TCP сервер и уже по такой схеме  коненктить модули через этот TCP ? Всё это для того что бы минимизировать временные задержки при передачи .  Как то же реализуют малые значения пинга на игровых серверах .

Сотовая связь очень не надежная. Иногда услуги GPRS просто может не быть (сколь угодно долго). Характерные времена там - секунды. Многое зависит от покрытия сигналом.

Как вариант: можно держать соединение постоянно. Если сеансы 10 минутные, то за 30 секунд до сеанса устанавливаете соединение, затем в момент Х обмениваетесь с сервером и разрываете соединение на 10 минут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. 115200 для старта , полагаю 921600 несколько форсирует события в цепи МК - GSM модуль

2. Соединение держим открытым , периодический  посылая пакеты для продления сеанса в ожидании полезной нагрузки  - резонно 

3. Безусловно задержки со стороны сотовой сети принимаются во внимание . И там ни каких гарантий по пингу. 

MQTT в SIM700 и как надстройка над TCP вполне годная тема .  Решает ли вопрос скорости платные тарифы от например того же Сloudmqtt  или же радикально  путь через аренду стат.IP  ? 

Исследования на тему  "Benchmark of MQTT servers"   показывают от 10мс на мин нагрузках до 50мс при 100.000 сообщений в секунду. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Некоторые наблюдения сделанные на основе  теста .  Цель - сравнить скорость обмена пакетами 

Дано

Сloudmqtt брокер . 

К брокеру подключены два подписчика :

1) GSM модуль через 4G .

2) PC(Win) c MQTT Explorer . С доступом в сеть интернет через точку доступа WIFI включенную на  смартфоне . который использует ту же сотовую сеть что и модуль (1)   

Итог : пакет 32 байта  отображается  в окне MQTT Explorer  буквально мгновенно  (извините за нецифровое значение). И только спустя минимум секунду модуль рожает этот же пакет через свой порт .

   

        

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как правило Ваша задача - "удлинитель UART",  решается следующим образом, модуль конфигурируется для работы в качестве ТСР Клиента или Сервера (в зависимости от топологии конкретной здачи), далее переводится в "прозрачный режим" (ранее он находился в командном режиме), после чего, все данные поступающие в порт модуля отпрвляются в антенну, а данные из сети, соответственно передаются в порт. Ваша задача заключается лишь в том, что бы отлавливать ситуации, когда провайдер разорвет соединение (например сообщение "DISCONNECTED")

Касательно задержек сети, никто ничего не гарантирует, по моим наблюдениям, пинги могут доходить до нескольких сотен миллисекунд.

В реальных задачах, необходимо "общаться" с оборудованием, которое "понимает" вполне конкретные команды (посылки) в неразрывном виде, поэтому вторая задача, это принимать из сети как правило "рванные" части одного сообщения, и отправлять потребителю в неразрывном виде.

Касательно статики, при решении практических задач сбора данных (управления) как правило, используется так называемая "серая" статика, которая существует внутри сети провайдера и выхода в интернет не предполагает, да он и не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/15/2021 at 5:04 PM, Simkin said:

Подскажите, знающие люди, на основе чего реализовать UART удлинитель на скорости 115200 через сеть ? Объем данных  для передачи по 128 byte за один сеанс связи  в каждом направлении но с задержкой запрос - ответ не более 100 mc. Периодичность сеансов раз в 10 минут .

Один простой вопрос -у Вас устройство мобильное или стационарное ?

трансляторов UART в сеть интернет продается огромное количество . Точно нужен модем ? Потому что скорость передачи будет очень зависеть от внешний условий. Дождь, снег итд. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Самоделкин сказал:

у Вас устройство мобильное или стационарное ?

Оба устройства стационарные . 

 

17.06.2021 в 09:27, Katatsuburi сказал:

модуль конфигурируется для работы в качестве ТСР Клиента или Сервера

Если с подключением  к серверу в качестве клиента \модуль 1\ все понятно . При условии что у сервера есть IP по которому можно зайти извне указав его в АТ команде . 

AT+CIPSTART=”TCP”,”IP”,port   >>  CONNECT OK

Но как соединиться с модулем сконфигурированным как сервер \модуль 2\ ? 

APP note говорит следующее

- AT+CIPSERVER=1,1234         Start the TCP server, listening port:1234

AT+CIFSR                             Get local IP address   

- AT+CIPSTATUS                      OK STATE SERVER LISTENING

 

 В ответ на AT+CIFSR оператор даёт локальный (внутрисетевой) IP для \модуль 2\. Но подставив этот IP в команду  AT+CIPSTART для \модуль 1\  соединение ж не происходит

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Simkin said:

Оба устройства стационарные . 

 

Тогда зачем вам "огород городить" ?

Куча устройств решают эту проблему за очень разумные деньги. 

Moxa,Lantronix,NEC на любой кошелек и вкус. Там все есть уже готовое только подключить и подать питание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так м.б. предполагается установка в местах, где никаких проводов не проложено, кроме питания. В этом случае со временем может вылезть другая проблема - некоторые операторы "банят" SIM-карты после длительного отсутствия перемещений абонента; стационарное размещение оговаривается отдельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 минут назад, Harbinger сказал:

некоторые операторы "банят" SIM-карты после длительного отсутствия перемещений абонента; стационарное размещение оговаривается отдельно.

Т.е. - если человек сломал ногу и лежит в гипсе, то ему ещё и симку заблокируют?! Для полноты ощущений....  :negative:

А если абонент - инвалид или просто - престарелый человек, который почти не выходит из дома? Неуэто им нужно менять тарифный план на "Инвалидский"? :wacko2: Это уже какая-то дискриминация получается. За такое и в суд подать можно.

 

PS: Что-то странное рассказываете - не должно быть такого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отголоски "войны со шлюзами". По IMEI ещё смотрели, обычные телефоны не отключали, естественно. 

В последние года 3, впрочем, за ситуацией не слежу - несколько сменилась тематика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делали модемы под конкретные задачи на SIM900, SIM 800C, SIM5300 лучшие результаты показал SIM5300.

Модем еще нужно настроить , а вернее настроить ТСР соединение по которому  будете отправлять. Нужно отключать Nagle ( Алгоритм Нейгла )  чтобы сеть сразу отправляла пакеты без ожидания оптимального заполнения данными.

В этом случае работает лучше , но 100 mc - обеспечить не удастся.

Скорее всего оборудование которое пытаетесь "удлинить" по СОМ порту не расчитано на работу через модем. А малая задержка отклика гарантирует , что чужие не пролезут

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...