Jump to content

    
Simkin

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

Recommended Posts

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

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

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

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

 

Share this post


Link to post
Share on other sites
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 минут.

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Дано

Сloudmqtt брокер . 

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

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

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

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

   

        

 

 

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
On 6/15/2021 at 5:04 PM, Simkin said:

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

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

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

Share this post


Link to post
Share on other sites
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\  соединение ж не происходит

 

 

 

 

 

Share this post


Link to post
Share on other sites
4 hours ago, Simkin said:

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
49 минут назад, Harbinger сказал:

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.