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

как устроены промышленные gsm модемы?

Доброго времени.

 

Для начала опишу, что хочется получить на выходе: аналог промышленного модема, являющегося удлинителем ком порта через gsm (модем подключается к любому устройству с RS232/RS485, а на стороне сервера ПО может или использовать виртуальный ком порт - ничего не зная о наличии модема, или работать через tcp, зная ip адрес и порт, на котором ожидает модем)

Из того, что я прочитал на данный момент - эту задачу можно решить несколькими способами:

  1. Купить промышленный gsm модем - так как мне больше на поиграться - то не вариант, ибо ценник не гуманный.
  2. собрать это на основе той же самой sim800 или аналога.

Исходя из тематики форума, останавливаемся на втором варианте :).

Наличие микроконтроллера в устройстве - это понятно и логично, иначе как организовать настройку модуля и управление им.... Но возникает вопрос: если бы мне надо было устроить общение сервера с микроконтроллером - то тут вопросов нет. С большего все разжевано и я однозначно понимаю, что для этих целей я могу заказать sim800-900. Но мне-то надо опрашивать не мой микроконтроллер, а другую железку. У gsm модуля - один основной UART, по которому идет и управление и обмен. Второй, как я понял, это для отладки и перепрошивки. Как выкручиваться? Использовать второй порт контроллера, и перекидывать данные исполняя роль "проксика"? Вроде бы натыкался на то, что есть модули с 2 UART портами, это мой случай? Какие есть устоявшиеся решения?

 

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


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

Какие есть устоявшиеся решения?

Есть gsm-модули, предоставляющие зашить в них часть своего кода: Embedded AT, Open AT, OpenCPU ...

Пишете процедуру опроса чужого устройства, при необходимости делаете конвертацию к своему протоколу и зашиваете внутрь.

И тогда серверное ПО (или виртуальный порт) ничего не будет знать о существовании модема.

И в этом случае вполне достаточно одного USARTа gsm-модема.

 

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


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

Есть gsm-модули, предоставляющие зашить в них часть своего кода: Embedded AT, Open AT, OpenCPU ...

Пишете процедуру опроса чужого устройства, при необходимости делаете конвертацию к своему протоколу и зашиваете внутрь.

И тогда серверное ПО (или виртуальный порт) ничего не будет знать о существовании модема.

И в этом случае вполне достаточно одного USARTа gsm-модема.

Процедуру опроса устройства в модем - это не универсальное решение... А есть GSM модули, с 2мя UART, что бы по одному можно было слать AT команды, а по второму обмен? Вроде бы SIM800 такое умеет. Но так ли это я не совсем понял. Или это относится только к EAT прошивке?

 

 

Начитался тут форум, и возникли вопросы уже организации связи - предполагается, что модем должен быть подключен к интернету постоянно, (на счет серых ip и прочего я в курсе, и это не проблема решается отдельным тарифом vpn), но тут очень часто проскакивает, что при такой жизни, очень часто соединения получаются подключены, но "зависшие". Это лечится периодическим передергиванием связи? или на данный момент это уже не такая актуальная проблема? (форум я читаю со старых постов.... так что до современного состояния еще не добрался....).

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


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

Купите GL868 (например) и напишите программу на питоне. Что угодно можно реализовать.

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


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

А есть GSM модули, с 2мя UART, что бы по одному можно было слать AT команды, а по второму обмен?

Такие модули точно есть, но конкретного вам не подскажу, не интересовался.

 

 

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

...

но тут очень часто проскакивает, что при такой жизни, очень часто соединения получаются подключены, но "зависшие". Это лечится периодическим передергиванием связи? или на данный момент это уже не такая актуальная проблема?

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

Еще имейте ввиду, что даже при проключенном канале связи в "прозрачном" режиме, ваш виртуальный канал RS-232 не будет обеспечивать стабильные тайминги. Они будут "плавать" в большом диапазоне и далеко не каждое оборудование, рассчитанное на подключение RS-232, будет работать.

 

В любом случае, возле модема должен быть хост-MCU (или ваша программа внутри модема), который будет устанавливать соединение, следить за его наличием и восстанавливать при обрывах связи и т.д. И в нем обычно наворачивается довольно сложный функционал по конфигурированию и управлению всем этим устройством.

 

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


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

И в нем обычно наворачивается довольно сложный функционал по конфигурированию и управлению всем этим устройством.

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

И тогда только внешний MCU может отрубить его от питания, и заново включить и проинициализировать.

Все эти скриптовые языке и надстройки для софта пользователя слишком ненадежное решение.

Ну правда это мое личное мнение.

 

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


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

А есть GSM модули, с 2мя UART, что бы по одному можно было слать AT команды, а по второму обмен?

 

Обмен должен быть "завернут" в AT команды. Для этого нужен всего лишь один порт.

EAT прошивка делает возможной реализацию без дополнительных расходов на маразматическую возню с AT командами на стороне сервера.

Грубо говоря, простейший "удлинитель ком порта через gsm" - gsm-модем получает поток данных, например, по tcp-соединения из эфира и плюет их в порт,

подключенный к опрашиваемому устройству и, соответственно, полученное из порта отсылает по tcp-соединению обратно.

 

но тут очень часто проскакивает, что при такой жизни, очень часто соединения получаются подключены, но "зависшие".

Это лечится периодическим передергиванием связи?

Соединения могут быть "зависшими" из-за ошибок в ПО. Но лечится, иногда бывает, при содействии провайдера, передергивания связи недостаточно и необходимо перечитать симку. В принципе, можно проресетить модуль.

 

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


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

В любом случае, возле модема должен быть хост-MCU (или ваша программа внутри модема), который будет устанавливать соединение, следить за его наличием и восстанавливать при обрывах связи и т.д. И в нем обычно наворачивается довольно сложный функционал по конфигурированию и управлению всем этим устройством.

так я потому и интересуюсь gsm модулем, у которого 2 uart. А на счет таймингов, можно чуть по подробнее? в смысле, на сколько все плохо. Какого размера пакеты обычно передаются ? я в том плане, что можно ли ожидать, что посылка 100 байт дойдет от сервера до gsm модуля, и соответственно до опрашиваемого устройства одним куском или это из разряда сферического коня в вакууме? И лучше сразу думать в сторону буфера в микроконтроллере?

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


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

так я потому и интересуюсь gsm модулем, у которого 2 uart.

Не понятно, зачем gsm модулю обязательно иметь 2 uart-а?

Если уж Вы решили потратиться на дополнительный микроконтроллер, управляющий gsm-модемом, то логично 2 uart-а иметь у этого управляющего контроллера.

 

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


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

А на счет таймингов, можно чуть по подробнее? в смысле, на сколько все плохо. Какого размера пакеты обычно передаются ? я в том плане, что можно ли ожидать, что посылка 100 байт дойдет от сервера до gsm модуля, и соответственно до опрашиваемого устройства одним куском или это из разряда сферического коня в вакууме? И лучше сразу думать в сторону буфера в микроконтроллере?

Вполне обычной бывает задержка в 2,5 минуты. Все что больше считаю обрывом соединения. Чаще всего задержка порядка 5-15 секунд. От размера пакета не зависит. Зависит от загруженности сети.

100 байт должны дойти одним куском - зависит от настроек MSS TCP стека модема. Весь обмен по UART конечно должен быть сделан на внешнем МК со всякими буферизациями, перезапросами и прочими фишками о которых вы сейчас даже не догадываетесь.

Изменено пользователем alex2103

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


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

Не понятно, зачем gsm модулю обязательно иметь 2 uart-а?

Если уж Вы решили потратиться на дополнительный микроконтроллер, управляющий gsm-модемом, то логично 2 uart-а иметь у этого управляющего контроллера.

Так я первоначально по простоте душевной, первоначально думал, что по одному порту посылать в контроллер управляющие команды, а второй перевести в trancperent mode - (как я понял, в этом режиме все данные попавшие на вход порта, пересылаются на открытый сокет и обратно). Но в виду того, что было сказано о доставке пакетов - если решусь на реализацию, то буду делать буферизацию в контроллере. Соответственно это будет 2 порта в контроллере, а не в модуле.

 

Спасибо большое за ответы, минимальное просветеление пришло, теперь надо обдумать все более тщательно, а надо ли оно мне :)

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


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

Так я первоначально по простоте душевной, первоначально думал, что по одному порту посылать в контроллер управляющие команды, а второй перевести в trancperent mode - (как я понял, в этом режиме все данные попавшие на вход порта, пересылаются на открытый сокет и обратно). Но в виду того, что было сказано о доставке пакетов - если решусь на реализацию, то буду делать буферизацию в контроллере. Соответственно это будет 2 порта в контроллере, а не в модуле.

 

Спасибо большое за ответы, минимальное просветеление пришло, теперь надо обдумать все более тщательно, а надо ли оно мне :)

предлагаю сделать проще и надежнее: использовать один УАРТ модуля для настройки и обмена.

т.е.:

1. включили модуль

2. настроили

3. подключились к серверу в прозрачном режиме

4. обмениваетесь данными

 

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

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


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

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

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

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

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

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

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

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

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

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